@posiwise/admin-module 0.0.84 → 0.0.86

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 (82) hide show
  1. package/esm2022/lib/admin-module.routing.mjs +43 -25
  2. package/esm2022/lib/admin.module.mjs +9 -3
  3. package/esm2022/lib/components/TOS/terms-of-service/terms-of-service.component.mjs +3 -3
  4. package/esm2022/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.mjs +5 -4
  5. package/esm2022/lib/components/config/global-config-details/global-config-details.component.mjs +3 -3
  6. package/esm2022/lib/components/config/global-config-list/global-config-list.component.mjs +3 -3
  7. package/esm2022/lib/components/credentials/credentials/credentials.component.mjs +3 -3
  8. package/esm2022/lib/components/credentials/subscription-credentials/subscription-credentials.component.mjs +3 -4
  9. package/esm2022/lib/components/domain-config/domain-config-list/domain-config-list.component.mjs +2 -2
  10. package/esm2022/lib/components/faqs/add-edit-faq/add-edit-faq.component.mjs +245 -0
  11. package/esm2022/lib/components/faqs/faqs-list/faqs-list.component.mjs +53 -84
  12. package/esm2022/lib/components/generic/generic-misc/generic-misc.component.mjs +22 -5
  13. package/esm2022/lib/components/incidents/add-edit-incident/add-edit-incident.component.mjs +5 -3
  14. package/esm2022/lib/components/incidents/incidents-list/incidents-list.component.mjs +6 -4
  15. package/esm2022/lib/components/login-notifications/login-notification-details/login-notification-details.component.mjs +3 -3
  16. package/esm2022/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.mjs +2 -2
  17. package/esm2022/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.mjs +5 -4
  18. package/esm2022/lib/components/permissions/permissions-details/permissions-details.component.mjs +6 -7
  19. package/esm2022/lib/components/permissions/permissions-list/permissions-list.component.mjs +3 -2
  20. package/esm2022/lib/components/permissions/role-details/role-details.component.mjs +6 -7
  21. package/esm2022/lib/components/permissions/roles-list/roles-list.component.mjs +3 -2
  22. package/esm2022/lib/components/products/product-details/product-details.component.mjs +5 -4
  23. package/esm2022/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.mjs +5 -3
  24. package/esm2022/lib/components/subscriptions/subscription-details/subscription-details.component.mjs +3 -3
  25. package/esm2022/lib/components/subscriptions/subscription-products/subscription-products.component.mjs +5 -3
  26. package/esm2022/lib/components/subscriptions/subscription-users/subscription-users.component.mjs +6 -4
  27. package/esm2022/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.mjs +234 -0
  28. package/esm2022/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.mjs +16 -54
  29. package/esm2022/lib/components/tags/tags-category/tags-category.component.mjs +3 -2
  30. package/esm2022/lib/components/tags/tags-list/tags-list.component.mjs +5 -4
  31. package/esm2022/lib/components/tips/tips-list/tips-list.component.mjs +3 -3
  32. package/esm2022/lib/components/tracking/ahoy-events/ahoy-events.component.mjs +4 -3
  33. package/esm2022/lib/components/tracking/ahoy-messages/ahoy-messages.component.mjs +4 -3
  34. package/esm2022/lib/components/tracking/ahoy-visits/ahoy-visits.component.mjs +4 -3
  35. package/esm2022/lib/components/tracking/events/events.component.mjs +4 -3
  36. package/esm2022/lib/components/tracking/versions/versions.component.mjs +4 -3
  37. package/esm2022/lib/shared/routers/routers.mjs +5 -2
  38. package/fesm2022/posiwise-admin-module.mjs +758 -331
  39. package/fesm2022/posiwise-admin-module.mjs.map +1 -1
  40. package/lib/admin.module.d.ts +73 -71
  41. package/lib/components/TOS/terms-of-service/terms-of-service.component.d.ts +3 -0
  42. package/lib/components/TOS/terms-of-service-details/terms-of-service-details.component.d.ts +12 -0
  43. package/lib/components/config/global-config-list/global-config-list.component.d.ts +3 -0
  44. package/lib/components/credentials/credentials/credentials.component.d.ts +3 -0
  45. package/lib/components/credentials/subscription-credentials/subscription-credentials.component.d.ts +3 -0
  46. package/lib/components/domain-config/domain-config-details/domain-config-build/domain-config-build.component.d.ts +3 -0
  47. package/lib/components/domain-config/domain-config-details/domain-config-core/domain-config-core.component.d.ts +3 -0
  48. package/lib/components/domain-config/domain-config-details/domain-config-details.component.d.ts +3 -0
  49. package/lib/components/domain-config/domain-config-details/domain-config-integrations/domain-config-integrations.component.d.ts +3 -0
  50. package/lib/components/domain-config/domain-config-details/domain-config-interface/domain-config-interface.component.d.ts +3 -0
  51. package/lib/components/domain-config/domain-config-details/domain-config-organization/domain-config-organization.component.d.ts +3 -0
  52. package/lib/components/domain-config/domain-config-details/domain-config-security/domain-config-security.component.d.ts +3 -0
  53. package/lib/components/domain-config/domain-config-details/domain-config-social/domain-config-social.component.d.ts +3 -0
  54. package/lib/components/domain-config/domain-config-list/domain-config-list.component.d.ts +3 -0
  55. package/lib/components/faqs/add-edit-faq/add-edit-faq.component.d.ts +104 -0
  56. package/lib/components/faqs/faqs-list/faqs-list.component.d.ts +34 -4
  57. package/lib/components/feedback-questions/feedback-questions-details/feedback-questions-details.component.d.ts +3 -0
  58. package/lib/components/feedback-questions/feedback-questions-list/feedback-questions-list.component.d.ts +3 -0
  59. package/lib/components/generic/generic-misc/generic-misc.component.d.ts +8 -2
  60. package/lib/components/incidents/add-edit-incident/add-edit-incident.component.d.ts +15 -0
  61. package/lib/components/incidents/incidents-list/incidents-list.component.d.ts +3 -0
  62. package/lib/components/login-notifications/login-notification-details/login-notification-details.component.d.ts +3 -0
  63. package/lib/components/login-notifications/login-notifications-list/login-notifications-list.component.d.ts +3 -0
  64. package/lib/components/newsletters/newsletter-details/newsletter-details.component.d.ts +3 -0
  65. package/lib/components/newsletters/newsletter-item-details/newsletter-item-details.component.d.ts +15 -0
  66. package/lib/components/newsletters/newsletters-items/newsletters-items.component.d.ts +3 -0
  67. package/lib/components/newsletters/newsletters-list/newsletters-list.component.d.ts +3 -0
  68. package/lib/components/permissions/permissions-details/permissions-details.component.d.ts +3 -0
  69. package/lib/components/permissions/permissions-list/permissions-list.component.d.ts +3 -0
  70. package/lib/components/permissions/roles-list/roles-list.component.d.ts +3 -0
  71. package/lib/components/products/product-details/product-details.component.d.ts +12 -0
  72. package/lib/components/products/products-list/products-list.component.d.ts +3 -0
  73. package/lib/components/subscriptions/subscription-agents-list/subscription-agents-list.component.d.ts +1 -0
  74. package/lib/components/subscriptions/subscription-product-details/subscription-product-details.component.d.ts +3 -0
  75. package/lib/components/subscriptions/subscription-products/subscription-products.component.d.ts +4 -0
  76. package/lib/components/subscriptions/subscription-users/subscription-users.component.d.ts +4 -0
  77. package/lib/components/subscriptions/subscriptions-list/invite-users/invite-users.component.d.ts +96 -0
  78. package/lib/components/subscriptions/subscriptions-list/subscriptions-list.component.d.ts +3 -1
  79. package/lib/components/tips/tips-list/tips-list.component.d.ts +3 -0
  80. package/lib/components/users/users-list/users-list.component.d.ts +3 -0
  81. package/lib/shared/routers/routers.d.ts +3 -0
  82. package/package.json +1 -1
@@ -83,10 +83,10 @@ export class TermsOfServiceComponent extends AppBaseComponent {
83
83
  super.ngOnDestroy();
84
84
  }
85
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TermsOfServiceComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TermsOfServiceComponent, selector: "pw-terms-of-service", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Terms of Services & Privacy Policy</h2>\n <button *rbacAllow=\"'SuperAdmin'\" class=\"btn btn-sm btn-outline-primary float-end\" data-cy=\"create-Tos\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Terms of Services </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\" [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt [value]=\"data.product_privacy_services\" [paginator]=\"data.object_count !== 0\" [lazy]=\"true\" [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\" [loading]=\"loading\" [filterDelay]=\"1000\" (onLazyLoad)=\"onLazyLoad($event)\">\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\" [(ngModel)]=\"searchText\" pInputText size=\"50\" placeholder=\"Search Tos...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\" data-head=\"Privacy\">Privacy</th>\n <th scope=\"true\" data-head=\"Terms of Services\">Terms of Services</th>\n <th class=\"actions-list-two\" scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tos>\n <tr>\n <td data-head=\"Name\">{{ tos.privacy | removeHtml | textTruncate: 220 }}</td>\n <td data-head=\"Terms of Services\"> {{ tos.tos | removeHtml | textTruncate: 220 }} </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <!-- Show only to SubscriptionSuperAdmin or SubscriptionOwner -->\n <li ngbTooltip=\"Edit\" class=\"me-2 me-sm-3\" *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + tos.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\" *rbacAllow=\"'SuperAdmin'\" class=\"me-2 me-sm-3\">\n <i (click)=\"onDelete(tos.id)\" 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=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Tos.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "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.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i9.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i10.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i13.RemoveHtmlPipe, name: "removeHtml" }, { kind: "pipe", type: i13.TextTruncatePipe, name: "textTruncate" }] }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TermsOfServiceComponent, selector: "pw-terms-of-service", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Terms of Services & Privacy Policy</h2>\n <button *rbacAllow=\"'SuperAdmin'\" class=\"btn btn-sm btn-outline-primary float-end\" data-cy=\"create-Tos\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Terms of Services </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\" [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt [value]=\"data.product_privacy_services\" [paginator]=\"data.object_count !== 0\" [lazy]=\"true\" [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\" [loading]=\"loading\" [filterDelay]=\"1000\" (onLazyLoad)=\"onLazyLoad($event)\">\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\" [(ngModel)]=\"searchText\" pInputText size=\"50\" placeholder=\"Search Tos...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\" data-head=\"Privacy\">Privacy</th>\n <th scope=\"true\" data-head=\"Terms of Services\">Terms of Services</th>\n <th class=\"actions-list-two\" scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tos>\n <tr>\n <td data-head=\"Name\">{{ tos.privacy | removeHtml | textTruncate: 220 }}</td>\n <td data-head=\"Terms of Services\"> {{ tos.tos | removeHtml | textTruncate: 220 }} </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <!-- Show only to SubscriptionSuperAdmin or SubscriptionOwner -->\n <li ngbTooltip=\"Edit\" class=\"me-2 me-sm-3\" *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + tos.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\" *rbacAllow=\"'SuperAdmin'\" class=\"me-2 me-sm-3\">\n <i (click)=\"onDelete(tos.id)\" 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=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Tos.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n", dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "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.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i9.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i10.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i13.RemoveHtmlPipe, name: "removeHtml" }, { kind: "pipe", type: i13.TextTruncatePipe, name: "textTruncate" }] }); }
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TermsOfServiceComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'pw-terms-of-service', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Terms of Services & Privacy Policy</h2>\n <button *rbacAllow=\"'SuperAdmin'\" class=\"btn btn-sm btn-outline-primary float-end\" data-cy=\"create-Tos\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Terms of Services </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\" [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt [value]=\"data.product_privacy_services\" [paginator]=\"data.object_count !== 0\" [lazy]=\"true\" [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\" [loading]=\"loading\" [filterDelay]=\"1000\" (onLazyLoad)=\"onLazyLoad($event)\">\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\" [(ngModel)]=\"searchText\" pInputText size=\"50\" placeholder=\"Search Tos...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\" data-head=\"Privacy\">Privacy</th>\n <th scope=\"true\" data-head=\"Terms of Services\">Terms of Services</th>\n <th class=\"actions-list-two\" scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tos>\n <tr>\n <td data-head=\"Name\">{{ tos.privacy | removeHtml | textTruncate: 220 }}</td>\n <td data-head=\"Terms of Services\"> {{ tos.tos | removeHtml | textTruncate: 220 }} </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <!-- Show only to SubscriptionSuperAdmin or SubscriptionOwner -->\n <li ngbTooltip=\"Edit\" class=\"me-2 me-sm-3\" *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + tos.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\" *rbacAllow=\"'SuperAdmin'\" class=\"me-2 me-sm-3\">\n <i (click)=\"onDelete(tos.id)\" 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=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Tos.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n" }]
90
+ args: [{ selector: 'pw-terms-of-service', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Terms of Services & Privacy Policy</h2>\n <button *rbacAllow=\"'SuperAdmin'\" class=\"btn btn-sm btn-outline-primary float-end\" data-cy=\"create-Tos\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Terms of Services </button>\n </div>\n</div>\n<div class=\"w-100 text-center mt-3\">\n <ng-template [ngIf]=\"!isLoaded\">\n <p-progressSpinner> </p-progressSpinner>\n </ng-template>\n</div>\n<div class=\"primeng-datatable-container mt table-responsive\" [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt [value]=\"data.product_privacy_services\" [paginator]=\"data.object_count !== 0\" [lazy]=\"true\" [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\" [loading]=\"loading\" [filterDelay]=\"1000\" (onLazyLoad)=\"onLazyLoad($event)\">\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\" [(ngModel)]=\"searchText\" pInputText size=\"50\" placeholder=\"Search Tos...\"\n (input)=\"dt.filterGlobal($event.target.value, 'contains')\" class=\"mw-90\" />\n </div>\n </ng-template>\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\" data-head=\"Privacy\">Privacy</th>\n <th scope=\"true\" data-head=\"Terms of Services\">Terms of Services</th>\n <th class=\"actions-list-two\" scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-tos>\n <tr>\n <td data-head=\"Name\">{{ tos.privacy | removeHtml | textTruncate: 220 }}</td>\n <td data-head=\"Terms of Services\"> {{ tos.tos | removeHtml | textTruncate: 220 }} </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <!-- Show only to SubscriptionSuperAdmin or SubscriptionOwner -->\n <li ngbTooltip=\"Edit\" class=\"me-2 me-sm-3\" *rbacAllow=\"'SubscriptionSuperAdmin'\"\n [routerLink]=\"[routers.tosAndPrivacyDetails + tos.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\" *rbacAllow=\"'SuperAdmin'\" class=\"me-2 me-sm-3\">\n <i (click)=\"onDelete(tos.id)\" 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=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" >\n </pw-no-data>\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Tos.NoDataMessage' | transloco\"> </pw-no-data>\n</div>\n" }]
91
91
  }], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFNOUQsTUFBTSxPQUFPLHVCQUNULFNBQVEsZ0JBQWdCO0lBY3hCLFlBQ1ksWUFBMEIsRUFDbEMsUUFBa0IsRUFDVixHQUFzQjtRQUU5QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKUixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUUxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWRsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFNBQUksR0FBdUI7WUFDdkIsd0JBQXdCLEVBQUUsRUFBRTtZQUM1QixZQUFZLEVBQUUsQ0FBQztZQUNmLGdCQUFnQixFQUFFLENBQUM7U0FDdEIsQ0FBQztRQUNGLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDVixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBUWpCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELCtCQUErQjtJQUN2QixTQUFTLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWTthQUNaLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUN0QyxTQUFTLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixRQUFRLENBQUMsRUFBVTtRQUNmLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLFNBQVMsRUFBRSxTQUFTO3FCQUN2QixDQUFDLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0ExRVEsdUJBQXVCO21HQUF2Qix1QkFBdUIsa0ZDdkJwQyx3cEdBMERBOzs0RkRuQ2EsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgUEFHRV9TSVpFIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUHJpdmFjeVRvc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9wcml2YWN5LXRvcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5nIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRlcm1zLW9mLXNlcnZpY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXJtcy1vZi1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUZXJtc09mU2VydmljZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBzZWFyY2hUZXh0ID0gJyc7XG4gICAgZGF0YTogUHJpdmFjeVRvc1Jlc3BvbnNlID0ge1xuICAgICAgICBwcm9kdWN0X3ByaXZhY3lfc2VydmljZXM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuICAgIGxvYWRpbmcgPSB0cnVlO1xuICAgIGlzTG9hZGVkID0gdHJ1ZTtcbiAgICByb3V0ZXJzID0gUk9VVEVSUztcbiAgICBwcml2YXRlIHBhZ2UgPSAxO1xuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gSGVscGVyU2VydmljZS5vblRhYmxlTGF6eUxvYWQoZXZlbnQpO1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlRGV0YWlscy5wYWdlO1xuICAgICAgICB0aGlzLmdldEFsbFRvcyh7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICBwYWdlX3NpemU6IFBBR0VfU0laRSxcbiAgICAgICAgICAgIG9yZGVyX2J5OiBwYWdlRGV0YWlscy5zb3J0RmllbGQsXG4gICAgICAgICAgICBvcmRlcl9kaXJlY3Rpb246IHBhZ2VEZXRhaWxzLnNvcnRPcmRlcixcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBjYWxsIGFsbCB0b3MgKi9cbiAgICBwcml2YXRlIGdldEFsbFRvcyhwYWdpbmc6IFBhZ2luZykge1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QWxsVG9zKHBhZ2luZywgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBQcml2YWN5VG9zUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBkZWxldGUgdG9zICovXG4gICAgb25EZWxldGUoaWQ6IG51bWJlcikge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnJhaXNlRGVsZXRlUG9wdXAoKS50aGVuKHJlcCA9PiB7XG4gICAgICAgICAgICBpZiAocmVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlVG9zKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlRvcy5EZWxldGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxUb3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9zaXplOiBQQUdFX1NJWkVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZSBwLTAgZmxvYXQtc3RhcnRcIj5UZXJtcyBvZiBTZXJ2aWNlcyAmIFByaXZhY3kgUG9saWN5PC9oMj5cbiAgICA8YnV0dG9uICpyYmFjQWxsb3c9XCInU3VwZXJBZG1pbidcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1lbmRcIiBkYXRhLWN5PVwiY3JlYXRlLVRvc1wiXG4gICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy50b3NBbmRQcml2YWN5RGV0YWlscyArICdhZGQnXVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gQ3JlYXRlIFRlcm1zIG9mIFNlcnZpY2VzIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc0xvYWRlZFwiPlxuICAgIDxwLXByb2dyZXNzU3Bpbm5lcj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInByaW1lbmctZGF0YXRhYmxlLWNvbnRhaW5lciBtdCB0YWJsZS1yZXNwb25zaXZlXCIgW2NsYXNzLmhpZGVUYWJsZV09XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDBcIj5cbiAgPHAtdGFibGUgI2R0IFt2YWx1ZV09XCJkYXRhLnByb2R1Y3RfcHJpdmFjeV9zZXJ2aWNlc1wiIFtwYWdpbmF0b3JdPVwiZGF0YS5vYmplY3RfY291bnQgIT09IDBcIiBbbGF6eV09XCJ0cnVlXCIgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cImRhdGEub2JqZWN0X2NvdW50XCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtmaWx0ZXJEZWxheV09XCIxMDAwXCIgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBtdC0yIG1lLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIHBJbnB1dFRleHQgc2l6ZT1cIjUwXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggVG9zLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCIgY2xhc3M9XCJtdy05MFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiIGRhdGEtaGVhZD1cIlByaXZhY3lcIj5Qcml2YWN5PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiIGRhdGEtaGVhZD1cIlRlcm1zIG9mIFNlcnZpY2VzXCI+VGVybXMgb2YgU2VydmljZXM8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWxpc3QtdHdvXCIgc2NvcGU9XCJ0cnVlXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC10b3M+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJOYW1lXCI+e3sgdG9zLnByaXZhY3kgfCByZW1vdmVIdG1sIHwgdGV4dFRydW5jYXRlOiAyMjAgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVGVybXMgb2YgU2VydmljZXNcIj4ge3sgdG9zLnRvcyB8IHJlbW92ZUh0bWwgfCB0ZXh0VHJ1bmNhdGU6IDIyMCB9fSA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPCEtLSBTaG93IG9ubHkgdG8gU3Vic2NyaXB0aW9uU3VwZXJBZG1pbiBvciBTdWJzY3JpcHRpb25Pd25lciAtLT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRWRpdFwiIGNsYXNzPVwibWUtMiBtZS1zbS0zXCIgKnJiYWNBbGxvdz1cIidTdWJzY3JpcHRpb25TdXBlckFkbWluJ1wiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLnRvc0FuZFByaXZhY3lEZXRhaWxzICsgdG9zLmlkXVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRGVsZXRlXCIgKnJiYWNBbGxvdz1cIidTdXBlckFkbWluJ1wiIGNsYXNzPVwibWUtMiBtZS1zbS0zXCI+XG4gICAgICAgICAgICAgIDxpIChjbGljayk9XCJvbkRlbGV0ZSh0b3MuaWQpXCIgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRhYmxlPlxuPGRpdiAqbmdJZj1cImRhdGEub2JqZWN0X2NvdW50ID09PSAwICYmIGRhdGEudW5maWx0ZXJlZF9jb3VudCAhPT0gMFwiPlxuICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidTZWFyY2guTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIiBbZGVzY3JpcHRpb25dPVwiJ1NlYXJjaC5Ob0RhdGFEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiA+XG4gICAgPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4gIDxzcGFuICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgIT09IDBcIiBjbGFzcz1cInRvdGFsLXJlY29yZHMtY291bnRcIj57eyAnTGFiZWwuVG90YWwnIHwgdHJhbnNsb2NvIH19OiB7eyAgZGF0YS5vYmplY3RfY291bnQgfX08L3NwYW4+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDBcIj5cbiAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ1Rvcy5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UvdGVybXMtb2Ytc2VydmljZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFNOUQsTUFBTSxPQUFPLHVCQUNULFNBQVEsZ0JBQWdCO0lBY3hCLFlBQ1ksWUFBMEIsRUFDbEMsUUFBa0IsRUFDVixHQUFzQjtRQUU5QixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFKUixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUUxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWRsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLFNBQUksR0FBdUI7WUFDdkIsd0JBQXdCLEVBQUUsRUFBRTtZQUM1QixZQUFZLEVBQUUsQ0FBQztZQUNmLGdCQUFnQixFQUFFLENBQUM7U0FDdEIsQ0FBQztRQUNGLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDVixTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBUWpCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELCtCQUErQjtJQUN2QixTQUFTLENBQUMsTUFBYztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWTthQUNaLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQzthQUN0QyxTQUFTLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixRQUFRLENBQUMsRUFBVTtRQUNmLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLFNBQVMsRUFBRSxTQUFTO3FCQUN2QixDQUFDLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0ExRVEsdUJBQXVCO21HQUF2Qix1QkFBdUIsa0ZDdkJwQyxvcUdBMERBOzs0RkRuQ2EsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IEFkbWluU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgUk9VVEVSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yb3V0ZXJzL3JvdXRlcnMnO1xuaW1wb3J0IHsgUEFHRV9TSVpFIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgUHJpdmFjeVRvc1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9wcml2YWN5LXRvcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5nIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi11dGlsaXRpZXMnO1xuaW1wb3J0IHsgSGVscGVyU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9oZWxwZXItc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRlcm1zLW9mLXNlcnZpY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXJtcy1vZi1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUZXJtc09mU2VydmljZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWRcbntcbiAgICBzZWFyY2hUZXh0ID0gJyc7XG4gICAgZGF0YTogUHJpdmFjeVRvc1Jlc3BvbnNlID0ge1xuICAgICAgICBwcm9kdWN0X3ByaXZhY3lfc2VydmljZXM6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuICAgIGxvYWRpbmcgPSB0cnVlO1xuICAgIGlzTG9hZGVkID0gdHJ1ZTtcbiAgICByb3V0ZXJzID0gUk9VVEVSUztcbiAgICBwcml2YXRlIHBhZ2UgPSAxO1xuICAgIHN1YnNjcmlwdGlvbklkOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25JZCA9IFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkU3Vic2NyaXB0aW9uPy5pZDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkxhenlMb2FkKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhZ2VEZXRhaWxzID0gSGVscGVyU2VydmljZS5vblRhYmxlTGF6eUxvYWQoZXZlbnQpO1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlRGV0YWlscy5wYWdlO1xuICAgICAgICB0aGlzLmdldEFsbFRvcyh7XG4gICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICBwYWdlX3NpemU6IFBBR0VfU0laRSxcbiAgICAgICAgICAgIG9yZGVyX2J5OiBwYWdlRGV0YWlscy5zb3J0RmllbGQsXG4gICAgICAgICAgICBvcmRlcl9kaXJlY3Rpb246IHBhZ2VEZXRhaWxzLnNvcnRPcmRlcixcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2hUZXh0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBjYWxsIGFsbCB0b3MgKi9cbiAgICBwcml2YXRlIGdldEFsbFRvcyhwYWdpbmc6IFBhZ2luZykge1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QWxsVG9zKHBhZ2luZywgdGhpcy5zdWJzY3JpcHRpb25JZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBQcml2YWN5VG9zUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0byBkZWxldGUgdG9zICovXG4gICAgb25EZWxldGUoaWQ6IG51bWJlcikge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnJhaXNlRGVsZXRlUG9wdXAoKS50aGVuKHJlcCA9PiB7XG4gICAgICAgICAgICBpZiAocmVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlVG9zKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLlRvcy5EZWxldGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxUb3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9zaXplOiBQQUdFX1NJWkVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGgyIGNsYXNzPVwiY2FyZC10aXRsZSBwLTAgZmxvYXQtc3RhcnRcIj5UZXJtcyBvZiBTZXJ2aWNlcyAmIFByaXZhY3kgUG9saWN5PC9oMj5cbiAgICA8YnV0dG9uICpyYmFjQWxsb3c9XCInU3VwZXJBZG1pbidcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtcHJpbWFyeSBmbG9hdC1lbmRcIiBkYXRhLWN5PVwiY3JlYXRlLVRvc1wiXG4gICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy50b3NBbmRQcml2YWN5RGV0YWlscyArICdhZGQnXVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gQ3JlYXRlIFRlcm1zIG9mIFNlcnZpY2VzIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc0xvYWRlZFwiPlxuICAgIDxwLXByb2dyZXNzU3Bpbm5lcj4gPC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInByaW1lbmctZGF0YXRhYmxlLWNvbnRhaW5lciBtdCB0YWJsZS1yZXNwb25zaXZlXCIgW2NsYXNzLmhpZGVUYWJsZV09XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDBcIj5cbiAgPHAtdGFibGUgI2R0IFt2YWx1ZV09XCJkYXRhLnByb2R1Y3RfcHJpdmFjeV9zZXJ2aWNlc1wiIFtwYWdpbmF0b3JdPVwiZGF0YS5vYmplY3RfY291bnQgIT09IDBcIiBbbGF6eV09XCJ0cnVlXCIgW3Jvd3NdPVwiUEFHRV9TSVpFXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cImRhdGEub2JqZWN0X2NvdW50XCIgW2xvYWRpbmddPVwibG9hZGluZ1wiIFtmaWx0ZXJEZWxheV09XCIxMDAwXCIgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBtdC0yIG1lLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIHBJbnB1dFRleHQgc2l6ZT1cIjUwXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggVG9zLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCIgY2xhc3M9XCJtdy05MFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiIGRhdGEtaGVhZD1cIlByaXZhY3lcIj5Qcml2YWN5PC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwidHJ1ZVwiIGRhdGEtaGVhZD1cIlRlcm1zIG9mIFNlcnZpY2VzXCI+VGVybXMgb2YgU2VydmljZXM8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWxpc3QtdHdvXCIgc2NvcGU9XCJ0cnVlXCI+e3sgJ0xhYmVsLkFjdGlvbnMnIHwgdHJhbnNsb2NvIH19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC10b3M+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJOYW1lXCI+e3sgdG9zLnByaXZhY3kgfCByZW1vdmVIdG1sIHwgdGV4dFRydW5jYXRlOiAyMjAgfX08L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiVGVybXMgb2YgU2VydmljZXNcIj4ge3sgdG9zLnRvcyB8IHJlbW92ZUh0bWwgfCB0ZXh0VHJ1bmNhdGU6IDIyMCB9fSA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPCEtLSBTaG93IG9ubHkgdG8gU3Vic2NyaXB0aW9uU3VwZXJBZG1pbiBvciBTdWJzY3JpcHRpb25Pd25lciAtLT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRWRpdFwiIGNsYXNzPVwibWUtMiBtZS1zbS0zXCIgKnJiYWNBbGxvdz1cIidTdWJzY3JpcHRpb25TdXBlckFkbWluJ1wiXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXJzLnRvc0FuZFByaXZhY3lEZXRhaWxzICsgdG9zLmlkXVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRGVsZXRlXCIgKnJiYWNBbGxvdz1cIidTdXBlckFkbWluJ1wiIGNsYXNzPVwibWUtMiBtZS1zbS0zXCI+XG4gICAgICAgICAgICAgIDxpIChjbGljayk9XCJvbkRlbGV0ZSh0b3MuaWQpXCIgY2xhc3M9XCJmYSBmYS10cmFzaCBkZWxldGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRhYmxlPlxuPGRpdiAqbmdJZj1cImRhdGEub2JqZWN0X2NvdW50ID09PSAwICYmIGRhdGEudW5maWx0ZXJlZF9jb3VudCAhPT0gMFwiPlxuICAgIDxwdy1uby1kYXRhIFt3aXRoSW1hZ2VdPVwidHJ1ZVwiIFttZXNzYWdlXT1cIidTZWFyY2guTm9EYXRhTWVzc2FnZScgfCB0cmFuc2xvY29cIiBbZGVzY3JpcHRpb25dPVwiJ1NlYXJjaC5Ob0RhdGFEZXNjcmlwdGlvbicgfCB0cmFuc2xvY29cIiA+XG4gICAgPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4gIDxzcGFuICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgIT09IDBcIiBjbGFzcz1cInRvdGFsLXJlY29yZHMtY291bnRcIj57eyAnTGFiZWwuVG90YWwnIHwgdHJhbnNsb2NvIH19OiB7eyAgZGF0YS5vYmplY3RfY291bnQgfX08L3NwYW4+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJkYXRhLnVuZmlsdGVyZWRfY291bnQgPT09IDAgJiYgaXNMb2FkZWRcIj5cbiAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ1Rvcy5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiPiA8L3B3LW5vLWRhdGE+XG48L2Rpdj5cbiJdfQ==
@@ -4,7 +4,7 @@ import { AdminService } from '@posiwise/admin-module-utils';
4
4
  import { AppAdmin } from '@posiwise/admin-module-utils';
5
5
  import { AppBaseComponent } from '@posiwise/app-base-component';
6
6
  import { PermissionService } from '@posiwise/common-services';
7
- import { ValidateForm } from '@posiwise/utils';
7
+ import { QuillHelper, ValidateForm } from '@posiwise/utils';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@posiwise/admin-module-utils";
10
10
  import * as i2 from "@angular/common";
@@ -17,6 +17,7 @@ export class TermsOfServiceDetailsComponent extends AppBaseComponent {
17
17
  constructor(adminService, injector) {
18
18
  super(injector);
19
19
  this.adminService = adminService;
20
+ this.editorConfig = QuillHelper.getEditorConfig();
20
21
  this.submitted = false;
21
22
  this.form = AppAdmin.getTosForm();
22
23
  }
@@ -57,7 +58,7 @@ export class TermsOfServiceDetailsComponent extends AppBaseComponent {
57
58
  super.ngOnDestroy();
58
59
  }
59
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TermsOfServiceDetailsComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TermsOfServiceDetailsComponent, selector: "pw-terms-of-service-details", usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4 p-2\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../tos\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Terms of Service: {{ data?.title ? data?.title : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Title' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <textarea type=\"text\"\n class=\"form-control\"\n rows=\"2\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\"></textarea>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Privacy' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"privacy\"\n [ngClass]=\"{ 'is-invalid': submitted && f['privacy'].errors }\">\n </quill-editor>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Tos' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"tos\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tos'].errors }\">\n </quill-editor>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}transloco\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.QuillEditorComponent, selector: "quill-editor" }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: TermsOfServiceDetailsComponent, selector: "pw-terms-of-service-details", usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../tos\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Terms of Service: {{ data?.title ? data?.title : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Title' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <textarea type=\"text\"\n class=\"form-control\"\n rows=\"2\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\"></textarea>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Privacy' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [modules]=\"editorConfig\" class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"privacy\"\n [ngClass]=\"{ 'is-invalid': submitted && f['privacy'].errors, 'w-100': true }\">\n </quill-editor>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Tos' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [modules]=\"editorConfig\" class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"tos\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tos'].errors, 'w-100': true }\">\n </quill-editor>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.QuillEditorComponent, selector: "quill-editor" }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
61
62
  }
62
63
  __decorate([
63
64
  ValidateForm('form'),
@@ -67,6 +68,6 @@ __decorate([
67
68
  ], TermsOfServiceDetailsComponent.prototype, "onSave", null);
68
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: TermsOfServiceDetailsComponent, decorators: [{
69
70
  type: Component,
70
- args: [{ selector: 'pw-terms-of-service-details', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4 p-2\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../tos\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Terms of Service: {{ data?.title ? data?.title : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Title' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <textarea type=\"text\"\n class=\"form-control\"\n rows=\"2\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\"></textarea>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Privacy' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"privacy\"\n [ngClass]=\"{ 'is-invalid': submitted && f['privacy'].errors }\">\n </quill-editor>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Tos' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"tos\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tos'].errors }\">\n </quill-editor>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}transloco\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n" }]
71
+ args: [{ selector: 'pw-terms-of-service-details', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a href=\"javascript:void(0)\"\n routerLink=\"../../tos\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>Terms of Service: {{ data?.title ? data?.title : 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSave()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label>{{ 'Label.Title' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <textarea type=\"text\"\n class=\"form-control\"\n rows=\"2\"\n formControlName=\"title\"\n [ngClass]=\"{ 'is-invalid': submitted && f['title'].errors }\"></textarea>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Privacy' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [modules]=\"editorConfig\" class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"privacy\"\n [ngClass]=\"{ 'is-invalid': submitted && f['privacy'].errors, 'w-100': true }\">\n </quill-editor>\n </div>\n </div>\n <div class=\"col-12 col-md-12\">\n <div class=\"mb-3\">\n <label class=\"d-block\">{{ 'Label.Tos' | transloco }}\n <span class=\"text-danger\">*</span></label>\n <quill-editor [modules]=\"editorConfig\" class=\"d-block\" [styles]=\"{ height: '450px' }\"\n formControlName=\"tos\"\n [ngClass]=\"{ 'is-invalid': submitted && f['tos'].errors, 'w-100': true }\">\n </quill-editor>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'SubscriptionAdmin'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n" }]
71
72
  }], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }], propDecorators: { onSave: [] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtb2Ytc2VydmljZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9UT1MvdGVybXMtb2Ytc2VydmljZS1kZXRhaWxzL3Rlcm1zLW9mLXNlcnZpY2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UtZGV0YWlscy90ZXJtcy1vZi1zZXJ2aWNlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxnQkFBZ0I7SUFTaEUsWUFBb0IsWUFBMEIsRUFBRSxRQUFrQjtRQUM5RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUY5QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSWQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxNQUFNO1FBQ0YsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO1lBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELGtDQUFrQztJQUMxQixhQUFhO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFvQixFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBdERRLDhCQUE4QjttR0FBOUIsOEJBQThCLDBGQ2QzQyx1c0ZBa0VBOztBRDVCSTtJQURDLFlBQVksQ0FBQyxNQUFNLENBQUM7Ozs7NERBZXBCOzRGQXRDUSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0ksNkJBQTZCO3dHQTJCdkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IEFwcEFkbWluIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBQcml2YWN5VG9zIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9wcml2YWN5LXRvcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Bwb3Npd2lzZS9hcHAtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXNlcnZpY2VzJztcbmltcG9ydCB7IFZhbGlkYXRlRm9ybSB9IGZyb20gJ0Bwb3Npd2lzZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctdGVybXMtb2Ytc2VydmljZS1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGVybXMtb2Ytc2VydmljZS1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUZXJtc09mU2VydmljZURldGFpbHNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgICBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogUHJpdmFjeVRvcztcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0VG9zRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBOdW1iZXIocGFyYW1zWydpZCddKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRUb3NEZXRhaWxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBWYWxpZGF0ZUZvcm0oJ2Zvcm0nKVxuICAgIG9uU2F2ZSgpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uSWQgPSBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFN1YnNjcmlwdGlvbj8uaWQ7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlLCBzdWJzY3JpcHRpb25faWQ6IHN1YnNjcmlwdGlvbklkIH07XG4gICAgICAgIGNvbnN0IHN1YiQgPSB0aGlzLmlkXG4gICAgICAgICAgICA/IHRoaXMuYWRtaW5TZXJ2aWNlLnVwZGF0ZVRvcyh0aGlzLmlkLCBkYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5wb3N0VG9zKGRhdGEpO1xuICAgICAgICBzdWIkLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3ModGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ1Rvcy5VcGRhdGVkTWVzc2FnZScpKTtcbiAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICB9KS5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY2FsbCBUb3NEZXRhaWxzICovXG4gICAgcHJpdmF0ZSBnZXRUb3NEZXRhaWxzKCkge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5nZXRUb3NEZXRhaWxzKHRoaXMuaWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IFByaXZhY3lUb3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02IG10LTQgcC0yXCI+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgIHJvdXRlckxpbms9XCIuLi8uLi90b3NcIlxuICAgICAgICAgIGNsYXNzPVwicHJldmlvdXNcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWFsdC1jaXJjbGUtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgICAgICAgIDxzcGFuPlRlcm1zIG9mIFNlcnZpY2U6IHt7IGRhdGE/LnRpdGxlID8gZGF0YT8udGl0bGUgOiAnQWRkIE5ldycgfX08L3NwYW4+XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInAtMiBtdC0zXCI+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0xhYmVsLlRpdGxlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0aXRsZSddLmVycm9ycyB9XCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZC1ibG9ja1wiPnt7ICdMYWJlbC5Qcml2YWN5JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cXVpbGwtZWRpdG9yIGNsYXNzPVwiZC1ibG9ja1wiIFtzdHlsZXNdPVwieyBoZWlnaHQ6ICc0NTBweCcgfVwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsncHJpdmFjeSddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICAgICAgPC9xdWlsbC1lZGl0b3I+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImQtYmxvY2tcIj57eyAnTGFiZWwuVG9zJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cXVpbGwtZWRpdG9yIGNsYXNzPVwiZC1ibG9ja1wiIFtzdHlsZXNdPVwieyBoZWlnaHQ6ICc0NTBweCcgfVwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0b3NcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0b3MnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLkNhbmNlbCcgfCB0cmFuc2xvY28gfX10cmFuc2xvY29cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInU3Vic2NyaXB0aW9uQWRtaW4nXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMtb2Ytc2VydmljZS1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9UT1MvdGVybXMtb2Ytc2VydmljZS1kZXRhaWxzL3Rlcm1zLW9mLXNlcnZpY2UtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvVE9TL3Rlcm1zLW9mLXNlcnZpY2UtZGV0YWlscy90ZXJtcy1vZi1zZXJ2aWNlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUd2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQU01RCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsZ0JBQWdCO0lBU2hFLFlBQ1ksWUFBMEIsRUFDbEMsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSFIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFSdEMsaUJBQVksR0FBRyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFLN0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU9kLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR0QsTUFBTTtRQUNGLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQztZQUM1QyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxrQ0FBa0M7SUFDMUIsYUFBYTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBb0IsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXpEUSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwwRkNkM0MsaXhGQWtFQTs7QUR6Qkk7SUFEQyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7OzREQWVwQjs0RkF6Q1EsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNJLDZCQUE2Qjt3R0E4QnZDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgUHJpdmFjeVRvcyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9pbnRlcmZhY2UvcHJpdmFjeS10b3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAcG9zaXdpc2UvYXBwLWJhc2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2NvbW1vbi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBRdWlsbEhlbHBlciwgVmFsaWRhdGVGb3JtIH0gZnJvbSAnQHBvc2l3aXNlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy10ZXJtcy1vZi1zZXJ2aWNlLWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXJtcy1vZi1zZXJ2aWNlLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1zT2ZTZXJ2aWNlRGV0YWlsc0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBlZGl0b3JDb25maWcgPSBRdWlsbEhlbHBlci5nZXRFZGl0b3JDb25maWcoKTtcbiAgICBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogUHJpdmFjeVRvcztcblxuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIHRoaXMuZm9ybSA9IEFwcEFkbWluLmdldFRvc0Zvcm0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkID0gTnVtYmVyKHBhcmFtc1snaWQnXSk7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9zRGV0YWlscygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAVmFsaWRhdGVGb3JtKCdmb3JtJylcbiAgICBvblNhdmUoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbklkID0gUGVybWlzc2lvblNlcnZpY2Uuc2VsZWN0ZWRTdWJzY3JpcHRpb24/LmlkO1xuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZm9ybS52YWx1ZSwgc3Vic2NyaXB0aW9uX2lkOiBzdWJzY3JpcHRpb25JZCB9O1xuICAgICAgICBjb25zdCBzdWIkID0gdGhpcy5pZFxuICAgICAgICAgICAgPyB0aGlzLmFkbWluU2VydmljZS51cGRhdGVUb3ModGhpcy5pZCwgZGF0YSlcbiAgICAgICAgICAgIDogdGhpcy5hZG1pblNlcnZpY2UucG9zdFRvcyhkYXRhKTtcbiAgICAgICAgc3ViJC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlKCdUb3MuVXBkYXRlZE1lc3NhZ2UnKSk7XG4gICAgICAgICAgICB0aGlzLmJhY2soKTtcbiAgICAgICAgfSkuYWRkKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGNhbGwgVG9zRGV0YWlscyAqL1xuICAgIHByaXZhdGUgZ2V0VG9zRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZ2V0VG9zRGV0YWlscyh0aGlzLmlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBQcml2YWN5VG9zKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhc2hib2FyZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWUtYXV0byBjb2wteHMtNiBtdC00XCI+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgIHJvdXRlckxpbms9XCIuLi8uLi90b3NcIlxuICAgICAgICAgIGNsYXNzPVwicHJldmlvdXNcIj48aSBjbGFzcz1cImZhIGZhLWFycm93LWFsdC1jaXJjbGUtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgICAgICAgIDxzcGFuPlRlcm1zIG9mIFNlcnZpY2U6IHt7IGRhdGE/LnRpdGxlID8gZGF0YT8udGl0bGUgOiAnQWRkIE5ldycgfX08L3NwYW4+XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInAtMiBtdC0zXCI+XG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgICAgKG5nU3VibWl0KT1cIm9uU2F2ZSgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0xhYmVsLlRpdGxlJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgcm93cz1cIjJcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWyd0aXRsZSddLmVycm9ycyB9XCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTEyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZC1ibG9ja1wiPnt7ICdMYWJlbC5Qcml2YWN5JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cXVpbGwtZWRpdG9yIFttb2R1bGVzXT1cImVkaXRvckNvbmZpZ1wiIGNsYXNzPVwiZC1ibG9ja1wiIFtzdHlsZXNdPVwieyBoZWlnaHQ6ICc0NTBweCcgfVwiXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcml2YWN5XCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsncHJpdmFjeSddLmVycm9ycywgJ3ctMTAwJzogdHJ1ZSAgfVwiPlxuICAgICAgICAgICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJkLWJsb2NrXCI+e3sgJ0xhYmVsLlRvcycgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHF1aWxsLWVkaXRvciAgW21vZHVsZXNdPVwiZWRpdG9yQ29uZmlnXCIgY2xhc3M9XCJkLWJsb2NrXCIgW3N0eWxlc109XCJ7IGhlaWdodDogJzQ1MHB4JyB9XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRvc1wiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ3RvcyddLmVycm9ycywgJ3ctMTAwJzogdHJ1ZSAgfVwiPlxuICAgICAgICAgICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kZWZhdWx0IG1lLTJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIj5cbiAgICAgICAgICAgICAgICB7eyAnQnV0dG9uLkNhbmNlbCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICpyYmFjQWxsb3c9XCInU3Vic2NyaXB0aW9uQWRtaW4nXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -53,10 +53,10 @@ export class GlobalConfigDetailsComponent extends AppBaseComponent {
53
53
  super.ngOnDestroy();
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigDetailsComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigDetailsComponent, selector: "pw-global-config-details", usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Admin.GlobalConfigMessage.Config' | transloco }}:\n {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.NameValidator' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.FieldType' | transloco\"\n name=\"field_type\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.FieldTypeValidator' | transloco\n \">\n <select formControlName=\"field_type\"\n class=\"form-control form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['field_type'].errors\n }\">\n <option *ngFor=\"let option of fieldTypes\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Default' | transloco\"\n class=\"nowrap\"\n name=\"default\">\n <ui-switch class=\"d-block\"\n formControlName=\"default\"\n name=\"default\"\n [ngClass]=\"{ 'is-invalid': submitted && f['default'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.UiSwitchComponent, selector: "ui-switch", inputs: ["size", "color", "switchOffColor", "switchColor", "defaultBgColor", "defaultBoColor", "checkedLabel", "uncheckedLabel", "checkedTextColor", "uncheckedTextColor", "beforeChange", "ariaLabel", "checked", "disabled", "reverse", "loading"], outputs: ["change", "changeEvent", "valueChange"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "directive", type: i6.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigDetailsComponent, selector: "pw-global-config-details", usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Admin.GlobalConfigMessage.Config' | transloco }}:\n {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.NameValidator' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.FieldType' | transloco\"\n name=\"field_type\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.FieldTypeValidator' | transloco\n \">\n <select formControlName=\"field_type\"\n class=\"form-control form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['field_type'].errors\n }\">\n <option *ngFor=\"let option of fieldTypes\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Default' | transloco\"\n class=\"nowrap\"\n name=\"default\">\n <ui-switch class=\"d-block\"\n formControlName=\"default\"\n name=\"default\"\n [ngClass]=\"{ 'is-invalid': submitted && f['default'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.UiSwitchComponent, selector: "ui-switch", inputs: ["size", "color", "switchOffColor", "switchColor", "defaultBgColor", "defaultBoColor", "checkedLabel", "uncheckedLabel", "checkedTextColor", "uncheckedTextColor", "beforeChange", "ariaLabel", "checked", "disabled", "reverse", "loading"], outputs: ["change", "changeEvent", "valueChange"] }, { kind: "component", type: i5.InputContainerComponent, selector: "pw-input-container", inputs: ["name", "label", "labelClass", "tooltipPosition", "required", "errorMsg", "isReadOnly", "showTooltip", "tooltipText", "showTriangle", "afterLabel", "showAfterLabel", "showTriangleText"] }, { kind: "directive", type: i6.RbacAllowDirective, selector: "[rbacAllow]", inputs: ["rbacAllow"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i7.TranslocoPipe, name: "transloco" }] }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigDetailsComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ selector: 'pw-global-config-details', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Admin.GlobalConfigMessage.Config' | transloco }}:\n {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.NameValidator' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.FieldType' | transloco\"\n name=\"field_type\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.FieldTypeValidator' | transloco\n \">\n <select formControlName=\"field_type\"\n class=\"form-control form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['field_type'].errors\n }\">\n <option *ngFor=\"let option of fieldTypes\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Default' | transloco\"\n class=\"nowrap\"\n name=\"default\">\n <ui-switch class=\"d-block\"\n formControlName=\"default\"\n name=\"default\"\n [ngClass]=\"{ 'is-invalid': submitted && f['default'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n" }]
60
+ args: [{ selector: 'pw-global-config-details', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div class=\"me-auto col-xs-6 mt-4\">\n <a href=\"javascript:void(0)\"\n (click)=\"back()\"\n class=\"previous\">\n <i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"m-subheader__title m-subheader__title--separator\">\n <span>{{ 'Admin.GlobalConfigMessage.Config' | transloco }}:\n {{ data?.name || 'Add New' }}</span>\n </h3>\n </div>\n\n <div class=\"p-2 mt-3\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"onSaveForm()\">\n <div class=\"row\">\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Name' | transloco\"\n class=\"col-md-6 p-0\"\n name=\"name\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.NameValidator' | transloco\n \">\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n [ngClass]=\"{ 'is-invalid': submitted && f['name'].errors }\" />\n </pw-input-container>\n </div>\n </div>\n <div class=\"col-12 col-md-4\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.FieldType' | transloco\"\n name=\"field_type\"\n [errorMsg]=\"\n 'Admin.GlobalConfigMessage.FieldTypeValidator' | transloco\n \">\n <select formControlName=\"field_type\"\n class=\"form-control form-select\"\n [ngClass]=\"{\n 'is-invalid': submitted && f['field_type'].errors\n }\">\n <option *ngFor=\"let option of fieldTypes\"\n [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </pw-input-container>\n </div>\n </div>\n <div class=\"col\">\n <div class=\"mb-3\">\n <pw-input-container [label]=\"'Admin.GlobalConfigMessage.Default' | transloco\"\n class=\"nowrap\"\n name=\"default\">\n <ui-switch class=\"d-block\"\n formControlName=\"default\"\n name=\"default\"\n [ngClass]=\"{ 'is-invalid': submitted && f['default'].errors }\">\n </ui-switch>\n </pw-input-container>\n </div>\n </div>\n\n <div class=\"col-12 text-end mt-3\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"back()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n class=\"btn btn-primary\"\n *rbacAllow=\"'Pages.Admin.Credentials.Edit'\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n" }]
61
61
  }], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy1kZXRhaWxzL2dsb2JhbC1jb25maWctZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlnL2dsb2JhbC1jb25maWctZGV0YWlscy9nbG9iYWwtY29uZmlnLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU1oRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsZ0JBQWdCO0lBVzlELFlBQW9CLFlBQTBCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREEsaUJBQVksR0FBWixZQUFZLENBQWM7UUFKOUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBSXRCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsRUFBVTtRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQXNCLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQ3pFLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXhEUSw0QkFBNEI7bUdBQTVCLDRCQUE0Qix1RkNaekMsNjlHQXFGQTs7NEZEekVhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9nbG9iYWwtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctZ2xvYmFsLWNvbmZpZy1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2xvYmFsLWNvbmZpZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxDb25maWdEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcHJpdmF0ZSBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogR2xvYmFsQ29uZmlnO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICBmaWVsZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0R2xvYmFsQ29uZmlnRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldEZpZWxkVHlwZXMoKTtcbiAgICAgICAgdGhpcy5pZCA9IE51bWJlcih0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXSk7XG4gICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEdsb2JhbENvbmZpZ0RldGFpbHModGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEdsb2JhbENvbmZpZ0RldGFpbHMoaWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5nZXRHbG9iYWxDb25maWdEZXRhaWxzKGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBHbG9iYWxDb25maWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgb25TYXZlRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UuZWRpdEdsb2JhbENvbmZpZyh0aGlzLmlkLCBkYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5wb3N0R2xvYmFsQ29uZmlnKGRhdGEpO1xuICAgICAgICBzdWIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuVXBkYXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkVHlwZXMoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmdldEFsbEZpZWxkVHlwZSgpLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkVHlwZXMgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02XCI+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxuICAgICAgICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgICAgICAgIGNsYXNzPVwicHJldmlvdXNcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWFsdC1jaXJjbGUtbGVmdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XG4gICAgICAgIDxoMyBjbGFzcz1cIm0tc3ViaGVhZGVyX190aXRsZSBtLXN1YmhlYWRlcl9fdGl0bGUtLXNlcGFyYXRvclwiPlxuICAgICAgICAgIDxzcGFuPnt7ICdBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLkNvbmZpZycgfCB0cmFuc2xvY28gfX06XG4gICAgICAgICAgICB7eyBkYXRhPy5uYW1lIHx8ICdBZGQgTmV3JyB9fTwvc3Bhbj5cbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicC0yIG10LTNcIj5cbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgICAobmdTdWJtaXQpPVwib25TYXZlRm9ybSgpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLk5hbWUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1kLTYgcC0wXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5OYW1lVmFsaWRhdG9yJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ25hbWUnXS5lcnJvcnMgfVwiIC8+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRmllbGRUeXBlJyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZmllbGRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICBbZXJyb3JNc2ddPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRmllbGRUeXBlVmFsaWRhdG9yJyB8IHRyYW5zbG9jb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImZpZWxkX3R5cGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnZmllbGRfdHlwZSddLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpZWxkVHlwZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5EZWZhdWx0JyB8IHRyYW5zbG9jb1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZGVmYXVsdFwiPlxuICAgICAgICAgICAgICAgICAgPHVpLXN3aXRjaCBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGZbJ2RlZmF1bHQnXS5lcnJvcnMgfVwiPlxuICAgICAgICAgICAgICAgICAgPC91aS1zd2l0Y2g+XG4gICAgICAgICAgICAgICAgPC9wdy1pbnB1dC1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1lbmQgbXQtM1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRlZmF1bHQgbWUtMlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiPlxuICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uQ2FuY2VsJyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgKnJiYWNBbGxvdz1cIidQYWdlcy5BZG1pbi5DcmVkZW50aWFscy5FZGl0J1wiPlxuICAgICAgICAgICAgICAgIHt7ICdCdXR0b24uU3VibWl0JyB8IHRyYW5zbG9jbyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy1kZXRhaWxzL2dsb2JhbC1jb25maWctZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlnL2dsb2JhbC1jb25maWctZGV0YWlscy9nbG9iYWwtY29uZmlnLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7OztBQU1oRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsZ0JBQWdCO0lBVzlELFlBQW9CLFlBQTBCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREEsaUJBQVksR0FBWixZQUFZLENBQWM7UUFKOUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBSXRCLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsRUFBVTtRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQXNCLEVBQUUsRUFBRTtZQUM5RSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLENBQ3pFLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXhEUSw0QkFBNEI7bUdBQTVCLDRCQUE0Qix1RkNaekMsaytHQXFGQTs7NEZEekVhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2FkbWluLW1vZHVsZS11dGlscyc7XG5pbXBvcnQgeyBBcHBBZG1pbiB9IGZyb20gJ0Bwb3Npd2lzZS9hZG1pbi1tb2R1bGUtdXRpbHMnO1xuaW1wb3J0IHsgR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9nbG9iYWwtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncHctZ2xvYmFsLWNvbmZpZy1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2xvYmFsLWNvbmZpZy1kZXRhaWxzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxDb25maWdEZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgcHJpdmF0ZSBpZDogbnVtYmVyO1xuXG4gICAgZGF0YTogR2xvYmFsQ29uZmlnO1xuXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICBmaWVsZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhZG1pblNlcnZpY2U6IEFkbWluU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICAgICAgdGhpcy5mb3JtID0gQXBwQWRtaW4uZ2V0R2xvYmFsQ29uZmlnRm9ybSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldEZpZWxkVHlwZXMoKTtcbiAgICAgICAgdGhpcy5pZCA9IE51bWJlcih0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXSk7XG4gICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmdldEdsb2JhbENvbmZpZ0RldGFpbHModGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEdsb2JhbENvbmZpZ0RldGFpbHMoaWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5nZXRHbG9iYWxDb25maWdEZXRhaWxzKGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBHbG9iYWxDb25maWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XG4gICAgfVxuXG4gICAgb25TYXZlRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICAgICAgY29uc3Qgc3ViJCA9IHRoaXMuaWRcbiAgICAgICAgICAgID8gdGhpcy5hZG1pblNlcnZpY2UuZWRpdEdsb2JhbENvbmZpZyh0aGlzLmlkLCBkYXRhKVxuICAgICAgICAgICAgOiB0aGlzLmFkbWluU2VydmljZS5wb3N0R2xvYmFsQ29uZmlnKGRhdGEpO1xuICAgICAgICBzdWIkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGUoJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuVXBkYXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuYmFjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpZWxkVHlwZXMoKSB7XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmdldEFsbEZpZWxkVHlwZSgpLnN1YnNjcmliZSgocmVzcG9uc2U6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkVHlwZXMgPSByZXNwb25zZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwdy10YWIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZS1hdXRvIGNvbC14cy02IG10LTRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgICAgY2xhc3M9XCJwcmV2aW91c1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvYT5cbiAgICAgICAgPGgzIGNsYXNzPVwibS1zdWJoZWFkZXJfX3RpdGxlIG0tc3ViaGVhZGVyX190aXRsZS0tc2VwYXJhdG9yXCI+XG4gICAgICAgICAgPHNwYW4+e3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuQ29uZmlnJyB8IHRyYW5zbG9jbyB9fTpcbiAgICAgICAgICAgIHt7IGRhdGE/Lm5hbWUgfHwgJ0FkZCBOZXcnIH19PC9zcGFuPlxuICAgICAgICA8L2gzPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTIgbXQtM1wiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAgIChuZ1N1Ym1pdCk9XCJvblNhdmVGb3JtKClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgPHB3LWlucHV0LWNvbnRhaW5lciBbbGFiZWxdPVwiJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuTmFtZScgfCB0cmFuc2xvY29cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNiBwLTBcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2Vycm9yTXNnXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLk5hbWVWYWxpZGF0b3InIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnbmFtZSddLmVycm9ycyB9XCIgLz5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICAgICAgICA8cHctaW5wdXQtY29udGFpbmVyIFtsYWJlbF09XCInQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5GaWVsZFR5cGUnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJmaWVsZF90eXBlXCJcbiAgICAgICAgICAgICAgICAgIFtlcnJvck1zZ109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5GaWVsZFR5cGVWYWxpZGF0b3InIHwgdHJhbnNsb2NvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmWydmaWVsZF90eXBlJ10uZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmllbGRUeXBlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvcHctaW5wdXQtY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgIDxwdy1pbnB1dC1jb250YWluZXIgW2xhYmVsXT1cIidBZG1pbi5HbG9iYWxDb25maWdNZXNzYWdlLkRlZmF1bHQnIHwgdHJhbnNsb2NvXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibm93cmFwXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICAgICAgICA8dWktc3dpdGNoIGNsYXNzPVwiZC1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZlsnZGVmYXVsdCddLmVycm9ycyB9XCI+XG4gICAgICAgICAgICAgICAgICA8L3VpLXN3aXRjaD5cbiAgICAgICAgICAgICAgICA8L3B3LWlucHV0LWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiB0ZXh0LWVuZCBtdC0zXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGVmYXVsdCBtZS0yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYmFjaygpXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5DYW5jZWwnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAqcmJhY0FsbG93PVwiJ1BhZ2VzLkFkbWluLkNyZWRlbnRpYWxzLkVkaXQnXCI+XG4gICAgICAgICAgICAgICAge3sgJ0J1dHRvbi5TdWJtaXQnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -83,10 +83,10 @@ export class GlobalConfigListComponent extends AppBaseComponent {
83
83
  super.ngOnDestroy();
84
84
  }
85
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigListComponent, deps: [{ token: i1.AdminService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigListComponent, selector: "pw-global-config-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Global Configs</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"add-global-config\"\n [routerLink]=\"[routers.globalConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.GlobalConfigMessage.AddGlobalConfig' | transloco }}\n </button>\n </div>\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.global_configs\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search global configs...\"\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 {{ 'Admin.GlobalConfigMessage.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field_type\">\n {{ 'Admin.GlobalConfigMessage.FieldType' | transloco }}\n <p-sortIcon field=\"field_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"default\">\n {{ 'Admin.GlobalConfigMessage.Default' | transloco }}\n <p-sortIcon field=\"default\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-config>\n <tr>\n <td data-head=\"Name\">{{ config.name }}</td>\n <td data-head=\"Field Type\">\n <span [appDynamicBadge]=\"{ itemsArray: fieldTypes, item: config?.field_type }\"\n color=\"cyan\"\n class=\"badge\">\n {{ config.field_type }}\n </span>\n </td>\n <td data-head=\"Default\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: config?.default }\"\n color=\"success-danger\"\n class=\"badge\">{{ config?.default ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.globalConfigDetails + config.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(config.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n<div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\" > </pw-no-data>\n</div>\n", dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i9.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i10.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }] }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: GlobalConfigListComponent, selector: "pw-global-config-list", usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Global Configs</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"add-global-config\"\n [routerLink]=\"[routers.globalConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.GlobalConfigMessage.AddGlobalConfig' | transloco }}\n </button>\n </div>\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.global_configs\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search global configs...\"\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 {{ 'Admin.GlobalConfigMessage.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field_type\">\n {{ 'Admin.GlobalConfigMessage.FieldType' | transloco }}\n <p-sortIcon field=\"field_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"default\">\n {{ 'Admin.GlobalConfigMessage.Default' | transloco }}\n <p-sortIcon field=\"default\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-config>\n <tr>\n <td data-head=\"Name\">{{ config.name }}</td>\n <td data-head=\"Field Type\">\n <span [appDynamicBadge]=\"{ itemsArray: fieldTypes, item: config?.field_type }\"\n color=\"cyan\"\n class=\"badge\">\n {{ config.field_type }}\n </span>\n </td>\n <td data-head=\"Default\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: config?.default }\"\n color=\"success-danger\"\n class=\"badge\">{{ config?.default ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.globalConfigDetails + config.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(config.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n<div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\" > </pw-no-data>\n</div>\n", dependencies: [{ kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "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", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ProgressSpinner, selector: "p-progressSpinner", inputs: ["styleClass", "style", "strokeWidth", "fill", "animationDuration", "ariaLabel"] }, { kind: "component", type: i9.NoDataComponent, selector: "pw-no-data", inputs: ["message", "description", "withImage"] }, { kind: "directive", type: i10.DynamicBadgeDirective, selector: "[appDynamicBadge]", inputs: ["appDynamicBadge", "color"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i12.TranslocoPipe, name: "transloco" }] }); }
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GlobalConfigListComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'pw-global-config-list', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Global Configs</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"add-global-config\"\n [routerLink]=\"[routers.globalConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.GlobalConfigMessage.AddGlobalConfig' | transloco }}\n </button>\n </div>\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.global_configs\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search global configs...\"\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 {{ 'Admin.GlobalConfigMessage.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field_type\">\n {{ 'Admin.GlobalConfigMessage.FieldType' | transloco }}\n <p-sortIcon field=\"field_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"default\">\n {{ 'Admin.GlobalConfigMessage.Default' | transloco }}\n <p-sortIcon field=\"default\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-config>\n <tr>\n <td data-head=\"Name\">{{ config.name }}</td>\n <td data-head=\"Field Type\">\n <span [appDynamicBadge]=\"{ itemsArray: fieldTypes, item: config?.field_type }\"\n color=\"cyan\"\n class=\"badge\">\n {{ config.field_type }}\n </span>\n </td>\n <td data-head=\"Default\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: config?.default }\"\n color=\"success-danger\"\n class=\"badge\">{{ config?.default ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.globalConfigDetails + config.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(config.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n<div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\" > </pw-no-data>\n</div>\n" }]
90
+ args: [{ selector: 'pw-global-config-list', template: "<div class=\"row\">\n <div class=\"col-12 d-flex justify-content-between align-items-center\">\n <h2 class=\"card-title p-0 float-start\">Global Configs</h2>\n <button class=\"btn btn-sm btn-outline-primary float-end\"\n data-cy=\"add-global-config\"\n [routerLink]=\"[routers.globalConfigDetails + 'add']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i>\n {{ 'Admin.GlobalConfigMessage.AddGlobalConfig' | transloco }}\n </button>\n </div>\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 mt table-responsive\"\n [class.hideTable]=\"data.unfiltered_count === 0\">\n <p-table #dt\n [value]=\"data.global_configs\"\n [paginator]=\"data.object_count !== 0\"\n [lazy]=\"true\"\n [rows]=\"PAGE_SIZE\"\n [totalRecords]=\"data.object_count\"\n [loading]=\"loading\"\n [filterDelay]=\"1000\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [customSort]=\"true\">\n <ng-template pTemplate=\"caption\">\n <div class=\"text-end\">\n <i class=\"fa fa-search mt-2 me-2\" aria-hidden=\"true\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchText\"\n pInputText\n size=\"50\"\n placeholder=\"Search global configs...\"\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 {{ 'Admin.GlobalConfigMessage.Name' | transloco }}\n <p-sortIcon field=\"name\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"field_type\">\n {{ 'Admin.GlobalConfigMessage.FieldType' | transloco }}\n <p-sortIcon field=\"field_type\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n pSortableColumn=\"default\">\n {{ 'Admin.GlobalConfigMessage.Default' | transloco }}\n <p-sortIcon field=\"default\"></p-sortIcon>\n </th>\n <th scope=\"true\"\n class=\"actions-list-two\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-config>\n <tr>\n <td data-head=\"Name\">{{ config.name }}</td>\n <td data-head=\"Field Type\">\n <span [appDynamicBadge]=\"{ itemsArray: fieldTypes, item: config?.field_type }\"\n color=\"cyan\"\n class=\"badge\">\n {{ config.field_type }}\n </span>\n </td>\n <td data-head=\"Default\">\n <span [appDynamicBadge]=\"{ itemsArray: [true, false], item: config?.default }\"\n color=\"success-danger\"\n class=\"badge\">{{ config?.default ? 'Yes' : 'No' }}</span>\n </td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline\">\n <li ngbTooltip=\"Edit\"\n class=\"me-2 me-sm-3\"\n [routerLink]=\"[routers.globalConfigDetails + config.id]\">\n <i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i>\n </li>\n <li ngbTooltip=\"Delete\"\n class=\"me-2 me-sm-3\">\n <i\n (click)=\"onDelete(config.id)\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n<div *ngIf=\"data.object_count === 0 && data.unfiltered_count !== 0\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Search.NoDataMessage' | transloco\" [description]=\"'Search.NoDataDescription' | transloco\" />\n</div>\n <span *ngIf=\"data.object_count !== 0\" class=\"total-records-count\">{{ 'Label.Total' | transloco }}: {{ data.object_count }}</span>\n</div>\n<div *ngIf=\"data.unfiltered_count === 0 && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Admin.GlobalConfigMessage.NoDataMessage' | transloco\" > </pw-no-data>\n</div>\n" }]
91
91
  }], ctorParameters: () => [{ type: i1.AdminService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy1saXN0L2dsb2JhbC1jb25maWctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlnL2dsb2JhbC1jb25maWctbGlzdC9nbG9iYWwtY29uZmlnLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNekQsTUFBTSxPQUFPLHlCQUNULFNBQVEsZ0JBQWdCO0lBbUJ4QixZQUNZLFlBQTBCLEVBQ2xDLFFBQWtCLEVBQ1YsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQmxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFDLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFTCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRW5CLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFMUIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQixTQUFJLEdBQXlCO1lBQ3pCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO0lBUUYsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtDQUFrQztJQUMxQixtQkFBbUIsQ0FBQyxNQUFjO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZO2FBQ1osbUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQzNCLFNBQVMsQ0FBQyxDQUFDLFFBQThCLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN6QixDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQVU7UUFDZixhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUN6RSxDQUFDO29CQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBbkZRLHlCQUF5QjttR0FBekIseUJBQXlCLG9GQ3RCdEMscW9JQXdHQTs7NEZEbEZhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEdsb2JhbENvbmZpZ1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9nbG9iYWwtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1nbG9iYWwtY29uZmlnLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nbG9iYWwtY29uZmlnLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdsb2JhbENvbmZpZ0xpc3RDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgc2VhcmNoVGV4dCA9ICcnO1xuICAgIGlzTG9hZGVkPXRydWU7XG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBwcm90ZWN0ZWQgcGFnZSA9IDE7XG5cbiAgICBmaWVsZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBkYXRhOiBHbG9iYWxDb25maWdSZXNwb25zZSA9IHtcbiAgICAgICAgZ2xvYmFsX2NvbmZpZ3M6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRGaWVsZFR5cGVzKCk7XG4gICAgfVxuXG4gICAgb25MYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBwYWdlRGV0YWlscyA9IEhlbHBlclNlcnZpY2Uub25UYWJsZUxhenlMb2FkKGV2ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZURldGFpbHMucGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxHbG9iYWxDb25maWdzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaFRleHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCBhbGwgY29uZmlncyAqL1xuICAgIHByaXZhdGUgZ2V0QWxsR2xvYmFsQ29uZmlncyhwYWdpbmc6IFBhZ2luZykge1xuICAgICAgICB0aGlzLmlzTG9hZGVkPWZhbHNlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldEFsbEdsb2JhbENvbmZpZ3MocGFnaW5nKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEdsb2JhbENvbmZpZ1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZD10cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoaWQ6IG51bWJlcikge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnJhaXNlRGVsZXRlUG9wdXAoKS50aGVuKHJlcCA9PiB7XG4gICAgICAgICAgICBpZiAocmVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlR2xvYmFsQ29uZmlnKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5EZWxldGVkTWVzc2FnZScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsR2xvYmFsQ29uZmlncyh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZV9zaXplOiBQQUdFX1NJWkUgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmllbGRUeXBlcygpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZ2V0QWxsRmllbGRUeXBlKCkuc3Vic2NyaWJlKChyZXNwb25zZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRUeXBlcyA9IHJlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoMiBjbGFzcz1cImNhcmQtdGl0bGUgcC0wIGZsb2F0LXN0YXJ0XCI+R2xvYmFsIENvbmZpZ3M8L2gyPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXByaW1hcnkgZmxvYXQtZW5kXCJcbiAgICAgIGRhdGEtY3k9XCJhZGQtZ2xvYmFsLWNvbmZpZ1wiXG4gICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy5nbG9iYWxDb25maWdEZXRhaWxzICsgJ2FkZCddXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuQWRkR2xvYmFsQ29uZmlnJyB8IHRyYW5zbG9jbyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cIiFpc0xvYWRlZFwiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgbXQgdGFibGUtcmVzcG9uc2l2ZVwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwXCI+XG4gIDxwLXRhYmxlICNkdFxuICAgIFt2YWx1ZV09XCJkYXRhLmdsb2JhbF9jb25maWdzXCJcbiAgICBbcGFnaW5hdG9yXT1cImRhdGEub2JqZWN0X2NvdW50ICE9PSAwXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICBbcm93c109XCJQQUdFX1NJWkVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwiZGF0YS5vYmplY3RfY291bnRcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtmaWx0ZXJEZWxheV09XCIxMDAwXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtjdXN0b21Tb3J0XT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIG10LTIgbWUtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBzaXplPVwiNTBcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGdsb2JhbCBjb25maWdzLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcbiAgICAgICAgICBjbGFzcz1cIm13LTkwXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJuYW1lXCI+XG4gICAgICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuTmFtZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cIm5hbWVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cImZpZWxkX3R5cGVcIj5cbiAgICAgICAgICB7eyAnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5GaWVsZFR5cGUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJmaWVsZF90eXBlXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJkZWZhdWx0XCI+XG4gICAgICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRGVmYXVsdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cImRlZmF1bHRcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9ucy1saXN0LXR3b1wiPnt7ICdMYWJlbC5BY3Rpb25zJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgICAgbGV0LWNvbmZpZz5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIk5hbWVcIj57eyBjb25maWcubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJGaWVsZCBUeXBlXCI+XG4gICAgICAgICAgPHNwYW4gW2FwcER5bmFtaWNCYWRnZV09XCJ7IGl0ZW1zQXJyYXk6IGZpZWxkVHlwZXMsIGl0ZW06IGNvbmZpZz8uZmllbGRfdHlwZSB9XCJcbiAgICAgICAgICAgIGNvbG9yPVwiY3lhblwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+XG4gICAgICAgICAgICB7eyBjb25maWcuZmllbGRfdHlwZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkRlZmF1bHRcIj5cbiAgICAgICAgICA8c3BhbiBbYXBwRHluYW1pY0JhZGdlXT1cInsgaXRlbXNBcnJheTogW3RydWUsIGZhbHNlXSwgaXRlbTogY29uZmlnPy5kZWZhdWx0IH1cIlxuICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzLWRhbmdlclwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+e3sgY29uZmlnPy5kZWZhdWx0ID8gJ1llcycgOiAnTm8nIH19PC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy5nbG9iYWxDb25maWdEZXRhaWxzICsgY29uZmlnLmlkXVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKGNvbmZpZy5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG48ZGl2ICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgPT09IDAgJiYgZGF0YS51bmZpbHRlcmVkX2NvdW50ICE9PSAwXCI+XG4gICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ1NlYXJjaC5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiIFtkZXNjcmlwdGlvbl09XCInU2VhcmNoLk5vRGF0YURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiIC8+XG48L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJkYXRhLm9iamVjdF9jb3VudCAhPT0gMFwiIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiPnt7ICdMYWJlbC5Ub3RhbCcgfCB0cmFuc2xvY28gfX06IHt7ICBkYXRhLm9iamVjdF9jb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImRhdGEudW5maWx0ZXJlZF9jb3VudCA9PT0gMFwiPlxuICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiID4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9jb25maWcvZ2xvYmFsLWNvbmZpZy1saXN0L2dsb2JhbC1jb25maWctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlnL2dsb2JhbC1jb25maWctbGlzdC9nbG9iYWwtY29uZmlnLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFNekQsTUFBTSxPQUFPLHlCQUNULFNBQVEsZ0JBQWdCO0lBbUJ4QixZQUNZLFlBQTBCLEVBQ2xDLFFBQWtCLEVBQ1YsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQmxDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFDLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFTCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRW5CLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFMUIsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUVsQixTQUFJLEdBQXlCO1lBQ3pCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QixDQUFDO0lBUUYsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQy9CLGVBQWUsRUFBRSxXQUFXLENBQUMsU0FBUztZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtDQUFrQztJQUMxQixtQkFBbUIsQ0FBQyxNQUFjO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZO2FBQ1osbUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQzNCLFNBQVMsQ0FBQyxDQUFDLFFBQThCLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN6QixDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQVU7UUFDZixhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDZCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUN6RSxDQUFDO29CQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBbkZRLHlCQUF5QjttR0FBekIseUJBQXlCLG9GQ3RCdEMsaXBJQXdHQTs7NEZEbEZhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICdAcG9zaXdpc2UvYWRtaW4tbW9kdWxlLXV0aWxzJztcbmltcG9ydCB7IFJPVVRFUlMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcm91dGVycy9yb3V0ZXJzJztcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tdXRpbGl0aWVzJztcbmltcG9ydCB7IEdsb2JhbENvbmZpZ1Jlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2ludGVyZmFjZS9nbG9iYWwtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmcgfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQHBvc2l3aXNlL2hlbHBlci1zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwdy1nbG9iYWwtY29uZmlnLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nbG9iYWwtY29uZmlnLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdsb2JhbENvbmZpZ0xpc3RDb21wb25lbnRcbiAgICBleHRlbmRzIEFwcEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkXG57XG4gICAgc2VhcmNoVGV4dCA9ICcnO1xuICAgIGlzTG9hZGVkPXRydWU7XG4gICAgbG9hZGluZyA9IHRydWU7XG5cbiAgICBwcm90ZWN0ZWQgcGFnZSA9IDE7XG5cbiAgICBmaWVsZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcm91dGVycyA9IFJPVVRFUlM7XG5cbiAgICBkYXRhOiBHbG9iYWxDb25maWdSZXNwb25zZSA9IHtcbiAgICAgICAgZ2xvYmFsX2NvbmZpZ3M6IFtdLFxuICAgICAgICBvYmplY3RfY291bnQ6IDAsXG4gICAgICAgIHVuZmlsdGVyZWRfY291bnQ6IDBcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRGaWVsZFR5cGVzKCk7XG4gICAgfVxuXG4gICAgb25MYXp5TG9hZChldmVudDogTGF6eUxvYWRFdmVudCkge1xuICAgICAgICBjb25zdCBwYWdlRGV0YWlscyA9IEhlbHBlclNlcnZpY2Uub25UYWJsZUxhenlMb2FkKGV2ZW50KTtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZURldGFpbHMucGFnZTtcbiAgICAgICAgdGhpcy5nZXRBbGxHbG9iYWxDb25maWdzKHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgICAgICAgIHBhZ2Vfc2l6ZTogUEFHRV9TSVpFLFxuICAgICAgICAgICAgb3JkZXJfYnk6IHBhZ2VEZXRhaWxzLnNvcnRGaWVsZCxcbiAgICAgICAgICAgIG9yZGVyX2RpcmVjdGlvbjogcGFnZURldGFpbHMuc29ydE9yZGVyLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaFRleHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdldCBhbGwgY29uZmlncyAqL1xuICAgIHByaXZhdGUgZ2V0QWxsR2xvYmFsQ29uZmlncyhwYWdpbmc6IFBhZ2luZykge1xuICAgICAgICB0aGlzLmlzTG9hZGVkPWZhbHNlO1xuICAgICAgICB0aGlzLmFkbWluU2VydmljZVxuICAgICAgICAgICAgLmdldEFsbEdsb2JhbENvbmZpZ3MocGFnaW5nKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEdsb2JhbENvbmZpZ1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gcmVzcG9uc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRlZD10cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25EZWxldGUoaWQ6IG51bWJlcikge1xuICAgICAgICBIZWxwZXJTZXJ2aWNlLnJhaXNlRGVsZXRlUG9wdXAoKS50aGVuKHJlcCA9PiB7XG4gICAgICAgICAgICBpZiAocmVwLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlR2xvYmFsQ29uZmlnKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZSgnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5EZWxldGVkTWVzc2FnZScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsR2xvYmFsQ29uZmlncyh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZV9zaXplOiBQQUdFX1NJWkUgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmllbGRUeXBlcygpIHtcbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZ2V0QWxsRmllbGRUeXBlKCkuc3Vic2NyaWJlKChyZXNwb25zZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRUeXBlcyA9IHJlc3BvbnNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoMiBjbGFzcz1cImNhcmQtdGl0bGUgcC0wIGZsb2F0LXN0YXJ0XCI+R2xvYmFsIENvbmZpZ3M8L2gyPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXByaW1hcnkgZmxvYXQtZW5kXCJcbiAgICAgIGRhdGEtY3k9XCJhZGQtZ2xvYmFsLWNvbmZpZ1wiXG4gICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy5nbG9iYWxDb25maWdEZXRhaWxzICsgJ2FkZCddXCI+XG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuQWRkR2xvYmFsQ29uZmlnJyB8IHRyYW5zbG9jbyB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInctMTAwIHRleHQtY2VudGVyIG10LTNcIlxuICAqbmdJZj1cIiFpc0xvYWRlZFwiPlxuICA8cC1wcm9ncmVzc1NwaW5uZXIgc3Ryb2tlV2lkdGg9XCIyXCI+IDwvcC1wcm9ncmVzc1NwaW5uZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwcmltZW5nLWRhdGF0YWJsZS1jb250YWluZXIgbXQgdGFibGUtcmVzcG9uc2l2ZVwiXG4gIFtjbGFzcy5oaWRlVGFibGVdPVwiZGF0YS51bmZpbHRlcmVkX2NvdW50ID09PSAwXCI+XG4gIDxwLXRhYmxlICNkdFxuICAgIFt2YWx1ZV09XCJkYXRhLmdsb2JhbF9jb25maWdzXCJcbiAgICBbcGFnaW5hdG9yXT1cImRhdGEub2JqZWN0X2NvdW50ICE9PSAwXCJcbiAgICBbbGF6eV09XCJ0cnVlXCJcbiAgICBbcm93c109XCJQQUdFX1NJWkVcIlxuICAgIFt0b3RhbFJlY29yZHNdPVwiZGF0YS5vYmplY3RfY291bnRcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtmaWx0ZXJEZWxheV09XCIxMDAwXCJcbiAgICAob25MYXp5TG9hZCk9XCJvbkxhenlMb2FkKCRldmVudClcIlxuICAgIFtjdXN0b21Tb3J0XT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIG10LTIgbWUtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBzaXplPVwiNTBcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGdsb2JhbCBjb25maWdzLi4uXCJcbiAgICAgICAgICAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcbiAgICAgICAgICBjbGFzcz1cIm13LTkwXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJuYW1lXCI+XG4gICAgICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuTmFtZScgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cIm5hbWVcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIHBTb3J0YWJsZUNvbHVtbj1cImZpZWxkX3R5cGVcIj5cbiAgICAgICAgICB7eyAnQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5GaWVsZFR5cGUnIHwgdHJhbnNsb2NvIH19XG4gICAgICAgICAgPHAtc29ydEljb24gZmllbGQ9XCJmaWVsZF90eXBlXCI+PC9wLXNvcnRJY29uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJ0cnVlXCJcbiAgICAgICAgICBwU29ydGFibGVDb2x1bW49XCJkZWZhdWx0XCI+XG4gICAgICAgICAge3sgJ0FkbWluLkdsb2JhbENvbmZpZ01lc3NhZ2UuRGVmYXVsdCcgfCB0cmFuc2xvY28gfX1cbiAgICAgICAgICA8cC1zb3J0SWNvbiBmaWVsZD1cImRlZmF1bHRcIj48L3Atc29ydEljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInRydWVcIlxuICAgICAgICAgIGNsYXNzPVwiYWN0aW9ucy1saXN0LXR3b1wiPnt7ICdMYWJlbC5BY3Rpb25zJyB8IHRyYW5zbG9jbyB9fTwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIlxuICAgICAgbGV0LWNvbmZpZz5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIk5hbWVcIj57eyBjb25maWcubmFtZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBkYXRhLWhlYWQ9XCJGaWVsZCBUeXBlXCI+XG4gICAgICAgICAgPHNwYW4gW2FwcER5bmFtaWNCYWRnZV09XCJ7IGl0ZW1zQXJyYXk6IGZpZWxkVHlwZXMsIGl0ZW06IGNvbmZpZz8uZmllbGRfdHlwZSB9XCJcbiAgICAgICAgICAgIGNvbG9yPVwiY3lhblwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+XG4gICAgICAgICAgICB7eyBjb25maWcuZmllbGRfdHlwZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGRhdGEtaGVhZD1cIkRlZmF1bHRcIj5cbiAgICAgICAgICA8c3BhbiBbYXBwRHluYW1pY0JhZGdlXT1cInsgaXRlbXNBcnJheTogW3RydWUsIGZhbHNlXSwgaXRlbTogY29uZmlnPy5kZWZhdWx0IH1cIlxuICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzLWRhbmdlclwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCI+e3sgY29uZmlnPy5kZWZhdWx0ID8gJ1llcycgOiAnTm8nIH19PC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgZGF0YS1oZWFkPVwiQWN0aW9uXCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBsaXN0LWlubGluZVwiPlxuICAgICAgICAgICAgPGxpIG5nYlRvb2x0aXA9XCJFZGl0XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIlxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbcm91dGVycy5nbG9iYWxDb25maWdEZXRhaWxzICsgY29uZmlnLmlkXVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXQgZWRpdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSBuZ2JUb29sdGlwPVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtZS0yIG1lLXNtLTNcIj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKGNvbmZpZy5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLXRyYXNoIGRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG48ZGl2ICpuZ0lmPVwiZGF0YS5vYmplY3RfY291bnQgPT09IDAgJiYgZGF0YS51bmZpbHRlcmVkX2NvdW50ICE9PSAwXCI+XG4gICAgPHB3LW5vLWRhdGEgW3dpdGhJbWFnZV09XCJ0cnVlXCIgW21lc3NhZ2VdPVwiJ1NlYXJjaC5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiIFtkZXNjcmlwdGlvbl09XCInU2VhcmNoLk5vRGF0YURlc2NyaXB0aW9uJyB8IHRyYW5zbG9jb1wiIC8+XG48L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJkYXRhLm9iamVjdF9jb3VudCAhPT0gMFwiIGNsYXNzPVwidG90YWwtcmVjb3Jkcy1jb3VudFwiPnt7ICdMYWJlbC5Ub3RhbCcgfCB0cmFuc2xvY28gfX06IHt7ICBkYXRhLm9iamVjdF9jb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImRhdGEudW5maWx0ZXJlZF9jb3VudCA9PT0gMCAmJiBpc0xvYWRlZFwiPlxuICA8cHctbm8tZGF0YSBbd2l0aEltYWdlXT1cInRydWVcIiBbbWVzc2FnZV09XCInQWRtaW4uR2xvYmFsQ29uZmlnTWVzc2FnZS5Ob0RhdGFNZXNzYWdlJyB8IHRyYW5zbG9jb1wiID4gPC9wdy1uby1kYXRhPlxuPC9kaXY+XG4iXX0=