@posiwise/admin-module 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/esm2020/lib/admin.module.mjs +34 -4
  2. package/esm2020/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +6 -6
  3. package/esm2020/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +4 -4
  4. package/esm2020/lib/components/config/global-config-details/global-config-details.component.mjs +7 -6
  5. package/esm2020/lib/components/config/global-config-list/global-config-list.component.mjs +6 -6
  6. package/esm2020/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +5 -5
  7. package/esm2020/lib/components/credentials/credentials/credentials.component.mjs +6 -6
  8. package/esm2020/lib/components/credentials/credentials-details/credentials-details.component.mjs +8 -7
  9. package/esm2020/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +5 -5
  10. package/esm2020/lib/components/credentials/subscription-credentials-details/subscription-credentials-details.component.mjs +4 -4
  11. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +7 -6
  12. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +4 -4
  13. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +4 -4
  14. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +4 -4
  15. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +4 -4
  16. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +4 -4
  17. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +4 -4
  18. package/esm2020/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +7 -7
  19. package/esm2020/lib/components/faqs/faqs-list/faqs-list.component.mjs +15 -12
  20. package/esm2020/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.mjs +3 -3
  21. package/esm2020/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +6 -6
  22. package/esm2020/lib/components/generic/generic-misc/generic-misc.component.mjs +4 -3
  23. package/esm2020/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +10 -8
  24. package/esm2020/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +7 -7
  25. package/esm2020/lib/components/newsletters/newsletter-details/newsletter-details.component.mjs +7 -6
  26. package/esm2020/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +14 -10
  27. package/esm2020/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +5 -5
  28. package/esm2020/lib/components/newsletters/newsletters-insight/newsletters-insight.component.mjs +5 -4
  29. package/esm2020/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +12 -11
  30. package/esm2020/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +7 -7
  31. package/esm2020/lib/components/permissions/permissions-details/permissions-details.component.mjs +8 -7
  32. package/esm2020/lib/components/permissions/permissions-list/permissions-list.component.mjs +5 -5
  33. package/esm2020/lib/components/permissions/role-details/role-details.component.mjs +8 -7
  34. package/esm2020/lib/components/permissions/roles-list/roles-list.component.mjs +5 -5
  35. package/esm2020/lib/components/products/product-details/product-details.component.mjs +10 -7
  36. package/esm2020/lib/components/products/products-insight/products-insight.component.mjs +7 -6
  37. package/esm2020/lib/components/products/products-list/products-list.component.mjs +11 -10
  38. package/esm2020/lib/components/products/users-list-for-product/users-list-for-product.component.mjs +5 -5
  39. package/esm2020/lib/components/subscriptions/subscription-agents/subscription-agents.component.mjs +4 -4
  40. package/esm2020/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +5 -5
  41. package/esm2020/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +13 -11
  42. package/esm2020/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +8 -7
  43. package/esm2020/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +7 -7
  44. package/esm2020/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +7 -7
  45. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +10 -9
  46. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +7 -6
  47. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +7 -6
  48. package/esm2020/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +11 -10
  49. package/esm2020/lib/components/tags/tags-category/tags-category.component.mjs +4 -4
  50. package/esm2020/lib/components/tags/tags-list/tags-list.component.mjs +9 -8
  51. package/esm2020/lib/components/tips/tip-detail/tip-detail.component.mjs +7 -6
  52. package/esm2020/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +8 -6
  53. package/esm2020/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +9 -8
  54. package/esm2020/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +8 -7
  55. package/esm2020/lib/components/tracking/events/events.component.mjs +8 -7
  56. package/esm2020/lib/components/tracking/versions/versions.component.mjs +8 -6
  57. package/esm2020/lib/components/users/user-details/user-details.component.mjs +9 -7
  58. package/esm2020/lib/components/users/users-insight/users-insight.component.mjs +5 -4
  59. package/esm2020/lib/components/users/users-list/users-list.component.mjs +11 -10
  60. package/fesm2015/admin-module.mjs +137 -101
  61. package/fesm2015/admin-module.mjs.map +1 -1
  62. package/fesm2020/admin-module.mjs +137 -101
  63. package/fesm2020/admin-module.mjs.map +1 -1
  64. package/lib/admin.module.d.ts +17 -11
  65. package/package.json +1 -1
@@ -9,11 +9,12 @@ import { ValidateForm } from '@posiwise/utils';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../../../admin.service";
11
11
  import * as i2 from "@angular/common";
12
- import * as i3 from "primeng/tabmenu";
13
- import * as i4 from "@posiwise/shared-components";
14
- import * as i5 from "@posiwise/directives";
15
- import * as i6 from "@angular/forms";
16
- import * as i7 from "@ngneat/transloco";
12
+ import * as i3 from "@angular/forms";
13
+ import * as i4 from "ngx-ui-switch";
14
+ import * as i5 from "primeng/tabmenu";
15
+ import * as i6 from "@posiwise/shared-components";
16
+ import * as i7 from "@posiwise/directives";
17
+ import * as i8 from "@ngneat/transloco";
17
18
  export class RoleDetailsComponent extends AppBaseComponent {
18
19
  constructor(adminService, injector) {
19
20
  super(injector);
@@ -97,7 +98,7 @@ export class RoleDetailsComponent extends AppBaseComponent {
97
98
  }
98
99
  }
99
100
  RoleDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: RoleDetailsComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
100
- RoleDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: RoleDetailsComponent, selector: "pw-role-details", viewQueries: [{ propertyName: "menu", first: true, predicate: ["menuItems"], descendants: true, static: true }, { propertyName: "permissionTree", first: true, predicate: ["permissionTree"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu #menuItems\n [model]=\"items\"\n [activeItem]=\"activeItem\"\n (click)=\"activateMenu()\">\n </p-tabMenu>\n\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <ng-template [ngIf]=\"activeItem.id === 'details'\">\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"previous()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Role: {{ role?.name }}</h3>\n </div>\n </div>\n </div>\n\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"mb-3\">\n <label>{{ 'Admin.Roles.RoleName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3 text-center\">\n <label>{{ 'Admin.Roles.IsActive' | transloco }}</label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Roles.Create'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template [ngIf]=\"activeItem.id === 'permission'\">\n <div class=\"p-4\">\n <ng-container *ngIf=\"permissions\">\n <permission-tree [data]=\"permissions\"\n #permissionTree></permission-tree>\n\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"savePermission()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass"], outputs: ["activeItemChange"] }, { kind: "component", type: i4.PermissionTreeComponent, selector: "permission-tree", inputs: ["data"] }, { kind: "directive", type: i5.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] });
101
+ RoleDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: RoleDetailsComponent, selector: "pw-role-details", viewQueries: [{ propertyName: "menu", first: true, predicate: ["menuItems"], descendants: true, static: true }, { propertyName: "permissionTree", first: true, predicate: ["permissionTree"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu #menuItems\n [model]=\"items\"\n [activeItem]=\"activeItem\"\n (click)=\"activateMenu()\">\n </p-tabMenu>\n\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <ng-template [ngIf]=\"activeItem.id === 'details'\">\n <div class=\"mb-4\">\n <div class=\"d-flex align-items-center\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"previous()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"\">Role: {{ role?.name }}</h3>\n </div>\n </div>\n </div>\n\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-8\">\n <div class=\"mb-3\">\n <label>{{ 'Admin.Roles.RoleName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3 text-center\">\n <label>{{ 'Admin.Roles.IsActive' | transloco }}</label>\n <br />\n <ui-switch class=\"d-block\"\n formControlName=\"active\"\n name=\"active\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Roles.Create'\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </ng-template>\n\n <ng-template [ngIf]=\"activeItem.id === 'permission'\">\n <div class=\"p-4\">\n <ng-container *ngIf=\"permissions\">\n <permission-tree [data]=\"permissions\"\n #permissionTree></permission-tree>\n\n <div class=\"row mt-5 text-end\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onDiscard()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"savePermission()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.UiSwitchComponent, selector: "ui-switch", inputs: ["size", "color", "switchOffColor", "switchColor", "defaultBgColor", "defaultBoColor", "checkedLabel", "uncheckedLabel", "checkedTextColor", "uncheckedTextColor", "beforeChange", "checked", "disabled", "reverse", "loading"], outputs: ["change", "changeEvent", "valueChange"] }, { kind: "component", type: i5.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass"], outputs: ["activeItemChange"] }, { kind: "component", type: i6.PermissionTreeComponent, selector: "permission-tree", inputs: ["data"] }, { kind: "directive", type: i7.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i8.TranslocoPipe, name: "transloco" }] });
101
102
  __decorate([
102
103
  ValidateForm('form'),
103
104
  __metadata("design:type", Function),
@@ -114,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
114
115
  type: ViewChild,
115
116
  args: ['permissionTree', { static: false }]
116
117
  }], onSave: [] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9yb2xlLWRldGFpbHMvcm9sZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9yb2xlLWRldGFpbHMvcm9sZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFNL0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQW1CdEQsWUFBb0IsWUFBMEIsRUFBRSxRQUFrQjtRQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUUxQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1QsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3RFLEVBQUUsRUFBRSxF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QUN4QixDQUFDOztpSEFoSFEsb0JBQW9CO3FHQUFwQixvQkFBb0Isa1NDakJqQyxxZ0dBc0ZBO0FEZ0JJO0lBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQzs7OztrREFhcEI7MkZBbEdRLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSxpQkFBaUI7MEhBSWUsSUFBSTtzQkFBN0MsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVRLGNBQWM7c0JBQTdELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQW1GOUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwQWRtaW4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL2FkbWluLm1vZGVsJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25UcmVlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL3NoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IFJvbGUgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuaW1wb3J0IHsgVmFsaWRhdGVGb3JtIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1yb2xlLWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yb2xlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdtZW51SXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtZW51OiBNZW51SXRlbVtdO1xuXG4gICAgQFZpZXdDaGlsZCgncGVybWlzc2lvblRyZWUnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGVybWlzc2lvblRyZWU6IFBlcm1pc3Npb25UcmVlQ29tcG9uZW50O1xuXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIGlkOiBudW1iZXI7XG5cbiAgICByb2xlOiBSb2xlO1xuXG4gICAgYWN0aXZlSXRlbTogTWVudUl0ZW07XG5cbiAgICBpdGVtczogTWVudUl0ZW1bXTtcblxuICAgIHBlcm1pc3Npb25zOiBhbnk7XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdkZXRhaWxzJywgbGFiZWw6ICdSb2xlIGRldGFpbHMnLCBpY29uOiAnZmEgZmEtZncgZmEtdXNlci1jb2cnIH0sXG4gICAgICAgICAgICB7IGlkOiAncGVybWlzc2lvbicsIGxhYmVsOiAnUm9sZSBQZXJtaXNzaW9ucycsIGljb246ICdmYSBmYS1mdyBmYS1zaWduYXR1cmUnIH1cbiAgICAgICAgXTtcblxuICAgICAgICBbdGhpcy5hY3RpdmVJdGVtXSA9IHRoaXMuaXRlbXM7XG5cbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0Um9sZXNGb3JtKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgoZGF0YTogUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKGRhdGFbJ2lkJ10pO1xuICAgICAgICAgICAgdGhpcy5nZXRSb2xlRGV0YWlscygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvbGVQZXJtaXNzaW9ucygpIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRQZXJtaXNzaW9uQnlSb2xlKHRoaXMuaWQpLnN1YnNjcmliZShwZXJtaXNzaW9ucyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRQZXJtaXNzaW9uVHJlZURhdGFCeVJvbGUocGVybWlzc2lvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhY3RpdmF0ZU1lbnUoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbSA9IHRoaXMubWVudVsnYWN0aXZlSXRlbSddO1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJdGVtLmlkID09PSAncGVybWlzc2lvbicpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9sZVBlcm1pc3Npb25zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvbGVEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5nZXRSb2xlcyh7fSwgdGhpcy5zdWJzY3JpcHRpb25JZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5yb2xlcyAmJiByZXNwb25zZS5yb2xlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb2xlID0gcmVzcG9uc2Uucm9sZXMuZmluZCh4ID0+IHguaWQgPT09IHRoaXMuaWQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJvbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5yb2xlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVQZXJtaXNzaW9uKCkge1xuICAgICAgICBjb25zdCBjaGVja2VkID0gdGhpcy5wZXJtaXNzaW9uVHJlZS5nZXRHcmFudGVkUGVybWlzc2lvbk5hbWVzKCk7XG4gICAgICAgIGNvbnN0IGdyYW50ZWQgPSBbXTtcbiAgICAgICAgY2hlY2tlZC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgcGVybWlzc2lvbklkID0gdGhpcy5wZXJtaXNzaW9ucy5wZXJtaXNzaW9ucy5maW5kKHggPT4geC5uYW1lID09PSBpdGVtKVsnaWQnXTtcbiAgICAgICAgICAgIGdyYW50ZWQucHVzaCh7XG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbl9pZDogcGVybWlzc2lvbklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgdGhpcyk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIHJvbGVfaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICByb2xlX3Blcm1pc3Npb25zOiBncmFudGVkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5zYXZlVXNlclBlcm1pc3Npb24oZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uUm9sZXMuUGVybWlzc2lvbnMuVXBkYXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQFZhbGlkYXRlRm9ybSgnZm9ybScpXG4gICAgb25TYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtLnZhbHVlWydpZCddKSB7XG4gICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZS5zYXZlUm9sZSh0aGlzLmZvcm0udmFsdWUsIHRoaXMuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5Sb2xlcy5BZGRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmFkZFJvbGUodGhpcy5mb3JtLnZhbHVlKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uUm9sZXMuVXBkYXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZpb3VzKCkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgfVxuXG4gICAgb25EaXNjYXJkKCkge1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5iYWNrKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxwLXRhYk1lbnUgI21lbnVJdGVtc1xuICAgIFttb2RlbF09XCJpdGVtc1wiXG4gICAgW2FjdGl2ZUl0ZW1dPVwiYWN0aXZlSXRlbVwiXG4gICAgKGNsaWNrKT1cImFjdGl2YXRlTWVudSgpXCI+XG4gIDwvcC10YWJNZW51PlxuXG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJhY3RpdmVJdGVtLmlkID09PSAnZGV0YWlscydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLWF1dG8gY29sLXhzLTZcIj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlvdXNcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWFsdC1jaXJjbGUtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gICAgICAgICAgICAgIDxoMyBjbGFzcz1cIlwiPlJvbGU6IHt7IHJvbGU/Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtOFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQWRtaW4uUm9sZXMuUm9sZU5hbWUnIHwgdHJhbnNsb2NvIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdBZG1pbi5Sb2xlcy5Jc0FjdGl2ZScgfCB0cmFuc2xvY28gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgIDx1aS1zd2l0Y2ggY2xhc3M9XCJkLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01IHRleHQtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGVmYXVsdCBtZS0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EaXNjYXJkKClcIj5cbiAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLkNhbmNlbCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQWRtaW4uUm9sZXMuQ3JlYXRlJ1wiPlxuICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uU2F2ZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImFjdGl2ZUl0ZW0uaWQgPT09ICdwZXJtaXNzaW9uJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgICA8cGVybWlzc2lvbi10cmVlIFtkYXRhXT1cInBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgI3Blcm1pc3Npb25UcmVlPjwvcGVybWlzc2lvbi10cmVlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgdGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGlzY2FyZCgpXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLkNhbmNlbCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVQZXJtaXNzaW9uKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uU2F2ZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9yb2xlLWRldGFpbHMvcm9sZS1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9yb2xlLWRldGFpbHMvcm9sZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFtQnRELFlBQW9CLFlBQTBCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREEsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUMsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNULEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUN0RSxFQUFFLEVBQUUs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SUFDeEIsQ0FBQzs7aUhBaEhRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGtTQ2pCakMscWdHQXNGQTtBRGdCSTtJQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7a0RBYXBCOzJGQWxHUSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0ksaUJBQWlCOzBIQUllLElBQUk7c0JBQTdDLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFUSxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFtRjlDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9hZG1pbi5tb2RlbCc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uVHJlZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9zaGFyZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctcm9sZS1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcm9sZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSb2xlRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnbWVudUl0ZW1zJywgeyBzdGF0aWM6IHRydWUgfSkgbWVudTogTWVudUl0ZW1bXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3Blcm1pc3Npb25UcmVlJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBlcm1pc3Npb25UcmVlOiBQZXJtaXNzaW9uVHJlZUNvbXBvbmVudDtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBpZDogbnVtYmVyO1xuXG4gICAgcm9sZTogUm9sZTtcblxuICAgIGFjdGl2ZUl0ZW06IE1lbnVJdGVtO1xuXG4gICAgaXRlbXM6IE1lbnVJdGVtW107XG5cbiAgICBwZXJtaXNzaW9uczogYW55O1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuaXRlbXMgPSBbXG4gICAgICAgICAgICB7IGlkOiAnZGV0YWlscycsIGxhYmVsOiAnUm9sZSBkZXRhaWxzJywgaWNvbjogJ2ZhIGZhLWZ3IGZhLXVzZXItY29nJyB9LFxuICAgICAgICAgICAgeyBpZDogJ3Blcm1pc3Npb24nLCBsYWJlbDogJ1JvbGUgUGVybWlzc2lvbnMnLCBpY29uOiAnZmEgZmEtZncgZmEtc2lnbmF0dXJlJyB9XG4gICAgICAgIF07XG5cbiAgICAgICAgW3RoaXMuYWN0aXZlSXRlbV0gPSB0aGlzLml0ZW1zO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmdldFJvbGVzRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKGRhdGE6IFBhcmFtcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pZCA9IE51bWJlcihkYXRhWydpZCddKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0Um9sZURldGFpbHMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb2xlUGVybWlzc2lvbnMoKSB7XG4gICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0UGVybWlzc2lvbkJ5Um9sZSh0aGlzLmlkKS5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0UGVybWlzc2lvblRyZWVEYXRhQnlSb2xlKHBlcm1pc3Npb25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWN0aXZhdGVNZW51KCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0gPSB0aGlzLm1lbnVbJ2FjdGl2ZUl0ZW0nXTtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbS5pZCA9PT0gJ3Blcm1pc3Npb24nKSB7XG4gICAgICAgICAgICB0aGlzLmdldFJvbGVQZXJtaXNzaW9ucygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb2xlRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZ2V0Um9sZXMoe30sIHRoaXMuc3Vic2NyaXB0aW9uSWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uucm9sZXMgJiYgcmVzcG9uc2Uucm9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm9sZSA9IHJlc3BvbnNlLnJvbGVzLmZpbmQoeCA9PiB4LmlkID09PSB0aGlzLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yb2xlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMucm9sZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzYXZlUGVybWlzc2lvbigpIHtcbiAgICAgICAgY29uc3QgY2hlY2tlZCA9IHRoaXMucGVybWlzc2lvblRyZWUuZ2V0R3JhbnRlZFBlcm1pc3Npb25OYW1lcygpO1xuICAgICAgICBjb25zdCBncmFudGVkID0gW107XG4gICAgICAgIGNoZWNrZWQuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25JZCA9IHRoaXMucGVybWlzc2lvbnMucGVybWlzc2lvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gaXRlbSlbJ2lkJ107XG4gICAgICAgICAgICBncmFudGVkLnB1c2goe1xuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25faWQ6IHBlcm1pc3Npb25JZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRoaXMpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICByb2xlX2lkOiB0aGlzLmlkLFxuICAgICAgICAgICAgcm9sZV9wZXJtaXNzaW9uczogZ3JhbnRlZFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2Uuc2F2ZVVzZXJQZXJtaXNzaW9uKGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlJvbGVzLlBlcm1pc3Npb25zLlVwZGF0ZWRNZXNzYWdlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWx1ZVsnaWQnXSkge1xuICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2Uuc2F2ZVJvbGUodGhpcy5mb3JtLnZhbHVlLCB0aGlzLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uUm9sZXMuQWRkZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkbWluU2VydmljZS5hZGRSb2xlKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlJvbGVzLlVwZGF0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcmV2aW91cygpIHtcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuYmFjaygpO1xuICAgIH1cblxuICAgIG9uRGlzY2FyZCgpIHtcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgIHRoaXMuYmFjaygpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICA8cC10YWJNZW51ICNtZW51SXRlbXNcbiAgICBbbW9kZWxdPVwiaXRlbXNcIlxuICAgIFthY3RpdmVJdGVtXT1cImFjdGl2ZUl0ZW1cIlxuICAgIChjbGljayk9XCJhY3RpdmF0ZU1lbnUoKVwiPlxuICA8L3AtdGFiTWVudT5cblxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiYWN0aXZlSXRlbS5pZCA9PT0gJ2RldGFpbHMnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02XCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91cygpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByZXZpb3VzXCI+PGkgY2xhc3M9XCJmYSBmYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxuICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJcIj5Sb2xlOiB7eyByb2xlPy5uYW1lIH19PC9oMz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblNhdmUoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLThcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0FkbWluLlJvbGVzLlJvbGVOYW1lJyB8IHRyYW5zbG9jbyB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQWRtaW4uUm9sZXMuSXNBY3RpdmUnIHwgdHJhbnNsb2NvIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICA8dWktc3dpdGNoIGNsYXNzPVwiZC1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImFjdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDwvdWktc3dpdGNoPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGlzY2FyZCgpXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlJvbGVzLkNyZWF0ZSdcIj5cbiAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLlNhdmUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJhY3RpdmVJdGVtLmlkID09PSAncGVybWlzc2lvbidcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwZXJtaXNzaW9uc1wiPlxuICAgICAgICAgICAgPHBlcm1pc3Npb24tdHJlZSBbZGF0YV09XCJwZXJtaXNzaW9uc1wiXG4gICAgICAgICAgICAgICNwZXJtaXNzaW9uVHJlZT48L3Blcm1pc3Npb24tdHJlZT5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01IHRleHQtZW5kXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGVmYXVsdCBtZS0yXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRpc2NhcmQoKVwiPlxuICAgICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlUGVybWlzc2lvbigpXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLlNhdmUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -10,10 +10,10 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "../../../admin.service";
11
11
  import * as i2 from "primeng/table";
12
12
  import * as i3 from "primeng/api";
13
- import * as i4 from "@angular/router";
14
- import * as i5 from "@posiwise/directives";
15
- import * as i6 from "@ng-bootstrap/ng-bootstrap";
16
- import * as i7 from "@angular/forms";
13
+ import * as i4 from "@angular/forms";
14
+ import * as i5 from "@angular/router";
15
+ import * as i6 from "@posiwise/directives";
16
+ import * as i7 from "@ng-bootstrap/ng-bootstrap";
17
17
  import * as i8 from "@ngneat/transloco";
18
18
  export class RolesListComponent extends AppBaseComponent {
19
19
  constructor(adminService, injector, cdr) {
@@ -75,7 +75,7 @@ export class RolesListComponent extends AppBaseComponent {
75
75
  }
76
76
  }
77
77
  RolesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: RolesListComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
78
- RolesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: RolesListComponent, selector: "pw-admin-roles-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Roles</h2>\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.rolesDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Role\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt-0 table-responsive\">\n <p-table #dt\n [value]=\"roles\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Role...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Admin.Roles.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-role>\n <tr>\n <td data-head=\"Name\">{{ role.name }}</td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: role?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ role?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.rolesDetails + role.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDeleteRole(role)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"], dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i5.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i6.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i8.TranslocoPipe, name: "transloco" }] });
78
+ RolesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: RolesListComponent, selector: "pw-admin-roles-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Roles</h2>\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.rolesDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Role\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt-0 table-responsive\">\n <p-table #dt\n [value]=\"roles\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Role...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Admin.Roles.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-role>\n <tr>\n <td data-head=\"Name\">{{ role.name }}</td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: role?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ role?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.rolesDetails + role.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDeleteRole(role)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"], dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i6.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i7.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i8.TranslocoPipe, name: "transloco" }] });
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: RolesListComponent, decorators: [{
80
80
  type: Component,
81
81
  args: [{ selector: 'pw-admin-roles-list', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center create-user my-3\">\n <h2 class=\"card-title p-0 float-start\">Roles</h2>\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"create-role\"\n [routerLink]=\"[routers.rolesDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Role\n </button>\n </div>\n</div>\n<div class=\"primeng-datatable-container mt-0 table-responsive\">\n <p-table #dt\n [value]=\"roles\"\n [paginator]=\"true\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n [totalRecords]=\"totalRecords\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search Role...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\n class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\"\n pSortableColumn=\"name\">\n {{ 'Label.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"active\">\n {{ 'Admin.Roles.IsActive' | transloco }}\n <p-sortIcon field=\"active\"></p-sortIcon>\n </th>\n <th class=\"actions-list-two\"\n scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-role>\n <tr>\n <td data-head=\"Name\">{{ role.name }}</td>\n <td data-head=\"Is Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: role?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ role?.active ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.rolesDetails + role.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDeleteRole(role)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalRecords }}</span>\n</div>\n", styles: [":root{--first: rgb(23 105 225);--second: rgb(54 194 131);--third: rgb(255 171 0);--text: rgb(34 34 34);--tabs_bg: rgb(23 105 225);--tabs_text: rgb(255 255 255);--titles: rgb(34 34 34);--sidebar_bg: rgb(0, 48, 63);--sidebar_text: rgb(255 255 255)}\n"] }]