Browse Source

Merge branch 'dev' of https://github.com/volosoft/abp into dev

pull/1672/head
Yunus Emre Kalkan 7 years ago
parent
commit
e1a254e1fe
  1. 4
      docs/en/Blog-Posts/2019-08-16 v0_19_Release/Post.md
  2. 5
      docs/en/Index.md
  3. 3
      docs/en/Startup-Templates/Application.md
  4. 20
      docs/en/Tutorials/Angular/Part-I.md
  5. 52
      docs/en/Tutorials/Angular/Part-II.md
  6. 26
      docs/en/docs-nav.json
  7. 2
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs
  8. 10
      modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs
  9. 2
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  10. 8
      modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs
  11. 8
      modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs
  12. 6
      modules/docs/src/Volo.Docs.Web/DocsWebModule.cs
  13. 10
      modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs
  14. 8
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs
  15. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
  16. 20
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs
  17. 1
      npm/ng-packs/dist/feature-management/README.md
  18. 10
      npm/ng-packs/dist/feature-management/abp-ng.feature-management.d.ts
  19. 1
      npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json
  20. 596
      npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js
  21. 1
      npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map
  22. 2
      npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js
  23. 1
      npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map
  24. 14
      npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js
  25. 35
      npm/ng-packs/dist/feature-management/esm2015/lib/actions/feature-management.actions.js
  26. 6
      npm/ng-packs/dist/feature-management/esm2015/lib/actions/index.js
  27. 149
      npm/ng-packs/dist/feature-management/esm2015/lib/components/feature-management/feature-management.component.js
  28. 6
      npm/ng-packs/dist/feature-management/esm2015/lib/components/index.js
  29. 20
      npm/ng-packs/dist/feature-management/esm2015/lib/feature-management.module.js
  30. 69
      npm/ng-packs/dist/feature-management/esm2015/lib/models/feature-management.js
  31. 6
      npm/ng-packs/dist/feature-management/esm2015/lib/models/index.js
  32. 71
      npm/ng-packs/dist/feature-management/esm2015/lib/services/feature-management.service.js
  33. 80
      npm/ng-packs/dist/feature-management/esm2015/lib/states/feature-management.state.js
  34. 6
      npm/ng-packs/dist/feature-management/esm2015/lib/states/index.js
  35. 7
      npm/ng-packs/dist/feature-management/esm2015/public-api.js
  36. 14
      npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js
  37. 33
      npm/ng-packs/dist/feature-management/esm5/lib/actions/feature-management.actions.js
  38. 6
      npm/ng-packs/dist/feature-management/esm5/lib/actions/index.js
  39. 167
      npm/ng-packs/dist/feature-management/esm5/lib/components/feature-management/feature-management.component.js
  40. 6
      npm/ng-packs/dist/feature-management/esm5/lib/components/index.js
  41. 24
      npm/ng-packs/dist/feature-management/esm5/lib/feature-management.module.js
  42. 69
      npm/ng-packs/dist/feature-management/esm5/lib/models/feature-management.js
  43. 6
      npm/ng-packs/dist/feature-management/esm5/lib/models/index.js
  44. 78
      npm/ng-packs/dist/feature-management/esm5/lib/services/feature-management.service.js
  45. 99
      npm/ng-packs/dist/feature-management/esm5/lib/states/feature-management.state.js
  46. 6
      npm/ng-packs/dist/feature-management/esm5/lib/states/index.js
  47. 7
      npm/ng-packs/dist/feature-management/esm5/public-api.js
  48. 365
      npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js
  49. 1
      npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map
  50. 406
      npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js
  51. 1
      npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map
  52. 11
      npm/ng-packs/dist/feature-management/lib/actions/feature-management.actions.d.ts
  53. 1
      npm/ng-packs/dist/feature-management/lib/actions/index.d.ts
  54. 21
      npm/ng-packs/dist/feature-management/lib/components/feature-management/feature-management.component.d.ts
  55. 1
      npm/ng-packs/dist/feature-management/lib/components/index.d.ts
  56. 2
      npm/ng-packs/dist/feature-management/lib/feature-management.module.d.ts
  57. 25
      npm/ng-packs/dist/feature-management/lib/models/feature-management.d.ts
  58. 1
      npm/ng-packs/dist/feature-management/lib/models/index.d.ts
  59. 11
      npm/ng-packs/dist/feature-management/lib/services/feature-management.service.d.ts
  60. 11
      npm/ng-packs/dist/feature-management/lib/states/feature-management.state.d.ts
  61. 1
      npm/ng-packs/dist/feature-management/lib/states/index.d.ts
  62. 21
      npm/ng-packs/dist/feature-management/package.json
  63. 2
      npm/ng-packs/dist/feature-management/public-api.d.ts
  64. 3
      npm/ng-packs/packages/feature-management/ng-package.json
  65. 8
      npm/ng-packs/packages/feature-management/package.json
  66. 2
      npm/ng-packs/packages/tenant-management/package.json
  67. 2
      npm/ng-packs/packages/theme-shared/package.json

4
docs/en/Blog-Posts/2019-08-16 v0_19_Release/Post.md

@ -1,6 +1,6 @@
# ABP v0.19 Release with Angular UI Option
# ABP v0.19 Release With New Angular UI
ABP v0.19 has been released with [~90 issues](https://github.com/abpframework/abp/milestone/17?closed=1) resolved and [600+ commits](https://github.com/abpframework/abp/compare/0.18.1...0.19.0) pushed.
ABP v0.19 has been released with [90 issues](https://github.com/abpframework/abp/milestone/17?closed=1) resolved and [650+ commits](https://github.com/abpframework/abp/compare/0.18.1...0.19.0) pushed.
## New Features

5
docs/en/Index.md

@ -6,7 +6,7 @@ Explore the left navigation menu to deep dive in the documentation.
## Project Status
ABP is the **next generation** of the open source [ASP.NET Boilerplate](https://aspnetboilerplate.com/) framework. It's currently in early preview stage and not ready to use in production. The documentation is still in progress and it is far from complete.
ABP is the **next generation** of the open source [ASP.NET Boilerplate](https://aspnetboilerplate.com/) framework. It's currently in preview stage and not ready to use in production. The documentation is still in progress and it is far from complete.
For short-term and production level applications, it's suggested to use [ASP.NET Boilerplate](https://aspnetboilerplate.com/) framework which has rich feature set, mature, actively maintained and up-to-date.
@ -14,7 +14,8 @@ For short-term and production level applications, it's suggested to use [ASP.NET
Easiest way to start a new project with ABP is to use the startup templates:
* [ASP.NET Core MVC Template](Getting-Started-AspNetCore-MVC-Template.md)
* [ASP.NET Core MVC (Razor Pages) UI Template](Getting-Started-AspNetCore-MVC-Template.md)
* [Angular UI Template](Getting-Started-Angular-Template.md)
If you want to start from scratch (with an empty project) then manually install the ABP Framework and use the following tutorials:

3
docs/en/Startup-Templates/Application.md

@ -5,7 +5,8 @@
This template provides a layered application structure based on the [Domain Driven Design](../Domain-Driven-Design.md) (DDD) practices. This document explains the solution structure and projects in details. If you want to start quickly, follow the guides below:
* See [Getting Started With the ASP.NET Core MVC Template](../Getting-Started-AspNetCore-MVC-Template.md) to create a new solution and run it for this template (uses MVC as the UI framework and Entity Framework Core as the database provider).
* See the [ASP.NET Core MVC Tutorial](../Tutorials/AspNetCore-Mvc/Part-I.md) to learn how to develop applications using this template (uses MVC as the UI framework and Entity Framework Core as the database provider).
* See the [ASP.NET Core MVC Application Development Tutorial](../Tutorials/AspNetCore-Mvc/Part-I.md) to learn how to develop applications using this template (uses MVC as the UI framework and Entity Framework Core as the database provider).
* See the [Angular Application Development Tutorial](../Tutorials/Angular/Part-I.md) to learn how to develop applications using this template (uses Angular as the UI framework and MongoDB as the database provider).
## How to Start With?

20
docs/en/Tutorials/Angular/Part-I.md

@ -20,7 +20,7 @@ Create a new project named `Acme.BookStore` by selecting the Angular as the UI f
This is how the layered solution structure looks after it's created:
![bookstore-backend-solution](images\bookstore-backend-solution-v2.png)
![bookstore-backend-solution](images/bookstore-backend-solution-v2.png)
> You can see the [Application template document](../../Startup-Templates/Application.md) to understand the solution structure in details. However, you will understand the basics with this tutorial.
@ -342,7 +342,7 @@ Run `yarn start`, wait Angular to run the application and open `http://localhost
Open the `app-routing.module.ts` and replace `books` as shown below:
```typescript
```js
import { ApplicationLayoutComponent } from '@abp/ng.theme.basic';-
//...
@ -380,7 +380,7 @@ yarn ng generate component books/book-list
Import the `SharedModule` to the `BooksModule` to reuse some components and services defined in:
```typescript
```js
import { SharedModule } from '../shared/shared.module';
@NgModule({
@ -395,7 +395,7 @@ export class BooksModule {}
Then, update the `routes` in the `books-routing.module.ts` to add the new book-list component:
```typescript
```js
import { BookListComponent } from './book-list/book-list.component';
const routes: Routes = [
@ -425,7 +425,7 @@ yarn ng generate ngxs-schematic:state books
This command creates several new files and edits `app.modules.ts` to import the `NgxsModule` with the new state:
```typescript
```js
// app.module.ts
import { BooksState } from './store/states/books.state';
@ -446,7 +446,7 @@ First, create data types to map data returning from the backend (you can check s
Modify the `books.ts` as shown below:
```typescript
```js
export namespace Books {
export interface State {
books: Response;
@ -497,7 +497,7 @@ yarn ng generate service books/shared/books
Modify `books.service.ts` as shown below:
```typescript
```js
import { Injectable } from '@angular/core';
import { RestService } from '@abp/ng.core';
import { Books } from '../../store/models';
@ -522,7 +522,7 @@ Added the `get` method to get the list of books by performing an HTTP request to
Replace `books.actions.ts` content as shown below:
```typescript
```js
export class GetBooks {
static readonly type = '[Books] Get';
}
@ -532,7 +532,7 @@ export class GetBooks {
Open the `books.state.ts` and change the file as shown below:
```typescript
```js
import { State, Action, StateContext, Selector } from '@ngxs/store';
import { GetBooks } from '../actions/books.actions';
import { Books } from '../models/books';
@ -572,7 +572,7 @@ Added the `GetBooks` action that uses the `BookService` defined above to get the
Modify the `book-list.component.ts` as shown below:
```typescript
```js
import { Component, OnInit } from '@angular/core';
import { Store, Select } from '@ngxs/store';
import { BooksState } from '../../store/states';

52
docs/en/Tutorials/Angular/Part-II.md

@ -18,7 +18,7 @@ In this section, you will learn how to create a new modal dialog form to create
Create an interface, named `CreateUpdateBookInput` in the `books.ts` as shown below:
```typescript
```js
export namespace Books {
//...
export interface CreateUpdateBookInput {
@ -36,7 +36,7 @@ export namespace Books {
Open the `books.service.ts` and add a new method, named `create` to perform an HTTP POST request to the server:
```typescript
```js
create(createBookInput: Books.CreateUpdateBookInput): Observable<Books.Book> {
return this.restService.request<Books.CreateUpdateBookInput, Books.Book>({
method: 'POST',
@ -52,7 +52,7 @@ create(createBookInput: Books.CreateUpdateBookInput): Observable<Books.Book> {
Add the `CreateUpdateBook` action to the `books.actions.ts` as shown below:
```typescript
```js
import { Books } from '../models';
export class CreateUpdateBook {
@ -63,7 +63,7 @@ export class CreateUpdateBook {
Open `books.state.ts` and define the `save` method that will listen to a `CreateUpdateBook` action to create a book:
```typescript
```js
import { ... , CreateUpdateBook } from '../actions/books.actions';
import { ... , switchMap } from 'rxjs/operators';
//...
@ -118,7 +118,7 @@ Add a button, labeled `New book` to show the modal:
Open the `book-list.component.ts` and add `isModalOpen` variable and `createBook` method to show/hide the modal.
```typescript
```js
isModalOpen = false;
//...
@ -136,7 +136,7 @@ createBook() {
Add a `form` variable and inject a `FormBuilder` service to the `book-list.component.ts` as shown below (remember add the import statement).
```typescript
```js
import { FormGroup, FormBuilder } from '@angular/forms';
form: FormGroup;
@ -151,7 +151,7 @@ constructor(
Add the `buildForm` method to create book form.
```typescript
```js
buildForm() {
this.form = this.fb.group({
name: ['', Validators.required],
@ -167,7 +167,7 @@ buildForm() {
Modify the `createBook` method as shown below:
```typescript
```js
createBook() {
this.buildForm();
this.isModalOpen = true;
@ -220,7 +220,7 @@ Open `book-list.component.html` and add the form in the body template of the mod
Open the `book-list.component.ts` and then create an array, named `bookTypeArr`:
```typescript
```js
//...
form: FormGroup;
@ -241,7 +241,7 @@ This array was used in the previous form template (in the `ngFor` loop).
You need to import `NgbDatepickerModule` to the `books.module.ts`:
```typescript
```js
import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
@ -253,9 +253,9 @@ import { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
export class BooksModule {}
```
Then open the `book-list.component.html` and add `providers` as shown below:
Then open the `book-list.component.ts` and add `providers` as shown below:
```typescript
```js
import { NgbDateNativeAdapter, NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
@Component({
@ -292,7 +292,7 @@ This adds a save button to the bottom area of the modal:
Then define a `save` method in the `BookListComponent`:
```typescript
```js
save() {
if (this.form.invalid) {
return;
@ -311,7 +311,7 @@ save() {
Open the `books.service.ts` and then add the `getById` and `update` methods.
```typescript
```js
getById(id: string): Observable<Books.Book> {
return this.restService.request<void, Books.Book>({
method: 'GET',
@ -332,7 +332,7 @@ update(updateBookInput: Books.CreateUpdateBookInput, id: string): Observable<Boo
Open the `books.actins.ts` and add `id` parameter to the `CreateUpdateBook` action:
```typescript
```js
export class CreateUpdateBook {
static readonly type = '[Books] Create Update Book';
constructor(public payload: Books.CreateUpdateBookInput, public id?: string) {}
@ -341,7 +341,7 @@ export class CreateUpdateBook {
Open `books.state.ts` and modify the `save` method as show below:
```typescript
```js
@Action(CreateUpdateBook)
save(ctx: StateContext<Books.State>, action: CreateUpdateBook) {
let request;
@ -360,7 +360,7 @@ save(ctx: StateContext<Books.State>, action: CreateUpdateBook) {
Inject `BooksService` dependency by adding it to the `book-list.component.ts` constructor and add a variable named `selectedBook`.
```typescript
```js
import { BooksService } from '../shared/books.service';
//...
selectedBook = {} as Books.Book;
@ -373,7 +373,7 @@ constructor(
`booksService` is used to get the editing book to prepare the form. Modify the `buildForm` method to reuse the same form while editing a book.
```typescript
```js
buildForm() {
this.form = this.fb.group({
name: [this.selectedBook.name || '', Validators.required],
@ -386,7 +386,7 @@ buildForm() {
Add the `editBook` method as shown below:
```typescript
```js
editBook(id: string) {
this.booksService.getById(id).subscribe(book => {
this.selectedBook = book;
@ -400,7 +400,7 @@ Added `editBook` method to get the editing book, build the form and show the mod
Now, add the `selectedBook` definition to `createBook` method to reuse the same form while creating a new book:
```typescript
```js
createBook() {
this.selectedBook = {} as Books.Book;
//...
@ -409,7 +409,7 @@ Now, add the `selectedBook` definition to `createBook` method to reuse the same
Modify the `save` method to pass the id of the selected book as shown below:
```typescript
```js
save() {
if (this.form.invalid) {
return;
@ -489,7 +489,7 @@ Update the modal header to change the title based on the current operation:
Open `books.service.ts` and add a `delete` method to delete a book with the `id` by performing an HTTP request to the related endpoint:
```typescript
```js
delete(id: string): Observable<void> {
return this.restService.request<void, void>({
method: 'DELETE',
@ -502,7 +502,7 @@ delete(id: string): Observable<void> {
Add an action named `DeleteBook` to `books.actions.ts`:
```typescript
```js
export class DeleteBook {
static readonly type = '[Books] Delete';
constructor(public id: string) {}
@ -511,7 +511,7 @@ export class DeleteBook {
Open the `books.state.ts` and add the `delete` method that will listen to the `DeleteBook` action to delete a book:
```typescript
```js
import { ... , DeleteBook } from '../actions/books.actions';
//...
@Action(DeleteBook)
@ -544,7 +544,7 @@ The final actions dropdown UI looks like below:
Open `book-list.component.ts` and inject the `ConfirmationService`.
```typescript
```js
import { ConfirmationService } from '@abp/ng.theme.shared';
//...
constructor(
@ -557,7 +557,7 @@ constructor(
Add a delete method to the `BookListComponent`:
```typescript
```js
import { ... , DeleteBook } from '../../store/actions';
import { ... , Toaster } from '@abp/ng.theme.shared';
//...

26
docs/en/docs-nav.json

@ -7,8 +7,12 @@
"text": "From Startup Templates",
"items": [
{
"text": "ASP.NET Core MVC",
"text": "Application with MVC (Razor Pages) UI",
"path": "Getting-Started-AspNetCore-MVC-Template.md"
},
{
"text": "Application with Angular UI",
"path": "Getting-Started-Angular-Template.md"
}
]
},
@ -34,8 +38,12 @@
"text": "Application Development",
"items": [
{
"text": "With ASP.NET Core MVC",
"text": "With ASP.NET Core MVC UI",
"path": "Tutorials/AspNetCore-Mvc/Part-I.md"
},
{
"text": "With Angular UI",
"path": "Tutorials/Angular/Part-I.md"
}
]
}
@ -264,6 +272,20 @@
}
]
},
{
"text": "Startup Templates",
"path": "Startup-Templates/Index.md",
"items": [
{
"text": "Application",
"path": "Startup-Templates/Application.md"
},
{
"text": "Module",
"path": "Startup-Templates/Application.md"
}
]
},
{
"text": "Samples",
"items": [

2
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs

@ -22,7 +22,7 @@ namespace Volo.Blogging
options.Resources
.Add<BloggingResource>("en")
.AddBaseTypes(typeof(AbpValidationResource))
.AddVirtualJson("/Localization/Resources");
.AddVirtualJson("Volo/Blogging/Localization/Resources");
});
}
}

10
modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs

@ -8,19 +8,19 @@ namespace VoloDocs.Web.Pages
{
public class IndexModel : PageModel
{
private readonly DocsUrlOptions _urlOptions;
private readonly DocsUiOptions _urlUiOptions;
public IndexModel(IOptions<DocsUrlOptions> urlOptions)
public IndexModel(IOptions<DocsUiOptions> urlOptions)
{
_urlOptions = urlOptions.Value;
_urlUiOptions = urlOptions.Value;
}
public IActionResult OnGet()
{
//TODO: Create HomeController & Index instead of Page. Otherwise, we have an empty Index.cshtml file.
if (!_urlOptions.RoutePrefix.IsNullOrWhiteSpace())
if (!_urlUiOptions.RoutePrefix.IsNullOrWhiteSpace())
{
return Redirect("." + _urlOptions.RoutePrefix);
return Redirect("." + _urlUiOptions.RoutePrefix);
}
return Page();

2
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -62,7 +62,7 @@ namespace VoloDocs.Web
var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
Configure<DocsUrlOptions>(options =>
Configure<DocsUiOptions>(options =>
{
options.RoutePrefix = null;
});

8
modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs

@ -13,7 +13,7 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
[HtmlTargetElement("ul", Attributes = "root-node")]
public class TreeTagHelper : TagHelper
{
private readonly DocsUrlOptions _urlOptions;
private readonly DocsUiOptions _uiOptions;
private const string LiItemTemplateWithLink = @"<li class='{0}'><span class='plus-icon'><i class='fa fa-{1}'></i></span>{2}{3}</li>";
@ -41,9 +41,9 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
[HtmlAttributeName("language")]
public string LanguageCode { get; set; }
public TreeTagHelper(IOptions<DocsUrlOptions> urlOptions)
public TreeTagHelper(IOptions<DocsUiOptions> urlOptions)
{
_urlOptions = urlOptions.Value;
_uiOptions = urlOptions.Value;
}
public override void Process(TagHelperContext context, TagHelperOutput output)
@ -142,7 +142,7 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
return "javascript:;";
}
var prefix = _urlOptions.RoutePrefix;
var prefix = _uiOptions.RoutePrefix;
return prefix + LanguageCode + "/" + ProjectName + "/" + Version + "/" + pathWithoutFileExtension;
}

8
modules/docs/src/Volo.Docs.Web/DocsUrlOptions.cs → modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs

@ -2,7 +2,7 @@
namespace Volo.Docs
{
public class DocsUrlOptions
public class DocsUiOptions
{
private string _routePrefix = "documents";
@ -15,6 +15,12 @@ namespace Volo.Docs
set => _routePrefix = value;
}
/// <summary>
/// Allows user to see a combobox in user interface for swapping across projects
/// Default value: True;
/// </summary>
public bool ShowProjectsCombobox = true;
private string GetFormattedRoutePrefix()
{
if (string.IsNullOrWhiteSpace(_routePrefix))

6
modules/docs/src/Volo.Docs.Web/DocsWebModule.cs

@ -41,11 +41,11 @@ namespace Volo.Docs
Configure<RazorPagesOptions>(options =>
{
var urlOptions = context.Services
.GetRequiredServiceLazy<IOptions<DocsUrlOptions>>()
var docsOptions = context.Services
.GetRequiredServiceLazy<IOptions<DocsUiOptions>>()
.Value.Value;
var routePrefix = urlOptions.RoutePrefix;
var routePrefix = docsOptions.RoutePrefix;
options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{projectName}");
options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{languageCode}/{projectName}");

10
modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs

@ -14,13 +14,13 @@ namespace Volo.Docs.Markdown
public const string Type = "md";
private readonly IMarkdownConverter _markdownConverter;
private readonly DocsUrlOptions _urlOptions;
private readonly DocsUiOptions _uiOptions;
public MarkdownDocumentToHtmlConverter(IMarkdownConverter markdownConverter,
IOptions<DocsUrlOptions> urlOptions)
IOptions<DocsUiOptions> urlOptions)
{
_markdownConverter = markdownConverter;
_urlOptions = urlOptions.Value;
_uiOptions = urlOptions.Value;
}
private const string MdLinkFormat = "[{0}]({1}{2}/{3}/{4}{5}/{6})";
@ -73,7 +73,7 @@ namespace Volo.Docs.Markdown
return string.Format(
MdLinkFormat,
displayText,
_urlOptions.RoutePrefix,
_uiOptions.RoutePrefix,
languageCode,
projectShortName,
version,
@ -101,7 +101,7 @@ namespace Volo.Docs.Markdown
return string.Format(
MdLinkFormat,
displayText,
_urlOptions.RoutePrefix,
_uiOptions.RoutePrefix,
languageCode,
projectShortName,
version,

8
modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs

@ -15,19 +15,19 @@ namespace Volo.Docs.Pages.Documents
public IReadOnlyList<ProjectDto> Projects { get; set; }
private readonly IProjectAppService _projectAppService;
private readonly DocsUrlOptions _urlOptions;
private readonly DocsUiOptions _uiOptions;
public IndexModel(
IProjectAppService projectAppService,
IOptions<DocsUrlOptions> urlOptions)
IOptions<DocsUiOptions> urlOptions)
{
_projectAppService = projectAppService;
_urlOptions = urlOptions.Value;
_uiOptions = urlOptions.Value;
}
public async Task<IActionResult> OnGetAsync()
{
DocumentsUrlPrefix = _urlOptions.RoutePrefix;
DocumentsUrlPrefix = _uiOptions.RoutePrefix;
var listResult = await _projectAppService.GetListAsync();

2
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -76,7 +76,7 @@
<div class="docs-tree-list">
@if (Model.ProjectSelectItems.Count > 1)
@if (Model.ShowProjectsCombobox && Model.ProjectSelectItems.Count > 1)
{
<div class="docs-version">
<div class="version-select">

20
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -52,28 +52,31 @@ namespace Volo.Docs.Pages.Documents.Project
public string DocumentsUrlPrefix { get; set; }
public bool ShowProjectsCombobox { get; set; }
public bool DocumentLanguageIsDifferent { get; set; }
private readonly IDocumentAppService _documentAppService;
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
private readonly IProjectAppService _projectAppService;
private readonly DocsUrlOptions _options;
private readonly DocsUiOptions _uiOptions;
public IndexModel(
IDocumentAppService documentAppService,
IDocumentToHtmlConverterFactory documentToHtmlConverterFactory,
IProjectAppService projectAppService,
IOptions<DocsUrlOptions> options)
IOptions<DocsUiOptions> options)
{
_documentAppService = documentAppService;
_documentToHtmlConverterFactory = documentToHtmlConverterFactory;
_projectAppService = projectAppService;
_options = options.Value;
_uiOptions = options.Value;
}
public async Task<IActionResult> OnGetAsync()
{
DocumentsUrlPrefix = _options.RoutePrefix;
DocumentsUrlPrefix = _uiOptions.RoutePrefix;
ShowProjectsCombobox = _uiOptions.ShowProjectsCombobox;
if (IsDocumentCultureDifferentThanCurrent())
{
@ -81,7 +84,12 @@ namespace Volo.Docs.Pages.Documents.Project
}
await SetProjectAsync();
await SetProjectsAsync();
if (ShowProjectsCombobox)
{
await SetProjectsAsync();
}
await SetVersionAsync();
await SetLanguageList();
@ -179,7 +187,7 @@ namespace Volo.Docs.Pages.Documents.Project
ProjectSelectItems = projects.Items.Select(p => new SelectListItem
{
Text = p.Name,
Value = p.Id != Project.Id ? "/documents/" + LanguageCode + "/" + p.ShortName + "/" + DocsAppConsts.Latest : null,
Value = p.Id != Project.Id ? "/" + DocumentsUrlPrefix + LanguageCode + "/" + p.ShortName + "/" + DocsAppConsts.Latest : null,
Selected = p.Id == Project.Id
}).ToList();
}

1
npm/ng-packs/dist/feature-management/README.md

@ -0,0 +1 @@
<h1> @abp/ng.feature-management </h1>

10
npm/ng-packs/dist/feature-management/abp-ng.feature-management.d.ts

@ -0,0 +1,10 @@
/**
* Generated bundle index. Do not edit.
*/
export * from './public-api';
export { GetFeatures as ɵe, UpdateFeatures as ɵf } from './lib/actions/feature-management.actions';
export { FeatureManagementComponent as ɵa } from './lib/components/feature-management/feature-management.component';
export { FeatureManagement as ɵg } from './lib/models';
export { FeatureManagementService as ɵd } from './lib/services/feature-management.service';
export { FeatureManagementState as ɵb } from './lib/states';
export { FeatureManagementState as ɵc } from './lib/states/feature-management.state';

1
npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json

File diff suppressed because one or more lines are too long

596
npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js

@ -0,0 +1,596 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@abp/ng.core'), require('@abp/ng.theme.shared'), require('@angular/core'), require('@ngxs/store'), require('rxjs'), require('rxjs/operators'), require('@angular/forms')) :
typeof define === 'function' && define.amd ? define('@abp/ng.feature-management', ['exports', '@abp/ng.core', '@abp/ng.theme.shared', '@angular/core', '@ngxs/store', 'rxjs', 'rxjs/operators', '@angular/forms'], factory) :
(global = global || self, factory((global.abp = global.abp || {}, global.abp.ng = global.abp.ng || {}, global.abp.ng['feature-management'] = {}), global.ng_core, global.ng_theme_shared, global.ng.core, global.store, global.rxjs, global.rxjs.operators, global.ng.forms));
}(this, function (exports, ng_core, ng_theme_shared, core, store, rxjs, operators, forms) { 'use strict';
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __exportStar(m, exports) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
function __values(o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var GetFeatures = /** @class */ (function () {
function GetFeatures(payload) {
this.payload = payload;
}
GetFeatures.type = '[FeatureManagement] Get Features';
return GetFeatures;
}());
if (false) {
/** @type {?} */
GetFeatures.type;
/** @type {?} */
GetFeatures.prototype.payload;
}
var UpdateFeatures = /** @class */ (function () {
function UpdateFeatures(payload) {
this.payload = payload;
}
UpdateFeatures.type = '[FeatureManagement] Update Features';
return UpdateFeatures;
}());
if (false) {
/** @type {?} */
UpdateFeatures.type;
/** @type {?} */
UpdateFeatures.prototype.payload;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementService = /** @class */ (function () {
function FeatureManagementService(rest, store) {
this.rest = rest;
this.store = store;
}
/**
* @param {?} params
* @return {?}
*/
FeatureManagementService.prototype.getFeatures = /**
* @param {?} params
* @return {?}
*/
function (params) {
/** @type {?} */
var request = {
method: 'GET',
url: '/api/abp/features',
params: params,
};
return this.rest.request(request);
};
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementService.prototype.updateFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features, providerKey = _a.providerKey, providerName = _a.providerName;
/** @type {?} */
var request = {
method: 'PUT',
url: '/api/abp/features',
body: { features: features },
params: { providerKey: providerKey, providerName: providerName },
};
return this.rest.request(request);
};
FeatureManagementService.decorators = [
{ type: core.Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
FeatureManagementService.ctorParameters = function () { return [
{ type: ng_core.RestService },
{ type: store.Store }
]; };
/** @nocollapse */ FeatureManagementService.ngInjectableDef = core.ɵɵdefineInjectable({ factory: function FeatureManagementService_Factory() { return new FeatureManagementService(core.ɵɵinject(ng_core.RestService), core.ɵɵinject(store.Store)); }, token: FeatureManagementService, providedIn: "root" });
return FeatureManagementService;
}());
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.rest;
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementState = /** @class */ (function () {
function FeatureManagementState(featureManagementService) {
this.featureManagementService = featureManagementService;
}
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementState.getFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return features;
};
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.getFeatures = /**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
function (_a, _b) {
var patchState = _a.patchState;
var payload = _b.payload;
return this.featureManagementService.getFeatures(payload).pipe(operators.tap((/**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return patchState({
features: features,
});
})));
};
/**
* @param {?} _
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.updateFeatures = /**
* @param {?} _
* @param {?} __1
* @return {?}
*/
function (_, _a) {
var payload = _a.payload;
return this.featureManagementService.updateFeatures(payload);
};
__decorate([
store.Action(GetFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "getFeatures", null);
__decorate([
store.Action(UpdateFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UpdateFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "updateFeatures", null);
__decorate([
store.Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], FeatureManagementState, "getFeatures", null);
FeatureManagementState = __decorate([
store.State({
name: 'FeatureManagementState',
defaults: (/** @type {?} */ ({ features: {} })),
}),
__metadata("design:paramtypes", [FeatureManagementService])
], FeatureManagementState);
return FeatureManagementState;
}());
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementState.prototype.featureManagementService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementComponent = /** @class */ (function () {
function FeatureManagementComponent(store) {
this.store = store;
this.visibleChange = new core.EventEmitter();
this.modalBusy = false;
}
Object.defineProperty(FeatureManagementComponent.prototype, "visible", {
get: /**
* @return {?}
*/
function () {
return this._visible;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._visible = value;
this.visibleChange.emit(value);
if (value)
this.openModal();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FeatureManagementComponent.prototype.openModal = /**
* @return {?}
*/
function () {
if (!this.providerKey || !this.providerName) {
throw new Error('Provider Key and Provider Name are required.');
}
this.getFeatures();
};
/**
* @return {?}
*/
FeatureManagementComponent.prototype.getFeatures = /**
* @return {?}
*/
function () {
var _this = this;
this.store
.dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))
.pipe(operators.pluck('FeatureManagementState', 'features'))
.subscribe((/**
* @param {?} features
* @return {?}
*/
function (features) {
_this.buildForm(features);
}));
};
/**
* @param {?} features
* @return {?}
*/
FeatureManagementComponent.prototype.buildForm = /**
* @param {?} features
* @return {?}
*/
function (features) {
/** @type {?} */
var formGroupObj = {};
for (var i = 0; i < features.length; i++) {
formGroupObj[i] = new forms.FormControl(features[i].value === 'false' ? null : features[i].value);
}
this.form = new forms.FormGroup(formGroupObj);
};
/**
* @return {?}
*/
FeatureManagementComponent.prototype.save = /**
* @return {?}
*/
function () {
var _this = this;
this.modalBusy = true;
/** @type {?} */
var features = this.store.selectSnapshot(FeatureManagementState.getFeatures);
features = features.map((/**
* @param {?} feature
* @param {?} i
* @return {?}
*/
function (feature, i) { return ({
name: feature.name,
value: !_this.form.value[i] || _this.form.value[i] === 'false' ? null : _this.form.value[i],
}); }));
this.store
.dispatch(new UpdateFeatures({
providerKey: this.providerKey,
providerName: this.providerName,
features: features,
}))
.subscribe((/**
* @return {?}
*/
function () {
_this.modalBusy = false;
_this.visible = false;
}));
};
FeatureManagementComponent.decorators = [
{ type: core.Component, args: [{
selector: 'abp-feature-management',
template: "<abp-modal size=\"md\" [(visible)]=\"visible\" [busy]=\"modalBusy\">\n <ng-template #abpHeader>\n <h3>{{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form *ngIf=\"form\" (ngSubmit)=\"save()\" [formGroup]=\"form\">\n <div\n class=\"row my-3\"\n *ngFor=\"let feature of features$ | async; let i = index\"\n [ngSwitch]=\"feature.valueType.name\"\n >\n <div class=\"col-4\">{{ feature.name }}</div>\n <div class=\"col-8\" *ngSwitchCase=\"'ToggleStringValueType'\">\n <input type=\"checkbox\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n <div class=\"col-8\" *ngSwitchCase=\"'FreeTextStringValueType'\">\n <input type=\"text\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpFeatureManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\">\n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n"
}] }
];
/** @nocollapse */
FeatureManagementComponent.ctorParameters = function () { return [
{ type: store.Store }
]; };
FeatureManagementComponent.propDecorators = {
providerKey: [{ type: core.Input }],
providerName: [{ type: core.Input }],
visible: [{ type: core.Input }],
visibleChange: [{ type: core.Output }]
};
__decorate([
store.Select(FeatureManagementState.getFeatures),
__metadata("design:type", rxjs.Observable)
], FeatureManagementComponent.prototype, "features$", void 0);
return FeatureManagementComponent;
}());
if (false) {
/** @type {?} */
FeatureManagementComponent.prototype.providerKey;
/** @type {?} */
FeatureManagementComponent.prototype.providerName;
/**
* @type {?}
* @protected
*/
FeatureManagementComponent.prototype._visible;
/** @type {?} */
FeatureManagementComponent.prototype.visibleChange;
/** @type {?} */
FeatureManagementComponent.prototype.features$;
/** @type {?} */
FeatureManagementComponent.prototype.modalBusy;
/** @type {?} */
FeatureManagementComponent.prototype.form;
/**
* @type {?}
* @private
*/
FeatureManagementComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementModule = /** @class */ (function () {
function FeatureManagementModule() {
}
FeatureManagementModule.decorators = [
{ type: core.NgModule, args: [{
declarations: [FeatureManagementComponent],
imports: [ng_core.CoreModule, ng_theme_shared.ThemeSharedModule, store.NgxsModule.forFeature([FeatureManagementState])],
exports: [FeatureManagementComponent],
},] }
];
return FeatureManagementModule;
}());
exports.FeatureManagementComponent = FeatureManagementComponent;
exports.FeatureManagementModule = FeatureManagementModule;
exports.ɵa = FeatureManagementComponent;
exports.ɵb = FeatureManagementState;
exports.ɵc = FeatureManagementState;
exports.ɵd = FeatureManagementService;
exports.ɵe = GetFeatures;
exports.ɵf = UpdateFeatures;
Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=abp-ng.feature-management.umd.js.map

1
npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map

File diff suppressed because one or more lines are too long

2
npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js

File diff suppressed because one or more lines are too long

1
npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map

File diff suppressed because one or more lines are too long

14
npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js

@ -0,0 +1,14 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { FeatureManagementModule, FeatureManagementComponent } from './public-api';
export { GetFeatures as ɵe, UpdateFeatures as ɵf } from './lib/actions/feature-management.actions';
export { FeatureManagementComponent as ɵa } from './lib/components/feature-management/feature-management.component';
export { FeatureManagementService as ɵd } from './lib/services/feature-management.service';
export { FeatureManagementState as ɵb } from './lib/states';
export { FeatureManagementState as ɵc } from './lib/states/feature-management.state';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0=

35
npm/ng-packs/dist/feature-management/esm2015/lib/actions/feature-management.actions.js

@ -0,0 +1,35 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class GetFeatures {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetFeatures.type = '[FeatureManagement] Get Features';
if (false) {
/** @type {?} */
GetFeatures.type;
/** @type {?} */
GetFeatures.prototype.payload;
}
export class UpdateFeatures {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
UpdateFeatures.type = '[FeatureManagement] Update Features';
if (false) {
/** @type {?} */
UpdateFeatures.type;
/** @type {?} */
UpdateFeatures.prototype.payload;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2ZlYXR1cmUtbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sV0FBVzs7OztJQUV0QixZQUFtQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtJQUFHLENBQUM7O0FBRDFDLGdCQUFJLEdBQUcsa0NBQWtDLENBQUM7OztJQUExRCxpQkFBMEQ7O0lBQzlDLDhCQUEwQzs7QUFHeEQsTUFBTSxPQUFPLGNBQWM7Ozs7SUFFekIsWUFBbUIsT0FBZ0U7UUFBaEUsWUFBTyxHQUFQLE9BQU8sQ0FBeUQ7SUFBRyxDQUFDOztBQUR2RSxtQkFBSSxHQUFHLHFDQUFxQyxDQUFDOzs7SUFBN0Qsb0JBQTZEOztJQUNqRCxpQ0FBdUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBHZXRGZWF0dXJlcyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tGZWF0dXJlTWFuYWdlbWVudF0gR2V0IEZlYXR1cmVzJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEZlYXR1cmVNYW5hZ2VtZW50LlByb3ZpZGVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlRmVhdHVyZXMge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRmVhdHVyZU1hbmFnZW1lbnRdIFVwZGF0ZSBGZWF0dXJlcyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBGZWF0dXJlTWFuYWdlbWVudC5Qcm92aWRlciAmIEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzKSB7fVxufVxuIl19

6
npm/ng-packs/dist/feature-management/esm2015/lib/actions/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { GetFeatures, UpdateFeatures } from './feature-management.actions';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw0Q0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuIl19

149
npm/ng-packs/dist/feature-management/esm2015/lib/components/feature-management/feature-management.component.js

File diff suppressed because one or more lines are too long

6
npm/ng-packs/dist/feature-management/esm2015/lib/components/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementComponent } from './feature-management/feature-management.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuIl19

20
npm/ng-packs/dist/feature-management/esm2015/lib/feature-management.module.js

@ -0,0 +1,20 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { NgModule } from '@angular/core';
import { FeatureManagementComponent } from './components/feature-management/feature-management.component';
import { NgxsModule } from '@ngxs/store';
import { FeatureManagementState } from './states/feature-management.state';
export class FeatureManagementModule {
}
FeatureManagementModule.decorators = [
{ type: NgModule, args: [{
declarations: [FeatureManagementComponent],
imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],
exports: [FeatureManagementComponent],
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2ZlYXR1cmUtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBTzNFLE1BQU0sT0FBTyx1QkFBdUI7OztZQUxuQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2dCQUN6RixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IEZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgfSBmcm9tICcuL3N0YXRlcy9mZWF0dXJlLW1hbmFnZW1lbnQuc3RhdGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBUaGVtZVNoYXJlZE1vZHVsZSwgTmd4c01vZHVsZS5mb3JGZWF0dXJlKFtGZWF0dXJlTWFuYWdlbWVudFN0YXRlXSldLFxuICBleHBvcnRzOiBbRmVhdHVyZU1hbmFnZW1lbnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlbWVudE1vZHVsZSB7fVxuIl19

69
npm/ng-packs/dist/feature-management/esm2015/lib/models/feature-management.js

@ -0,0 +1,69 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export var FeatureManagement;
(function (FeatureManagement) {
/**
* @record
*/
function State() { }
FeatureManagement.State = State;
if (false) {
/** @type {?} */
State.prototype.features;
}
/**
* @record
*/
function ValueType() { }
FeatureManagement.ValueType = ValueType;
if (false) {
/** @type {?} */
ValueType.prototype.name;
/** @type {?} */
ValueType.prototype.properties;
/** @type {?} */
ValueType.prototype.validator;
}
/**
* @record
*/
function Feature() { }
FeatureManagement.Feature = Feature;
if (false) {
/** @type {?} */
Feature.prototype.name;
/** @type {?} */
Feature.prototype.value;
/** @type {?|undefined} */
Feature.prototype.description;
/** @type {?|undefined} */
Feature.prototype.valueType;
/** @type {?|undefined} */
Feature.prototype.depth;
/** @type {?|undefined} */
Feature.prototype.parentName;
}
/**
* @record
*/
function Features() { }
FeatureManagement.Features = Features;
if (false) {
/** @type {?} */
Features.prototype.features;
}
/**
* @record
*/
function Provider() { }
FeatureManagement.Provider = Provider;
if (false) {
/** @type {?} */
Provider.prototype.providerName;
/** @type {?} */
Provider.prototype.providerKey;
}
})(FeatureManagement || (FeatureManagement = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2ZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLGlCQUFpQixDQTRCakM7QUE1QkQsV0FBaUIsaUJBQWlCOzs7O0lBQ2hDLG9CQUVDOzs7O1FBREMseUJBQW9COzs7OztJQUd0Qix3QkFJQzs7OztRQUhDLHlCQUFhOztRQUNiLCtCQUFtQjs7UUFDbkIsOEJBQWtCOzs7OztJQUdwQixzQkFPQzs7OztRQU5DLHVCQUFhOztRQUNiLHdCQUFjOztRQUNkLDhCQUFxQjs7UUFDckIsNEJBQXNCOztRQUN0Qix3QkFBZTs7UUFDZiw2QkFBb0I7Ozs7O0lBR3RCLHVCQUVDOzs7O1FBREMsNEJBQW9COzs7OztJQUd0Qix1QkFHQzs7OztRQUZDLGdDQUFxQjs7UUFDckIsK0JBQW9COztBQUV4QixDQUFDLEVBNUJnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBNEJqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBuYW1lc3BhY2UgRmVhdHVyZU1hbmFnZW1lbnQge1xuICBleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBWYWx1ZVR5cGUge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9wZXJ0aWVzOiBvYmplY3Q7XG4gICAgdmFsaWRhdG9yOiBvYmplY3Q7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHZhbHVlVHlwZT86IFZhbHVlVHlwZTtcbiAgICBkZXB0aD86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlcyB7XG4gICAgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXIge1xuICAgIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICAgIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ==

6
npm/ng-packs/dist/feature-management/esm2015/lib/models/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export {} from './feature-management';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtbWFuYWdlbWVudCc7XG4iXX0=

71
npm/ng-packs/dist/feature-management/esm2015/lib/services/feature-management.service.js

@ -0,0 +1,71 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { RestService } from '@abp/ng.core';
import { Store } from '@ngxs/store';
import * as i0 from "@angular/core";
import * as i1 from "@abp/ng.core";
import * as i2 from "@ngxs/store";
export class FeatureManagementService {
/**
* @param {?} rest
* @param {?} store
*/
constructor(rest, store) {
this.rest = rest;
this.store = store;
}
/**
* @param {?} params
* @return {?}
*/
getFeatures(params) {
/** @type {?} */
const request = {
method: 'GET',
url: '/api/abp/features',
params,
};
return this.rest.request(request);
}
/**
* @param {?} __0
* @return {?}
*/
updateFeatures({ features, providerKey, providerName, }) {
/** @type {?} */
const request = {
method: 'PUT',
url: '/api/abp/features',
body: { features },
params: { providerKey, providerName },
};
return this.rest.request(request);
}
}
FeatureManagementService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
FeatureManagementService.ctorParameters = () => [
{ type: RestService },
{ type: Store }
];
/** @nocollapse */ FeatureManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FeatureManagementService_Factory() { return new FeatureManagementService(i0.ɵɵinject(i1.RestService), i0.ɵɵinject(i2.Store)); }, token: FeatureManagementService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.rest;
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.store;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9mZWF0dXJlLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFPcEMsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7SUFDbkMsWUFBb0IsSUFBaUIsRUFBVSxLQUFZO1FBQXZDLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7SUFFL0QsV0FBVyxDQUFDLE1BQWtDOztjQUN0QyxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixNQUFNO1NBQ1A7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUF5RCxPQUFPLENBQUMsQ0FBQztJQUM1RixDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxFQUNiLFFBQVEsRUFDUixXQUFXLEVBQ1gsWUFBWSxHQUM0Qzs7Y0FDbEQsT0FBTyxHQUE2QztZQUN4RCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxtQkFBbUI7WUFDeEIsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFO1lBQ2xCLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7U0FDdEM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFtQyxPQUFPLENBQUMsQ0FBQztJQUN0RSxDQUFDOzs7WUEzQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUFEsV0FBVztZQUNYLEtBQUs7Ozs7Ozs7O0lBUUEsd0NBQXlCOzs7OztJQUFFLHlDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlLCBSZXN0IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0OiBSZXN0U2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgZ2V0RmVhdHVyZXMocGFyYW1zOiBGZWF0dXJlTWFuYWdlbWVudC5Qcm92aWRlcik6IE9ic2VydmFibGU8RmVhdHVyZU1hbmFnZW1lbnQuRmVhdHVyZXM+IHtcbiAgICBjb25zdCByZXF1ZXN0OiBSZXN0LlJlcXVlc3Q8bnVsbD4gPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgdXJsOiAnL2FwaS9hYnAvZmVhdHVyZXMnLFxuICAgICAgcGFyYW1zLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PEZlYXR1cmVNYW5hZ2VtZW50LlByb3ZpZGVyLCBGZWF0dXJlTWFuYWdlbWVudC5GZWF0dXJlcz4ocmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGVGZWF0dXJlcyh7XG4gICAgZmVhdHVyZXMsXG4gICAgcHJvdmlkZXJLZXksXG4gICAgcHJvdmlkZXJOYW1lLFxuICB9OiBGZWF0dXJlTWFuYWdlbWVudC5Qcm92aWRlciAmIEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzPiA9IHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICB1cmw6ICcvYXBpL2FicC9mZWF0dXJlcycsXG4gICAgICBib2R5OiB7IGZlYXR1cmVzIH0sXG4gICAgICBwYXJhbXM6IHsgcHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZSB9LFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMucmVzdC5yZXF1ZXN0PEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzLCBudWxsPihyZXF1ZXN0KTtcbiAgfVxufVxuIl19

80
npm/ng-packs/dist/feature-management/esm2015/lib/states/feature-management.state.js

@ -0,0 +1,80 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Action, Selector, State } from '@ngxs/store';
import { tap } from 'rxjs/operators';
import { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';
import { FeatureManagementService } from '../services/feature-management.service';
let FeatureManagementState = class FeatureManagementState {
/**
* @param {?} featureManagementService
*/
constructor(featureManagementService) {
this.featureManagementService = featureManagementService;
}
/**
* @param {?} __0
* @return {?}
*/
static getFeatures({ features }) {
return features;
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getFeatures({ patchState }, { payload }) {
return this.featureManagementService.getFeatures(payload).pipe(tap((/**
* @param {?} __0
* @return {?}
*/
({ features }) => patchState({
features,
}))));
}
/**
* @param {?} _
* @param {?} __1
* @return {?}
*/
updateFeatures(_, { payload }) {
return this.featureManagementService.updateFeatures(payload);
}
};
tslib_1.__decorate([
Action(GetFeatures),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object, GetFeatures]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "getFeatures", null);
tslib_1.__decorate([
Action(UpdateFeatures),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object, UpdateFeatures]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "updateFeatures", null);
tslib_1.__decorate([
Selector(),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState, "getFeatures", null);
FeatureManagementState = tslib_1.__decorate([
State({
name: 'FeatureManagementState',
defaults: (/** @type {?} */ ({ features: {} })),
}),
tslib_1.__metadata("design:paramtypes", [FeatureManagementService])
], FeatureManagementState);
export { FeatureManagementState };
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementState.prototype.featureManagementService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL2ZlYXR1cmUtbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7SUFNckUsc0JBQXNCLFNBQXRCLHNCQUFzQjs7OztJQU1qQyxZQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7Ozs7O0lBSjFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQTJCO1FBQ3RELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7OztJQUtELFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBeUMsRUFBRSxFQUFFLE9BQU8sRUFBZTtRQUN6RixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHOzs7O1FBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FDbkIsVUFBVSxDQUFDO1lBQ1QsUUFBUTtTQUNULENBQUMsRUFDSCxDQUNGLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFHRCxjQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFrQjtRQUMzQyxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGLENBQUE7QUFkQztJQURDLE1BQU0sQ0FBQyxXQUFXLENBQUM7O3FEQUM0RCxXQUFXOzt5REFRMUY7QUFHRDtJQURDLE1BQU0sQ0FBQyxjQUFjLENBQUM7O3FEQUNRLGNBQWM7OzREQUU1QztBQXBCRDtJQURDLFFBQVEsRUFBRTs7OzsrQ0FHVjtBQUpVLHNCQUFzQjtJQUpsQyxLQUFLLENBQTBCO1FBQzlCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsUUFBUSxFQUFFLG1CQUFBLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUEyQjtLQUN0RCxDQUFDOzZDQU84Qyx3QkFBd0I7R0FOM0Qsc0JBQXNCLENBdUJsQztTQXZCWSxzQkFBc0I7Ozs7OztJQU1yQiwwREFBMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2V0RmVhdHVyZXMsIFVwZGF0ZUZlYXR1cmVzIH0gZnJvbSAnLi4vYWN0aW9ucy9mZWF0dXJlLW1hbmFnZW1lbnQuYWN0aW9ucyc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscy9mZWF0dXJlLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuXG5AU3RhdGU8RmVhdHVyZU1hbmFnZW1lbnQuU3RhdGU+KHtcbiAgbmFtZTogJ0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUnLFxuICBkZWZhdWx0czogeyBmZWF0dXJlczoge30gfSBhcyBGZWF0dXJlTWFuYWdlbWVudC5TdGF0ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSB7XG4gIEBTZWxlY3RvcigpXG4gIHN0YXRpYyBnZXRGZWF0dXJlcyh7IGZlYXR1cmVzIH06IEZlYXR1cmVNYW5hZ2VtZW50LlN0YXRlKSB7XG4gICAgcmV0dXJuIGZlYXR1cmVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmZWF0dXJlTWFuYWdlbWVudFNlcnZpY2U6IEZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSkge31cblxuICBAQWN0aW9uKEdldEZlYXR1cmVzKVxuICBnZXRGZWF0dXJlcyh7IHBhdGNoU3RhdGUgfTogU3RhdGVDb250ZXh0PEZlYXR1cmVNYW5hZ2VtZW50LlN0YXRlPiwgeyBwYXlsb2FkIH06IEdldEZlYXR1cmVzKSB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZU1hbmFnZW1lbnRTZXJ2aWNlLmdldEZlYXR1cmVzKHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAoKHsgZmVhdHVyZXMgfSkgPT5cbiAgICAgICAgcGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihVcGRhdGVGZWF0dXJlcylcbiAgdXBkYXRlRmVhdHVyZXMoXywgeyBwYXlsb2FkIH06IFVwZGF0ZUZlYXR1cmVzKSB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZU1hbmFnZW1lbnRTZXJ2aWNlLnVwZGF0ZUZlYXR1cmVzKHBheWxvYWQpO1xuICB9XG59XG4iXX0=

6
npm/ng-packs/dist/feature-management/esm2015/lib/states/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementState } from "./feature-management.state";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlXCI7XG4iXX0=

7
npm/ng-packs/dist/feature-management/esm2015/public-api.js

@ -0,0 +1,7 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementModule } from './lib/feature-management.module';
export { FeatureManagementComponent } from './lib/components';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuIl19

14
npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js

@ -0,0 +1,14 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Generated bundle index. Do not edit.
*/
export { FeatureManagementModule, FeatureManagementComponent } from './public-api';
export { GetFeatures as ɵe, UpdateFeatures as ɵf } from './lib/actions/feature-management.actions';
export { FeatureManagementComponent as ɵa } from './lib/components/feature-management/feature-management.component';
export { FeatureManagementService as ɵd } from './lib/services/feature-management.service';
export { FeatureManagementState as ɵb } from './lib/states';
export { FeatureManagementState as ɵc } from './lib/states/feature-management.state';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsiYWJwLW5nLmZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb0VBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFFbEgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0dldEZlYXR1cmVzIGFzIMm1ZSxVcGRhdGVGZWF0dXJlcyBhcyDJtWZ9IGZyb20gJy4vbGliL2FjdGlvbnMvZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuZXhwb3J0IHtGZWF0dXJlTWFuYWdlbWVudCBhcyDJtWd9IGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlYXR1cmUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSBhcyDJtWJ9IGZyb20gJy4vbGliL3N0YXRlcyc7XG5leHBvcnQge0ZlYXR1cmVNYW5hZ2VtZW50U3RhdGUgYXMgybVjfSBmcm9tICcuL2xpYi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJzsiXX0=

33
npm/ng-packs/dist/feature-management/esm5/lib/actions/feature-management.actions.js

@ -0,0 +1,33 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var GetFeatures = /** @class */ (function () {
function GetFeatures(payload) {
this.payload = payload;
}
GetFeatures.type = '[FeatureManagement] Get Features';
return GetFeatures;
}());
export { GetFeatures };
if (false) {
/** @type {?} */
GetFeatures.type;
/** @type {?} */
GetFeatures.prototype.payload;
}
var UpdateFeatures = /** @class */ (function () {
function UpdateFeatures(payload) {
this.payload = payload;
}
UpdateFeatures.type = '[FeatureManagement] Update Features';
return UpdateFeatures;
}());
export { UpdateFeatures };
if (false) {
/** @type {?} */
UpdateFeatures.type;
/** @type {?} */
UpdateFeatures.prototype.payload;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2ZlYXR1cmUtbWFuYWdlbWVudC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQTtJQUVFLHFCQUFtQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtJQUFHLENBQUM7SUFEMUMsZ0JBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUU1RCxrQkFBQztDQUFBLEFBSEQsSUFHQztTQUhZLFdBQVc7OztJQUN0QixpQkFBMEQ7O0lBQzlDLDhCQUEwQzs7QUFHeEQ7SUFFRSx3QkFBbUIsT0FBZ0U7UUFBaEUsWUFBTyxHQUFQLE9BQU8sQ0FBeUQ7SUFBRyxDQUFDO0lBRHZFLG1CQUFJLEdBQUcscUNBQXFDLENBQUM7SUFFL0QscUJBQUM7Q0FBQSxBQUhELElBR0M7U0FIWSxjQUFjOzs7SUFDekIsb0JBQTZEOztJQUNqRCxpQ0FBdUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBHZXRGZWF0dXJlcyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tGZWF0dXJlTWFuYWdlbWVudF0gR2V0IEZlYXR1cmVzJztcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEZlYXR1cmVNYW5hZ2VtZW50LlByb3ZpZGVyKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlRmVhdHVyZXMge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRmVhdHVyZU1hbmFnZW1lbnRdIFVwZGF0ZSBGZWF0dXJlcyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBGZWF0dXJlTWFuYWdlbWVudC5Qcm92aWRlciAmIEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzKSB7fVxufVxuIl19

6
npm/ng-packs/dist/feature-management/esm5/lib/actions/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { GetFeatures, UpdateFeatures } from './feature-management.actions';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw0Q0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1tYW5hZ2VtZW50LmFjdGlvbnMnO1xuIl19

167
npm/ng-packs/dist/feature-management/esm5/lib/components/feature-management/feature-management.component.js

File diff suppressed because one or more lines are too long

6
npm/ng-packs/dist/feature-management/esm5/lib/components/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementComponent } from './feature-management/feature-management.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQnO1xuIl19

24
npm/ng-packs/dist/feature-management/esm5/lib/feature-management.module.js

@ -0,0 +1,24 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { NgModule } from '@angular/core';
import { FeatureManagementComponent } from './components/feature-management/feature-management.component';
import { NgxsModule } from '@ngxs/store';
import { FeatureManagementState } from './states/feature-management.state';
var FeatureManagementModule = /** @class */ (function () {
function FeatureManagementModule() {
}
FeatureManagementModule.decorators = [
{ type: NgModule, args: [{
declarations: [FeatureManagementComponent],
imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],
exports: [FeatureManagementComponent],
},] }
];
return FeatureManagementModule;
}());
export { FeatureManagementModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2ZlYXR1cmUtbWFuYWdlbWVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTNFO0lBQUE7SUFLc0MsQ0FBQzs7Z0JBTHRDLFFBQVEsU0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7b0JBQ3pGLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN0Qzs7SUFDcUMsOEJBQUM7Q0FBQSxBQUx2QyxJQUt1QztTQUExQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZlYXR1cmUtbWFuYWdlbWVudC9mZWF0dXJlLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudFN0YXRlIH0gZnJvbSAnLi9zdGF0ZXMvZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmVhdHVyZU1hbmFnZW1lbnRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgVGhlbWVTaGFyZWRNb2R1bGUsIE5neHNNb2R1bGUuZm9yRmVhdHVyZShbRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZV0pXSxcbiAgZXhwb3J0czogW0ZlYXR1cmVNYW5hZ2VtZW50Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZU1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==

69
npm/ng-packs/dist/feature-management/esm5/lib/models/feature-management.js

@ -0,0 +1,69 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export var FeatureManagement;
(function (FeatureManagement) {
/**
* @record
*/
function State() { }
FeatureManagement.State = State;
if (false) {
/** @type {?} */
State.prototype.features;
}
/**
* @record
*/
function ValueType() { }
FeatureManagement.ValueType = ValueType;
if (false) {
/** @type {?} */
ValueType.prototype.name;
/** @type {?} */
ValueType.prototype.properties;
/** @type {?} */
ValueType.prototype.validator;
}
/**
* @record
*/
function Feature() { }
FeatureManagement.Feature = Feature;
if (false) {
/** @type {?} */
Feature.prototype.name;
/** @type {?} */
Feature.prototype.value;
/** @type {?|undefined} */
Feature.prototype.description;
/** @type {?|undefined} */
Feature.prototype.valueType;
/** @type {?|undefined} */
Feature.prototype.depth;
/** @type {?|undefined} */
Feature.prototype.parentName;
}
/**
* @record
*/
function Features() { }
FeatureManagement.Features = Features;
if (false) {
/** @type {?} */
Features.prototype.features;
}
/**
* @record
*/
function Provider() { }
FeatureManagement.Provider = Provider;
if (false) {
/** @type {?} */
Provider.prototype.providerName;
/** @type {?} */
Provider.prototype.providerKey;
}
})(FeatureManagement || (FeatureManagement = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2ZlYXR1cmUtbWFuYWdlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxLQUFXLGlCQUFpQixDQTRCakM7QUE1QkQsV0FBaUIsaUJBQWlCOzs7O0lBQ2hDLG9CQUVDOzs7O1FBREMseUJBQW9COzs7OztJQUd0Qix3QkFJQzs7OztRQUhDLHlCQUFhOztRQUNiLCtCQUFtQjs7UUFDbkIsOEJBQWtCOzs7OztJQUdwQixzQkFPQzs7OztRQU5DLHVCQUFhOztRQUNiLHdCQUFjOztRQUNkLDhCQUFxQjs7UUFDckIsNEJBQXNCOztRQUN0Qix3QkFBZTs7UUFDZiw2QkFBb0I7Ozs7O0lBR3RCLHVCQUVDOzs7O1FBREMsNEJBQW9COzs7OztJQUd0Qix1QkFHQzs7OztRQUZDLGdDQUFxQjs7UUFDckIsK0JBQW9COztBQUV4QixDQUFDLEVBNUJnQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBNEJqQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBuYW1lc3BhY2UgRmVhdHVyZU1hbmFnZW1lbnQge1xuICBleHBvcnQgaW50ZXJmYWNlIFN0YXRlIHtcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBWYWx1ZVR5cGUge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9wZXJ0aWVzOiBvYmplY3Q7XG4gICAgdmFsaWRhdG9yOiBvYmplY3Q7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHZhbHVlVHlwZT86IFZhbHVlVHlwZTtcbiAgICBkZXB0aD86IG51bWJlcjtcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlcyB7XG4gICAgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXIge1xuICAgIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICAgIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG4gIH1cbn1cbiJdfQ==

6
npm/ng-packs/dist/feature-management/esm5/lib/models/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export {} from './feature-management';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGVBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZlYXR1cmUtbWFuYWdlbWVudCc7XG4iXX0=

78
npm/ng-packs/dist/feature-management/esm5/lib/services/feature-management.service.js

@ -0,0 +1,78 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { RestService } from '@abp/ng.core';
import { Store } from '@ngxs/store';
import * as i0 from "@angular/core";
import * as i1 from "@abp/ng.core";
import * as i2 from "@ngxs/store";
var FeatureManagementService = /** @class */ (function () {
function FeatureManagementService(rest, store) {
this.rest = rest;
this.store = store;
}
/**
* @param {?} params
* @return {?}
*/
FeatureManagementService.prototype.getFeatures = /**
* @param {?} params
* @return {?}
*/
function (params) {
/** @type {?} */
var request = {
method: 'GET',
url: '/api/abp/features',
params: params,
};
return this.rest.request(request);
};
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementService.prototype.updateFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features, providerKey = _a.providerKey, providerName = _a.providerName;
/** @type {?} */
var request = {
method: 'PUT',
url: '/api/abp/features',
body: { features: features },
params: { providerKey: providerKey, providerName: providerName },
};
return this.rest.request(request);
};
FeatureManagementService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
FeatureManagementService.ctorParameters = function () { return [
{ type: RestService },
{ type: Store }
]; };
/** @nocollapse */ FeatureManagementService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function FeatureManagementService_Factory() { return new FeatureManagementService(i0.ɵɵinject(i1.RestService), i0.ɵɵinject(i2.Store)); }, token: FeatureManagementService, providedIn: "root" });
return FeatureManagementService;
}());
export { FeatureManagementService };
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.rest;
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.store;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9mZWF0dXJlLW1hbmFnZW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUFJcEM7SUFJRSxrQ0FBb0IsSUFBaUIsRUFBVSxLQUFZO1FBQXZDLFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQzs7Ozs7SUFFL0QsOENBQVc7Ozs7SUFBWCxVQUFZLE1BQWtDOztZQUN0QyxPQUFPLEdBQXVCO1lBQ2xDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixNQUFNLFFBQUE7U0FDUDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQXlELE9BQU8sQ0FBQyxDQUFDO0lBQzVGLENBQUM7Ozs7O0lBRUQsaURBQWM7Ozs7SUFBZCxVQUFlLEVBSTJDO1lBSHhELHNCQUFRLEVBQ1IsNEJBQVcsRUFDWCw4QkFBWTs7WUFFTixPQUFPLEdBQTZDO1lBQ3hELE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixJQUFJLEVBQUUsRUFBRSxRQUFRLFVBQUEsRUFBRTtZQUNsQixNQUFNLEVBQUUsRUFBRSxXQUFXLGFBQUEsRUFBRSxZQUFZLGNBQUEsRUFBRTtTQUN0QztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQW1DLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7O2dCQTNCRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQVBRLFdBQVc7Z0JBQ1gsS0FBSzs7O21DQUZkO0NBa0NDLEFBNUJELElBNEJDO1NBekJZLHdCQUF3Qjs7Ozs7O0lBQ3ZCLHdDQUF5Qjs7Ozs7SUFBRSx5Q0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSwgUmVzdCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZlYXR1cmVNYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVNYW5hZ2VtZW50U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdDogUmVzdFNlcnZpY2UsIHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIGdldEZlYXR1cmVzKHBhcmFtczogRmVhdHVyZU1hbmFnZW1lbnQuUHJvdmlkZXIpOiBPYnNlcnZhYmxlPEZlYXR1cmVNYW5hZ2VtZW50LkZlYXR1cmVzPiB7XG4gICAgY29uc3QgcmVxdWVzdDogUmVzdC5SZXF1ZXN0PG51bGw+ID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogJy9hcGkvYWJwL2ZlYXR1cmVzJyxcbiAgICAgIHBhcmFtcyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxGZWF0dXJlTWFuYWdlbWVudC5Qcm92aWRlciwgRmVhdHVyZU1hbmFnZW1lbnQuRmVhdHVyZXM+KHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlRmVhdHVyZXMoe1xuICAgIGZlYXR1cmVzLFxuICAgIHByb3ZpZGVyS2V5LFxuICAgIHByb3ZpZGVyTmFtZSxcbiAgfTogRmVhdHVyZU1hbmFnZW1lbnQuUHJvdmlkZXIgJiBGZWF0dXJlTWFuYWdlbWVudC5GZWF0dXJlcyk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IFJlc3QuUmVxdWVzdDxGZWF0dXJlTWFuYWdlbWVudC5GZWF0dXJlcz4gPSB7XG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgdXJsOiAnL2FwaS9hYnAvZmVhdHVyZXMnLFxuICAgICAgYm9keTogeyBmZWF0dXJlcyB9LFxuICAgICAgcGFyYW1zOiB7IHByb3ZpZGVyS2V5LCBwcm92aWRlck5hbWUgfSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnJlc3QucmVxdWVzdDxGZWF0dXJlTWFuYWdlbWVudC5GZWF0dXJlcywgbnVsbD4ocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ==

99
npm/ng-packs/dist/feature-management/esm5/lib/states/feature-management.state.js

@ -0,0 +1,99 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Action, Selector, State } from '@ngxs/store';
import { tap } from 'rxjs/operators';
import { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';
import { FeatureManagementService } from '../services/feature-management.service';
var FeatureManagementState = /** @class */ (function () {
function FeatureManagementState(featureManagementService) {
this.featureManagementService = featureManagementService;
}
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementState.getFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return features;
};
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.getFeatures = /**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
function (_a, _b) {
var patchState = _a.patchState;
var payload = _b.payload;
return this.featureManagementService.getFeatures(payload).pipe(tap((/**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return patchState({
features: features,
});
})));
};
/**
* @param {?} _
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.updateFeatures = /**
* @param {?} _
* @param {?} __1
* @return {?}
*/
function (_, _a) {
var payload = _a.payload;
return this.featureManagementService.updateFeatures(payload);
};
tslib_1.__decorate([
Action(GetFeatures),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object, GetFeatures]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "getFeatures", null);
tslib_1.__decorate([
Action(UpdateFeatures),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object, UpdateFeatures]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "updateFeatures", null);
tslib_1.__decorate([
Selector(),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [Object]),
tslib_1.__metadata("design:returntype", void 0)
], FeatureManagementState, "getFeatures", null);
FeatureManagementState = tslib_1.__decorate([
State({
name: 'FeatureManagementState',
defaults: (/** @type {?} */ ({ features: {} })),
}),
tslib_1.__metadata("design:paramtypes", [FeatureManagementService])
], FeatureManagementState);
return FeatureManagementState;
}());
export { FeatureManagementState };
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementState.prototype.featureManagementService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFicC9uZy5mZWF0dXJlLW1hbmFnZW1lbnQvIiwic291cmNlcyI6WyJsaWIvc3RhdGVzL2ZlYXR1cmUtbWFuYWdlbWVudC5zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0lBWWhGLGdDQUFvQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7Ozs7O0lBSm5FLGtDQUFXOzs7O0lBQWxCLFVBQW1CLEVBQXFDO1lBQW5DLHNCQUFRO1FBQzNCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7OztJQUtELDRDQUFXOzs7OztJQUFYLFVBQVksRUFBcUQsRUFBRSxFQUF3QjtZQUE3RSwwQkFBVTtZQUE2QyxvQkFBTztRQUMxRSxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHOzs7O1FBQUMsVUFBQyxFQUFZO2dCQUFWLHNCQUFRO1lBQ2IsT0FBQSxVQUFVLENBQUM7Z0JBQ1QsUUFBUSxVQUFBO2FBQ1QsQ0FBQztRQUZGLENBRUUsRUFDSCxDQUNGLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFHRCwrQ0FBYzs7Ozs7SUFBZCxVQUFlLENBQUMsRUFBRSxFQUEyQjtZQUF6QixvQkFBTztRQUN6QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQWJEO1FBREMsTUFBTSxDQUFDLFdBQVcsQ0FBQzs7eURBQzRELFdBQVc7OzZEQVExRjtJQUdEO1FBREMsTUFBTSxDQUFDLGNBQWMsQ0FBQzs7eURBQ1EsY0FBYzs7Z0VBRTVDO0lBcEJEO1FBREMsUUFBUSxFQUFFOzs7O21EQUdWO0lBSlUsc0JBQXNCO1FBSmxDLEtBQUssQ0FBMEI7WUFDOUIsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixRQUFRLEVBQUUsbUJBQUEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQTJCO1NBQ3RELENBQUM7aURBTzhDLHdCQUF3QjtPQU4zRCxzQkFBc0IsQ0F1QmxDO0lBQUQsNkJBQUM7Q0FBQSxJQUFBO1NBdkJZLHNCQUFzQjs7Ozs7O0lBTXJCLDBEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgU2VsZWN0b3IsIFN0YXRlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHZXRGZWF0dXJlcywgVXBkYXRlRmVhdHVyZXMgfSBmcm9tICcuLi9hY3Rpb25zL2ZlYXR1cmUtbWFuYWdlbWVudC5hY3Rpb25zJztcbmltcG9ydCB7IEZlYXR1cmVNYW5hZ2VtZW50IH0gZnJvbSAnLi4vbW9kZWxzL2ZlYXR1cmUtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mZWF0dXJlLW1hbmFnZW1lbnQuc2VydmljZSc7XG5cbkBTdGF0ZTxGZWF0dXJlTWFuYWdlbWVudC5TdGF0ZT4oe1xuICBuYW1lOiAnRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZScsXG4gIGRlZmF1bHRzOiB7IGZlYXR1cmVzOiB7fSB9IGFzIEZlYXR1cmVNYW5hZ2VtZW50LlN0YXRlLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlbWVudFN0YXRlIHtcbiAgQFNlbGVjdG9yKClcbiAgc3RhdGljIGdldEZlYXR1cmVzKHsgZmVhdHVyZXMgfTogRmVhdHVyZU1hbmFnZW1lbnQuU3RhdGUpIHtcbiAgICByZXR1cm4gZmVhdHVyZXM7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZlYXR1cmVNYW5hZ2VtZW50U2VydmljZTogRmVhdHVyZU1hbmFnZW1lbnRTZXJ2aWNlKSB7fVxuXG4gIEBBY3Rpb24oR2V0RmVhdHVyZXMpXG4gIGdldEZlYXR1cmVzKHsgcGF0Y2hTdGF0ZSB9OiBTdGF0ZUNvbnRleHQ8RmVhdHVyZU1hbmFnZW1lbnQuU3RhdGU+LCB7IHBheWxvYWQgfTogR2V0RmVhdHVyZXMpIHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlTWFuYWdlbWVudFNlcnZpY2UuZ2V0RmVhdHVyZXMocGF5bG9hZCkucGlwZShcbiAgICAgIHRhcCgoeyBmZWF0dXJlcyB9KSA9PlxuICAgICAgICBwYXRjaFN0YXRlKHtcbiAgICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFVwZGF0ZUZlYXR1cmVzKVxuICB1cGRhdGVGZWF0dXJlcyhfLCB7IHBheWxvYWQgfTogVXBkYXRlRmVhdHVyZXMpIHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlTWFuYWdlbWVudFNlcnZpY2UudXBkYXRlRmVhdHVyZXMocGF5bG9hZCk7XG4gIH1cbn1cbiJdfQ==

6
npm/ng-packs/dist/feature-management/esm5/lib/states/index.js

@ -0,0 +1,6 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementState } from "./feature-management.state";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWJwL25nLmZlYXR1cmUtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9zdGF0ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vZmVhdHVyZS1tYW5hZ2VtZW50LnN0YXRlXCI7XG4iXX0=

7
npm/ng-packs/dist/feature-management/esm5/public-api.js

@ -0,0 +1,7 @@
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementModule } from './lib/feature-management.module';
export { FeatureManagementComponent } from './lib/components';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsMkNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9mZWF0dXJlLW1hbmFnZW1lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuIl19

365
npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js

@ -0,0 +1,365 @@
import { RestService, CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
import { __decorate, __metadata } from 'tslib';
import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store';
import { Observable } from 'rxjs';
import { tap, pluck } from 'rxjs/operators';
import { FormControl, FormGroup } from '@angular/forms';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class GetFeatures {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
GetFeatures.type = '[FeatureManagement] Get Features';
if (false) {
/** @type {?} */
GetFeatures.type;
/** @type {?} */
GetFeatures.prototype.payload;
}
class UpdateFeatures {
/**
* @param {?} payload
*/
constructor(payload) {
this.payload = payload;
}
}
UpdateFeatures.type = '[FeatureManagement] Update Features';
if (false) {
/** @type {?} */
UpdateFeatures.type;
/** @type {?} */
UpdateFeatures.prototype.payload;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class FeatureManagementService {
/**
* @param {?} rest
* @param {?} store
*/
constructor(rest, store) {
this.rest = rest;
this.store = store;
}
/**
* @param {?} params
* @return {?}
*/
getFeatures(params) {
/** @type {?} */
const request = {
method: 'GET',
url: '/api/abp/features',
params,
};
return this.rest.request(request);
}
/**
* @param {?} __0
* @return {?}
*/
updateFeatures({ features, providerKey, providerName, }) {
/** @type {?} */
const request = {
method: 'PUT',
url: '/api/abp/features',
body: { features },
params: { providerKey, providerName },
};
return this.rest.request(request);
}
}
FeatureManagementService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
FeatureManagementService.ctorParameters = () => [
{ type: RestService },
{ type: Store }
];
/** @nocollapse */ FeatureManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function FeatureManagementService_Factory() { return new FeatureManagementService(ɵɵinject(RestService), ɵɵinject(Store)); }, token: FeatureManagementService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.rest;
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
let FeatureManagementState = class FeatureManagementState {
/**
* @param {?} featureManagementService
*/
constructor(featureManagementService) {
this.featureManagementService = featureManagementService;
}
/**
* @param {?} __0
* @return {?}
*/
static getFeatures({ features }) {
return features;
}
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
getFeatures({ patchState }, { payload }) {
return this.featureManagementService.getFeatures(payload).pipe(tap((/**
* @param {?} __0
* @return {?}
*/
({ features }) => patchState({
features,
}))));
}
/**
* @param {?} _
* @param {?} __1
* @return {?}
*/
updateFeatures(_, { payload }) {
return this.featureManagementService.updateFeatures(payload);
}
};
__decorate([
Action(GetFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "getFeatures", null);
__decorate([
Action(UpdateFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UpdateFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "updateFeatures", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], FeatureManagementState, "getFeatures", null);
FeatureManagementState = __decorate([
State({
name: 'FeatureManagementState',
defaults: (/** @type {?} */ ({ features: {} })),
}),
__metadata("design:paramtypes", [FeatureManagementService])
], FeatureManagementState);
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementState.prototype.featureManagementService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class FeatureManagementComponent {
/**
* @param {?} store
*/
constructor(store) {
this.store = store;
this.visibleChange = new EventEmitter();
this.modalBusy = false;
}
/**
* @return {?}
*/
get visible() {
return this._visible;
}
/**
* @param {?} value
* @return {?}
*/
set visible(value) {
this._visible = value;
this.visibleChange.emit(value);
if (value)
this.openModal();
}
/**
* @return {?}
*/
openModal() {
if (!this.providerKey || !this.providerName) {
throw new Error('Provider Key and Provider Name are required.');
}
this.getFeatures();
}
/**
* @return {?}
*/
getFeatures() {
this.store
.dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))
.pipe(pluck('FeatureManagementState', 'features'))
.subscribe((/**
* @param {?} features
* @return {?}
*/
features => {
this.buildForm(features);
}));
}
/**
* @param {?} features
* @return {?}
*/
buildForm(features) {
/** @type {?} */
const formGroupObj = {};
for (let i = 0; i < features.length; i++) {
formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);
}
this.form = new FormGroup(formGroupObj);
}
/**
* @return {?}
*/
save() {
this.modalBusy = true;
/** @type {?} */
let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);
features = features.map((/**
* @param {?} feature
* @param {?} i
* @return {?}
*/
(feature, i) => ({
name: feature.name,
value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],
})));
this.store
.dispatch(new UpdateFeatures({
providerKey: this.providerKey,
providerName: this.providerName,
features,
}))
.subscribe((/**
* @return {?}
*/
() => {
this.modalBusy = false;
this.visible = false;
}));
}
}
FeatureManagementComponent.decorators = [
{ type: Component, args: [{
selector: 'abp-feature-management',
template: "<abp-modal size=\"md\" [(visible)]=\"visible\" [busy]=\"modalBusy\">\n <ng-template #abpHeader>\n <h3>{{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form *ngIf=\"form\" (ngSubmit)=\"save()\" [formGroup]=\"form\">\n <div\n class=\"row my-3\"\n *ngFor=\"let feature of features$ | async; let i = index\"\n [ngSwitch]=\"feature.valueType.name\"\n >\n <div class=\"col-4\">{{ feature.name }}</div>\n <div class=\"col-8\" *ngSwitchCase=\"'ToggleStringValueType'\">\n <input type=\"checkbox\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n <div class=\"col-8\" *ngSwitchCase=\"'FreeTextStringValueType'\">\n <input type=\"text\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpFeatureManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\">\n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n"
}] }
];
/** @nocollapse */
FeatureManagementComponent.ctorParameters = () => [
{ type: Store }
];
FeatureManagementComponent.propDecorators = {
providerKey: [{ type: Input }],
providerName: [{ type: Input }],
visible: [{ type: Input }],
visibleChange: [{ type: Output }]
};
__decorate([
Select(FeatureManagementState.getFeatures),
__metadata("design:type", Observable)
], FeatureManagementComponent.prototype, "features$", void 0);
if (false) {
/** @type {?} */
FeatureManagementComponent.prototype.providerKey;
/** @type {?} */
FeatureManagementComponent.prototype.providerName;
/**
* @type {?}
* @protected
*/
FeatureManagementComponent.prototype._visible;
/** @type {?} */
FeatureManagementComponent.prototype.visibleChange;
/** @type {?} */
FeatureManagementComponent.prototype.features$;
/** @type {?} */
FeatureManagementComponent.prototype.modalBusy;
/** @type {?} */
FeatureManagementComponent.prototype.form;
/**
* @type {?}
* @private
*/
FeatureManagementComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class FeatureManagementModule {
}
FeatureManagementModule.decorators = [
{ type: NgModule, args: [{
declarations: [FeatureManagementComponent],
imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],
exports: [FeatureManagementComponent],
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementComponent, FeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf };
//# sourceMappingURL=abp-ng.feature-management.js.map

1
npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map

File diff suppressed because one or more lines are too long

406
npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js

@ -0,0 +1,406 @@
import { RestService, CoreModule } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { Injectable, ɵɵdefineInjectable, ɵɵinject, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
import { __decorate, __metadata } from 'tslib';
import { Store, Action, Selector, State, Select, NgxsModule } from '@ngxs/store';
import { Observable } from 'rxjs';
import { tap, pluck } from 'rxjs/operators';
import { FormControl, FormGroup } from '@angular/forms';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var GetFeatures = /** @class */ (function () {
function GetFeatures(payload) {
this.payload = payload;
}
GetFeatures.type = '[FeatureManagement] Get Features';
return GetFeatures;
}());
if (false) {
/** @type {?} */
GetFeatures.type;
/** @type {?} */
GetFeatures.prototype.payload;
}
var UpdateFeatures = /** @class */ (function () {
function UpdateFeatures(payload) {
this.payload = payload;
}
UpdateFeatures.type = '[FeatureManagement] Update Features';
return UpdateFeatures;
}());
if (false) {
/** @type {?} */
UpdateFeatures.type;
/** @type {?} */
UpdateFeatures.prototype.payload;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementService = /** @class */ (function () {
function FeatureManagementService(rest, store) {
this.rest = rest;
this.store = store;
}
/**
* @param {?} params
* @return {?}
*/
FeatureManagementService.prototype.getFeatures = /**
* @param {?} params
* @return {?}
*/
function (params) {
/** @type {?} */
var request = {
method: 'GET',
url: '/api/abp/features',
params: params,
};
return this.rest.request(request);
};
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementService.prototype.updateFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features, providerKey = _a.providerKey, providerName = _a.providerName;
/** @type {?} */
var request = {
method: 'PUT',
url: '/api/abp/features',
body: { features: features },
params: { providerKey: providerKey, providerName: providerName },
};
return this.rest.request(request);
};
FeatureManagementService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root',
},] }
];
/** @nocollapse */
FeatureManagementService.ctorParameters = function () { return [
{ type: RestService },
{ type: Store }
]; };
/** @nocollapse */ FeatureManagementService.ngInjectableDef = ɵɵdefineInjectable({ factory: function FeatureManagementService_Factory() { return new FeatureManagementService(ɵɵinject(RestService), ɵɵinject(Store)); }, token: FeatureManagementService, providedIn: "root" });
return FeatureManagementService;
}());
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.rest;
/**
* @type {?}
* @private
*/
FeatureManagementService.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementState = /** @class */ (function () {
function FeatureManagementState(featureManagementService) {
this.featureManagementService = featureManagementService;
}
/**
* @param {?} __0
* @return {?}
*/
FeatureManagementState.getFeatures = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return features;
};
/**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.getFeatures = /**
* @param {?} __0
* @param {?} __1
* @return {?}
*/
function (_a, _b) {
var patchState = _a.patchState;
var payload = _b.payload;
return this.featureManagementService.getFeatures(payload).pipe(tap((/**
* @param {?} __0
* @return {?}
*/
function (_a) {
var features = _a.features;
return patchState({
features: features,
});
})));
};
/**
* @param {?} _
* @param {?} __1
* @return {?}
*/
FeatureManagementState.prototype.updateFeatures = /**
* @param {?} _
* @param {?} __1
* @return {?}
*/
function (_, _a) {
var payload = _a.payload;
return this.featureManagementService.updateFeatures(payload);
};
__decorate([
Action(GetFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, GetFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "getFeatures", null);
__decorate([
Action(UpdateFeatures),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, UpdateFeatures]),
__metadata("design:returntype", void 0)
], FeatureManagementState.prototype, "updateFeatures", null);
__decorate([
Selector(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", void 0)
], FeatureManagementState, "getFeatures", null);
FeatureManagementState = __decorate([
State({
name: 'FeatureManagementState',
defaults: (/** @type {?} */ ({ features: {} })),
}),
__metadata("design:paramtypes", [FeatureManagementService])
], FeatureManagementState);
return FeatureManagementState;
}());
if (false) {
/**
* @type {?}
* @private
*/
FeatureManagementState.prototype.featureManagementService;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementComponent = /** @class */ (function () {
function FeatureManagementComponent(store) {
this.store = store;
this.visibleChange = new EventEmitter();
this.modalBusy = false;
}
Object.defineProperty(FeatureManagementComponent.prototype, "visible", {
get: /**
* @return {?}
*/
function () {
return this._visible;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._visible = value;
this.visibleChange.emit(value);
if (value)
this.openModal();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FeatureManagementComponent.prototype.openModal = /**
* @return {?}
*/
function () {
if (!this.providerKey || !this.providerName) {
throw new Error('Provider Key and Provider Name are required.');
}
this.getFeatures();
};
/**
* @return {?}
*/
FeatureManagementComponent.prototype.getFeatures = /**
* @return {?}
*/
function () {
var _this = this;
this.store
.dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))
.pipe(pluck('FeatureManagementState', 'features'))
.subscribe((/**
* @param {?} features
* @return {?}
*/
function (features) {
_this.buildForm(features);
}));
};
/**
* @param {?} features
* @return {?}
*/
FeatureManagementComponent.prototype.buildForm = /**
* @param {?} features
* @return {?}
*/
function (features) {
/** @type {?} */
var formGroupObj = {};
for (var i = 0; i < features.length; i++) {
formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);
}
this.form = new FormGroup(formGroupObj);
};
/**
* @return {?}
*/
FeatureManagementComponent.prototype.save = /**
* @return {?}
*/
function () {
var _this = this;
this.modalBusy = true;
/** @type {?} */
var features = this.store.selectSnapshot(FeatureManagementState.getFeatures);
features = features.map((/**
* @param {?} feature
* @param {?} i
* @return {?}
*/
function (feature, i) { return ({
name: feature.name,
value: !_this.form.value[i] || _this.form.value[i] === 'false' ? null : _this.form.value[i],
}); }));
this.store
.dispatch(new UpdateFeatures({
providerKey: this.providerKey,
providerName: this.providerName,
features: features,
}))
.subscribe((/**
* @return {?}
*/
function () {
_this.modalBusy = false;
_this.visible = false;
}));
};
FeatureManagementComponent.decorators = [
{ type: Component, args: [{
selector: 'abp-feature-management',
template: "<abp-modal size=\"md\" [(visible)]=\"visible\" [busy]=\"modalBusy\">\n <ng-template #abpHeader>\n <h3>{{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}</h3>\n </ng-template>\n\n <ng-template #abpBody>\n <form *ngIf=\"form\" (ngSubmit)=\"save()\" [formGroup]=\"form\">\n <div\n class=\"row my-3\"\n *ngFor=\"let feature of features$ | async; let i = index\"\n [ngSwitch]=\"feature.valueType.name\"\n >\n <div class=\"col-4\">{{ feature.name }}</div>\n <div class=\"col-8\" *ngSwitchCase=\"'ToggleStringValueType'\">\n <input type=\"checkbox\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n <div class=\"col-8\" *ngSwitchCase=\"'FreeTextStringValueType'\">\n <input type=\"text\" name=\"feature.name\" [formControlName]=\"i\" />\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template #abpFooter>\n <button #abpClose type=\"button\" class=\"btn btn-secondary\">\n {{ 'AbpFeatureManagement::Cancel' | abpLocalization }}\n </button>\n <abp-button iconClass=\"fa fa-check\" (click)=\"save()\">\n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n </abp-button>\n </ng-template>\n</abp-modal>\n"
}] }
];
/** @nocollapse */
FeatureManagementComponent.ctorParameters = function () { return [
{ type: Store }
]; };
FeatureManagementComponent.propDecorators = {
providerKey: [{ type: Input }],
providerName: [{ type: Input }],
visible: [{ type: Input }],
visibleChange: [{ type: Output }]
};
__decorate([
Select(FeatureManagementState.getFeatures),
__metadata("design:type", Observable)
], FeatureManagementComponent.prototype, "features$", void 0);
return FeatureManagementComponent;
}());
if (false) {
/** @type {?} */
FeatureManagementComponent.prototype.providerKey;
/** @type {?} */
FeatureManagementComponent.prototype.providerName;
/**
* @type {?}
* @protected
*/
FeatureManagementComponent.prototype._visible;
/** @type {?} */
FeatureManagementComponent.prototype.visibleChange;
/** @type {?} */
FeatureManagementComponent.prototype.features$;
/** @type {?} */
FeatureManagementComponent.prototype.modalBusy;
/** @type {?} */
FeatureManagementComponent.prototype.form;
/**
* @type {?}
* @private
*/
FeatureManagementComponent.prototype.store;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FeatureManagementModule = /** @class */ (function () {
function FeatureManagementModule() {
}
FeatureManagementModule.decorators = [
{ type: NgModule, args: [{
declarations: [FeatureManagementComponent],
imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],
exports: [FeatureManagementComponent],
},] }
];
return FeatureManagementModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { FeatureManagementComponent, FeatureManagementModule, FeatureManagementComponent as ɵa, FeatureManagementState as ɵb, FeatureManagementState as ɵc, FeatureManagementService as ɵd, GetFeatures as ɵe, UpdateFeatures as ɵf };
//# sourceMappingURL=abp-ng.feature-management.js.map

1
npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map

File diff suppressed because one or more lines are too long

11
npm/ng-packs/dist/feature-management/lib/actions/feature-management.actions.d.ts

@ -0,0 +1,11 @@
import { FeatureManagement } from '../models';
export declare class GetFeatures {
payload: FeatureManagement.Provider;
static readonly type = "[FeatureManagement] Get Features";
constructor(payload: FeatureManagement.Provider);
}
export declare class UpdateFeatures {
payload: FeatureManagement.Provider & FeatureManagement.Features;
static readonly type = "[FeatureManagement] Update Features";
constructor(payload: FeatureManagement.Provider & FeatureManagement.Features);
}

1
npm/ng-packs/dist/feature-management/lib/actions/index.d.ts

@ -0,0 +1 @@
export * from './feature-management.actions';

21
npm/ng-packs/dist/feature-management/lib/components/feature-management/feature-management.component.d.ts

@ -0,0 +1,21 @@
import { EventEmitter } from '@angular/core';
import { Store } from '@ngxs/store';
import { Observable } from 'rxjs';
import { FeatureManagement } from '../../models/feature-management';
import { FormGroup } from '@angular/forms';
export declare class FeatureManagementComponent {
private store;
providerKey: string;
providerName: string;
protected _visible: any;
visible: boolean;
visibleChange: EventEmitter<boolean>;
features$: Observable<FeatureManagement.Feature[]>;
modalBusy: boolean;
form: FormGroup;
constructor(store: Store);
openModal(): void;
getFeatures(): void;
buildForm(features: any): void;
save(): void;
}

1
npm/ng-packs/dist/feature-management/lib/components/index.d.ts

@ -0,0 +1 @@
export * from './feature-management/feature-management.component';

2
npm/ng-packs/dist/feature-management/lib/feature-management.module.d.ts

@ -0,0 +1,2 @@
export declare class FeatureManagementModule {
}

25
npm/ng-packs/dist/feature-management/lib/models/feature-management.d.ts

@ -0,0 +1,25 @@
export declare namespace FeatureManagement {
interface State {
features: Feature[];
}
interface ValueType {
name: string;
properties: object;
validator: object;
}
interface Feature {
name: string;
value: string;
description?: string;
valueType?: ValueType;
depth?: number;
parentName?: string;
}
interface Features {
features: Feature[];
}
interface Provider {
providerName: string;
providerKey: string;
}
}

1
npm/ng-packs/dist/feature-management/lib/models/index.d.ts

@ -0,0 +1 @@
export * from './feature-management';

11
npm/ng-packs/dist/feature-management/lib/services/feature-management.service.d.ts

@ -0,0 +1,11 @@
import { RestService } from '@abp/ng.core';
import { Store } from '@ngxs/store';
import { Observable } from 'rxjs';
import { FeatureManagement } from '../models';
export declare class FeatureManagementService {
private rest;
private store;
constructor(rest: RestService, store: Store);
getFeatures(params: FeatureManagement.Provider): Observable<FeatureManagement.Features>;
updateFeatures({ features, providerKey, providerName, }: FeatureManagement.Provider & FeatureManagement.Features): Observable<null>;
}

11
npm/ng-packs/dist/feature-management/lib/states/feature-management.state.d.ts

@ -0,0 +1,11 @@
import { StateContext } from '@ngxs/store';
import { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';
import { FeatureManagement } from '../models/feature-management';
import { FeatureManagementService } from '../services/feature-management.service';
export declare class FeatureManagementState {
private featureManagementService;
static getFeatures({ features }: FeatureManagement.State): FeatureManagement.Feature[];
constructor(featureManagementService: FeatureManagementService);
getFeatures({ patchState }: StateContext<FeatureManagement.State>, { payload }: GetFeatures): import("rxjs").Observable<FeatureManagement.Features>;
updateFeatures(_: any, { payload }: UpdateFeatures): import("rxjs").Observable<null>;
}

1
npm/ng-packs/dist/feature-management/lib/states/index.d.ts

@ -0,0 +1 @@
export * from "./feature-management.state";

21
npm/ng-packs/dist/feature-management/package.json

@ -0,0 +1,21 @@
{
"name": "@abp/ng.feature-management",
"version": "0.0.83",
"dependencies": {
"@abp/ng.theme.shared": "^0.8.3",
"tslib": "^1.9.0"
},
"publishConfig": {
"access": "public"
},
"main": "bundles/abp-ng.feature-management.umd.js",
"module": "fesm5/abp-ng.feature-management.js",
"es2015": "fesm2015/abp-ng.feature-management.js",
"esm5": "esm5/abp-ng.feature-management.js",
"esm2015": "esm2015/abp-ng.feature-management.js",
"fesm5": "fesm5/abp-ng.feature-management.js",
"fesm2015": "fesm2015/abp-ng.feature-management.js",
"typings": "abp-ng.feature-management.d.ts",
"metadata": "abp-ng.feature-management.metadata.json",
"sideEffects": false
}

2
npm/ng-packs/dist/feature-management/public-api.d.ts

@ -0,0 +1,2 @@
export * from './lib/feature-management.module';
export * from './lib/components';

3
npm/ng-packs/packages/feature-management/ng-package.json

@ -3,5 +3,6 @@
"dest": "../../dist/feature-management",
"lib": {
"entryFile": "src/public-api.ts"
}
},
"whitelistedNonPeerDependencies": ["@abp/ng.theme.shared"]
}

8
npm/ng-packs/packages/feature-management/package.json

@ -1,4 +1,10 @@
{
"name": "@abp/ng.feature-management",
"version": "0.0.1"
"version": "0.8.3",
"dependencies": {
"@abp/ng.theme.shared": "^0.8.3"
},
"publishConfig": {
"access": "public"
}
}

2
npm/ng-packs/packages/tenant-management/package.json

@ -3,7 +3,7 @@
"version": "0.8.3",
"dependencies": {
"@abp/ng.theme.shared": "^0.8.3",
"@abp/ng.feature-management": "^0.8.4"
"@abp/ng.feature-management": "^0.8.3"
},
"publishConfig": {
"access": "public"

2
npm/ng-packs/packages/theme-shared/package.json

@ -5,7 +5,7 @@
"@abp/ng.core": "^0.8.3",
"@angular/cdk": "^8.0.1",
"@ng-bootstrap/ng-bootstrap": "^5.1.0",
"@ngx-validate/core": "^0.0.5",
"@ngx-validate/core": "^0.0.4",
"bootstrap": "^4.3.1",
"font-awesome": "^4.7.0",
"ngx-perfect-scrollbar": "^8.0.0",

Loading…
Cancel
Save