diff --git a/docs/en/Blog-Posts/2019-08-16 v0_19_Release/Post.md b/docs/en/Blog-Posts/2019-08-16 v0_19_Release/Post.md index 408e94d6b4..eec70c5566 100644 --- a/docs/en/Blog-Posts/2019-08-16 v0_19_Release/Post.md +++ b/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 diff --git a/docs/en/Index.md b/docs/en/Index.md index d911bf66e2..b40efffb9d 100644 --- a/docs/en/Index.md +++ b/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: diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md index 83950ddd0e..1fbf1be8e2 100644 --- a/docs/en/Startup-Templates/Application.md +++ b/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? diff --git a/docs/en/Tutorials/Angular/Part-I.md b/docs/en/Tutorials/Angular/Part-I.md index 9d47418170..88b5c8539e 100644 --- a/docs/en/Tutorials/Angular/Part-I.md +++ b/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'; diff --git a/docs/en/Tutorials/Angular/Part-II.md b/docs/en/Tutorials/Angular/Part-II.md index 80a7e21a32..ed6afcb947 100644 --- a/docs/en/Tutorials/Angular/Part-II.md +++ b/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 { return this.restService.request({ method: 'POST', @@ -52,7 +52,7 @@ create(createBookInput: Books.CreateUpdateBookInput): Observable { 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 { return this.restService.request({ method: 'GET', @@ -332,7 +332,7 @@ update(updateBookInput: Books.CreateUpdateBookInput, id: string): Observable, action: CreateUpdateBook) { let request; @@ -360,7 +360,7 @@ save(ctx: StateContext, 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 { return this.restService.request({ method: 'DELETE', @@ -502,7 +502,7 @@ delete(id: string): Observable { 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'; //... diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 103556823e..7e20d4db75 100644 --- a/docs/en/docs-nav.json +++ b/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": [ diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs index 04c2993860..e923251245 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/BloggingDomainSharedModule.cs @@ -22,7 +22,7 @@ namespace Volo.Blogging options.Resources .Add("en") .AddBaseTypes(typeof(AbpValidationResource)) - .AddVirtualJson("/Localization/Resources"); + .AddVirtualJson("Volo/Blogging/Localization/Resources"); }); } } diff --git a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs b/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs index 9404233493..b127db4b3f 100644 --- a/modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs +++ b/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 urlOptions) + public IndexModel(IOptions 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(); diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs index b87f3b12f7..85738e6ff9 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs +++ b/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(options => + Configure(options => { options.RoutePrefix = null; }); diff --git a/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs b/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs index 00189be260..afb61eadd3 100644 --- a/modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs +++ b/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 = @"
  • {2}{3}
  • "; @@ -41,9 +41,9 @@ namespace Volo.Docs.Areas.Documents.TagHelpers [HtmlAttributeName("language")] public string LanguageCode { get; set; } - public TreeTagHelper(IOptions urlOptions) + public TreeTagHelper(IOptions 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; } diff --git a/modules/docs/src/Volo.Docs.Web/DocsUrlOptions.cs b/modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs similarity index 70% rename from modules/docs/src/Volo.Docs.Web/DocsUrlOptions.cs rename to modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs index 67c11864ff..4b4ab6a3b4 100644 --- a/modules/docs/src/Volo.Docs.Web/DocsUrlOptions.cs +++ b/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; } + /// + /// Allows user to see a combobox in user interface for swapping across projects + /// Default value: True; + /// + public bool ShowProjectsCombobox = true; + private string GetFormattedRoutePrefix() { if (string.IsNullOrWhiteSpace(_routePrefix)) diff --git a/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs b/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs index ea2c3447e6..f128aacfd1 100644 --- a/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs +++ b/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs @@ -41,11 +41,11 @@ namespace Volo.Docs Configure(options => { - var urlOptions = context.Services - .GetRequiredServiceLazy>() + var docsOptions = context.Services + .GetRequiredServiceLazy>() .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}"); diff --git a/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs b/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs index ed3f2802e2..0915be10c2 100644 --- a/modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs +++ b/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 urlOptions) + IOptions 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, diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs index 15697f466c..9e21ec22de 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs @@ -15,19 +15,19 @@ namespace Volo.Docs.Pages.Documents public IReadOnlyList Projects { get; set; } private readonly IProjectAppService _projectAppService; - private readonly DocsUrlOptions _urlOptions; + private readonly DocsUiOptions _uiOptions; public IndexModel( IProjectAppService projectAppService, - IOptions urlOptions) + IOptions urlOptions) { _projectAppService = projectAppService; - _urlOptions = urlOptions.Value; + _uiOptions = urlOptions.Value; } public async Task OnGetAsync() { - DocumentsUrlPrefix = _urlOptions.RoutePrefix; + DocumentsUrlPrefix = _uiOptions.RoutePrefix; var listResult = await _projectAppService.GetListAsync(); diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index eb3a4f0d77..e471bc46d9 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -76,7 +76,7 @@
    - @if (Model.ProjectSelectItems.Count > 1) + @if (Model.ShowProjectsCombobox && Model.ProjectSelectItems.Count > 1) {
    diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index dfebfe2532..c61f2c33c8 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/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 options) + IOptions options) { _documentAppService = documentAppService; _documentToHtmlConverterFactory = documentToHtmlConverterFactory; _projectAppService = projectAppService; - _options = options.Value; + _uiOptions = options.Value; } public async Task 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(); } diff --git a/npm/ng-packs/dist/feature-management/README.md b/npm/ng-packs/dist/feature-management/README.md new file mode 100644 index 0000000000..d040ec455a --- /dev/null +++ b/npm/ng-packs/dist/feature-management/README.md @@ -0,0 +1 @@ +

     @abp/ng.feature-management

    diff --git a/npm/ng-packs/dist/feature-management/abp-ng.feature-management.d.ts b/npm/ng-packs/dist/feature-management/abp-ng.feature-management.d.ts new file mode 100644 index 0000000000..79bee14655 --- /dev/null +++ b/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'; diff --git a/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json b/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json new file mode 100644 index 0000000000..7510f82cae --- /dev/null +++ b/npm/ng-packs/dist/feature-management/abp-ng.feature-management.metadata.json @@ -0,0 +1 @@ +{"__symbolic":"module","version":4,"exports":[{"from":"./lib/feature-management/feature-management.component"}],"metadata":{"FeatureManagementModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@abp/ng.core","name":"CoreModule","line":9,"character":12},{"__symbolic":"reference","module":"@abp/ng.theme.shared","name":"ThemeSharedModule","line":9,"character":24},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"NgxsModule","line":9,"character":43},"member":"forFeature"},"arguments":[[{"__symbolic":"reference","name":"ɵc"}]]}],"exports":[{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"abp-feature-management","template":"\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n\n"}]}],"members":{"providerKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"providerName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"visible":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"visibleChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"features$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Select","line":37,"character":3},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵb"},"member":"getFeatures"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":44,"character":29}]}],"openModal":[{"__symbolic":"method"}],"getFeatures":[{"__symbolic":"method"}],"buildForm":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"State","line":6,"character":1},"arguments":[{"name":"FeatureManagementState","defaults":{"features":{}}}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"getFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":18,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]}],"updateFeatures":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ngxs/store","name":"Action","line":29,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵf"}]}]}]},"statics":{"getFeatures":{"__symbolic":"function","parameters":["features"],"value":{"__symbolic":"reference","name":"features"}}}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@abp/ng.core","name":"RestService","line":10,"character":28},{"__symbolic":"reference","module":"@ngxs/store","name":"Store","line":10,"character":56}]}],"getFeatures":[{"__symbolic":"method"}],"updateFeatures":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵg"},"member":"Provider"}]}]},"statics":{"type":"[FeatureManagement] Get Features"}},"ɵf":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":9,"character":30,"module":"./lib/actions/feature-management.actions"}]}]},"statics":{"type":"[FeatureManagement] Update Features"}}},"origins":{"FeatureManagementModule":"./lib/feature-management.module","ɵa":"./lib/components/feature-management/feature-management.component","ɵb":"./lib/states","ɵc":"./lib/states/feature-management.state","ɵd":"./lib/services/feature-management.service","ɵe":"./lib/actions/feature-management.actions","ɵf":"./lib/actions/feature-management.actions","ɵg":"./lib/models"},"importAs":"@abp/ng.feature-management"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js new file mode 100644 index 0000000000..517a026099 --- /dev/null +++ b/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: "\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n\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 diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map new file mode 100644 index 0000000000..2ab31069d5 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.feature-management.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["Injectable","RestService","Store","tap","tslib_1.__decorate","Action","Selector","State","EventEmitter","pluck","FormControl","FormGroup","Component","Input","Output","Select","Observable","NgModule","CoreModule","ThemeSharedModule","NgxsModule"],"mappings":";;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;;;;;ACjMD;QAEE,qBAAmB,OAAmC;YAAnC,YAAO,GAAP,OAAO,CAA4B;SAAI;QAD1C,gBAAI,GAAG,kCAAkC,CAAC;QAE5D,kBAAC;KAHD,IAGC;;;QAFC,iBAA0D;;QAC9C,8BAA0C;;AAGxD;QAEE,wBAAmB,OAAgE;YAAhE,YAAO,GAAP,OAAO,CAAyD;SAAI;QADvE,mBAAI,GAAG,qCAAqC,CAAC;QAE/D,qBAAC;KAHD,IAGC;;;QAFC,oBAA6D;;QACjD,iCAAuE;;;;;;;;;;;;ACTrF;QAUE,kCAAoB,IAAiB,EAAU,KAAY;YAAvC,SAAI,GAAJ,IAAI,CAAa;YAAU,UAAK,GAAL,KAAK,CAAO;SAAI;;;;;QAE/D,8CAAW;;;;QAAX,UAAY,MAAkC;;gBACtC,OAAO,GAAuB;gBAClC,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,mBAAmB;gBACxB,MAAM,QAAA;aACP;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyD,OAAO,CAAC,CAAC;SAC3F;;;;;QAED,iDAAc;;;;QAAd,UAAe,EAI2C;gBAHxD,sBAAQ,EACR,4BAAW,EACX,8BAAY;;gBAEN,OAAO,GAA6C;gBACxD,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,mBAAmB;gBACxB,IAAI,EAAE,EAAE,QAAQ,UAAA,EAAE;gBAClB,MAAM,EAAE,EAAE,WAAW,aAAA,EAAE,YAAY,cAAA,EAAE;aACtC;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC,OAAO,CAAC,CAAC;SACrE;;oBA3BFA,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBAPQC,mBAAW;oBACXC,WAAK;;;uCAFd;KAMA,IA4BC;;;;;;QAxBa,wCAAyB;;;;;QAAE,yCAAoB;;;;;;;;QCM3D,gCAAoB,wBAAkD;YAAlD,6BAAwB,GAAxB,wBAAwB,CAA0B;SAAI;;;;;QAJnE,kCAAW;;;;QAAlB,UAAmB,EAAqC;gBAAnC,sBAAQ;YAC3B,OAAO,QAAQ,CAAC;SACjB;;;;;;QAKD,4CAAW;;;;;QAAX,UAAY,EAAqD,EAAE,EAAwB;gBAA7E,0BAAU;gBAA6C,oBAAO;YAC1E,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5DC,aAAG;;;;YAAC,UAAC,EAAY;oBAAV,sBAAQ;gBACb,OAAA,UAAU,CAAC;oBACT,QAAQ,UAAA;iBACT,CAAC;aAAA,EACH,CACF,CAAC;SACH;;;;;;QAGD,+CAAc;;;;;QAAd,UAAe,CAAC,EAAE,EAA2B;gBAAzB,oBAAO;YACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC9D;QAbDC;YADCC,YAAM,CAAC,WAAW,CAAC;;qDAC4D,WAAW;;iEAQ1F;QAGDD;YADCC,YAAM,CAAC,cAAc,CAAC;;qDACQ,cAAc;;oEAE5C;QApBDD;YADCE,cAAQ,EAAE;;;;uDAGV;QAJU,sBAAsB;YAJlCC,WAAK,CAA0B;gBAC9B,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,qBAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAA2B;aACtD,CAAC;6CAO8C,wBAAwB;WAN3D,sBAAsB,CAuBlC;QAAD,6BAAC;KAAA,IAAA;;;;;;QAjBa,0DAA0D;;;;;;;;;;;;;QC4BtE,oCAAoB,KAAY;YAAZ,UAAK,GAAL,KAAK,CAAO;YAThC,kBAAa,GAAG,IAAIC,iBAAY,EAAW,CAAC;YAK5C,cAAS,GAAY,KAAK,CAAC;SAIS;QAtBpC,sBACI,+CAAO;;;;YADX;gBAEE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;;;;;YAED,UAAY,KAAc;gBACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE/B,IAAI,KAAK;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;aAC7B;;;WAPA;;;;QAqBD,8CAAS;;;QAAT;YACE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;aACjE;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;;;;QAED,gDAAW;;;QAAX;YAAA,iBAOC;YANC,IAAI,CAAC,KAAK;iBACP,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;iBAC7F,IAAI,CAACC,eAAK,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;iBACjD,SAAS;;;;YAAC,UAAA,QAAQ;gBACjB,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC1B,EAAC,CAAC;SACN;;;;;QAED,8CAAS;;;;QAAT,UAAU,QAAQ;;gBACV,YAAY,GAAG,EAAE;YAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAIC,iBAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC7F;YAED,IAAI,CAAC,IAAI,GAAG,IAAIC,eAAS,CAAC,YAAY,CAAC,CAAC;SACzC;;;;QAED,yCAAI;;;QAAJ;YAAA,iBAsBC;YArBC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;gBAElB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAE5E,QAAQ,GAAG,QAAQ,CAAC,GAAG;;;;;YAAC,UAAC,OAAO,EAAE,CAAC,IAAK,QAAC;gBACvC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACzF,IAAC,EAAC,CAAC;YAEJ,IAAI,CAAC,KAAK;iBACP,QAAQ,CACP,IAAI,cAAc,CAAC;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,QAAQ,UAAA;aACT,CAAC,CACH;iBACA,SAAS;;;YAAC;gBACT,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB,EAAC,CAAC;SACN;;oBAtFFC,cAAS,SAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,wvCAAkD;qBACnD;;;;oBAXgBV,WAAK;;;kCAanBW,UAAK;mCAGLA,UAAK;8BAKLA,UAAK;oCAYLC,WAAM;;QAIPV;YADCW,YAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC;sCAChCC,eAAU;qEAA8B;QA0DrD,iCAAC;KAvFD,IAuFC;;;QAlFC,iDACoB;;QAEpB,kDACqB;;;;;QAErB,8CAAmB;;QAcnB,mDAC4C;;QAE5C,+CACmD;;QAEnD,+CAA2B;;QAE3B,0CAAgB;;;;;QAEJ,2CAAoB;;;;;;;AC5ClC;QAOA;SAKuC;;oBALtCC,aAAQ,SAAC;wBACR,YAAY,EAAE,CAAC,0BAA0B,CAAC;wBAC1C,OAAO,EAAE,CAACC,kBAAU,EAAEC,iCAAiB,EAAEC,gBAAU,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBACzF,OAAO,EAAE,CAAC,0BAA0B,CAAC;qBACtC;;QACqC,8BAAC;KALvC;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js new file mode 100644 index 0000000000..28befa0821 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@abp/ng.core"),require("@abp/ng.theme.shared"),require("@angular/core"),require("@ngxs/store"),require("rxjs"),require("rxjs/operators"),require("@angular/forms")):"function"==typeof define&&define.amd?define("@abp/ng.feature-management",["exports","@abp/ng.core","@abp/ng.theme.shared","@angular/core","@ngxs/store","rxjs","rxjs/operators","@angular/forms"],t):t(((e=e||self).abp=e.abp||{},e.abp.ng=e.abp.ng||{},e.abp.ng["feature-management"]={}),e.ng_core,e.ng_theme_shared,e.ng.core,e.store,e.rxjs,e.rxjs.operators,e.ng.forms)}(this,function(e,t,r,n,a,o,i,u){"use strict";function s(e,t,r,n){var a,o=arguments.length,i=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var u=e.length-1;u>=0;u--)(a=e[u])&&(i=(o<3?a(i):o>3?a(t,r,i):a(t,r))||i);return o>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}var c=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Get Features",e}();var f=function(){function e(e){this.payload=e}return e.type="[FeatureManagement] Update Features",e}();var l=function(){function e(e,t){this.rest=e,this.store=t}return e.prototype.getFeatures=function(e){var t={method:"GET",url:"/api/abp/features",params:e};return this.rest.request(t)},e.prototype.updateFeatures=function(e){var t={method:"PUT",url:"/api/abp/features",body:{features:e.features},params:{providerKey:e.providerKey,providerName:e.providerName}};return this.rest.request(t)},e.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:t.RestService},{type:a.Store}]},e.ngInjectableDef=n.ɵɵdefineInjectable({factory:function(){return new e(n.ɵɵinject(t.RestService),n.ɵɵinject(a.Store))},token:e,providedIn:"root"}),e}();var d=function(){function e(e){this.featureManagementService=e}return e.getFeatures=function(e){return e.features},e.prototype.getFeatures=function(e,t){var r=e.patchState,n=t.payload;return this.featureManagementService.getFeatures(n).pipe(i.tap(function(e){var t=e.features;return r({features:t})}))},e.prototype.updateFeatures=function(e,t){var r=t.payload;return this.featureManagementService.updateFeatures(r)},s([a.Action(c),p("design:type",Function),p("design:paramtypes",[Object,c]),p("design:returntype",void 0)],e.prototype,"getFeatures",null),s([a.Action(f),p("design:type",Function),p("design:paramtypes",[Object,f]),p("design:returntype",void 0)],e.prototype,"updateFeatures",null),s([a.Selector(),p("design:type",Function),p("design:paramtypes",[Object]),p("design:returntype",void 0)],e,"getFeatures",null),e=s([a.State({name:"FeatureManagementState",defaults:{features:{}}}),p("design:paramtypes",[l])],e)}();var m=function(){function e(e){this.store=e,this.visibleChange=new n.EventEmitter,this.modalBusy=!1}return Object.defineProperty(e.prototype,"visible",{get:function(){return this._visible},set:function(e){this._visible=e,this.visibleChange.emit(e),e&&this.openModal()},enumerable:!0,configurable:!0}),e.prototype.openModal=function(){if(!this.providerKey||!this.providerName)throw new Error("Provider Key and Provider Name are required.");this.getFeatures()},e.prototype.getFeatures=function(){var e=this;this.store.dispatch(new c({providerKey:this.providerKey,providerName:this.providerName})).pipe(i.pluck("FeatureManagementState","features")).subscribe(function(t){e.buildForm(t)})},e.prototype.buildForm=function(e){for(var t={},r=0;r\n \n

    {{ \'AbpTenantManagement::Permission:ManageFeatures\' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n\n \n \n \n {{ \'AbpFeatureManagement::Save\' | abpLocalization }}\n \n \n\n'}]}],e.ctorParameters=function(){return[{type:a.Store}]},e.propDecorators={providerKey:[{type:n.Input}],providerName:[{type:n.Input}],visible:[{type:n.Input}],visibleChange:[{type:n.Output}]},s([a.Select(d.getFeatures),p("design:type",o.Observable)],e.prototype,"features$",void 0),e}();var g=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{declarations:[m],imports:[t.CoreModule,r.ThemeSharedModule,a.NgxsModule.forFeature([d])],exports:[m]}]}],e}();e.FeatureManagementComponent=m,e.FeatureManagementModule=g,e.ɵa=m,e.ɵb=d,e.ɵc=d,e.ɵd=l,e.ɵe=c,e.ɵf=f,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=abp-ng.feature-management.umd.min.js.map \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map new file mode 100644 index 0000000000..aeaeeb062f --- /dev/null +++ b/npm/ng-packs/dist/feature-management/bundles/abp-ng.feature-management.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","GetFeatures","payload","this","type","UpdateFeatures","FeatureManagementService","rest","store","prototype","getFeatures","params","request","method","url","updateFeatures","_a","body","features","providerKey","providerName","Injectable","args","providedIn","RestService","Store","FeatureManagementState","featureManagementService","_b","patchState","pipe","tap","_","tslib_1.__decorate","Action","Selector","State","name","defaults","FeatureManagementComponent","visibleChange","EventEmitter","modalBusy","_visible","value","emit","openModal","Error","_this","dispatch","pluck","subscribe","buildForm","formGroupObj","FormControl","form","FormGroup","save","selectSnapshot","map","feature","visible","Component","selector","template","Input","Output","Select","Observable","FeatureManagementModule","NgModule","declarations","imports","CoreModule","ThemeSharedModule","NgxsModule","forFeature","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n 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); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"]} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/esm2015/abp-ng.feature-management.js new file mode 100644 index 0000000000..c84f215508 --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/actions/feature-management.actions.js b/npm/ng-packs/dist/feature-management/esm2015/lib/actions/feature-management.actions.js new file mode 100644 index 0000000000..741e4b7db2 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/actions/index.js b/npm/ng-packs/dist/feature-management/esm2015/lib/actions/index.js new file mode 100644 index 0000000000..85625dd355 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/components/feature-management/feature-management.component.js b/npm/ng-packs/dist/feature-management/esm2015/lib/components/feature-management/feature-management.component.js new file mode 100644 index 0000000000..b3f483e624 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/esm2015/lib/components/feature-management/feature-management.component.js @@ -0,0 +1,149 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { GetFeatures, UpdateFeatures } from '../../actions'; +import { FeatureManagementState } from '../../states'; +import { FormGroup, FormControl } from '@angular/forms'; +import { pluck } from 'rxjs/operators'; +export 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: "\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n
    \n" + }] } +]; +/** @nocollapse */ +FeatureManagementComponent.ctorParameters = () => [ + { type: Store } +]; +FeatureManagementComponent.propDecorators = { + providerKey: [{ type: Input }], + providerName: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }] +}; +tslib_1.__decorate([ + Select(FeatureManagementState.getFeatures), + tslib_1.__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; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQU01QyxNQUFNLE9BQU8sMEJBQTBCOzs7O0lBK0JyQyxZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQVRoQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFLNUMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUlRLENBQUM7Ozs7SUF0QnBDLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsSUFBSSxLQUFLO1lB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Y25CLG1EQUM0Qzs7SUFFNUMsK0NBQ21EOztJQUVuRCwrQ0FBMkI7O0lBRTNCLDBDQUFnQjs7Ozs7SUFFSiwyQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR2V0RmVhdHVyZXMsIFVwZGF0ZUZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGx1Y2ssIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWZlYXR1cmUtbWFuYWdlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlKSB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChGZWF0dXJlTWFuYWdlbWVudFN0YXRlLmdldEZlYXR1cmVzKVxuICBmZWF0dXJlcyQ6IE9ic2VydmFibGU8RmVhdHVyZU1hbmFnZW1lbnQuRmVhdHVyZVtdPjtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICghdGhpcy5wcm92aWRlcktleSB8fCAhdGhpcy5wcm92aWRlck5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZXIgS2V5IGFuZCBQcm92aWRlciBOYW1lIGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmdldEZlYXR1cmVzKCk7XG4gIH1cblxuICBnZXRGZWF0dXJlcygpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldEZlYXR1cmVzKHsgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUgfSkpXG4gICAgICAucGlwZShwbHVjaygnRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZScsICdmZWF0dXJlcycpKVxuICAgICAgLnN1YnNjcmliZShmZWF0dXJlcyA9PiB7XG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKGZlYXR1cmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYnVpbGRGb3JtKGZlYXR1cmVzKSB7XG4gICAgY29uc3QgZm9ybUdyb3VwT2JqID0ge307XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZlYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3JtR3JvdXBPYmpbaV0gPSBuZXcgRm9ybUNvbnRyb2woZmVhdHVyZXNbaV0udmFsdWUgPT09ICdmYWxzZScgPyBudWxsIDogZmVhdHVyZXNbaV0udmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwT2JqKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgbGV0IGZlYXR1cmVzID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGZWF0dXJlTWFuYWdlbWVudFN0YXRlLmdldEZlYXR1cmVzKTtcblxuICAgIGZlYXR1cmVzID0gZmVhdHVyZXMubWFwKChmZWF0dXJlLCBpKSA9PiAoe1xuICAgICAgbmFtZTogZmVhdHVyZS5uYW1lLFxuICAgICAgdmFsdWU6ICF0aGlzLmZvcm0udmFsdWVbaV0gfHwgdGhpcy5mb3JtLnZhbHVlW2ldID09PSAnZmFsc2UnID8gbnVsbCA6IHRoaXMuZm9ybS52YWx1ZVtpXSxcbiAgICB9KSk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBVcGRhdGVGZWF0dXJlcyh7XG4gICAgICAgICAgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksXG4gICAgICAgICAgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/components/index.js b/npm/ng-packs/dist/feature-management/esm2015/lib/components/index.js new file mode 100644 index 0000000000..6b85ebc3c5 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/feature-management.module.js b/npm/ng-packs/dist/feature-management/esm2015/lib/feature-management.module.js new file mode 100644 index 0000000000..5142e83ff3 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/models/feature-management.js b/npm/ng-packs/dist/feature-management/esm2015/lib/models/feature-management.js new file mode 100644 index 0000000000..0305b2db6b --- /dev/null +++ b/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== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/models/index.js b/npm/ng-packs/dist/feature-management/esm2015/lib/models/index.js new file mode 100644 index 0000000000..051244297f --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/services/feature-management.service.js b/npm/ng-packs/dist/feature-management/esm2015/lib/services/feature-management.service.js new file mode 100644 index 0000000000..7a09704674 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/states/feature-management.state.js b/npm/ng-packs/dist/feature-management/esm2015/lib/states/feature-management.state.js new file mode 100644 index 0000000000..87e67282c2 --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/lib/states/index.js b/npm/ng-packs/dist/feature-management/esm2015/lib/states/index.js new file mode 100644 index 0000000000..9b8a3b3a43 --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm2015/public-api.js b/npm/ng-packs/dist/feature-management/esm2015/public-api.js new file mode 100644 index 0000000000..2ca23efea6 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/esm5/abp-ng.feature-management.js new file mode 100644 index 0000000000..c84f215508 --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/actions/feature-management.actions.js b/npm/ng-packs/dist/feature-management/esm5/lib/actions/feature-management.actions.js new file mode 100644 index 0000000000..6313fd45f3 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/actions/index.js b/npm/ng-packs/dist/feature-management/esm5/lib/actions/index.js new file mode 100644 index 0000000000..85625dd355 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/components/feature-management/feature-management.component.js b/npm/ng-packs/dist/feature-management/esm5/lib/components/feature-management/feature-management.component.js new file mode 100644 index 0000000000..fce9f8c488 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/esm5/lib/components/feature-management/feature-management.component.js @@ -0,0 +1,167 @@ +/** + * @fileoverview added by tsickle + * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc + */ +import * as tslib_1 from "tslib"; +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { Select, Store } from '@ngxs/store'; +import { Observable } from 'rxjs'; +import { GetFeatures, UpdateFeatures } from '../../actions'; +import { FeatureManagementState } from '../../states'; +import { FormGroup, FormControl } from '@angular/forms'; +import { pluck } from 'rxjs/operators'; +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: "\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n
    \n" + }] } + ]; + /** @nocollapse */ + FeatureManagementComponent.ctorParameters = function () { return [ + { type: Store } + ]; }; + FeatureManagementComponent.propDecorators = { + providerKey: [{ type: Input }], + providerName: [{ type: Input }], + visible: [{ type: Input }], + visibleChange: [{ type: Output }] + }; + tslib_1.__decorate([ + Select(FeatureManagementState.getFeatures), + tslib_1.__metadata("design:type", Observable) + ], FeatureManagementComponent.prototype, "features$", void 0); + return FeatureManagementComponent; +}()); +export { 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; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhYnAvbmcuZmVhdHVyZS1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmVhdHVyZS1tYW5hZ2VtZW50L2ZlYXR1cmUtbWFuYWdlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QztJQW1DRSxvQ0FBb0IsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87UUFUaEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSzVDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFJUSxDQUFDO0lBdEJwQyxzQkFDSSwrQ0FBTzs7OztRQURYO1lBRUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7Ozs7O1FBRUQsVUFBWSxLQUFjO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLElBQUksS0FBSztnQkFBRSxJQUFJLENBQUMsU0FBUyxFQUFF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Q0FBQztDQUFBLEFBdkZELElBdUZDO1NBbkZZLDBCQUEwQjs7O0lBQ3JDLGlEQUNvQjs7SUFFcEIsa0RBQ3FCOzs7OztJQUVyQiw4Q0FBbUI7O0lBY25CLG1EQUM0Qzs7SUFFNUMsK0NBQ21EOztJQUVuRCwrQ0FBMkI7O0lBRTNCLDBDQUFnQjs7Ozs7SUFFSiwyQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR2V0RmVhdHVyZXMsIFVwZGF0ZUZlYXR1cmVzIH0gZnJvbSAnLi4vLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBGZWF0dXJlTWFuYWdlbWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9mZWF0dXJlLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcGx1Y2ssIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWJwLWZlYXR1cmUtbWFuYWdlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlTWFuYWdlbWVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF92aXNpYmxlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlKSB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFNlbGVjdChGZWF0dXJlTWFuYWdlbWVudFN0YXRlLmdldEZlYXR1cmVzKVxuICBmZWF0dXJlcyQ6IE9ic2VydmFibGU8RmVhdHVyZU1hbmFnZW1lbnQuRmVhdHVyZVtdPjtcblxuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICghdGhpcy5wcm92aWRlcktleSB8fCAhdGhpcy5wcm92aWRlck5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZXIgS2V5IGFuZCBQcm92aWRlciBOYW1lIGFyZSByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmdldEZlYXR1cmVzKCk7XG4gIH1cblxuICBnZXRGZWF0dXJlcygpIHtcbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2gobmV3IEdldEZlYXR1cmVzKHsgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksIHByb3ZpZGVyTmFtZTogdGhpcy5wcm92aWRlck5hbWUgfSkpXG4gICAgICAucGlwZShwbHVjaygnRmVhdHVyZU1hbmFnZW1lbnRTdGF0ZScsICdmZWF0dXJlcycpKVxuICAgICAgLnN1YnNjcmliZShmZWF0dXJlcyA9PiB7XG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKGZlYXR1cmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYnVpbGRGb3JtKGZlYXR1cmVzKSB7XG4gICAgY29uc3QgZm9ybUdyb3VwT2JqID0ge307XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZlYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3JtR3JvdXBPYmpbaV0gPSBuZXcgRm9ybUNvbnRyb2woZmVhdHVyZXNbaV0udmFsdWUgPT09ICdmYWxzZScgPyBudWxsIDogZmVhdHVyZXNbaV0udmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwT2JqKTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5tb2RhbEJ1c3kgPSB0cnVlO1xuXG4gICAgbGV0IGZlYXR1cmVzID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGZWF0dXJlTWFuYWdlbWVudFN0YXRlLmdldEZlYXR1cmVzKTtcblxuICAgIGZlYXR1cmVzID0gZmVhdHVyZXMubWFwKChmZWF0dXJlLCBpKSA9PiAoe1xuICAgICAgbmFtZTogZmVhdHVyZS5uYW1lLFxuICAgICAgdmFsdWU6ICF0aGlzLmZvcm0udmFsdWVbaV0gfHwgdGhpcy5mb3JtLnZhbHVlW2ldID09PSAnZmFsc2UnID8gbnVsbCA6IHRoaXMuZm9ybS52YWx1ZVtpXSxcbiAgICB9KSk7XG5cbiAgICB0aGlzLnN0b3JlXG4gICAgICAuZGlzcGF0Y2goXG4gICAgICAgIG5ldyBVcGRhdGVGZWF0dXJlcyh7XG4gICAgICAgICAgcHJvdmlkZXJLZXk6IHRoaXMucHJvdmlkZXJLZXksXG4gICAgICAgICAgcHJvdmlkZXJOYW1lOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RhbEJ1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxufVxuIl19 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/components/index.js b/npm/ng-packs/dist/feature-management/esm5/lib/components/index.js new file mode 100644 index 0000000000..6b85ebc3c5 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/feature-management.module.js b/npm/ng-packs/dist/feature-management/esm5/lib/feature-management.module.js new file mode 100644 index 0000000000..f47db748c8 --- /dev/null +++ b/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== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/models/feature-management.js b/npm/ng-packs/dist/feature-management/esm5/lib/models/feature-management.js new file mode 100644 index 0000000000..0305b2db6b --- /dev/null +++ b/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== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/models/index.js b/npm/ng-packs/dist/feature-management/esm5/lib/models/index.js new file mode 100644 index 0000000000..051244297f --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/services/feature-management.service.js b/npm/ng-packs/dist/feature-management/esm5/lib/services/feature-management.service.js new file mode 100644 index 0000000000..2246bae0ef --- /dev/null +++ b/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== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/states/feature-management.state.js b/npm/ng-packs/dist/feature-management/esm5/lib/states/feature-management.state.js new file mode 100644 index 0000000000..21d88ef75e --- /dev/null +++ b/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== \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/lib/states/index.js b/npm/ng-packs/dist/feature-management/esm5/lib/states/index.js new file mode 100644 index 0000000000..9b8a3b3a43 --- /dev/null +++ b/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= \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/esm5/public-api.js b/npm/ng-packs/dist/feature-management/esm5/public-api.js new file mode 100644 index 0000000000..2ca23efea6 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js new file mode 100644 index 0000000000..a761573caf --- /dev/null +++ b/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: "\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n
    \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 diff --git a/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map new file mode 100644 index 0000000000..66b084481e --- /dev/null +++ b/npm/ng-packs/dist/feature-management/fesm2015/abp-ng.feature-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js new file mode 100644 index 0000000000..92b041d57b --- /dev/null +++ b/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: "\n \n

    {{ 'AbpTenantManagement::Permission:ManageFeatures' | abpLocalization }}

    \n
    \n\n \n
    \n \n
    {{ feature.name }}
    \n
    \n \n
    \n
    \n \n
    \n \n \n
    \n\n \n \n \n {{ 'AbpFeatureManagement::Save' | abpLocalization }}\n \n \n
    \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 diff --git a/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map new file mode 100644 index 0000000000..94ecafeb19 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/fesm5/abp-ng.feature-management.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-ng.feature-management.js","sources":["ng://@abp/ng.feature-management/lib/actions/feature-management.actions.ts","ng://@abp/ng.feature-management/lib/services/feature-management.service.ts","ng://@abp/ng.feature-management/lib/states/feature-management.state.ts","ng://@abp/ng.feature-management/lib/components/feature-management/feature-management.component.ts","ng://@abp/ng.feature-management/lib/feature-management.module.ts"],"sourcesContent":["import { FeatureManagement } from '../models';\n\nexport class GetFeatures {\n static readonly type = '[FeatureManagement] Get Features';\n constructor(public payload: FeatureManagement.Provider) {}\n}\n\nexport class UpdateFeatures {\n static readonly type = '[FeatureManagement] Update Features';\n constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {}\n}\n","import { Injectable } from '@angular/core';\nimport { RestService, Rest } from '@abp/ng.core';\nimport { Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { FeatureManagement } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FeatureManagementService {\n constructor(private rest: RestService, private store: Store) {}\n\n getFeatures(params: FeatureManagement.Provider): Observable {\n const request: Rest.Request = {\n method: 'GET',\n url: '/api/abp/features',\n params,\n };\n return this.rest.request(request);\n }\n\n updateFeatures({\n features,\n providerKey,\n providerName,\n }: FeatureManagement.Provider & FeatureManagement.Features): Observable {\n const request: Rest.Request = {\n method: 'PUT',\n url: '/api/abp/features',\n body: { features },\n params: { providerKey, providerName },\n };\n return this.rest.request(request);\n }\n}\n","import { Action, Selector, State, StateContext } from '@ngxs/store';\nimport { tap } from 'rxjs/operators';\nimport { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions';\nimport { FeatureManagement } from '../models/feature-management';\nimport { FeatureManagementService } from '../services/feature-management.service';\n\n@State({\n name: 'FeatureManagementState',\n defaults: { features: {} } as FeatureManagement.State,\n})\nexport class FeatureManagementState {\n @Selector()\n static getFeatures({ features }: FeatureManagement.State) {\n return features;\n }\n\n constructor(private featureManagementService: FeatureManagementService) {}\n\n @Action(GetFeatures)\n getFeatures({ patchState }: StateContext, { payload }: GetFeatures) {\n return this.featureManagementService.getFeatures(payload).pipe(\n tap(({ features }) =>\n patchState({\n features,\n }),\n ),\n );\n }\n\n @Action(UpdateFeatures)\n updateFeatures(_, { payload }: UpdateFeatures) {\n return this.featureManagementService.updateFeatures(payload);\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { Select, Store } from '@ngxs/store';\nimport { Observable } from 'rxjs';\nimport { GetFeatures, UpdateFeatures } from '../../actions';\nimport { FeatureManagement } from '../../models/feature-management';\nimport { FeatureManagementState } from '../../states';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { pluck, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'abp-feature-management',\n templateUrl: './feature-management.component.html',\n})\nexport class FeatureManagementComponent {\n @Input()\n providerKey: string;\n\n @Input()\n providerName: string;\n\n protected _visible;\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (value) this.openModal();\n }\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Select(FeatureManagementState.getFeatures)\n features$: Observable;\n\n modalBusy: boolean = false;\n\n form: FormGroup;\n\n constructor(private store: Store) {}\n\n openModal() {\n if (!this.providerKey || !this.providerName) {\n throw new Error('Provider Key and Provider Name are required.');\n }\n\n this.getFeatures();\n }\n\n getFeatures() {\n this.store\n .dispatch(new GetFeatures({ providerKey: this.providerKey, providerName: this.providerName }))\n .pipe(pluck('FeatureManagementState', 'features'))\n .subscribe(features => {\n this.buildForm(features);\n });\n }\n\n buildForm(features) {\n const formGroupObj = {};\n\n for (let i = 0; i < features.length; i++) {\n formGroupObj[i] = new FormControl(features[i].value === 'false' ? null : features[i].value);\n }\n\n this.form = new FormGroup(formGroupObj);\n }\n\n save() {\n this.modalBusy = true;\n\n let features = this.store.selectSnapshot(FeatureManagementState.getFeatures);\n\n features = features.map((feature, i) => ({\n name: feature.name,\n value: !this.form.value[i] || this.form.value[i] === 'false' ? null : this.form.value[i],\n }));\n\n this.store\n .dispatch(\n new UpdateFeatures({\n providerKey: this.providerKey,\n providerName: this.providerName,\n features,\n }),\n )\n .subscribe(() => {\n this.modalBusy = false;\n this.visible = false;\n });\n }\n}\n","import { CoreModule } from '@abp/ng.core';\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\nimport { NgModule } from '@angular/core';\nimport { FeatureManagementComponent } from './components/feature-management/feature-management.component';\nimport { NgxsModule } from '@ngxs/store';\nimport { FeatureManagementState } from './states/feature-management.state';\n\n@NgModule({\n declarations: [FeatureManagementComponent],\n imports: [CoreModule, ThemeSharedModule, NgxsModule.forFeature([FeatureManagementState])],\n exports: [FeatureManagementComponent],\n})\nexport class FeatureManagementModule {}\n"],"names":["tslib_1.__decorate"],"mappings":"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"} \ No newline at end of file diff --git a/npm/ng-packs/dist/feature-management/lib/actions/feature-management.actions.d.ts b/npm/ng-packs/dist/feature-management/lib/actions/feature-management.actions.d.ts new file mode 100644 index 0000000000..d2fffb49d0 --- /dev/null +++ b/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); +} diff --git a/npm/ng-packs/dist/feature-management/lib/actions/index.d.ts b/npm/ng-packs/dist/feature-management/lib/actions/index.d.ts new file mode 100644 index 0000000000..66678fb322 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/lib/actions/index.d.ts @@ -0,0 +1 @@ +export * from './feature-management.actions'; diff --git a/npm/ng-packs/dist/feature-management/lib/components/feature-management/feature-management.component.d.ts b/npm/ng-packs/dist/feature-management/lib/components/feature-management/feature-management.component.d.ts new file mode 100644 index 0000000000..833932e220 --- /dev/null +++ b/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; + features$: Observable; + modalBusy: boolean; + form: FormGroup; + constructor(store: Store); + openModal(): void; + getFeatures(): void; + buildForm(features: any): void; + save(): void; +} diff --git a/npm/ng-packs/dist/feature-management/lib/components/index.d.ts b/npm/ng-packs/dist/feature-management/lib/components/index.d.ts new file mode 100644 index 0000000000..64f8bd0fc5 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/lib/components/index.d.ts @@ -0,0 +1 @@ +export * from './feature-management/feature-management.component'; diff --git a/npm/ng-packs/dist/feature-management/lib/feature-management.module.d.ts b/npm/ng-packs/dist/feature-management/lib/feature-management.module.d.ts new file mode 100644 index 0000000000..4ea54a429d --- /dev/null +++ b/npm/ng-packs/dist/feature-management/lib/feature-management.module.d.ts @@ -0,0 +1,2 @@ +export declare class FeatureManagementModule { +} diff --git a/npm/ng-packs/dist/feature-management/lib/models/feature-management.d.ts b/npm/ng-packs/dist/feature-management/lib/models/feature-management.d.ts new file mode 100644 index 0000000000..22ad0d4f65 --- /dev/null +++ b/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; + } +} diff --git a/npm/ng-packs/dist/feature-management/lib/models/index.d.ts b/npm/ng-packs/dist/feature-management/lib/models/index.d.ts new file mode 100644 index 0000000000..d6ed522ae0 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/lib/models/index.d.ts @@ -0,0 +1 @@ +export * from './feature-management'; diff --git a/npm/ng-packs/dist/feature-management/lib/services/feature-management.service.d.ts b/npm/ng-packs/dist/feature-management/lib/services/feature-management.service.d.ts new file mode 100644 index 0000000000..844bb49f31 --- /dev/null +++ b/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; + updateFeatures({ features, providerKey, providerName, }: FeatureManagement.Provider & FeatureManagement.Features): Observable; +} diff --git a/npm/ng-packs/dist/feature-management/lib/states/feature-management.state.d.ts b/npm/ng-packs/dist/feature-management/lib/states/feature-management.state.d.ts new file mode 100644 index 0000000000..d7e1966d8f --- /dev/null +++ b/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, { payload }: GetFeatures): import("rxjs").Observable; + updateFeatures(_: any, { payload }: UpdateFeatures): import("rxjs").Observable; +} diff --git a/npm/ng-packs/dist/feature-management/lib/states/index.d.ts b/npm/ng-packs/dist/feature-management/lib/states/index.d.ts new file mode 100644 index 0000000000..5c32d87889 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/lib/states/index.d.ts @@ -0,0 +1 @@ +export * from "./feature-management.state"; diff --git a/npm/ng-packs/dist/feature-management/package.json b/npm/ng-packs/dist/feature-management/package.json new file mode 100644 index 0000000000..6be326f57a --- /dev/null +++ b/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 +} diff --git a/npm/ng-packs/dist/feature-management/public-api.d.ts b/npm/ng-packs/dist/feature-management/public-api.d.ts new file mode 100644 index 0000000000..047ac00914 --- /dev/null +++ b/npm/ng-packs/dist/feature-management/public-api.d.ts @@ -0,0 +1,2 @@ +export * from './lib/feature-management.module'; +export * from './lib/components'; diff --git a/npm/ng-packs/packages/feature-management/ng-package.json b/npm/ng-packs/packages/feature-management/ng-package.json index 0305bb9206..36ae3f8b13 100644 --- a/npm/ng-packs/packages/feature-management/ng-package.json +++ b/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"] } diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index f41fd28fa1..d5ebc57681 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/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" + } } diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 0e415b4e80..afdf53548f 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/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" diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 6ed4fbe8eb..a71bc08def 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/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",