@posiwise/admin-module 0.0.14 → 0.0.17

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 (34) hide show
  1. package/esm2020/lib/components/contact-us/contact-us-list/contact-us-list.component.mjs +8 -7
  2. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.mjs +5 -4
  3. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.mjs +6 -5
  4. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.mjs +6 -5
  5. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.mjs +5 -4
  6. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.mjs +6 -5
  7. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.mjs +6 -5
  8. package/esm2020/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.mjs +6 -5
  9. package/esm2020/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +8 -7
  10. package/esm2020/lib/components/faqs/faqs-list/faqs-list.component.mjs +10 -9
  11. package/esm2020/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.mjs +7 -6
  12. package/esm2020/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +6 -5
  13. package/esm2020/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +9 -8
  14. package/esm2020/lib/components/newsletters/newsletter-users-list/newsletter-users-list.component.mjs +7 -6
  15. package/esm2020/lib/components/newsletters/newsletters-items/newsletters-items.component.mjs +9 -8
  16. package/esm2020/lib/components/newsletters/newsletters-list/newsletters-list.component.mjs +8 -7
  17. package/esm2020/lib/components/products/products-insight/products-insight.component.mjs +5 -4
  18. package/esm2020/lib/components/products/products-list/products-list.component.mjs +7 -6
  19. package/esm2020/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +7 -6
  20. package/esm2020/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.mjs +7 -6
  21. package/esm2020/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +8 -7
  22. package/esm2020/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +8 -7
  23. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-nps/subscription-insight-nps.component.mjs +7 -6
  24. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscription-insight-revenue/subscription-insight-revenue.component.mjs +5 -4
  25. package/esm2020/lib/components/subscriptions/subscriptions-insight/subscriptions-insight.component.mjs +5 -4
  26. package/esm2020/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +8 -7
  27. package/esm2020/lib/components/tags/tags-list/tags-list.component.mjs +7 -6
  28. package/esm2020/lib/components/tips/tips-list/tips-list.component.mjs +8 -7
  29. package/esm2020/lib/components/users/users-insight/users-insight.component.mjs +3 -2
  30. package/fesm2015/admin-module.mjs +68 -67
  31. package/fesm2015/admin-module.mjs.map +1 -1
  32. package/fesm2020/admin-module.mjs +68 -67
  33. package/fesm2020/admin-module.mjs.map +1 -1
  34. package/package.json +4 -4
@@ -13,10 +13,11 @@ import * as i2 from "@posiwise/common-services";
13
13
  import * as i3 from "primeng/table";
14
14
  import * as i4 from "primeng/api";
15
15
  import * as i5 from "@angular/common";
16
- import * as i6 from "@posiwise/shared-components";
17
- import * as i7 from "@posiwise/directives";
18
- import * as i8 from "@angular/forms";
19
- import * as i9 from "@ngneat/transloco";
16
+ import * as i6 from "primeng/progressspinner";
17
+ import * as i7 from "@posiwise/shared-components";
18
+ import * as i8 from "@posiwise/directives";
19
+ import * as i9 from "@angular/forms";
20
+ import * as i10 from "@ngneat/transloco";
20
21
  export class TagsListComponent extends AppBaseComponent {
21
22
  constructor(injector, modalService, tagService, cdr) {
22
23
  super(injector);
@@ -132,9 +133,9 @@ export class TagsListComponent extends AppBaseComponent {
132
133
  }
133
134
  }
134
135
  TagsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TagsListComponent, deps: [{ token: i0.Injector }, { token: i1.NgbModal }, { token: i2.TagService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
135
- TagsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TagsListComponent, selector: "pw-admin-tags-list", usesInheritance: true, ngImport: i0, template: "<div class=\"mt-3\">\n <h2 class=\"card-title p-0\">Tags</h2>\n <p>\n Here you can define the tags to be used site-wide.<br />\n Tags need to be associated to categories (definable in the \"category\" tab).<br />\n Tags also need to be associated to a \"tag_type\", which is the entity you want to associate\n the tag to, for example \"user\".\n </p>\n</div>\n\n<div class=\"mt-3\">\n <div class=\"text-end\">\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n data-cy=\"create-tag\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onTagEdit(tagModal, null)\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tag\n </button>\n </div>\n</div>\n\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"totalTagRecordsUnFilter === 0\">\n <p-table #dt\n [value]=\"tags\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [totalRecords]=\"totalTagRecords\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\"\n [loading]=\"loading\">\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 Tag...\"\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=\"tag_category_id\">\n {{ 'Admin.Tags.Category' | transloco }}\n <p-sortIcon field=\"tag_category_id\"></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-item>\n <tr>\n <td data-head=\"Name\">{{ item?.name }}</td>\n <td data-head=\"Category\">{{ item?.category_name }}</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 *rbacAllow=\"'Pages.Admin.Roles.Edit'\"\n (click)=\"onTagEdit(tagModal, item)\">\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 *rbacAllow=\"'Pages.Admin.Roles.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalTagRecords === 0 && totalTagRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalTagRecords }}</span>\n</div>\n<pw-no-data [message]=\"'Admin.Tags.Category' | transloco\"\n *ngIf=\"totalTagRecordsUnFilter === 0 && !loading\">\n</pw-no-data>\n<!-- Tag Modal Template -->\n<ng-template #tagModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Tag</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"mb-3\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n placeholder=\"Tag Name\" />\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagTypes\"\n formControlName=\"tag_type\"\n placeholder=\"Tag Types\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagCategories\"\n formControlName=\"tag_category_id\"\n placeholder=\"Category\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"modal.close(); form.reset()\"></button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.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: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i7.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i9.TranslocoPipe, name: "transloco" }] });
136
+ TagsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TagsListComponent, selector: "pw-admin-tags-list", usesInheritance: true, ngImport: i0, template: "<div class=\"mt-3\">\n <h2 class=\"card-title p-0\">Tags</h2>\n <p>\n Here you can define the tags to be used site-wide.<br />\n Tags need to be associated to categories (definable in the \"category\" tab).<br />\n Tags also need to be associated to a \"tag_type\", which is the entity you want to associate\n the tag to, for example \"user\".\n </p>\n</div>\n\n<div class=\"mt-3\">\n <div class=\"text-end\">\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n data-cy=\"create-tag\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onTagEdit(tagModal, null)\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tag\n </button>\n </div>\n</div>\n\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"totalTagRecordsUnFilter === 0\">\n <p-table #dt\n [value]=\"tags\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [totalRecords]=\"totalTagRecords\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\"\n [loading]=\"loading\">\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 Tag...\"\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=\"tag_category_id\">\n {{ 'Admin.Tags.Category' | transloco }}\n <p-sortIcon field=\"tag_category_id\"></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-item>\n <tr>\n <td data-head=\"Name\">{{ item?.name }}</td>\n <td data-head=\"Category\">{{ item?.category_name }}</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 *rbacAllow=\"'Pages.Admin.Roles.Edit'\"\n (click)=\"onTagEdit(tagModal, item)\">\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 *rbacAllow=\"'Pages.Admin.Roles.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalTagRecords === 0 && totalTagRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalTagRecords }}</span>\n</div>\n<pw-no-data [message]=\"'Admin.Tags.Category' | transloco\"\n *ngIf=\"totalTagRecordsUnFilter === 0 && !loading\">\n</pw-no-data>\n<!-- Tag Modal Template -->\n<ng-template #tagModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Tag</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"mb-3\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n placeholder=\"Tag Name\" />\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagTypes\"\n formControlName=\"tag_type\"\n placeholder=\"Tag Types\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagCategories\"\n formControlName=\"tag_category_id\"\n placeholder=\"Category\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"modal.close(); form.reset()\"></button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.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: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { kind: "component", type: i7.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i8.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }] });
136
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TagsListComponent, decorators: [{
137
138
  type: Component,
138
139
  args: [{ selector: 'pw-admin-tags-list', template: "<div class=\"mt-3\">\n <h2 class=\"card-title p-0\">Tags</h2>\n <p>\n Here you can define the tags to be used site-wide.<br />\n Tags need to be associated to categories (definable in the \"category\" tab).<br />\n Tags also need to be associated to a \"tag_type\", which is the entity you want to associate\n the tag to, for example \"user\".\n </p>\n</div>\n\n<div class=\"mt-3\">\n <div class=\"text-end\">\n <button *rbacAllow=\"'Pages.Admin.Roles.Create'\"\n data-cy=\"create-tag\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"onTagEdit(tagModal, null)\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tag\n </button>\n </div>\n</div>\n\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"loading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n\n<div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"totalTagRecordsUnFilter === 0\">\n <p-table #dt\n [value]=\"tags\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [responsive]=\"true\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [totalRecords]=\"totalTagRecords\"\n [filterDelay]=\"1000\"\n [customSort]=\"true\"\n [loading]=\"loading\">\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 Tag...\"\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=\"tag_category_id\">\n {{ 'Admin.Tags.Category' | transloco }}\n <p-sortIcon field=\"tag_category_id\"></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-item>\n <tr>\n <td data-head=\"Name\">{{ item?.name }}</td>\n <td data-head=\"Category\">{{ item?.category_name }}</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 *rbacAllow=\"'Pages.Admin.Roles.Edit'\"\n (click)=\"onTagEdit(tagModal, item)\">\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 *rbacAllow=\"'Pages.Admin.Roles.Delete'\"\n (click)=\"onDelete(item)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n <div *ngIf=\"totalTagRecords === 0 && totalTagRecordsUnFilter !== 0\">\n <pw-no-data message=\"No Result\"> </pw-no-data>\n </div>\n <span class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ totalTagRecords }}</span>\n</div>\n<pw-no-data [message]=\"'Admin.Tags.Category' | transloco\"\n *ngIf=\"totalTagRecordsUnFilter === 0 && !loading\">\n</pw-no-data>\n<!-- Tag Modal Template -->\n<ng-template #tagModal\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Tag</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <form [formGroup]=\"form\">\n <div class=\"mb-3\">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n placeholder=\"Tag Name\" />\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagTypes\"\n formControlName=\"tag_type\"\n placeholder=\"Tag Types\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n <div class=\"mb-3\">\n <p-dropdown [options]=\"tagCategories\"\n formControlName=\"tag_category_id\"\n placeholder=\"Category\"\n [style]=\"{ width: '100%' }\">\n </p-dropdown>\n </div>\n </form>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"modal.close(); form.reset()\"></button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n" }]
139
140
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgbModal }, { type: i2.TagService }, { type: i0.ChangeDetectorRef }]; } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy90YWdzL3RhZ3MtbGlzdC90YWdzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RhZ3MvdGFncy1saXN0L3RhZ3MtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7O0FBTXRFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFxQm5ELFlBQ0ksUUFBa0IsRUFDVixZQUFzQixFQUN0QixVQUFzQixFQUN0QixHQUFzQjtRQUU5QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKUixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FB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QUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs4R0E3SVEsaUJBQWlCO2tHQUFqQixpQkFBaUIsaUZDbEI5QixxMUpBbUpBOzJGRGpJYSxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgc3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9hZG1pbi5tb2RlbCc7XG5pbXBvcnQgeyBQQUdFX1NJWkUgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcbmltcG9ydCB7IFByaW1lTmdIZWxwZXIsIFRhZ1NlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1hZG1pbi10YWdzLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWdzLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRhZ3NMaXN0Q29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICAgIHRhZ0NhdGVnb3JpZXMgPSBbXTtcblxuICAgIHRvdGFsQ2F0ZWdvcnlSZWNvcmRzOiBudW1iZXI7XG5cbiAgICB0YWdzOiBhbnlbXSA9IFtdO1xuXG4gICAgdG90YWxUYWdSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBsb2FkaW5nID0gdHJ1ZTtcblxuICAgIHNlYXJjaFRleHQgPSAnJztcblxuICAgIHRhZ1R5cGVzID0gW107XG5cbiAgICBwcml2YXRlIHBhZ2UgPSAxO1xuXG4gICAgdG90YWxUYWdSZWNvcmRzVW5GaWx0ZXIgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgICAgICBwcml2YXRlIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG5cbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0VGFnc0Zvcm0oKTtcbiAgICAgICAgdGhpcy5nZXRUYWdUeXBlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uTGF6eUxvYWQoZXZlbnQ6IExhenlMb2FkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFnZURldGFpbHMgPSBIZWxwZXJTZXJ2aWNlLm9uVGFibGVMYXp5TG9hZChldmVudCk7XG4gICAgICAgIHRoaXMucGFnZSA9IHBhZ2VEZXRhaWxzLnBhZ2U7XG4gICAgICAgIHRoaXMuZ2V0VGFncyh7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICBwYWdlX3NpemU6IFBBR0VfU0laRSxcbiAgICAgICAgICAgIG9yZGVyX2J5OiBwYWdlRGV0YWlscy5zb3J0RmllbGQsXG4gICAgICAgICAgICBvcmRlcl9kaXJlY3Rpb246IHBhZ2VEZXRhaWxzLnNvcnRPcmRlcixcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFncyhwYXJhbXM6IFBhZ2luZykge1xuICAgICAgICBmb3JrSm9pbih7XG4gICAgICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLnRhZ1NlcnZpY2UuZ2V0VGFnQ2F0ZWdvcmllcyh7fSksXG4gICAgICAgICAgICB0YWdzOiB0aGlzLnRhZ1NlcnZpY2UuZ2V0VGFnc0J5VHlwZSgnJywgcGFyYW1zKVxuICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdDYXRlZ29yaWVzID0gUHJpbWVOZ0hlbHBlci5kcm9wZG93bkRhdGFTb3VyY2UoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmNhdGVnb3JpZXMudGFnX2NhdGVnb3JpZXMsXG4gICAgICAgICAgICAgICAgICAgICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgJ2lkJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbENhdGVnb3J5UmVjb3JkcyA9IHRoaXMudGFnQ2F0ZWdvcmllcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFRhZ1JlY29yZHNVbkZpbHRlciA9IHJlc3BvbnNlLnRhZ3M/LnVuZmlsdGVyZWRfY291bnQ7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UudGFncz8udGFncz8uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlZFRhZyA9IHRoaXMudGFnQ2F0ZWdvcmllcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWcgPT4gaXRlbS50YWdfY2F0ZWdvcnlfaWQgPT09IHRhZy5pZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZFRhZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKGl0ZW0sIHsgY2F0ZWdvcnlfbmFtZTogbWF0Y2hlZFRhZ1swXS5uYW1lIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFncy5wdXNoKE9iamVjdC5hc3NpZ24oaXRlbSwgeyBjYXRlZ29yeV9uYW1lOiAnJyB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsVGFnUmVjb3JkcyA9IHRoaXMudGFncy5sZW5ndGg7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhZ1R5cGVzKCkge1xuICAgICAgICB0aGlzLnRhZ1NlcnZpY2UuZ2V0QXZhaWxhYmxlVGFnVHlwZSgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICByZXNwb25zZS5hdmFpbGFibGVfdGFnX3R5cGVzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdUeXBlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBlbGVtZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUodGFnKSB7XG4gICAgICAgIHN3YWwuZmlyZSh7XG4gICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICB0ZXh0OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAke3RhZy5uYW1lfT9gLFxuICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHJldmVyc2VCdXR0b25zOiB0cnVlLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnXG4gICAgICAgIH0pLnRoZW4ocmVwID0+IHtcbiAgICAgICAgICAgIGlmIChyZXAudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhZ1NlcnZpY2UuZGVsZXRlVGFnQnlJZCh0YWcuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFncyh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZV9zaXplOiBQQUdFX1NJWkUgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uVGFncy5EZWxldGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25UYWdFZGl0KGNvbnRlbnQsIGl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgd2luZG93Q2xhc3M6ICdtb2RhbC1ob2xkZXInIH0pO1xuICAgIH1cblxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybS5nZXQoJ2lkJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFnU2VydmljZVxuICAgICAgICAgICAgICAgIC51cGRhdGVUYWdCeUlkKHRoaXMuZm9ybS5nZXQoJ2lkJykudmFsdWUsIHRoaXMuZm9ybS52YWx1ZSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5UYWdzLlVwZGF0ZWRNZXNzYWdlJykpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhZ3Moe30pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWdTZXJ2aWNlLmFkZEFkbWluVGFnKHRoaXMuZm9ybS52YWx1ZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlRhZ3MuQWRkZWRNZXNzYWdlJykpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUYWdzKHt9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gIDxoMiBjbGFzcz1cImNhcmQtdGl0bGUgcC0wXCI+VGFnczwvaDI+XG4gIDxwPlxuICAgIEhlcmUgeW91IGNhbiBkZWZpbmUgdGhlIHRhZ3MgdG8gYmUgdXNlZCBzaXRlLXdpZGUuPGJyIC8+XG4gICAgVGFncyBuZWVkIHRvIGJlIGFzc29jaWF0ZWQgdG8gY2F0ZWdvcmllcyAoZGVmaW5hYmxlIGluIHRoZSBcImNhdGVnb3J5XCIgdGFiKS48YnIgLz5cbiAgICBUYWdzIGFsc28gbmVlZCB0byBiZSBhc3NvY2lhdGVkIHRvIGEgXCJ0YWdfdHlwZVwiLCB3aGljaCBpcyB0aGUgZW50aXR5IHlvdSB3YW50IHRvIGFzc29jaWF0ZVxuICAgIHRoZSB0YWcgdG8sIGZvciBleGFtcGxlIFwidXNlclwiLlxuICA8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgPGJ1dHRvbiAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlJvbGVzLkNyZWF0ZSdcIlxuICAgICAgZGF0YS1jeT1cImNyZWF0ZS10YWdcIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cIm9uVGFnRWRpdCh0YWdNb2RhbCwgbnVsbClcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IENyZWF0ZSBUYWdcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cImxvYWRpbmdcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgdGFibGUtcmVzcG9uc2l2ZVwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwidG90YWxUYWdSZWNvcmRzVW5GaWx0ZXIgPT09IDBcIj5cbiAgPHAtdGFibGUgI2R0XG4gICAgW3ZhbHVlXT1cInRhZ3NcIlxuICAgIFtwYWdpbmF0b3JdPVwidHJ1ZVwiXG4gICAgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcbiAgICBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtsYXp5XT1cInRydWVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxUYWdSZWNvcmRzXCJcbiAgICBbZmlsdGVyRGVsYXldPVwiMTAwMFwiXG4gICAgW2N1c3RvbVNvcnRdPVwidHJ1ZVwiXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggbXQtMiBtZS0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHNpemU9XCI1MFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggVGFnLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcbiAgICAgICAgICBjbGFzcz1cIm13LTkwXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJuYW1lXCI+XG4gICAgICAgICAge3sgJ0xhYmVsLk5hbWUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJuYW1lXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJ0YWdfY2F0ZWdvcnlfaWRcIj5cbiAgICAgICAgICB7eyAnQWRtaW4uVGFncy5DYXRlZ29yeScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cInRhZ19jYXRlZ29yeV9pZFwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIGNsYXNzPVwiYWN0aW9ucy1saXN0LXR3b1wiXG4gICAgICAgICAgc2NvcGU9XCJ0cnVlXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICBsZXQtaXRlbT5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIk5hbWVcIj57eyBpdGVtPy5uYW1lIH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkNhdGVnb3J5XCI+e3sgaXRlbT8uY2F0ZWdvcnlfbmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJBY3Rpb25cIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIGxpc3QtaW5saW5lXCI+XG4gICAgICAgICAgICA8bGkgbmdiVG9vbHRpcD1cIkVkaXRcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1lLTIgbWUtc20tM1wiXG4gICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQWRtaW4uUm9sZXMuRWRpdCdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25UYWdFZGl0KHRhZ01vZGFsLCBpdGVtKVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlJvbGVzLkRlbGV0ZSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGUoaXRlbSlcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRhYmxlPlxuICA8ZGl2ICpuZ0lmPVwidG90YWxUYWdSZWNvcmRzID09PSAwICYmIHRvdGFsVGFnUmVjb3Jkc1VuRmlsdGVyICE9PSAwXCI+XG4gICAgPHB3LW5vLWRhdGEgbWVzc2FnZT1cIk5vIFJlc3VsdFwiPiA8L3B3LW5vLWRhdGE+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cInRvdGFsLXJlY29yZHMtY291bnRcIj57eyAnTGFiZWwuVG90YWwnIHwgdHJhbnNsb2NvIH19OiB7eyB0b3RhbFRhZ1JlY29yZHMgfX08L3NwYW4+XG48L2Rpdj5cbjxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidBZG1pbi5UYWdzLkNhdGVnb3J5JyB8IHRyYW5zbG9jb1wiXG4gICpuZ0lmPVwidG90YWxUYWdSZWNvcmRzVW5GaWx0ZXIgPT09IDAgJiYgIWxvYWRpbmdcIj5cbjwvcHctbm8tZGF0YT5cbjwhLS0gVGFnIE1vZGFsIFRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICN0YWdNb2RhbFxuICBsZXQtbW9kYWw+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiXG4gICAgICBpZD1cIm1vZGFsLWJhc2ljLXRpdGxlXCI+VGFnPC9oND5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XG5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRhZyBOYW1lXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwidGFnVHlwZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhZ190eXBlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRhZyBUeXBlc1wiXG4gICAgICAgICAgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJyB9XCI+XG4gICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwidGFnQ2F0ZWdvcmllc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFnX2NhdGVnb3J5X2lkXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNhdGVnb3J5XCJcbiAgICAgICAgICBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnIH1cIj5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0XCJcbiAgICAgIChjbGljayk9XCJtb2RhbC5jbG9zZSgpOyBmb3JtLnJlc2V0KClcIj48L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgpXCI+XG4gICAgICB7eyAnQnV0dG9uLlNhdmUnIHwgdHJhbnNsb2NvIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy90YWdzL3RhZ3MtbGlzdC90YWdzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RhZ3MvdGFncy1saXN0L3RhZ3MtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7OztBQU10RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBcUJuRCxZQUNJLFFBQWtCLEVBQ1YsWUFBc0IsRUFDdEIsVUFBc0IsRUFDdEIsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdB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QUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OEdBN0lRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlGQ2xCOUIscTFKQW1KQTsyRkRqSWEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNJLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvYWRtaW4ubW9kZWwnO1xuaW1wb3J0IHsgUEFHRV9TSVpFIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5nIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBQcmltZU5nSGVscGVyLCBUYWdTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctYWRtaW4tdGFncy1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFncy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWdzTGlzdENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICB0YWdDYXRlZ29yaWVzID0gW107XG5cbiAgICB0b3RhbENhdGVnb3J5UmVjb3JkczogbnVtYmVyO1xuXG4gICAgdGFnczogYW55W10gPSBbXTtcblxuICAgIHRvdGFsVGFnUmVjb3JkczogbnVtYmVyO1xuXG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBzZWFyY2hUZXh0ID0gJyc7XG5cbiAgICB0YWdUeXBlcyA9IFtdO1xuXG4gICAgcHJpdmF0ZSBwYWdlID0gMTtcblxuICAgIHRvdGFsVGFnUmVjb3Jkc1VuRmlsdGVyID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICAgICAgcHJpdmF0ZSB0YWdTZXJ2aWNlOiBUYWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmdldFRhZ3NGb3JtKCk7XG4gICAgICAgIHRoaXMuZ2V0VGFnVHlwZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gSGVscGVyU2VydmljZS5vblRhYmxlTGF6eUxvYWQoZXZlbnQpO1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlRGV0YWlscy5wYWdlO1xuICAgICAgICB0aGlzLmdldFRhZ3Moe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgcGFnZV9zaXplOiBQQUdFX1NJWkUsXG4gICAgICAgICAgICBvcmRlcl9ieTogcGFnZURldGFpbHMuc29ydEZpZWxkLFxuICAgICAgICAgICAgb3JkZXJfZGlyZWN0aW9uOiBwYWdlRGV0YWlscy5zb3J0T3JkZXIsXG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoVGV4dFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhZ3MocGFyYW1zOiBQYWdpbmcpIHtcbiAgICAgICAgZm9ya0pvaW4oe1xuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy50YWdTZXJ2aWNlLmdldFRhZ0NhdGVnb3JpZXMoe30pLFxuICAgICAgICAgICAgdGFnczogdGhpcy50YWdTZXJ2aWNlLmdldFRhZ3NCeVR5cGUoJycsIHBhcmFtcylcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFnQ2F0ZWdvcmllcyA9IFByaW1lTmdIZWxwZXIuZHJvcGRvd25EYXRhU291cmNlKFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5jYXRlZ29yaWVzLnRhZ19jYXRlZ29yaWVzLFxuICAgICAgICAgICAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICdpZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMudGFncyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxDYXRlZ29yeVJlY29yZHMgPSB0aGlzLnRhZ0NhdGVnb3JpZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxUYWdSZWNvcmRzVW5GaWx0ZXIgPSByZXNwb25zZS50YWdzPy51bmZpbHRlcmVkX2NvdW50O1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnRhZ3M/LnRhZ3M/LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRUYWcgPSB0aGlzLnRhZ0NhdGVnb3JpZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFnID0+IGl0ZW0udGFnX2NhdGVnb3J5X2lkID09PSB0YWcuaWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRUYWcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLnB1c2goT2JqZWN0LmFzc2lnbihpdGVtLCB7IGNhdGVnb3J5X25hbWU6IG1hdGNoZWRUYWdbMF0ubmFtZSB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChPYmplY3QuYXNzaWduKGl0ZW0sIHsgY2F0ZWdvcnlfbmFtZTogJycgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFRhZ1JlY29yZHMgPSB0aGlzLnRhZ3MubGVuZ3RoO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWdUeXBlcygpIHtcbiAgICAgICAgdGhpcy50YWdTZXJ2aWNlLmdldEF2YWlsYWJsZVRhZ1R5cGUoKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgcmVzcG9uc2UuYXZhaWxhYmxlX3RhZ190eXBlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFnVHlwZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWxlbWVudFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRGVsZXRlKHRhZykge1xuICAgICAgICBzd2FsLmZpcmUoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUnLFxuICAgICAgICAgICAgdGV4dDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgJHt0YWcubmFtZX0/YCxcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICAgICAgICByZXZlcnNlQnV0dG9uczogdHJ1ZSxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJ1xuICAgICAgICB9KS50aGVuKHJlcCA9PiB7XG4gICAgICAgICAgICBpZiAocmVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdTZXJ2aWNlLmRlbGV0ZVRhZ0J5SWQodGFnLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRhZ3MoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlRhZ3MuRGVsZXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uVGFnRWRpdChjb250ZW50LCBpdGVtKSB7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGNvbnRlbnQsIHsgY2VudGVyZWQ6IHRydWUsIHdpbmRvd0NsYXNzOiAnbW9kYWwtaG9sZGVyJyB9KTtcbiAgICB9XG5cbiAgICBvblNhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm0uZ2V0KCdpZCcpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAudXBkYXRlVGFnQnlJZCh0aGlzLmZvcm0uZ2V0KCdpZCcpLnZhbHVlLCB0aGlzLmZvcm0udmFsdWUpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2Vzcyh0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uVGFncy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRUYWdzKHt9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFnU2VydmljZS5hZGRBZG1pblRhZyh0aGlzLmZvcm0udmFsdWUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdBZG1pbi5UYWdzLkFkZGVkTWVzc2FnZScpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VGFncyh7fSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibXQtM1wiPlxuICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlIHAtMFwiPlRhZ3M8L2gyPlxuICA8cD5cbiAgICBIZXJlIHlvdSBjYW4gZGVmaW5lIHRoZSB0YWdzIHRvIGJlIHVzZWQgc2l0ZS13aWRlLjxiciAvPlxuICAgIFRhZ3MgbmVlZCB0byBiZSBhc3NvY2lhdGVkIHRvIGNhdGVnb3JpZXMgKGRlZmluYWJsZSBpbiB0aGUgXCJjYXRlZ29yeVwiIHRhYikuPGJyIC8+XG4gICAgVGFncyBhbHNvIG5lZWQgdG8gYmUgYXNzb2NpYXRlZCB0byBhIFwidGFnX3R5cGVcIiwgd2hpY2ggaXMgdGhlIGVudGl0eSB5b3Ugd2FudCB0byBhc3NvY2lhdGVcbiAgICB0aGUgdGFnIHRvLCBmb3IgZXhhbXBsZSBcInVzZXJcIi5cbiAgPC9wPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtdC0zXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxuICAgIDxidXR0b24gKnJiYWNBbGxvdz1cIidQYWdlcy5BZG1pbi5Sb2xlcy5DcmVhdGUnXCJcbiAgICAgIGRhdGEtY3k9XCJjcmVhdGUtdGFnXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJvblRhZ0VkaXQodGFnTW9kYWwsIG51bGwpXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiBDcmVhdGUgVGFnXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmVcIlxuICBbY2xhc3MuaGlkZVRhYmxlXT1cInRvdGFsVGFnUmVjb3Jkc1VuRmlsdGVyID09PSAwXCI+XG4gIDxwLXRhYmxlICNkdFxuICAgIFt2YWx1ZV09XCJ0YWdzXCJcbiAgICBbcGFnaW5hdG9yXT1cInRydWVcIlxuICAgIFtyb3dzXT1cIlBBR0VfU0laRVwiXG4gICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiXG4gICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsVGFnUmVjb3Jkc1wiXG4gICAgW2ZpbHRlckRlbGF5XT1cIjEwMDBcIlxuICAgIFtjdXN0b21Tb3J0XT1cInRydWVcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIG10LTIgbWUtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBzaXplPVwiNTBcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFRhZy4uLlwiXG4gICAgICAgICAgKGlucHV0KT1cImR0LmZpbHRlckdsb2JhbCgkZXZlbnQudGFyZ2V0LnZhbHVlLCAnY29udGFpbnMnKVwiXG4gICAgICAgICAgY2xhc3M9XCJtdy05MFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwibmFtZVwiPlxuICAgICAgICAgIHt7ICdMYWJlbC5OYW1lJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgIDxwLXNvcnRJY29uIGZpZWxkPVwibmFtZVwiPjwvcC1zb3J0SWNvbj5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiXG4gICAgICAgICAgcFNvcnRhYmxlQ29sdW1uPVwidGFnX2NhdGVnb3J5X2lkXCI+XG4gICAgICAgICAge3sgJ0FkbWluLlRhZ3MuQ2F0ZWdvcnknIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJ0YWdfY2F0ZWdvcnlfaWRcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cImFjdGlvbnMtbGlzdC10d29cIlxuICAgICAgICAgIHNjb3BlPVwidHJ1ZVwiPnt7ICdMYWJlbC5BY3Rpb25zJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgICAgbGV0LWl0ZW0+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJOYW1lXCI+e3sgaXRlbT8ubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJDYXRlZ29yeVwiPnt7IGl0ZW0/LmNhdGVnb3J5X25hbWUgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlJvbGVzLkVkaXQnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFnRWRpdCh0YWdNb2RhbCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lZGl0IGVkaXQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8bGkgbmdiVG9vbHRpcD1cIkRlbGV0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCJcbiAgICAgICAgICAgICAgKnJiYWNBbGxvdz1cIidQYWdlcy5BZG1pbi5Sb2xlcy5EZWxldGUnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdHJhc2ggZGVsZXRlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC10YWJsZT5cbiAgPGRpdiAqbmdJZj1cInRvdGFsVGFnUmVjb3JkcyA9PT0gMCAmJiB0b3RhbFRhZ1JlY29yZHNVbkZpbHRlciAhPT0gMFwiPlxuICAgIDxwdy1uby1kYXRhIG1lc3NhZ2U9XCJObyBSZXN1bHRcIj4gPC9wdy1uby1kYXRhPlxuICA8L2Rpdj5cbiAgPHNwYW4gY2xhc3M9XCJ0b3RhbC1yZWNvcmRzLWNvdW50XCI+e3sgJ0xhYmVsLlRvdGFsJyB8IHRyYW5zbG9jbyB9fToge3sgdG90YWxUYWdSZWNvcmRzIH19PC9zcGFuPlxuPC9kaXY+XG48cHctbm8tZGF0YSBbbWVzc2FnZV09XCInQWRtaW4uVGFncy5DYXRlZ29yeScgfCB0cmFuc2xvY29cIlxuICAqbmdJZj1cInRvdGFsVGFnUmVjb3Jkc1VuRmlsdGVyID09PSAwICYmICFsb2FkaW5nXCI+XG48L3B3LW5vLWRhdGE+XG48IS0tIFRhZyBNb2RhbCBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjdGFnTW9kYWxcbiAgbGV0LW1vZGFsPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIlxuICAgICAgaWQ9XCJtb2RhbC1iYXNpYy10aXRsZVwiPlRhZzwvaDQ+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiXG4gICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxuXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUYWcgTmFtZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInRhZ1R5cGVzXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YWdfdHlwZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUYWcgVHlwZXNcIlxuICAgICAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScgfVwiPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInRhZ0NhdGVnb3JpZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhZ19jYXRlZ29yeV9pZFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJDYXRlZ29yeVwiXG4gICAgICAgICAgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJyB9XCI+XG4gICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGVmYXVsdFwiXG4gICAgICAoY2xpY2spPVwibW9kYWwuY2xvc2UoKTsgZm9ybS5yZXNldCgpXCI+PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJvblNhdmUoKVwiPlxuICAgICAge3sgJ0J1dHRvbi5TYXZlJyB8IHRyYW5zbG9jbyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -8,11 +8,12 @@ import * as i2 from "primeng/table";
8
8
  import * as i3 from "primeng/api";
9
9
  import * as i4 from "@angular/common";
10
10
  import * as i5 from "@angular/router";
11
- import * as i6 from "@posiwise/shared-components";
12
- import * as i7 from "@posiwise/directives";
13
- import * as i8 from "@ng-bootstrap/ng-bootstrap";
14
- import * as i9 from "@ngneat/transloco";
15
- import * as i10 from "@posiwise/pipes";
11
+ import * as i6 from "primeng/progressspinner";
12
+ import * as i7 from "@posiwise/shared-components";
13
+ import * as i8 from "@posiwise/directives";
14
+ import * as i9 from "@ng-bootstrap/ng-bootstrap";
15
+ import * as i10 from "@ngneat/transloco";
16
+ import * as i11 from "@posiwise/pipes";
16
17
  export class TipsComponent extends AppBaseComponent {
17
18
  constructor(tipService, inject) {
18
19
  super(inject);
@@ -39,9 +40,9 @@ export class TipsComponent extends AppBaseComponent {
39
40
  }
40
41
  }
41
42
  TipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TipsComponent, deps: [{ token: i1.TipsService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
42
- TipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TipsComponent, selector: "pw-tips-list", usesInheritance: true, ngImport: i0, template: "<div class=\"col-xs-12 text-end my-3\">\n <h2 class=\"card-title float-start\">Tips</h2>\n <a data-cy=\"create-tip\"\n *rbacAllow=\"'Pages.Admin.Product.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n [routerLink]=\"[routers.tipsDetails + '/add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tip\n </a>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n *ngIf=\"isLoaded\">\n <p-table [value]=\"data.tips\"\n [responsive]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.Name' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Instructions' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.IsActive' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Updated' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-tip>\n <tr>\n <td data-head=\"Name\">{{ tip.name }}</td>\n <td data-head=\"Instructions\"\n class=\"w-md-50\">{{ tip.instructions }}</td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: tip?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ tip?.active }}</span>\n </td>\n <td data-head=\"Updated On\">{{ tip.updated_at | dateFormat }}</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 *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n [routerLink]=\"[routers.tipsDetails + tip.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n<pw-no-data [message]=\"'Admin.Tips.NoDataMessage' | transloco\"\n *ngIf=\"data.tips.length === 0\">\n</pw-no-data>\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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i7.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i7.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i8.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i9.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i10.DateFormatPipe, name: "dateFormat" }] });
43
+ TipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TipsComponent, selector: "pw-tips-list", usesInheritance: true, ngImport: i0, template: "<div class=\"col-xs-12 text-end my-3\">\n <h2 class=\"card-title float-start\">Tips</h2>\n <a data-cy=\"create-tip\"\n *rbacAllow=\"'Pages.Admin.Product.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n [routerLink]=\"[routers.tipsDetails + '/add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tip\n </a>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n *ngIf=\"isLoaded\">\n <p-table [value]=\"data.tips\"\n [responsive]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.Name' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Instructions' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.IsActive' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Updated' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-tip>\n <tr>\n <td data-head=\"Name\">{{ tip.name }}</td>\n <td data-head=\"Instructions\"\n class=\"w-md-50\">{{ tip.instructions }}</td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: tip?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ tip?.active }}</span>\n </td>\n <td data-head=\"Updated On\">{{ tip.updated_at | dateFormat }}</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 *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n [routerLink]=\"[routers.tipsDetails + tip.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n<pw-no-data [message]=\"'Admin.Tips.NoDataMessage' | transloco\"\n *ngIf=\"data.tips.length === 0\">\n</pw-no-data>\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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { kind: "component", type: i7.NoDataComponent, selector: "pw-no-data", inputs: ["message"] }, { kind: "directive", type: i8.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i8.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i9.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i10.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i11.DateFormatPipe, name: "dateFormat" }] });
43
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TipsComponent, decorators: [{
44
45
  type: Component,
45
46
  args: [{ selector: 'pw-tips-list', template: "<div class=\"col-xs-12 text-end my-3\">\n <h2 class=\"card-title float-start\">Tips</h2>\n <a data-cy=\"create-tip\"\n *rbacAllow=\"'Pages.Admin.Product.Create'\"\n class=\"btn btn-sm btn-outline-primary\"\n [routerLink]=\"[routers.tipsDetails + '/add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Tip\n </a>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n<div class=\"primeng-datatable-container table-responsive mt-0\"\n *ngIf=\"isLoaded\">\n <p-table [value]=\"data.tips\"\n [responsive]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.Name' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Instructions' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.IsActive' | transloco }}</th>\n <th scope=\"true\">{{ 'Admin.Tips.Updated' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-tip>\n <tr>\n <td data-head=\"Name\">{{ tip.name }}</td>\n <td data-head=\"Instructions\"\n class=\"w-md-50\">{{ tip.instructions }}</td>\n <td data-head=\"Active\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: tip?.active }\"\n color=\"success-danger\"\n class=\"badge\">{{ tip?.active }}</span>\n </td>\n <td data-head=\"Updated On\">{{ tip.updated_at | dateFormat }}</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 *rbacAllow=\"'Pages.Admin.Users.Edit'\"\n [routerLink]=\"[routers.tipsDetails + tip.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n</div>\n<pw-no-data [message]=\"'Admin.Tips.NoDataMessage' | transloco\"\n *ngIf=\"data.tips.length === 0\">\n</pw-no-data>\n" }]
46
47
  }], ctorParameters: function () { return [{ type: i1.TipsService }, { type: i0.Injector }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy90aXBzL3RpcHMtbGlzdC90aXBzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RpcHMvdGlwcy1saXN0L3RpcHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXhELE1BQU0sT0FBTyxhQUFjLFNBQVEsZ0JBQWdCO0lBVy9DLFlBQW9CLFVBQXVCLEVBQUUsTUFBZ0I7UUFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBREUsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQVYzQyxTQUFJLEdBQWdCO1lBQ2hCLElBQUksRUFBRSxFQUFFO1lBQ1IsWUFBWSxFQUFFLENBQUM7WUFDZixnQkFBZ0IsRUFBRSxDQUFDO1NBQ3RCLENBQUM7UUFFRixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxPQUFPLENBQUM7SUFJbEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLE9BQU87UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQXFCLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzswR0E1QlEsYUFBYTs4RkFBYixhQUFhLDJFQ1gxQixrb0VBdURBOzJGRDVDYSxhQUFhO2tCQUp6QixTQUFTOytCQUNJLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBST1VURVJTIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3JvdXRlcnMvcm91dGVycyc7XG5pbXBvcnQgeyBUaXBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvdGlwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXBzU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRpcHMtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpcHMtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVGlwc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZGF0YTogVGlwUmVzcG9uc2UgPSB7XG4gICAgICAgIHRpcHM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAgIHJvdXRlcnMgPSBST1VURVJTO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0aXBTZXJ2aWNlOiBUaXBzU2VydmljZSwgaW5qZWN0OiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3QpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmdldFRpcHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRpcHMoKSB7XG4gICAgICAgIHRoaXMudGlwU2VydmljZS5nZXRBbGwoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBUaXBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbC14cy0xMiB0ZXh0LWVuZCBteS0zXCI+XG4gIDxoMiBjbGFzcz1cImNhcmQtdGl0bGUgZmxvYXQtc3RhcnRcIj5UaXBzPC9oMj5cbiAgPGEgZGF0YS1jeT1cImNyZWF0ZS10aXBcIlxuICAgICpyYmFjQWxsb3c9XCInUGFnZXMuQWRtaW4uUHJvZHVjdC5DcmVhdGUnXCJcbiAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeVwiXG4gICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMudGlwc0RldGFpbHMgKyAnL2FkZCddXCI+XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gQ3JlYXRlIFRpcFxuICA8L2E+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlciBtdC0zXCJcbiAgKm5nSWY9XCIhaXNMb2FkZWRcIj5cbiAgPHAtcHJvZ3Jlc3NTcGlubmVyIHN0cm9rZVdpZHRoPVwiMlwiPiA8L3AtcHJvZ3Jlc3NTcGlubmVyPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicHJpbWVuZy1kYXRhdGFibGUtY29udGFpbmVyIHRhYmxlLXJlc3BvbnNpdmUgbXQtMFwiXG4gICpuZ0lmPVwiaXNMb2FkZWRcIj5cbiAgPHAtdGFibGUgW3ZhbHVlXT1cImRhdGEudGlwc1wiXG4gICAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPnt7ICdMYWJlbC5OYW1lJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj57eyAnQWRtaW4uVGlwcy5JbnN0cnVjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPnt7ICdMYWJlbC5Jc0FjdGl2ZScgfCB0cmFuc2xvY28gfX08L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+e3sgJ0FkbWluLlRpcHMuVXBkYXRlZCcgfCB0cmFuc2xvY28gfX08L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgICBsZXQtdGlwPlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiTmFtZVwiPnt7IHRpcC5uYW1lIH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkluc3RydWN0aW9uc1wiXG4gICAgICAgICAgY2xhc3M9XCJ3LW1kLTUwXCI+e3sgdGlwLmluc3RydWN0aW9ucyB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJBY3RpdmVcIj5cbiAgICAgICAgICA8c3BhbiBbYXBwRHluYW1pY0JhZGdlXT1cInsgaXRlbXNBcnJheTogW3RydWUsIGZhbHNlXSwgaXRlbTogdGlwPy5hY3RpdmUgfVwiXG4gICAgICAgICAgICBjb2xvcj1cInN1Y2Nlc3MtZGFuZ2VyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIj57eyB0aXA/LmFjdGl2ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIlVwZGF0ZWQgT25cIj57eyB0aXAudXBkYXRlZF9hdCB8IGRhdGVGb3JtYXQgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlVzZXJzLkVkaXQnXCJcbiAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW3JvdXRlcnMudGlwc0RldGFpbHMgKyB0aXAuaWRdXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdCBlZGl0LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC10YWJsZT5cbjwvZGl2PlxuPHB3LW5vLWRhdGEgW21lc3NhZ2VdPVwiJ0FkbWluLlRpcHMuTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIlxuICAqbmdJZj1cImRhdGEudGlwcy5sZW5ndGggPT09IDBcIj5cbjwvcHctbm8tZGF0YT5cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy90aXBzL3RpcHMtbGlzdC90aXBzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RpcHMvdGlwcy1saXN0L3RpcHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU14RCxNQUFNLE9BQU8sYUFBYyxTQUFRLGdCQUFnQjtJQVcvQyxZQUFvQixVQUF1QixFQUFFLE1BQWdCO1FBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURFLGVBQVUsR0FBVixVQUFVLENBQWE7UUFWM0MsU0FBSSxHQUFnQjtZQUNoQixJQUFJLEVBQUUsRUFBRTtZQUNSLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO1FBRUYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixZQUFPLEdBQUcsT0FBTyxDQUFDO0lBSWxCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7MEdBNUJRLGFBQWE7OEZBQWIsYUFBYSwyRUNYMUIsa29FQXVEQTsyRkQ1Q2EsYUFBYTtrQkFKekIsU0FBUzsrQkFDSSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgVGlwUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvaW50ZXJmYWNlL3RpcC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVGlwc1NlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy10aXBzLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aXBzLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRpcHNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGRhdGE6IFRpcFJlc3BvbnNlID0ge1xuICAgICAgICB0aXBzOiBbXSxcbiAgICAgICAgb2JqZWN0X2NvdW50OiAwLFxuICAgICAgICB1bmZpbHRlcmVkX2NvdW50OiAwXG4gICAgfTtcblxuICAgIGlzTG9hZGVkID0gZmFsc2U7XG5cbiAgICByb3V0ZXJzID0gUk9VVEVSUztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGlwU2VydmljZTogVGlwc1NlcnZpY2UsIGluamVjdDogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5nZXRUaXBzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUaXBzKCkge1xuICAgICAgICB0aGlzLnRpcFNlcnZpY2UuZ2V0QWxsKCkuc3Vic2NyaWJlKChyZXNwb25zZTogVGlwUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb2wteHMtMTIgdGV4dC1lbmQgbXktM1wiPlxuICA8aDIgY2xhc3M9XCJjYXJkLXRpdGxlIGZsb2F0LXN0YXJ0XCI+VGlwczwvaDI+XG4gIDxhIGRhdGEtY3k9XCJjcmVhdGUtdGlwXCJcbiAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLlByb2R1Y3QuQ3JlYXRlJ1wiXG4gICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXByaW1hcnlcIlxuICAgIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLnRpcHNEZXRhaWxzICsgJy9hZGQnXVwiPlxuICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cy1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IENyZWF0ZSBUaXBcbiAgPC9hPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiIWlzTG9hZGVkXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInByaW1lbmctZGF0YXRhYmxlLWNvbnRhaW5lciB0YWJsZS1yZXNwb25zaXZlIG10LTBcIlxuICAqbmdJZj1cImlzTG9hZGVkXCI+XG4gIDxwLXRhYmxlIFt2YWx1ZV09XCJkYXRhLnRpcHNcIlxuICAgIFtyZXNwb25zaXZlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj57eyAnTGFiZWwuTmFtZScgfCB0cmFuc2xvY28gfX08L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCI+e3sgJ0FkbWluLlRpcHMuSW5zdHJ1Y3Rpb25zJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIj57eyAnTGFiZWwuSXNBY3RpdmUnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPnt7ICdBZG1pbi5UaXBzLlVwZGF0ZWQnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiPnt7ICdMYWJlbC5BY3Rpb25zJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgICAgbGV0LXRpcD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIk5hbWVcIj57eyB0aXAubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJJbnN0cnVjdGlvbnNcIlxuICAgICAgICAgIGNsYXNzPVwidy1tZC01MFwiPnt7IHRpcC5pbnN0cnVjdGlvbnMgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aXZlXCI+XG4gICAgICAgICAgPHNwYW4gW2FwcER5bmFtaWNCYWRnZV09XCJ7IGl0ZW1zQXJyYXk6IFt0cnVlLCBmYWxzZV0sIGl0ZW06IHRpcD8uYWN0aXZlIH1cIlxuICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzLWRhbmdlclwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+e3sgdGlwPy5hY3RpdmUgfX08L3NwYW4+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJVcGRhdGVkIE9uXCI+e3sgdGlwLnVwZGF0ZWRfYXQgfCBkYXRlRm9ybWF0IH19PC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkFjdGlvblwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbGlzdC1pbmxpbmVcIj5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRWRpdFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWUtMiBtZS1zbS0zXCJcbiAgICAgICAgICAgICAgKnJiYWNBbGxvdz1cIidQYWdlcy5BZG1pbi5Vc2Vycy5FZGl0J1wiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLnRpcHNEZXRhaWxzICsgdGlwLmlkXVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG48L2Rpdj5cbjxwdy1uby1kYXRhIFttZXNzYWdlXT1cIidBZG1pbi5UaXBzLk5vRGF0YU1lc3NhZ2UnIHwgdHJhbnNsb2NvXCJcbiAgKm5nSWY9XCJkYXRhLnRpcHMubGVuZ3RoID09PSAwXCI+XG48L3B3LW5vLWRhdGE+XG4iXX0=
@@ -5,6 +5,7 @@ import { PermissionService } from '@posiwise/common-services';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../admin.service";
7
7
  import * as i2 from "@angular/common";
8
+ import * as i3 from "primeng/progressspinner";
8
9
  export class UserInsightComponent extends AppBaseComponent {
9
10
  constructor(adminService, injector) {
10
11
  super(injector);
@@ -30,9 +31,9 @@ export class UserInsightComponent extends AppBaseComponent {
30
31
  }
31
32
  }
32
33
  UserInsightComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserInsightComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
33
- UserInsightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: UserInsightComponent, selector: "pw-admin-user-insight", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-12 mt-3\">\n <h2 class=\"card-title\">User Statistics</h2>\n <ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n </ng-template>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
34
+ UserInsightComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: UserInsightComponent, selector: "pw-admin-user-insight", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-12 mt-3\">\n <h2 class=\"card-title\">User Statistics</h2>\n <ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n </ng-template>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }] });
34
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: UserInsightComponent, decorators: [{
35
36
  type: Component,
36
37
  args: [{ selector: 'pw-admin-user-insight', template: "<div class=\"row\">\n <div class=\"col-sm-12 mt-3\">\n <h2 class=\"card-title\">User Statistics</h2>\n <ng-template [ngIf]=\"graph\">\n <plotly-plot [data]=\"graph?.data\"\n [layout]=\"graph?.layout\"></plotly-plot>\n </ng-template>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\"\n *ngIf=\"isLoading\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n</div>\n" }]
37
38
  }], ctorParameters: function () { return [{ type: i1.AdminService }, { type: i0.Injector }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtaW5zaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtaW5zaWdodC91c2Vycy1pbnNpZ2h0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2Vycy1pbnNpZ2h0L3VzZXJzLWluc2lnaHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU05RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBT3RELFlBQW9CLFlBQTBCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREEsaUJBQVksR0FBWixZQUFZLENBQWM7SUFFOUMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFlBQVk7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVk7YUFDWixlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUNwQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2lIQTlCUSxvQkFBb0I7cUdBQXBCLG9CQUFvQixvRkNYakMseVpBYUE7MkZERmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNJLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FkbWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxvdGx5IH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1hZG1pbi11c2VyLWluc2lnaHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2Vycy1pbnNpZ2h0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBVc2VySW5zaWdodENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZ3JhcGg6IFBsb3RseS5GaWd1cmU7XG5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBzdWJzY3JpcHRpb25JZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uLmlkO1xuICAgICAgICB0aGlzLmdldENoYXJ0RGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2hhcnREYXRhKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0VXNlcnNJbnNpZ2h0KHRoaXMuc3Vic2NyaXB0aW9uSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBtdC0zXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZVwiPlVzZXIgU3RhdGlzdGljczwvaDI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdyYXBoXCI+XG4gICAgICA8cGxvdGx5LXBsb3QgW2RhdGFdPVwiZ3JhcGg/LmRhdGFcIlxuICAgICAgICBbbGF5b3V0XT1cImdyYXBoPy5sYXlvdXRcIj48L3Bsb3RseS1wbG90PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXIgbXQtM1wiXG4gICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxwLXByb2dyZXNzU3Bpbm5lciBzdHJva2VXaWR0aD1cIjJcIj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbjwvZGl2PlxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMtaW5zaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdXNlcnMvdXNlcnMtaW5zaWdodC91c2Vycy1pbnNpZ2h0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy91c2Vycy91c2Vycy1pbnNpZ2h0L3VzZXJzLWluc2lnaHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFNOUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQU90RCxZQUFvQixZQUEwQixFQUFFLFFBQWtCO1FBQzlELEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURBLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBRTlDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZO2FBQ1osZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDcEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQzFCLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOztpSEE5QlEsb0JBQW9CO3FHQUFwQixvQkFBb0Isb0ZDWGpDLHlaQWFBOzJGREZhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsb3RseSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctYWRtaW4tdXNlci1pbnNpZ2h0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlcnMtaW5zaWdodC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckluc2lnaHRDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGdyYXBoOiBQbG90bHkuRmlndXJlO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgc3Vic2NyaXB0aW9uSWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbi5pZDtcbiAgICAgICAgdGhpcy5nZXRDaGFydERhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENoYXJ0RGF0YSgpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldFVzZXJzSW5zaWdodCh0aGlzLnN1YnNjcmlwdGlvbklkKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmFwaCA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgbXQtM1wiPlxuICAgIDxoMiBjbGFzcz1cImNhcmQtdGl0bGVcIj5Vc2VyIFN0YXRpc3RpY3M8L2gyPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJncmFwaFwiPlxuICAgICAgPHBsb3RseS1wbG90IFtkYXRhXT1cImdyYXBoPy5kYXRhXCJcbiAgICAgICAgW2xheW91dF09XCJncmFwaD8ubGF5b3V0XCI+PC9wbG90bHktcGxvdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbiJdfQ==