@mediusinc/mng-commons 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/esm2022/lib/components/action/action.component.mjs +5 -5
  2. package/esm2022/lib/components/action/editor/action-editor.component.mjs +3 -3
  3. package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +3 -3
  4. package/esm2022/lib/components/action/route/action-route.component.mjs +3 -3
  5. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +3 -3
  6. package/esm2022/lib/components/form/date-range/date-range.component.mjs +3 -3
  7. package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +3 -3
  8. package/esm2022/lib/components/form/editor/form-editor.component.mjs +5 -5
  9. package/esm2022/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +3 -3
  10. package/esm2022/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
  11. package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +3 -3
  12. package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  13. package/esm2022/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  14. package/esm2022/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  15. package/esm2022/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  16. package/esm2022/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  17. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +5 -5
  18. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
  19. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +5 -5
  20. package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  21. package/esm2022/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +3 -3
  22. package/esm2022/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
  23. package/esm2022/lib/components/layout/breadcrumb.component.mjs +3 -3
  24. package/esm2022/lib/components/layout/footer.component.mjs +3 -3
  25. package/esm2022/lib/components/layout/main-layout.component.mjs +3 -3
  26. package/esm2022/lib/components/layout/menu-item.component.mjs +3 -3
  27. package/esm2022/lib/components/layout/menu.component.mjs +3 -3
  28. package/esm2022/lib/components/layout/services/main-layout.component.service.mjs +3 -3
  29. package/esm2022/lib/components/layout/topbar-user.component.mjs +3 -3
  30. package/esm2022/lib/components/layout/topbar.component.mjs +3 -3
  31. package/esm2022/lib/components/layout/version.component.mjs +3 -3
  32. package/esm2022/lib/components/pages/error/error-page.component.mjs +3 -3
  33. package/esm2022/lib/components/pages/not-found/not-found-page.component.mjs +3 -3
  34. package/esm2022/lib/components/tableview/route/tableview-route.abstract.component.mjs +3 -3
  35. package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +3 -3
  36. package/esm2022/lib/components/tableview/table/column-filter/column-filter.component.mjs +3 -3
  37. package/esm2022/lib/components/tableview/table/column-value/column-value.component.mjs +3 -3
  38. package/esm2022/lib/components/tableview/table/table.component.mjs +4 -4
  39. package/esm2022/lib/components/tableview/tableview.component.mjs +4 -4
  40. package/esm2022/lib/directives/component.directive.mjs +3 -3
  41. package/esm2022/lib/directives/template.directive.mjs +3 -3
  42. package/esm2022/lib/mng-commons.module.mjs +4 -4
  43. package/esm2022/lib/pipes/boolean.pipe.mjs +3 -3
  44. package/esm2022/lib/pipes/class-map.pipe.mjs +3 -3
  45. package/esm2022/lib/pipes/enum.pipe.mjs +3 -3
  46. package/esm2022/lib/pipes/enumerate-async.pipe.mjs +3 -3
  47. package/esm2022/lib/pipes/enumerate.pipe.mjs +3 -3
  48. package/esm2022/lib/pipes/getter.pipe.mjs +3 -3
  49. package/esm2022/lib/pipes/i18n-property.pipe.mjs +3 -3
  50. package/esm2022/lib/pipes/json-path.pipe.mjs +3 -3
  51. package/esm2022/lib/pipes/locale-default-row-class.pipe.mjs +3 -3
  52. package/esm2022/lib/pipes/parametrize.pipe.mjs +3 -3
  53. package/esm2022/lib/pipes/template.pipe.mjs +3 -3
  54. package/esm2022/lib/security/authorization.service.mjs +3 -3
  55. package/esm2022/lib/services/action-executor.service.mjs +3 -3
  56. package/esm2022/lib/services/commons.service.mjs +3 -3
  57. package/esm2022/lib/services/internal/commons-init.service.mjs +3 -3
  58. package/esm2022/lib/services/mng-localstorage-config.service.mjs +3 -3
  59. package/esm2022/lib/services/navigation.service.mjs +3 -3
  60. package/esm2022/lib/services/router.service.mjs +13 -8
  61. package/esm2022/lib/services/version.service.mjs +3 -3
  62. package/esm2022/lib/services/view-container.component.service.mjs +3 -3
  63. package/fesm2022/mediusinc-mng-commons.mjs +200 -195
  64. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  65. package/package.json +1 -1
@@ -112,10 +112,10 @@ export class MngTableviewComponent {
112
112
  return '';
113
113
  }
114
114
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTableviewComponent, deps: [{ token: i1.MessageService }, { token: i2.MngViewContainerComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: MngTableviewComponent, isStandalone: true, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [MessageService, ConfirmationService, MngViewContainerComponentService], queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "tableComponent", first: true, predicate: MngTableComponent, descendants: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <p-toast>\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getNotificationIconClass(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n <div\n *ngIf=\"message.detail.length > notificationCutoff\"\n (click)=\"onShowNotificationInDialog(message)\"\n class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n </div>\n </ng-template>\n </p-toast>\n <p-dialog\n [(visible)]=\"isDialogNotificationVisible\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification?.severity ?? '')\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + getNotificationIconClass(dialogNotification)\"></span>\n {{ dialogNotification?.summary ?? '' }}\n </span>\n </ng-template>\n <div>\n {{ dialogNotification?.detail ?? '' }}\n </div>\n </p-dialog>\n\n <div class=\"card\">\n <p-toolbar styleClass=\"mb-4\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <ng-template pTemplate=\"left\">\n <mng-action\n *ngFor=\"let action of toolbarLeftActions\"\n [action]=\"action\"\n [queryParam]=\"tableQueryParam\"\n [hostComponent]=\"this\"\n [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action\n *ngFor=\"let action of toolbarRightActions\"\n [action]=\"action\"\n [queryParam]=\"tableQueryParam\"\n [hostComponent]=\"this\"\n [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n\n <ng-template let-queryResult=\"queryResult\" mngTemplate=\"footer\">\n <ng-container *ngIf=\"footerTemplate\" [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type: i3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i5.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass", "ariaLabelledBy"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "hostComponent", "route", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "directive", type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTableviewComponent, deps: [{ token: i1.MessageService }, { token: i2.MngViewContainerComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: MngTableviewComponent, isStandalone: true, selector: "mng-tableview", inputs: { descriptor: "descriptor", dataProvider: "dataProvider", actions: "actions" }, providers: [MessageService, ConfirmationService, MngViewContainerComponentService], queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "tableComponent", first: true, predicate: MngTableComponent, descendants: true }], ngImport: i0, template: "<div class=\"mng-tableview\">\n <p-toast>\n <ng-template let-message pTemplate=\"message\">\n <span [class]=\"'p-toast-message-icon pi ' + getNotificationIconClass(message)\"></span>\n <div class=\"p-toast-message-text\">\n <div class=\"p-toast-summary\">{{ message.summary }}</div>\n <div class=\"p-toast-detail\">{{ message.detail.slice(0, notificationCutoff) + (message.detail.length > notificationCutoff ? '...' : '') }}</div>\n <div\n *ngIf=\"message.detail.length > notificationCutoff\"\n (click)=\"onShowNotificationInDialog(message)\"\n class=\"p-link font-semibold text-sm mt-2 flex align-items-center\">\n <i class=\"pi pi-chevron-down mr-1\"></i>{{ 'notification.details' | translate }}\n </div>\n </div>\n </ng-template>\n </p-toast>\n <p-dialog\n [(visible)]=\"isDialogNotificationVisible\"\n [styleClass]=\"'p-fluid mng-dialog mng-dialog-xs ' + 'mng-message-detail-dialog mng-message-detail-dialog-' + (dialogNotification?.severity ?? '')\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-dialog-title font-bold mng-dialog-success\">\n <span [class]=\"'mr-2 pi ' + getNotificationIconClass(dialogNotification)\"></span>\n {{ dialogNotification?.summary ?? '' }}\n </span>\n </ng-template>\n <div>\n {{ dialogNotification?.detail ?? '' }}\n </div>\n </p-dialog>\n\n <div class=\"card\">\n <p-toolbar styleClass=\"mb-4\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <ng-template pTemplate=\"left\">\n <mng-action\n *ngFor=\"let action of toolbarLeftActions\"\n [action]=\"action\"\n [queryParam]=\"tableQueryParam\"\n [hostComponent]=\"this\"\n [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n\n <ng-template pTemplate=\"right\">\n <mng-action\n *ngFor=\"let action of toolbarRightActions\"\n [action]=\"action\"\n [queryParam]=\"tableQueryParam\"\n [hostComponent]=\"this\"\n [selectedItems]=\"selectedItems\"></mng-action>\n </ng-template>\n </p-toolbar>\n\n <mng-table\n [descriptor]=\"descriptor.table\"\n [dataProvider]=\"dataProvider\"\n [useQueryParams]=\"true\"\n [actions]=\"tableActions\"\n [selectionEnabled]=\"hasItemSelectionAction\"\n [selectionMode]=\"'multiple'\"\n (tableLoad)=\"onTableLoad($event)\"\n (selectionChange)=\"selectionChange($event)\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-between table-header\">\n <h5 class=\"p-0 m-0\">{{ descriptor.tableTitle ?? '' | translate }}</h5>\n </div>\n </ng-template>\n\n <ng-template let-queryResult=\"queryResult\" mngTemplate=\"footer\">\n <ng-container *ngIf=\"footerTemplate\" [ngTemplateOutlet]=\"footerTemplate\" [ngTemplateOutletContext]=\"{queryResult: queryResult}\"></ng-container>\n </ng-template>\n </mng-table>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ToastModule }, { kind: "component", type: i3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i5.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass", "ariaLabelledBy"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "hostComponent", "route", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "component", type: MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth", "globalFilterFields"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { kind: "directive", type: MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTableviewComponent, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTableviewComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ standalone: true, selector: 'mng-tableview', imports: [
121
121
  ToastModule,
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
144
144
  type: ContentChildren,
145
145
  args: [MngTemplateDirective]
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFlLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxtQkFBbUIsRUFBVyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDekUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBTTlDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMs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QUFyQixxQkFBcUIsb0pBRm5CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGdDQUFnQyxDQUFDLG9EQW9CakUsb0JBQW9CLDZFQWIxQixpQkFBaUIsZ0RDaERoQyx1L0dBMEVBLDJDRDdDUSxXQUFXLHNjQUNYLFlBQVksMHRCQUNaLGFBQWEsa0pBQ2IsT0FBTyxrSEFDUCxlQUFlLDRGQUNmLGdCQUFnQixvSkFDaEIsSUFBSSw2RkFDSixrQkFBa0IsaVBBQ2xCLGlCQUFpQix5YkFDakIsb0JBQW9CLDJGQUNwQixZQUFZOzsyRkFJUCxxQkFBcUI7a0JBbkJqQyxTQUFTO2lDQUNNLElBQUksWUFDTixlQUFlLFdBRWhCO3dCQUNMLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDZixhQUNVLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGdDQUFnQyxDQUFDO29KQUdsRCxVQUFVO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDUCxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRStCLGNBQWM7c0JBQWxELFNBQVM7dUJBQUMsaUJBQWlCO2dCQWFrQixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHtUb2FzdE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQge1Rvb2xiYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0lEYXRhUHJvdmlkZXIsIElUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvYWN0aW9uJztcbmltcG9ydCB7VGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvdGFibGV2aWV3JztcbmltcG9ydCB7QWN0aW9uUG9zaXRpb25FbnVtfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7VGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdUYWJsZUxvYWRFdmVudH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUb2FzdE1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBUb29sYmFyTW9kdWxlLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE1uZ0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTW5nVGFibGVDb21wb25lbnQsXG4gICAgICAgIE1uZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBSb3V0ZXJPdXRsZXRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGV2aWV3Q29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIElWaWV3Q29udGFpbmVyPFQsIFM+IHtcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiA9IFtdO1xuXG4gICAgQFZpZXdDaGlsZChNbmdUYWJsZUNvbXBvbmVudCkgcHVibGljIHRhYmxlQ29tcG9uZW50PzogTW5nVGFibGVDb21wb25lbnQ8VCwgUz47XG5cbiAgICBwdWJsaWMgdGFibGVBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhckxlZnRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhclJpZ2h0QWN0aW9uczogQWN0aW9uRGVzY3JpcHRvcjxUPltdID0gW107XG5cbiAgICBwdWJsaWMgdGFibGVRdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBoYXNJdGVtU2VsZWN0aW9uQWN0aW9uID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkSXRlbXM6IFRbXSA9IFtdO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgcHVibGljIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlhbG9nTm90aWZpY2F0aW9uOiBNZXNzYWdlIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkN1dG9mZiA9IDcwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgdmlld0NvbnRhaW5lclNlcnZpY2U6IE1uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlPFQsIFM+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2Uuc2V0QWN0aW9ucyh0aGlzLmFjdGlvbnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyU2VydmljZS5kYXRhUHJvdmlkZXIgPSB0aGlzLmRhdGFQcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWxvYWRUYWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2UuZ2V0VGFibGVSZWxvYWQkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkVGFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJlbG9hZFRhYmxlU3Vic2NyaXB0aW9uKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcz8uaW5jbHVkZXMoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRCkgPz8gdHJ1ZSkpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckxlZnRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5UYWJsZUhlYWRlcjpcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmU6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2s6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMgPSB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMuaGFzSXRlbVNlbGVjdGlvbkFjdGlvbiA9IFsuLi50aGlzLnRvb2xiYXJMZWZ0QWN0aW9ucywgLi4udGhpcy50b29sYmFyUmlnaHRBY3Rpb25zXS5zb21lKGUgPT4gZS5oYXNJdGVtc1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodGVtcGxhdGUuZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBnZXRNZXNzYWdlU2VydmljZSgpOiBNZXNzYWdlU2VydmljZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldERhdGFQcm92aWRlcigpOiBJRGF0YVByb3ZpZGVyPFQsIFM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIGdldEFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZFRhYmxlKCkge1xuICAgICAgICB0aGlzLnRhYmxlQ29tcG9uZW50Py5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJsZUxvYWQoZXZlbnQ6IE1uZ1RhYmxlTG9hZEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGFibGVRdWVyeVBhcmFtID0gZXZlbnQucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkSXRlbXM6IEFycmF5PFQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2hvd05vdGlmaWNhdGlvbkluRGlhbG9nKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dOb3RpZmljYXRpb24gPSBtZXNzYWdlO1xuICAgICAgICB0aGlzLmlzRGlhbG9nTm90aWZpY2F0aW9uVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhtZXNzYWdlOiBNZXNzYWdlIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChtZXNzYWdlPy5pY29uKSByZXR1cm4gbWVzc2FnZS5pY29uO1xuXG4gICAgICAgIHN3aXRjaCAobWVzc2FnZT8uc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktaW5mby1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS10aW1lcy1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1jaGVjayc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtbmctdGFibGV2aWV3XCI+XG4gICAgPHAtdG9hc3Q+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3AtdG9hc3QtbWVzc2FnZS1pY29uIHBpICcgKyBnZXROb3RpZmljYXRpb25JY29uQ2xhc3MobWVzc2FnZSlcIj48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2FzdC1tZXNzYWdlLXRleHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdG9hc3QtZGV0YWlsXCI+e3sgbWVzc2FnZS5kZXRhaWwuc2xpY2UoMCwgbm90aWZpY2F0aW9uQ3V0b2ZmKSArIChtZXNzYWdlLmRldGFpbC5sZW5ndGggPiBub3RpZmljYXRpb25DdXRvZmYgPyAnLi4uJyA6ICcnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLmRldGFpbC5sZW5ndGggPiBub3RpZmljYXRpb25DdXRvZmZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TaG93Tm90aWZpY2F0aW9uSW5EaWFsb2cobWVzc2FnZSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtbGluayBmb250LXNlbWlib2xkIHRleHQtc20gbXQtMiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNoZXZyb24tZG93biBtci0xXCI+PC9pPnt7ICdub3RpZmljYXRpb24uZGV0YWlscycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgICA8cC1kaWFsb2dcbiAgICAgICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGVcIlxuICAgICAgICBbc3R5bGVDbGFzc109XCIncC1mbHVpZCBtbmctZGlhbG9nIG1uZy1kaWFsb2cteHMgJyArICdtbmctbWVzc2FnZS1kZXRhaWwtZGlhbG9nIG1uZy1tZXNzYWdlLWRldGFpbC1kaWFsb2ctJyArIChkaWFsb2dOb3RpZmljYXRpb24/LnNldmVyaXR5ID8/ICcnKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZGlhbG9nLXRpdGxlIGZvbnQtYm9sZCBtbmctZGlhbG9nLXN1Y2Nlc3NcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ21yLTIgcGkgJyArIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhkaWFsb2dOb3RpZmljYXRpb24pXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IGRpYWxvZ05vdGlmaWNhdGlvbj8uc3VtbWFyeSA/PyAnJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge3sgZGlhbG9nTm90aWZpY2F0aW9uPy5kZXRhaWwgPz8gJycgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9wLWRpYWxvZz5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxwLXRvb2xiYXIgc3R5bGVDbGFzcz1cIm1iLTRcIiAqbmdJZj1cInRvb2xiYXJMZWZ0QWN0aW9ucy5sZW5ndGggPiAwIHx8IHRvb2xiYXJSaWdodEFjdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJMZWZ0QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1dPVwidGFibGVRdWVyeVBhcmFtXCJcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIj48L21uZy1hY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJSaWdodEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtXT1cInRhYmxlUXVlcnlQYXJhbVwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0Q29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRvb2xiYXI+XG5cbiAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci50YWJsZVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiXG4gICAgICAgICAgICBbdXNlUXVlcnlQYXJhbXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbkVuYWJsZWRdPVwiaGFzSXRlbVNlbGVjdGlvbkFjdGlvblwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGlwbGUnXCJcbiAgICAgICAgICAgICh0YWJsZUxvYWQpPVwib25UYWJsZUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInAtMCBtLTBcIj57eyBkZXNjcmlwdG9yLnRhYmxlVGl0bGUgPz8gJycgfCB0cmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1xdWVyeVJlc3VsdD1cInF1ZXJ5UmVzdWx0XCIgbW5nVGVtcGxhdGU9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cXVlcnlSZXN1bHQ6IHF1ZXJ5UmVzdWx0fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tbmctdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFtQixTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFlLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxtQkFBbUIsRUFBVyxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDekUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBTTlDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMs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QUFyQixxQkFBcUIsb0pBRm5CLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGdDQUFnQyxDQUFDLG9EQW9CakUsb0JBQW9CLDZFQWIxQixpQkFBaUIsZ0RDaERoQyx1L0dBMEVBLDJDRDdDUSxXQUFXLDhjQUNYLFlBQVksMHRCQUNaLGFBQWEsa0pBQ2IsT0FBTyxrSEFDUCxlQUFlLDRGQUNmLGdCQUFnQixvSkFDaEIsSUFBSSw2RkFDSixrQkFBa0IsaVBBQ2xCLGlCQUFpQix5YkFDakIsb0JBQW9CLDJGQUNwQixZQUFZOzsyRkFJUCxxQkFBcUI7a0JBbkJqQyxTQUFTO2lDQUNNLElBQUksWUFDTixlQUFlLFdBRWhCO3dCQUNMLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDZixhQUNVLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGdDQUFnQyxDQUFDO29KQUdsRCxVQUFVO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDUCxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBRStCLGNBQWM7c0JBQWxELFNBQVM7dUJBQUMsaUJBQWlCO2dCQWFrQixTQUFTO3NCQUF0RCxlQUFlO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHtUb2FzdE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQge1Rvb2xiYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0lEYXRhUHJvdmlkZXIsIElUYWJsZXZpZXdEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvYWN0aW9uJztcbmltcG9ydCB7VGFibGV2aWV3RGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvdGFibGV2aWV3JztcbmltcG9ydCB7QWN0aW9uUG9zaXRpb25FbnVtfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXJ9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7VGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uL2FjdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdUYWJsZUxvYWRFdmVudH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtNbmdUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxldmlldycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYmxldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUb2FzdE1vZHVsZSxcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBUb29sYmFyTW9kdWxlLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE1uZ0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTW5nVGFibGVDb21wb25lbnQsXG4gICAgICAgIE1uZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBSb3V0ZXJPdXRsZXRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlLCBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTW5nVGFibGV2aWV3Q29tcG9uZW50PFQsIFM+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIElWaWV3Q29udGFpbmVyPFQsIFM+IHtcbiAgICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGRlc2NyaXB0b3IhOiBUYWJsZXZpZXdEZXNjcmlwdG9yPFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRhUHJvdmlkZXI/OiBJVGFibGV2aWV3RGF0YVByb3ZpZGVyPFQsIFM+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9yPFQ+PiA9IFtdO1xuXG4gICAgQFZpZXdDaGlsZChNbmdUYWJsZUNvbXBvbmVudCkgcHVibGljIHRhYmxlQ29tcG9uZW50PzogTW5nVGFibGVDb21wb25lbnQ8VCwgUz47XG5cbiAgICBwdWJsaWMgdGFibGVBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhckxlZnRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgdG9vbGJhclJpZ2h0QWN0aW9uczogQWN0aW9uRGVzY3JpcHRvcjxUPltdID0gW107XG5cbiAgICBwdWJsaWMgdGFibGVRdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIHB1YmxpYyBoYXNJdGVtU2VsZWN0aW9uQWN0aW9uID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkSXRlbXM6IFRbXSA9IFtdO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgcHVibGljIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlhbG9nTm90aWZpY2F0aW9uOiBNZXNzYWdlIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkN1dG9mZiA9IDcwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgdmlld0NvbnRhaW5lclNlcnZpY2U6IE1uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlPFQsIFM+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2Uuc2V0QWN0aW9ucyh0aGlzLmFjdGlvbnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyU2VydmljZS5kYXRhUHJvdmlkZXIgPSB0aGlzLmRhdGFQcm92aWRlcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWxvYWRUYWJsZVN1YnNjcmlwdGlvbiA9IHRoaXMudmlld0NvbnRhaW5lclNlcnZpY2UuZ2V0VGFibGVSZWxvYWQkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkVGFibGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHJlbG9hZFRhYmxlU3Vic2NyaXB0aW9uKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLmFjdGlvbnMuZmlsdGVyKHZhbHVlID0+IHZhbHVlLnBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcz8uaW5jbHVkZXMoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuUkVBRCkgPz8gdHJ1ZSkpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckxlZnRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5UYWJsZUhlYWRlcjpcbiAgICAgICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmU6XG4gICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2s6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMgPSB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMuaGFzSXRlbVNlbGVjdGlvbkFjdGlvbiA9IFsuLi50aGlzLnRvb2xiYXJMZWZ0QWN0aW9ucywgLi4udGhpcy50b29sYmFyUmlnaHRBY3Rpb25zXS5zb21lKGUgPT4gZS5oYXNJdGVtc1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAodGVtcGxhdGUuZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IHRlbXBsYXRlLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICBnZXRNZXNzYWdlU2VydmljZSgpOiBNZXNzYWdlU2VydmljZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgIH1cblxuICAgIGdldERhdGFQcm92aWRlcigpOiBJRGF0YVByb3ZpZGVyPFQsIFM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIGdldEFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZFRhYmxlKCkge1xuICAgICAgICB0aGlzLnRhYmxlQ29tcG9uZW50Py5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWJsZUxvYWQoZXZlbnQ6IE1uZ1RhYmxlTG9hZEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGFibGVRdWVyeVBhcmFtID0gZXZlbnQucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkSXRlbXM6IEFycmF5PFQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2hvd05vdGlmaWNhdGlvbkluRGlhbG9nKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dOb3RpZmljYXRpb24gPSBtZXNzYWdlO1xuICAgICAgICB0aGlzLmlzRGlhbG9nTm90aWZpY2F0aW9uVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhtZXNzYWdlOiBNZXNzYWdlIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGlmIChtZXNzYWdlPy5pY29uKSByZXR1cm4gbWVzc2FnZS5pY29uO1xuXG4gICAgICAgIHN3aXRjaCAobWVzc2FnZT8uc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGktaW5mby1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS10aW1lcy1jaXJjbGUnO1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwaS1jaGVjayc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtbmctdGFibGV2aWV3XCI+XG4gICAgPHAtdG9hc3Q+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3AtdG9hc3QtbWVzc2FnZS1pY29uIHBpICcgKyBnZXROb3RpZmljYXRpb25JY29uQ2xhc3MobWVzc2FnZSlcIj48L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2FzdC1tZXNzYWdlLXRleHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10b2FzdC1zdW1tYXJ5XCI+e3sgbWVzc2FnZS5zdW1tYXJ5IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdG9hc3QtZGV0YWlsXCI+e3sgbWVzc2FnZS5kZXRhaWwuc2xpY2UoMCwgbm90aWZpY2F0aW9uQ3V0b2ZmKSArIChtZXNzYWdlLmRldGFpbC5sZW5ndGggPiBub3RpZmljYXRpb25DdXRvZmYgPyAnLi4uJyA6ICcnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZXNzYWdlLmRldGFpbC5sZW5ndGggPiBub3RpZmljYXRpb25DdXRvZmZcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TaG93Tm90aWZpY2F0aW9uSW5EaWFsb2cobWVzc2FnZSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtbGluayBmb250LXNlbWlib2xkIHRleHQtc20gbXQtMiBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNoZXZyb24tZG93biBtci0xXCI+PC9pPnt7ICdub3RpZmljYXRpb24uZGV0YWlscycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cbiAgICA8cC1kaWFsb2dcbiAgICAgICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ05vdGlmaWNhdGlvblZpc2libGVcIlxuICAgICAgICBbc3R5bGVDbGFzc109XCIncC1mbHVpZCBtbmctZGlhbG9nIG1uZy1kaWFsb2cteHMgJyArICdtbmctbWVzc2FnZS1kZXRhaWwtZGlhbG9nIG1uZy1tZXNzYWdlLWRldGFpbC1kaWFsb2ctJyArIChkaWFsb2dOb3RpZmljYXRpb24/LnNldmVyaXR5ID8/ICcnKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZGlhbG9nLXRpdGxlIGZvbnQtYm9sZCBtbmctZGlhbG9nLXN1Y2Nlc3NcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ21yLTIgcGkgJyArIGdldE5vdGlmaWNhdGlvbkljb25DbGFzcyhkaWFsb2dOb3RpZmljYXRpb24pXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IGRpYWxvZ05vdGlmaWNhdGlvbj8uc3VtbWFyeSA/PyAnJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge3sgZGlhbG9nTm90aWZpY2F0aW9uPy5kZXRhaWwgPz8gJycgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9wLWRpYWxvZz5cblxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxwLXRvb2xiYXIgc3R5bGVDbGFzcz1cIm1iLTRcIiAqbmdJZj1cInRvb2xiYXJMZWZ0QWN0aW9ucy5sZW5ndGggPiAwIHx8IHRvb2xiYXJSaWdodEFjdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJMZWZ0QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1dPVwidGFibGVRdWVyeVBhcmFtXCJcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIj48L21uZy1hY3Rpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHRvb2xiYXJSaWdodEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtXT1cInRhYmxlUXVlcnlQYXJhbVwiXG4gICAgICAgICAgICAgICAgICAgIFtob3N0Q29tcG9uZW50XT1cInRoaXNcIlxuICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtc109XCJzZWxlY3RlZEl0ZW1zXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLXRvb2xiYXI+XG5cbiAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci50YWJsZVwiXG4gICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cImRhdGFQcm92aWRlclwiXG4gICAgICAgICAgICBbdXNlUXVlcnlQYXJhbXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbYWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxuICAgICAgICAgICAgW3NlbGVjdGlvbkVuYWJsZWRdPVwiaGFzSXRlbVNlbGVjdGlvbkFjdGlvblwiXG4gICAgICAgICAgICBbc2VsZWN0aW9uTW9kZV09XCInbXVsdGlwbGUnXCJcbiAgICAgICAgICAgICh0YWJsZUxvYWQpPVwib25UYWJsZUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbW5nVGVtcGxhdGU9XCJjYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWJldHdlZW4gdGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInAtMCBtLTBcIj57eyBkZXNjcmlwdG9yLnRhYmxlVGl0bGUgPz8gJycgfCB0cmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1xdWVyeVJlc3VsdD1cInF1ZXJ5UmVzdWx0XCIgbW5nVGVtcGxhdGU9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7cXVlcnlSZXN1bHQ6IHF1ZXJ5UmVzdWx0fVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tbmctdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbiJdfQ==
@@ -39,10 +39,10 @@ export class MngComponentDirective {
39
39
  isCmpInstanceOfColumnValue(cmp) {
40
40
  return typeof cmp.setColumnValue === 'function';
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
43
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: MngComponentDirective, isStandalone: true, selector: "[mngComponent]", inputs: { component: ["mngComponent", "component"], inputs: "inputs", attachToHost: "attachToHost" }, outputs: { componentInstanceEventEmitter: "instanceCreated" }, ngImport: i0 }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: MngComponentDirective, isStandalone: true, selector: "[mngComponent]", inputs: { component: ["mngComponent", "component"], inputs: "inputs", attachToHost: "attachToHost" }, outputs: { componentInstanceEventEmitter: "instanceCreated" }, ngImport: i0 }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngComponentDirective, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngComponentDirective, decorators: [{
46
46
  type: Directive,
47
47
  args: [{
48
48
  standalone: true,
@@ -11,10 +11,10 @@ export class MngTemplateDirective {
11
11
  getViewContainerRef() {
12
12
  return this.viewContainerRef;
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: MngTemplateDirective, isStandalone: true, selector: "[mngTemplate]", inputs: { type: "type", name: ["mngTemplate", "name"] }, ngImport: i0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTemplateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: MngTemplateDirective, isStandalone: true, selector: "[mngTemplate]", inputs: { type: "type", name: ["mngTemplate", "name"] }, ngImport: i0 }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTemplateDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTemplateDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  standalone: true,
@@ -162,8 +162,8 @@ export class MngCommonsModule {
162
162
  providers: provideMngCommons(config)
163
163
  };
164
164
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
166
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsModule, imports: [
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
166
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsModule, imports: [
167
167
  // angular modules
168
168
  CommonModule,
169
169
  RouterModule,
@@ -355,7 +355,7 @@ export class MngCommonsModule {
355
355
  // pages
356
356
  MngErrorPageComponent,
357
357
  MngNotFoundPageComponent] }); }
358
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsModule, imports: [
358
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsModule, imports: [
359
359
  // angular modules
360
360
  CommonModule,
361
361
  RouterModule,
@@ -441,7 +441,7 @@ export class MngCommonsModule {
441
441
  SlideMenuModule,
442
442
  ImageModule] }); }
443
443
  }
444
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsModule, decorators: [{
444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsModule, decorators: [{
445
445
  type: NgModule,
446
446
  args: [{
447
447
  imports: [
@@ -14,10 +14,10 @@ export class MngBooleanPipe {
14
14
  return value;
15
15
  }
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngBooleanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
18
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngBooleanPipe, isStandalone: true, name: "boolean" }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngBooleanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
18
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngBooleanPipe, isStandalone: true, name: "boolean" }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngBooleanPipe, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngBooleanPipe, decorators: [{
21
21
  type: Pipe,
22
22
  args: [{
23
23
  standalone: true,
@@ -9,10 +9,10 @@ export class MngClassMapPipe {
9
9
  return value ?? '';
10
10
  }
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngClassMapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngClassMapPipe, isStandalone: true, name: "mngClassMapPipe" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngClassMapPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
13
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngClassMapPipe, isStandalone: true, name: "mngClassMapPipe" }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngClassMapPipe, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngClassMapPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  standalone: true,
@@ -12,10 +12,10 @@ export class MngEnumPipe {
12
12
  }
13
13
  return i18nPath ? `${i18nPath}.${enumConstantName}` : enumConstantName;
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngEnumPipe, isStandalone: true, name: "enum" }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngEnumPipe, isStandalone: true, name: "enum" }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumPipe, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumPipe, decorators: [{
19
19
  type: Pipe,
20
20
  args: [{
21
21
  standalone: true,
@@ -27,10 +27,10 @@ export class MngEnumerateAsyncPipe {
27
27
  }))));
28
28
  }), map(i => i.join(valueSeparator)));
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumerateAsyncPipe, deps: [{ token: i1.JsonPathPipe }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
31
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngEnumerateAsyncPipe, isStandalone: true, name: "mgnEnumerateAsync" }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumerateAsyncPipe, deps: [{ token: i1.JsonPathPipe }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
31
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngEnumerateAsyncPipe, isStandalone: true, name: "mgnEnumerateAsync" }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumerateAsyncPipe, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumerateAsyncPipe, decorators: [{
34
34
  type: Pipe,
35
35
  args: [{
36
36
  standalone: true,
@@ -24,10 +24,10 @@ export class MngEnumeratePipe {
24
24
  })
25
25
  .join(valueSeparator);
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumeratePipe, deps: [{ token: i1.JsonPathPipe }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
28
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngEnumeratePipe, isStandalone: true, name: "mgnEnumerate" }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumeratePipe, deps: [{ token: i1.JsonPathPipe }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
28
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngEnumeratePipe, isStandalone: true, name: "mgnEnumerate" }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngEnumeratePipe, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngEnumeratePipe, decorators: [{
31
31
  type: Pipe,
32
32
  args: [{
33
33
  standalone: true,
@@ -7,10 +7,10 @@ export class MngGetterPipe {
7
7
  }
8
8
  return value;
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngGetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngGetterPipe, isStandalone: true, name: "getter" }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngGetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngGetterPipe, isStandalone: true, name: "getter" }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngGetterPipe, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngGetterPipe, decorators: [{
14
14
  type: Pipe,
15
15
  args: [{
16
16
  standalone: true,
@@ -5,10 +5,10 @@ export class MngI18nPropertyPipe {
5
5
  transform(property, model) {
6
6
  return I18nUtils.Type.getPropertyKey(model.i18nBaseKey, property);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngI18nPropertyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngI18nPropertyPipe, isStandalone: true, name: "i18nProperty" }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngI18nPropertyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngI18nPropertyPipe, isStandalone: true, name: "i18nProperty" }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngI18nPropertyPipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngI18nPropertyPipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  standalone: true,
@@ -11,10 +11,10 @@ export class JsonPathPipe {
11
11
  transform(value, path = '') {
12
12
  return ObjectUtil.getPropertyByPath(value, path);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: JsonPathPipe, isStandalone: true, name: "jsonPath" }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: JsonPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: JsonPathPipe, isStandalone: true, name: "jsonPath" }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: JsonPathPipe, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: JsonPathPipe, decorators: [{
18
18
  type: Pipe,
19
19
  args: [{
20
20
  standalone: true,
@@ -13,10 +13,10 @@ export class MngLocaleDefaultRowClassPipe {
13
13
  }
14
14
  return value ?? '';
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngLocaleDefaultRowClassPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngLocaleDefaultRowClassPipe, isStandalone: true, name: "mngLocaleDefaultRowClass" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngLocaleDefaultRowClassPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngLocaleDefaultRowClassPipe, isStandalone: true, name: "mngLocaleDefaultRowClass" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngLocaleDefaultRowClassPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngLocaleDefaultRowClassPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  standalone: true,
@@ -72,10 +72,10 @@ export class MngParametrizePipe {
72
72
  parametrizeString(s, params) {
73
73
  return s.replace(/{{\s?([^{}\s]*)\s?}}/g, (subs, key) => this.jsonPath.transform(params, key) ?? subs);
74
74
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngParametrizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
76
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngParametrizePipe, isStandalone: true, name: "parametrize" }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngParametrizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
76
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngParametrizePipe, isStandalone: true, name: "parametrize" }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngParametrizePipe, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngParametrizePipe, decorators: [{
79
79
  type: Pipe,
80
80
  args: [{
81
81
  standalone: true,
@@ -12,10 +12,10 @@ export class MngTemplatePipe {
12
12
  }
13
13
  return value;
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTemplatePipe, deps: [{ token: i1.MngParametrizePipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
16
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: MngTemplatePipe, isStandalone: true, name: "template" }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTemplatePipe, deps: [{ token: i1.MngParametrizePipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
16
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: MngTemplatePipe, isStandalone: true, name: "template" }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngTemplatePipe, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngTemplatePipe, decorators: [{
19
19
  type: Pipe,
20
20
  args: [{
21
21
  standalone: true,
@@ -41,10 +41,10 @@ export class MngAuthorizationService {
41
41
  }
42
42
  return serviceInstance.isPermitted(route, this.router.routerState.snapshot, actionCtx);
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuthorizationService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuthorizationService, providedIn: 'root' }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuthorizationService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.MngCommonsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuthorizationService, providedIn: 'root' }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngAuthorizationService, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngAuthorizationService, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
@@ -730,10 +730,10 @@ export class MngActionExecutorService {
730
730
  }
731
731
  return instance;
732
732
  }
733
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngActionExecutorService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.DialogService }, { token: i3.TranslateService }, { token: i4.MngCommonsService }, { token: i5.MngNavigationService }, { token: i6.MngActionErrorMapperService }, { token: i7.MngParametrizePipe }, { token: ACTION_EDITOR_DIALOG_COMPONENT_SETTING }], target: i0.ɵɵFactoryTarget.Injectable }); }
734
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngActionExecutorService, providedIn: 'root' }); }
733
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngActionExecutorService, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i2.DialogService }, { token: i3.TranslateService }, { token: i4.MngCommonsService }, { token: i5.MngNavigationService }, { token: i6.MngActionErrorMapperService }, { token: i7.MngParametrizePipe }, { token: ACTION_EDITOR_DIALOG_COMPONENT_SETTING }], target: i0.ɵɵFactoryTarget.Injectable }); }
734
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngActionExecutorService, providedIn: 'root' }); }
735
735
  }
736
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngActionExecutorService, decorators: [{
736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngActionExecutorService, decorators: [{
737
737
  type: Injectable,
738
738
  args: [{
739
739
  providedIn: 'root'
@@ -460,10 +460,10 @@ export class MngCommonsService {
460
460
  titlePieces.push(this.translate.instant('app.name'));
461
461
  return titlePieces.join(' - ');
462
462
  }
463
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
464
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsService, providedIn: 'root' }); }
463
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
464
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsService, providedIn: 'root' }); }
465
465
  }
466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsService, decorators: [{
466
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsService, decorators: [{
467
467
  type: Injectable,
468
468
  args: [{
469
469
  providedIn: 'root'
@@ -62,10 +62,10 @@ export class MngCommonsInitService {
62
62
  return this.mngCommons.reset();
63
63
  }));
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsInitService, providedIn: 'root' }); }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsInitService, providedIn: 'root' }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngCommonsInitService, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngCommonsInitService, decorators: [{
69
69
  type: Injectable,
70
70
  args: [{
71
71
  providedIn: 'root'
@@ -20,10 +20,10 @@ export class MngLocalStorageService {
20
20
  removeItem(type, key) {
21
21
  localStorage.removeItem(this.buildLocalStorageKey(type, key));
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngLocalStorageService, providedIn: 'root' }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngLocalStorageService, providedIn: 'root' }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngLocalStorageService, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngLocalStorageService, decorators: [{
27
27
  type: Injectable,
28
28
  args: [{ providedIn: 'root' }]
29
29
  }] });
@@ -43,10 +43,10 @@ export class MngNavigationService {
43
43
  this.router.navigateByUrl('/');
44
44
  }
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngNavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngNavigationService, providedIn: 'root' }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngNavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngNavigationService, providedIn: 'root' }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: MngNavigationService, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: MngNavigationService, decorators: [{
50
50
  type: Injectable,
51
51
  args: [{
52
52
  providedIn: 'root'