@mediusinc/mng-commons 4.0.0-rc.2 → 4.0.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 (148) hide show
  1. package/esm2022/index.mjs +5 -1
  2. package/esm2022/lib/api/utils/medius-rest.util.mjs +15 -7
  3. package/esm2022/lib/api/utils/object-serializer.util.mjs +8 -4
  4. package/esm2022/lib/components/action/action.component.mjs +16 -45
  5. package/esm2022/lib/components/action/editor/action-editor.component.mjs +60 -434
  6. package/esm2022/lib/components/action/editor/injector-context/action-editor-injector-context.component.mjs +394 -0
  7. package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +6 -7
  8. package/esm2022/lib/components/action/models/action-component.model.mjs +1 -1
  9. package/esm2022/lib/components/action/models/action-execution.model.mjs +3 -6
  10. package/esm2022/lib/components/action/models/index.mjs +1 -2
  11. package/esm2022/lib/components/action/route/action-route.component.mjs +14 -30
  12. package/esm2022/lib/components/action/table/action-table.component.mjs +9 -19
  13. package/esm2022/lib/components/form/editor/form-editor.component.mjs +5 -11
  14. package/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +1 -1
  15. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +4 -4
  16. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +5 -5
  17. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +4 -4
  18. package/esm2022/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +1 -1
  19. package/esm2022/lib/components/layout/main-layout.component.mjs +21 -25
  20. package/esm2022/lib/components/layout/topbar.component.mjs +8 -8
  21. package/esm2022/lib/components/layoutV2/main-layout.component.mjs +13 -10
  22. package/esm2022/lib/components/layoutV2/menu-item.component.mjs +48 -5
  23. package/esm2022/lib/components/layoutV2/menu.component.mjs +13 -4
  24. package/esm2022/lib/components/layoutV2/services/main-layout.component.service.mjs +11 -2
  25. package/esm2022/lib/components/layoutV2/sidebar.component.mjs +5 -5
  26. package/esm2022/lib/components/layoutV2/topbar.component.mjs +7 -7
  27. package/esm2022/lib/components/notification/notification-wrapper.component.mjs +50 -0
  28. package/esm2022/lib/components/table/column-value/column-value.component.mjs +2 -2
  29. package/esm2022/lib/components/table/table.component.mjs +17 -23
  30. package/esm2022/lib/components/tableview/route/tableview-route.abstract.component.mjs +5 -5
  31. package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +3 -9
  32. package/esm2022/lib/components/tableview/tableview.component.mjs +17 -76
  33. package/esm2022/lib/descriptors/editor/field-lookup.descriptor.mjs +1 -2
  34. package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +20 -20
  35. package/esm2022/lib/directives/component.directive.mjs +8 -4
  36. package/esm2022/lib/helpers/coercion.mjs +8 -1
  37. package/esm2022/lib/models/action-editor.model.mjs +1 -1
  38. package/esm2022/lib/models/config.model.mjs +1 -1
  39. package/esm2022/lib/models/index.mjs +2 -2
  40. package/esm2022/lib/models/layout-config.model.mjs +2 -0
  41. package/esm2022/lib/models/view-container.model.mjs +1 -1
  42. package/esm2022/lib/provide-commons.mjs +7 -1
  43. package/esm2022/lib/registry/type.registry.mjs +2 -3
  44. package/esm2022/lib/router/route-builder.mjs +1 -1
  45. package/esm2022/lib/services/action/action-executor.service.mjs +725 -0
  46. package/esm2022/lib/services/action/component-action-executor.service.mjs +19 -0
  47. package/esm2022/lib/services/action/index.mjs +5 -0
  48. package/esm2022/lib/services/action/provide-action-executor.mjs +9 -0
  49. package/esm2022/lib/services/action/root-action-executor.service.mjs +18 -0
  50. package/esm2022/lib/services/commons.service.mjs +5 -5
  51. package/esm2022/lib/services/index.mjs +1 -3
  52. package/esm2022/lib/services/logger.service.mjs +2 -2
  53. package/esm2022/lib/services/view/index.mjs +3 -0
  54. package/esm2022/lib/services/view/provide-view-container.mjs +17 -0
  55. package/esm2022/lib/services/view/view-container.service.mjs +59 -0
  56. package/esm2022/lib/utils/date.util.mjs +33 -23
  57. package/esm2022/lib/utils/notification.util.mjs +9 -16
  58. package/esm2022/lib/utils/string.util.mjs +2 -2
  59. package/fesm2022/mediusinc-mng-commons.mjs +3199 -3156
  60. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  61. package/index.d.ts +4 -0
  62. package/lib/components/action/action.component.d.ts +11 -17
  63. package/lib/components/action/editor/action-editor.component.d.ts +20 -80
  64. package/lib/components/action/editor/injector-context/action-editor-injector-context.component.d.ts +80 -0
  65. package/lib/components/action/localization/data-language-dropdown.component.d.ts +2 -3
  66. package/lib/components/action/models/action-component.model.d.ts +0 -2
  67. package/lib/components/action/models/action-execution.model.d.ts +6 -6
  68. package/lib/components/action/models/index.d.ts +0 -1
  69. package/lib/components/action/route/action-route.component.d.ts +6 -12
  70. package/lib/components/action/table/action-table.component.d.ts +3 -8
  71. package/lib/components/form/editor/form-editor.component.d.ts +4 -7
  72. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -3
  73. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +0 -2
  74. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -2
  75. package/lib/components/layout/main-layout.component.d.ts +4 -7
  76. package/lib/components/layoutV2/main-layout.component.d.ts +4 -3
  77. package/lib/components/layoutV2/menu-item.component.d.ts +7 -3
  78. package/lib/components/layoutV2/menu.component.d.ts +2 -0
  79. package/lib/components/layoutV2/services/main-layout.component.service.d.ts +3 -0
  80. package/lib/components/layoutV2/sidebar.component.d.ts +1 -1
  81. package/lib/components/layoutV2/topbar.component.d.ts +2 -2
  82. package/lib/components/notification/notification-wrapper.component.d.ts +12 -0
  83. package/lib/components/table/table.component.d.ts +4 -7
  84. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +2 -3
  85. package/lib/components/tableview/route/tableview-route.component.d.ts +0 -3
  86. package/lib/components/tableview/tableview.component.d.ts +3 -19
  87. package/lib/descriptors/filter/filter.descriptor.d.ts +7 -7
  88. package/lib/directives/component.directive.d.ts +3 -2
  89. package/lib/models/action-editor.model.d.ts +11 -0
  90. package/lib/models/config.model.d.ts +3 -13
  91. package/lib/models/index.d.ts +1 -1
  92. package/lib/models/layout-config.model.d.ts +33 -0
  93. package/lib/models/view-container.model.d.ts +0 -25
  94. package/lib/router/route-builder.d.ts +1 -1
  95. package/lib/services/{action-executor.service.d.ts → action/action-executor.service.d.ts} +32 -31
  96. package/lib/services/action/component-action-executor.service.d.ts +9 -0
  97. package/lib/services/action/index.d.ts +4 -0
  98. package/lib/services/action/provide-action-executor.d.ts +2 -0
  99. package/lib/services/action/root-action-executor.service.d.ts +9 -0
  100. package/lib/services/index.d.ts +0 -2
  101. package/lib/services/view/index.d.ts +2 -0
  102. package/lib/services/view/provide-view-container.d.ts +2 -0
  103. package/lib/services/view/view-container.service.d.ts +32 -0
  104. package/lib/utils/date.util.d.ts +12 -2
  105. package/lib/utils/notification.util.d.ts +6 -6
  106. package/openapi/angular/README.mustache +226 -0
  107. package/openapi/angular/api.module.mustache +39 -0
  108. package/openapi/angular/api.service.mustache +253 -0
  109. package/openapi/angular/apiInterface.mustache +47 -0
  110. package/openapi/angular/apis.mustache +12 -0
  111. package/openapi/angular/configuration.mustache +128 -0
  112. package/openapi/angular/custom/base-api.service.mustache +14 -0
  113. package/openapi/angular/custom/helpers.mustache +71 -0
  114. package/openapi/angular/custom/modelSchema.mustache +46 -0
  115. package/openapi/angular/custom/schema.mustache +18 -0
  116. package/openapi/angular/encoder.mustache +20 -0
  117. package/openapi/angular/git_push.sh.mustache +57 -0
  118. package/openapi/angular/index.mustache +0 -0
  119. package/openapi/angular/licenseInfo.mustache +11 -0
  120. package/openapi/angular/model.mustache +16 -0
  121. package/openapi/angular/modelAlias.mustache +1 -0
  122. package/openapi/angular/modelEnum.mustache +24 -0
  123. package/openapi/angular/modelGeneric.mustache +14 -0
  124. package/openapi/angular/modelGenericAdditionalProperties.mustache +5 -0
  125. package/openapi/angular/modelGenericEnums.mustache +30 -0
  126. package/openapi/angular/modelOneOf.mustache +14 -0
  127. package/openapi/angular/modelTaggedUnion.mustache +21 -0
  128. package/openapi/angular/models.mustache +5 -0
  129. package/openapi/angular/ng-package.mustache +6 -0
  130. package/openapi/angular/package.mustache +39 -0
  131. package/openapi/angular/param.mustache +69 -0
  132. package/openapi/angular/tsconfig.mustache +28 -0
  133. package/openapi/angular/variables.mustache +9 -0
  134. package/openapi/{templates → node}/model.mustache +3 -17
  135. package/package.json +2 -2
  136. package/scss/mng-commons-dark-v2.scss +1 -1
  137. package/scss/mng-commons-light-v2.scss +1 -1
  138. package/scss/v2/layout/layout.scss +2 -2
  139. package/scss/v2/layout/mng/_mng_layout_topbar.scss +2 -0
  140. package/scss/v2/layout/preloading.scss +8 -8
  141. package/esm2022/lib/components/action/models/action-confirmation-service.model.mjs +0 -2
  142. package/esm2022/lib/models/menu-config.model.mjs +0 -2
  143. package/esm2022/lib/services/action-executor.service.mjs +0 -747
  144. package/esm2022/lib/services/view-container.component.service.mjs +0 -65
  145. package/lib/components/action/models/action-confirmation-service.model.d.ts +0 -6
  146. package/lib/models/menu-config.model.d.ts +0 -15
  147. package/lib/services/view-container.component.service.d.ts +0 -36
  148. /package/openapi/{templates → node}/models.mustache +0 -0
@@ -1,36 +1,35 @@
1
- import { AsyncPipe, NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, HostListener, Inject, QueryList, ViewChildren } from '@angular/core';
3
- import { ActivatedRoute, RouterOutlet } from '@angular/router';
1
+ import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, HostListener, QueryList, ViewChildren, inject } from '@angular/core';
3
+ import { RouterOutlet } from '@angular/router';
4
4
  import { MngComponentDirective, MngTemplateDirective } from '../../directives';
5
5
  import { MngCommonsService } from '../../services';
6
6
  import { MNG_MODULE_CONFIG_IT } from '../../services/tokens';
7
+ import { NotificationWrapperComponent } from '../notification/notification-wrapper.component';
7
8
  import { MngFooterComponent } from './footer.component';
8
9
  import { MngMenuComponent } from './menu.component';
9
10
  import { MngMainLayoutComponentService } from './services';
10
11
  import { MngTopbarComponent } from './topbar.component';
11
12
  import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/router";
13
- import * as i2 from "../../services";
14
- import * as i3 from "./services";
15
13
  export class MngMainLayoutComponent {
16
- constructor(route, mngCommons, mainLayoutService, config) {
17
- this.route = route;
18
- this.mngCommons = mngCommons;
19
- this.mainLayoutService = mainLayoutService;
20
- this.config = config;
14
+ constructor() {
15
+ this.mngCommons = inject(MngCommonsService);
16
+ this.mainLayoutService = inject(MngMainLayoutComponentService);
17
+ this.config = inject(MNG_MODULE_CONFIG_IT);
18
+ this.useNotificationWrapper = true;
21
19
  this.topbarComponent = MngTopbarComponent;
22
20
  this.menuComponent = MngMenuComponent;
23
21
  this.footerComponent = MngFooterComponent;
24
22
  }
25
23
  ngOnInit() {
26
- if (this.config.components?.layout?.topbar) {
27
- this.topbarComponent = this.config.components.layout.topbar;
24
+ this.useNotificationWrapper = !this.config.layout?.disableNotificationWrapper;
25
+ if (this.config.layout?.components?.topbar) {
26
+ this.topbarComponent = this.config.layout.components.topbar;
28
27
  }
29
- if (this.config.components?.layout?.menu) {
30
- this.menuComponent = this.config.components.layout.menu;
28
+ if (this.config.layout?.components?.menu) {
29
+ this.menuComponent = this.config.layout.components.menu;
31
30
  }
32
- if (this.config.components?.layout?.footer) {
33
- this.footerComponent = this.config.components.layout.footer;
31
+ if (this.config.layout?.components?.footer) {
32
+ this.footerComponent = this.config.layout.components.footer;
34
33
  }
35
34
  this.mainLayoutService.innerWidth = window.innerWidth;
36
35
  }
@@ -38,20 +37,17 @@ export class MngMainLayoutComponent {
38
37
  const target = event.target;
39
38
  this.mainLayoutService.innerWidth = target?.innerWidth ?? window.innerWidth;
40
39
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngMainLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.MngCommonsService }, { token: i3.MngMainLayoutComponentService }, { token: MNG_MODULE_CONFIG_IT }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngMainLayoutComponent, isStandalone: true, selector: "mng-main-layout", host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: [MngMainLayoutComponentService], viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n @if (\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n ) {\n <ng-container [mngComponent]=\"menuComponent\"> </ng-container>\n }\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost"], outputs: ["instanceCreated"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngMainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngMainLayoutComponent, isStandalone: true, selector: "mng-main-layout", host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: [MngMainLayoutComponentService], viewQueries: [{ propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "@if (useNotificationWrapper) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n @if (\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n ) {\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n }\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
42
  }
44
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngMainLayoutComponent, decorators: [{
45
44
  type: Component,
46
- args: [{ standalone: true, selector: 'mng-main-layout', providers: [MngMainLayoutComponentService], imports: [NgClass, AsyncPipe, MngComponentDirective, RouterOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n @if (\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n ) {\n <ng-container [mngComponent]=\"menuComponent\"> </ng-container>\n }\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n</div>\n" }]
47
- }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.MngCommonsService }, { type: i3.MngMainLayoutComponentService }, { type: undefined, decorators: [{
48
- type: Inject,
49
- args: [MNG_MODULE_CONFIG_IT]
50
- }] }], propDecorators: { templates: [{
45
+ args: [{ standalone: true, selector: 'mng-main-layout', providers: [MngMainLayoutComponentService], imports: [NgClass, AsyncPipe, MngComponentDirective, RouterOutlet, NotificationWrapperComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (useNotificationWrapper) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-wrapper\"\n (click)=\"mainLayoutService.onLayoutClick()\"\n [ngClass]=\"{\n 'layout-static': mngCommons.menuModeIsStatic$ | async,\n 'layout-overlay': mngCommons.menuModeIsOverlay$ | async,\n 'layout-slim': mngCommons.menuModeIsSlim$ | async,\n 'layout-sidebar': mngCommons.menuModeIsSidebar$ | async,\n 'layout-sidebar-static': (mngCommons.menuModeIsSidebar$ | async) && (mainLayoutService.sidebarStatic$ | async),\n 'layout-overlay-active': mainLayoutService.overlayMenuActive$ | async,\n 'layout-mobile-active': mainLayoutService.staticMenuMobileActive$ | async,\n 'layout-static-inactive': (mainLayoutService.staticMenuDesktopInactive$ | async) && (mngCommons.menuModeIsStatic$ | async)\n }\">\n <div class=\"layout-main\">\n <ng-container [mngComponent]=\"topbarComponent\"></ng-container>\n\n @if (\n (mainLayoutService.isMobile$ | async) === false &&\n ((mngCommons.menuModeIsStatic$ | async) || (mngCommons.menuModeIsSlim$ | async) || (mngCommons.menuModeIsSidebar$ | async))\n ) {\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n }\n\n <div class=\"layout-main-content\">\n <router-outlet></router-outlet>\n </div>\n\n <ng-container [mngComponent]=\"footerComponent\"></ng-container>\n </div>\n </div>\n</ng-template>\n" }]
46
+ }], propDecorators: { templates: [{
51
47
  type: ViewChildren,
52
48
  args: [MngTemplateDirective]
53
49
  }], onWindowResize: [{
54
50
  type: HostListener,
55
51
  args: ['window:resize', ['$event']]
56
52
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9tYWluLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L21haW4tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBUSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBVXRELE1BQU0sT0FBTyxzQkFBc0I7SUFPL0IsWUFDWSxLQUFxQixFQUN0QixVQUE2QixFQUM3QixpQkFBZ0QsRUFDakIsTUFBdUI7UUFIckQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQjtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVIxRCxvQkFBZSxHQUFjLGtCQUFrQixDQUFDO1FBQ2hELGtCQUFhLEdBQWMsZ0JBQWdCLENBQUM7UUFDNUMsb0JBQWUsR0FBYyxrQkFBa0IsQ0FBQztJQU9wRCxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDL0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUMvRDtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUMxRCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQWM7UUFDekIsTUFBTSxNQUFNLEdBQVEsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoRixDQUFDOzhHQWhDUSxzQkFBc0IsOEhBV25CLG9CQUFvQjtrR0FYdkIsc0JBQXNCLGtJQUpwQixDQUFDLDZCQUE2QixDQUFDLHdEQUs1QixvQkFBb0IsZ0RDdEJ0Qyw2NENBOEJBLDRDRFpjLE9BQU8sK0VBQUUsU0FBUyw4Q0FBRSxxQkFBcUIsNklBQUUsWUFBWTs7MkZBR3hELHNCQUFzQjtrQkFSbEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04saUJBQWlCLGFBRWhCLENBQUMsNkJBQTZCLENBQUMsV0FDakMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxtQkFDakQsdUJBQXVCLENBQUMsTUFBTTs7MEJBYTFDLE1BQU07MkJBQUMsb0JBQW9CO3lDQVZJLFNBQVM7c0JBQTVDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQTRCbEMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0LCBRdWVyeUxpc3QsIFR5cGUsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nQ29tcG9uZW50RGlyZWN0aXZlLCBNbmdUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQge01uZ01vZHVsZUNvbmZpZ30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nQ29tbW9uc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7TU5HX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rva2Vucyc7XG5pbXBvcnQge01uZ0Zvb3RlckNvbXBvbmVudH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7TW5nTWVudUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVG9wYmFyQ29tcG9uZW50fSBmcm9tICcuL3RvcGJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLW1haW4tbGF5b3V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW01uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlXSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgQXN5bmNQaXBlLCBNbmdDb21wb25lbnREaXJlY3RpdmUsIFJvdXRlck91dGxldF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nTWFpbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyB0b3BiYXJDb21wb25lbnQ6IFR5cGU8YW55PiA9IE1uZ1RvcGJhckNvbXBvbmVudDtcbiAgICBwdWJsaWMgbWVudUNvbXBvbmVudDogVHlwZTxhbnk+ID0gTW5nTWVudUNvbXBvbmVudDtcbiAgICBwdWJsaWMgZm9vdGVyQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdGb290ZXJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBtbmdDb21tb25zOiBNbmdDb21tb25zU2VydmljZSxcbiAgICAgICAgcHVibGljIG1haW5MYXlvdXRTZXJ2aWNlOiBNbmdNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZSxcbiAgICAgICAgQEluamVjdChNTkdfTU9EVUxFX0NPTkZJR19JVCkgcHJpdmF0ZSBjb25maWc6IE1uZ01vZHVsZUNvbmZpZ1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuY29tcG9uZW50cz8ubGF5b3V0Py50b3BiYXIpIHtcbiAgICAgICAgICAgIHRoaXMudG9wYmFyQ29tcG9uZW50ID0gdGhpcy5jb25maWcuY29tcG9uZW50cy5sYXlvdXQudG9wYmFyO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jb21wb25lbnRzPy5sYXlvdXQ/Lm1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudHMubGF5b3V0Lm1lbnU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbXBvbmVudHM/LmxheW91dD8uZm9vdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmZvb3RlckNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudHMubGF5b3V0LmZvb3RlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWFpbkxheW91dFNlcnZpY2UuaW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uV2luZG93UmVzaXplKGV2ZW50OiBVSUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICB0aGlzLm1haW5MYXlvdXRTZXJ2aWNlLmlubmVyV2lkdGggPSB0YXJnZXQ/LmlubmVyV2lkdGggPz8gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibGF5b3V0LXdyYXBwZXJcIlxuICAgIChjbGljayk9XCJtYWluTGF5b3V0U2VydmljZS5vbkxheW91dENsaWNrKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2xheW91dC1zdGF0aWMnOiBtbmdDb21tb25zLm1lbnVNb2RlSXNTdGF0aWMkIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtb3ZlcmxheSc6IG1uZ0NvbW1vbnMubWVudU1vZGVJc092ZXJsYXkkIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtc2xpbSc6IG1uZ0NvbW1vbnMubWVudU1vZGVJc1NsaW0kIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtc2lkZWJhcic6IG1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIkIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtc2lkZWJhci1zdGF0aWMnOiAobW5nQ29tbW9ucy5tZW51TW9kZUlzU2lkZWJhciQgfCBhc3luYykgJiYgKG1haW5MYXlvdXRTZXJ2aWNlLnNpZGViYXJTdGF0aWMkIHwgYXN5bmMpLFxuICAgICAgICAnbGF5b3V0LW92ZXJsYXktYWN0aXZlJzogbWFpbkxheW91dFNlcnZpY2Uub3ZlcmxheU1lbnVBY3RpdmUkIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IG1haW5MYXlvdXRTZXJ2aWNlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUkIHwgYXN5bmMsXG4gICAgICAgICdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzogKG1haW5MYXlvdXRTZXJ2aWNlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUkIHwgYXN5bmMpICYmIChtbmdDb21tb25zLm1lbnVNb2RlSXNTdGF0aWMkIHwgYXN5bmMpXG4gICAgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFpblwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwidG9wYmFyQ29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgIChtYWluTGF5b3V0U2VydmljZS5pc01vYmlsZSQgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAoKG1uZ0NvbW1vbnMubWVudU1vZGVJc1N0YXRpYyQgfCBhc3luYykgfHwgKG1uZ0NvbW1vbnMubWVudU1vZGVJc1NsaW0kIHwgYXN5bmMpIHx8IChtbmdDb21tb25zLm1lbnVNb2RlSXNTaWRlYmFyJCB8IGFzeW5jKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwibWVudUNvbXBvbmVudFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgW21uZ0NvbXBvbmVudF09XCJmb290ZXJDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9tYWluLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L21haW4tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFRLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN6RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFVdEQsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVdvQixlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDMUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9DLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUM5QixvQkFBZSxHQUFjLGtCQUFrQixDQUFDO1FBQ2hELGtCQUFhLEdBQWMsZ0JBQWdCLENBQUM7UUFDNUMsb0JBQWUsR0FBYyxrQkFBa0IsQ0FBQztLQXNCMUQ7SUFwQkcsUUFBUTtRQUNKLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtZQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDL0Q7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztTQUMvRDtRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUMxRCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQWM7UUFDekIsTUFBTSxNQUFNLEdBQVEsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoRixDQUFDOzhHQS9CUSxzQkFBc0I7a0dBQXRCLHNCQUFzQixrSUFKcEIsQ0FBQyw2QkFBNkIsQ0FBQyx3REFLNUIsb0JBQW9CLGdEQ3RCdEMscXhEQXdDQSw0Q0R0QmMsT0FBTywrRUFBRSxTQUFTLDhDQUFFLHFCQUFxQiw2SkFBRSxZQUFZLDJKQUFFLDRCQUE0QixxRUFBRSxnQkFBZ0I7OzJGQUd4RyxzQkFBc0I7a0JBUmxDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixhQUVoQixDQUFDLDZCQUE2QixDQUFDLFdBQ2pDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLENBQUMsbUJBQ2pHLHVCQUF1QixDQUFDLE1BQU07OEJBR1gsU0FBUztzQkFBNUMsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBMkJsQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBRdWVyeUxpc3QsIFR5cGUsIFZpZXdDaGlsZHJlbiwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge01uZ0NvbXBvbmVudERpcmVjdGl2ZSwgTW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtNTkdfTU9EVUxFX0NPTkZJR19JVH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW5zJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ0Zvb3RlckNvbXBvbmVudH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7TW5nTWVudUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVG9wYmFyQ29tcG9uZW50fSBmcm9tICcuL3RvcGJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLW1haW4tbGF5b3V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW01uZ01haW5MYXlvdXRDb21wb25lbnRTZXJ2aWNlXSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgQXN5bmNQaXBlLCBNbmdDb21wb25lbnREaXJlY3RpdmUsIFJvdXRlck91dGxldCwgTm90aWZpY2F0aW9uV3JhcHBlckNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nTWFpbkxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PE1uZ1RlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIHB1YmxpYyByZWFkb25seSBtbmdDb21tb25zID0gaW5qZWN0KE1uZ0NvbW1vbnNTZXJ2aWNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFpbkxheW91dFNlcnZpY2UgPSBpbmplY3QoTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBjb25maWcgPSBpbmplY3QoTU5HX01PRFVMRV9DT05GSUdfSVQpO1xuXG4gICAgcHVibGljIHVzZU5vdGlmaWNhdGlvbldyYXBwZXIgPSB0cnVlO1xuICAgIHB1YmxpYyB0b3BiYXJDb21wb25lbnQ6IFR5cGU8YW55PiA9IE1uZ1RvcGJhckNvbXBvbmVudDtcbiAgICBwdWJsaWMgbWVudUNvbXBvbmVudDogVHlwZTxhbnk+ID0gTW5nTWVudUNvbXBvbmVudDtcbiAgICBwdWJsaWMgZm9vdGVyQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdGb290ZXJDb21wb25lbnQ7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51c2VOb3RpZmljYXRpb25XcmFwcGVyID0gIXRoaXMuY29uZmlnLmxheW91dD8uZGlzYWJsZU5vdGlmaWNhdGlvbldyYXBwZXI7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXQ/LmNvbXBvbmVudHM/LnRvcGJhcikge1xuICAgICAgICAgICAgdGhpcy50b3BiYXJDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5sYXlvdXQuY29tcG9uZW50cy50b3BiYXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxheW91dD8uY29tcG9uZW50cz8ubWVudSkge1xuICAgICAgICAgICAgdGhpcy5tZW51Q29tcG9uZW50ID0gdGhpcy5jb25maWcubGF5b3V0LmNvbXBvbmVudHMubWVudTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcubGF5b3V0Py5jb21wb25lbnRzPy5mb290ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZm9vdGVyQ29tcG9uZW50ID0gdGhpcy5jb25maWcubGF5b3V0LmNvbXBvbmVudHMuZm9vdGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYWluTGF5b3V0U2VydmljZS5pbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25XaW5kb3dSZXNpemUoZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIHRoaXMubWFpbkxheW91dFNlcnZpY2UuaW5uZXJXaWR0aCA9IHRhcmdldD8uaW5uZXJXaWR0aCA/PyB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICB9XG59XG4iLCJAaWYgKHVzZU5vdGlmaWNhdGlvbldyYXBwZXIpIHtcbiAgICA8bW5nLW5vdGlmaWNhdGlvbi13cmFwcGVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9tbmctbm90aWZpY2F0aW9uLXdyYXBwZXI+XG59IEBlbHNlIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGF5b3V0LXdyYXBwZXJcIlxuICAgICAgICAoY2xpY2spPVwibWFpbkxheW91dFNlcnZpY2Uub25MYXlvdXRDbGljaygpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2xheW91dC1zdGF0aWMnOiBtbmdDb21tb25zLm1lbnVNb2RlSXNTdGF0aWMkIHwgYXN5bmMsXG4gICAgICAgICAgICAnbGF5b3V0LW92ZXJsYXknOiBtbmdDb21tb25zLm1lbnVNb2RlSXNPdmVybGF5JCB8IGFzeW5jLFxuICAgICAgICAgICAgJ2xheW91dC1zbGltJzogbW5nQ29tbW9ucy5tZW51TW9kZUlzU2xpbSQgfCBhc3luYyxcbiAgICAgICAgICAgICdsYXlvdXQtc2lkZWJhcic6IG1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIkIHwgYXN5bmMsXG4gICAgICAgICAgICAnbGF5b3V0LXNpZGViYXItc3RhdGljJzogKG1uZ0NvbW1vbnMubWVudU1vZGVJc1NpZGViYXIkIHwgYXN5bmMpICYmIChtYWluTGF5b3V0U2VydmljZS5zaWRlYmFyU3RhdGljJCB8IGFzeW5jKSxcbiAgICAgICAgICAgICdsYXlvdXQtb3ZlcmxheS1hY3RpdmUnOiBtYWluTGF5b3V0U2VydmljZS5vdmVybGF5TWVudUFjdGl2ZSQgfCBhc3luYyxcbiAgICAgICAgICAgICdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IG1haW5MYXlvdXRTZXJ2aWNlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUkIHwgYXN5bmMsXG4gICAgICAgICAgICAnbGF5b3V0LXN0YXRpYy1pbmFjdGl2ZSc6IChtYWluTGF5b3V0U2VydmljZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlJCB8IGFzeW5jKSAmJiAobW5nQ29tbW9ucy5tZW51TW9kZUlzU3RhdGljJCB8IGFzeW5jKVxuICAgICAgICB9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFpblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbW5nQ29tcG9uZW50XT1cInRvcGJhckNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgIChtYWluTGF5b3V0U2VydmljZS5pc01vYmlsZSQgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgKChtbmdDb21tb25zLm1lbnVNb2RlSXNTdGF0aWMkIHwgYXN5bmMpIHx8IChtbmdDb21tb25zLm1lbnVNb2RlSXNTbGltJCB8IGFzeW5jKSB8fCAobW5nQ29tbW9ucy5tZW51TW9kZUlzU2lkZWJhciQgfCBhc3luYykpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwibWVudUNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LW1haW4tY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwiZm9vdGVyQ29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -32,14 +32,14 @@ export class MngTopbarComponent {
32
32
  this.selectedLanguage = 'en';
33
33
  }
34
34
  ngOnInit() {
35
- if (this.config.components?.layout?.topbarUser) {
36
- this.topbarUserComponent = this.config.components.layout.topbarUser;
35
+ if (this.config.layout?.components?.topbarUser) {
36
+ this.topbarUserComponent = this.config.layout.components.topbarUser;
37
37
  }
38
- if (this.config.components?.layout?.breadcrumb) {
39
- this.breadcrumbComponent = this.config.components.layout.breadcrumb;
38
+ if (this.config.layout?.components?.breadcrumb) {
39
+ this.breadcrumbComponent = this.config.layout.components.breadcrumb;
40
40
  }
41
- if (this.config.components?.layout?.menu) {
42
- this.menuComponent = this.config.components.layout.menu;
41
+ if (this.config.layout?.components?.menu) {
42
+ this.menuComponent = this.config.layout.components.menu;
43
43
  }
44
44
  this.languages = this.mngCommons.appLanguages;
45
45
  this.selectedLanguage = this.mngCommons.getOrInitLanguage();
@@ -48,7 +48,7 @@ export class MngTopbarComponent {
48
48
  this.mngCommons.appLanguage = language;
49
49
  }
50
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngTopbarComponent, deps: [{ token: i0.ApplicationRef }, { token: i1.ActivatedRoute }, { token: i2.MngCommonsService }, { token: i3.MngMainLayoutComponentService }, { token: MNG_MODULE_CONFIG_IT }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngTopbarComponent, isStandalone: true, selector: "mng-topbar", viewQueries: [{ propertyName: "topbarInjectionRef", first: true, predicate: ["userMenuItem"], descendants: true }, { propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n @if ((mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)) {\n <a href=\"#\" class=\"topbar-menu-button\" (click)=\"mainLayoutService.onMenuButtonClick($event)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n }\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li\n #userMenuItem\n class=\"profile-item profile-item-extended\"\n [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === userMenuItem}\"\n [mngComponent]=\"topbarUserComponent\"\n [attachToHost]=\"true\"></li>\n @if (languages.length > 1) {\n <li class=\"profile-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n }\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngTopbarComponent, isStandalone: true, selector: "mng-topbar", viewQueries: [{ propertyName: "topbarInjectionRef", first: true, predicate: ["userMenuItem"], descendants: true }, { propertyName: "templates", predicate: MngTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n <div class=\"layout-topbar-left\">\n @if ((mngCommons.menuModeIsOverlay$ | async) || (mainLayoutService.isMobile$ | async)) {\n <a href=\"#\" class=\"topbar-menu-button\" (click)=\"mainLayoutService.onMenuButtonClick($event)\">\n <i class=\"pi pi-bars\"></i>\n </a>\n }\n\n <ng-container [mngComponent]=\"breadcrumbComponent\"></ng-container>\n </div>\n\n <ng-container [mngComponent]=\"menuComponent\"></ng-container>\n\n <div class=\"layout-topbar-right\">\n <ul class=\"layout-topbar-right-items\">\n <li\n #userMenuItem\n class=\"profile-item profile-item-extended\"\n [ngClass]=\"{'active-topmenuitem': (mainLayoutService.activeTopbarItem$ | async) === userMenuItem}\"\n [mngComponent]=\"topbarUserComponent\"\n [attachToHost]=\"true\"></li>\n @if (languages.length > 1) {\n <li class=\"profile-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"selectedLanguage\" [options]=\"languages\" (onChange)=\"switchLanguage($event.value)\"></p-dropdown>\n </li>\n }\n </ul>\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngTopbarComponent, decorators: [{
54
54
  type: Component,
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
63
63
  type: ViewChild,
64
64
  args: ['userMenuItem']
65
65
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQVEsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2SixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFTL0QsTUFBTSxPQUFPLGtCQUFrQjtJQVczQixZQUNZLGNBQThCLEVBQzlCLEtBQXFCLEVBQ3RCLFVBQTZCLEVBQzdCLGlCQUFnRCxFQUNqQixNQUF1QjtRQUpyRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQjtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVoxRCx3QkFBbUIsR0FBYyxzQkFBc0IsQ0FBQztRQUN4RCxrQkFBYSxHQUFjLGdCQUFnQixDQUFDO1FBQzVDLHdCQUFtQixHQUFjLHNCQUFzQixDQUFDO1FBRXhELGNBQVMsR0FBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFRNUIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7WUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDdkU7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7WUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDdkU7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQzNDLENBQUM7OEdBcENRLGtCQUFrQiw0SkFnQmYsb0JBQW9CO2tHQWhCdkIsa0JBQWtCLHlNQUNiLG9CQUFvQixnREMxQnRDLDR4Q0E4QkEsdUNEUmMsU0FBUyw4Q0FBRSxPQUFPLG1GQUFFLGVBQWUsK0JBQUUscUJBQXFCLDRJQUF5QixjQUFjLHluQ0FBRSxXQUFXLDhWQUFFLFlBQVk7OzJGQUc3SCxrQkFBa0I7a0JBUDlCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFlBQVksV0FFYixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLG1CQUN0SCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFrQjFDLE1BQU07MkJBQUMsb0JBQW9CO3lDQWZJLFNBQVM7c0JBQTVDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNQLGtCQUFrQjtzQkFBNUMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FwcGxpY2F0aW9uUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgUXVlcnlMaXN0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuXG5pbXBvcnQge01uZ0NvbXBvbmVudERpcmVjdGl2ZSwgTW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0VudW1lcmF0ZUFzeW5jUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtNTkdfTU9EVUxFX0NPTkZJR19JVH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW5zJztcbmltcG9ydCB7TW5nQnJlYWRjcnVtYkNvbXBvbmVudH0gZnJvbSAnLi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ01lbnVDb21wb25lbnR9IGZyb20gJy4vbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ1RvcGJhclVzZXJDb21wb25lbnR9IGZyb20gJy4vdG9wYmFyLXVzZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy10b3BiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nQ2xhc3MsIFRyYW5zbGF0ZU1vZHVsZSwgTW5nQ29tcG9uZW50RGlyZWN0aXZlLCBNbmdFbnVtZXJhdGVBc3luY1BpcGUsIERyb3Bkb3duTW9kdWxlLCBGb3Jtc01vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdUb3BiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQFZpZXdDaGlsZCgndXNlck1lbnVJdGVtJykgdG9wYmFySW5qZWN0aW9uUmVmITogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBicmVhZGNydW1iQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdCcmVhZGNydW1iQ29tcG9uZW50O1xuICAgIHB1YmxpYyBtZW51Q29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdNZW51Q29tcG9uZW50O1xuICAgIHB1YmxpYyB0b3BiYXJVc2VyQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdUb3BiYXJVc2VyQ29tcG9uZW50O1xuXG4gICAgcHVibGljIGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFsnZW4nXTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRMYW5ndWFnZSA9ICdlbic7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgbW5nQ29tbW9uczogTW5nQ29tbW9uc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBtYWluTGF5b3V0U2VydmljZTogTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTU5HX01PRFVMRV9DT05GSUdfSVQpIHByaXZhdGUgY29uZmlnOiBNbmdNb2R1bGVDb25maWdcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbXBvbmVudHM/LmxheW91dD8udG9wYmFyVXNlcikge1xuICAgICAgICAgICAgdGhpcy50b3BiYXJVc2VyQ29tcG9uZW50ID0gdGhpcy5jb25maWcuY29tcG9uZW50cy5sYXlvdXQudG9wYmFyVXNlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcuY29tcG9uZW50cz8ubGF5b3V0Py5icmVhZGNydW1iKSB7XG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5jb21wb25lbnRzLmxheW91dC5icmVhZGNydW1iO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jb21wb25lbnRzPy5sYXlvdXQ/Lm1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudHMubGF5b3V0Lm1lbnU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMubW5nQ29tbW9ucy5hcHBMYW5ndWFnZXM7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMubW5nQ29tbW9ucy5nZXRPckluaXRMYW5ndWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzd2l0Y2hMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy5hcHBMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXItbGVmdFwiPlxuICAgICAgICBAaWYgKChtbmdDb21tb25zLm1lbnVNb2RlSXNPdmVybGF5JCB8IGFzeW5jKSB8fCAobWFpbkxheW91dFNlcnZpY2UuaXNNb2JpbGUkIHwgYXN5bmMpKSB7XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidG9wYmFyLW1lbnUtYnV0dG9uXCIgKGNsaWNrKT1cIm1haW5MYXlvdXRTZXJ2aWNlLm9uTWVudUJ1dHRvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWJhcnNcIj48L2k+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwiYnJlYWRjcnVtYkNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciBbbW5nQ29tcG9uZW50XT1cIm1lbnVDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXJpZ2h0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxheW91dC10b3BiYXItcmlnaHQtaXRlbXNcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICN1c2VyTWVudUl0ZW1cbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtaXRlbSBwcm9maWxlLWl0ZW0tZXh0ZW5kZWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlLXRvcG1lbnVpdGVtJzogKG1haW5MYXlvdXRTZXJ2aWNlLmFjdGl2ZVRvcGJhckl0ZW0kIHwgYXN5bmMpID09PSB1c2VyTWVudUl0ZW19XCJcbiAgICAgICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cInRvcGJhclVzZXJDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvbGk+XG4gICAgICAgICAgICBAaWYgKGxhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicHJvZmlsZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktZ2xvYmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtuZ01vZGVsXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIiBbb3B0aW9uc109XCJsYW5ndWFnZXNcIiAob25DaGFuZ2UpPVwic3dpdGNoTGFuZ3VhZ2UoJGV2ZW50LnZhbHVlKVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvdG9wYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQVEsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2SixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTdFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDekQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFTL0QsTUFBTSxPQUFPLGtCQUFrQjtJQVczQixZQUNZLGNBQThCLEVBQzlCLEtBQXFCLEVBQ3RCLFVBQTZCLEVBQzdCLGlCQUFnRCxFQUNqQixNQUF1QjtRQUpyRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQjtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQVoxRCx3QkFBbUIsR0FBYyxzQkFBc0IsQ0FBQztRQUN4RCxrQkFBYSxHQUFjLGdCQUFnQixDQUFDO1FBQzVDLHdCQUFtQixHQUFjLHNCQUFzQixDQUFDO1FBRXhELGNBQVMsR0FBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFRNUIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDdkU7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDdkU7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO0lBQzNDLENBQUM7OEdBcENRLGtCQUFrQiw0SkFnQmYsb0JBQW9CO2tHQWhCdkIsa0JBQWtCLHlNQUNiLG9CQUFvQixnREMxQnRDLDR4Q0E4QkEsdUNEUmMsU0FBUyw4Q0FBRSxPQUFPLG1GQUFFLGVBQWUsK0JBQUUscUJBQXFCLDRKQUF5QixjQUFjLHluQ0FBRSxXQUFXLDhWQUFFLFlBQVk7OzJGQUc3SCxrQkFBa0I7a0JBUDlCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLFlBQVksV0FFYixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLG1CQUN0SCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFrQjFDLE1BQU07MkJBQUMsb0JBQW9CO3lDQWZJLFNBQVM7c0JBQTVDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNQLGtCQUFrQjtzQkFBNUMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FwcGxpY2F0aW9uUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgUXVlcnlMaXN0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuXG5pbXBvcnQge01uZ0NvbXBvbmVudERpcmVjdGl2ZSwgTW5nVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtNbmdNb2R1bGVDb25maWd9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0VudW1lcmF0ZUFzeW5jUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHtNbmdDb21tb25zU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtNTkdfTU9EVUxFX0NPTkZJR19JVH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW5zJztcbmltcG9ydCB7TW5nQnJlYWRjcnVtYkNvbXBvbmVudH0gZnJvbSAnLi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQge01uZ01lbnVDb21wb25lbnR9IGZyb20gJy4vbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge01uZ1RvcGJhclVzZXJDb21wb25lbnR9IGZyb20gJy4vdG9wYmFyLXVzZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy10b3BiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b3BiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIE5nQ2xhc3MsIFRyYW5zbGF0ZU1vZHVsZSwgTW5nQ29tcG9uZW50RGlyZWN0aXZlLCBNbmdFbnVtZXJhdGVBc3luY1BpcGUsIERyb3Bkb3duTW9kdWxlLCBGb3Jtc01vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdUb3BiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGRyZW4oTW5nVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQFZpZXdDaGlsZCgndXNlck1lbnVJdGVtJykgdG9wYmFySW5qZWN0aW9uUmVmITogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBicmVhZGNydW1iQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdCcmVhZGNydW1iQ29tcG9uZW50O1xuICAgIHB1YmxpYyBtZW51Q29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdNZW51Q29tcG9uZW50O1xuICAgIHB1YmxpYyB0b3BiYXJVc2VyQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdUb3BiYXJVc2VyQ29tcG9uZW50O1xuXG4gICAgcHVibGljIGxhbmd1YWdlczogQXJyYXk8c3RyaW5nPiA9IFsnZW4nXTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRMYW5ndWFnZSA9ICdlbic7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgbW5nQ29tbW9uczogTW5nQ29tbW9uc1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBtYWluTGF5b3V0U2VydmljZTogTW5nTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoTU5HX01PRFVMRV9DT05GSUdfSVQpIHByaXZhdGUgY29uZmlnOiBNbmdNb2R1bGVDb25maWdcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxheW91dD8uY29tcG9uZW50cz8udG9wYmFyVXNlcikge1xuICAgICAgICAgICAgdGhpcy50b3BiYXJVc2VyQ29tcG9uZW50ID0gdGhpcy5jb25maWcubGF5b3V0LmNvbXBvbmVudHMudG9wYmFyVXNlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb25maWcubGF5b3V0Py5jb21wb25lbnRzPy5icmVhZGNydW1iKSB7XG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5sYXlvdXQuY29tcG9uZW50cy5icmVhZGNydW1iO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXQ/LmNvbXBvbmVudHM/Lm1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmxheW91dC5jb21wb25lbnRzLm1lbnU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMubW5nQ29tbW9ucy5hcHBMYW5ndWFnZXM7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMubW5nQ29tbW9ucy5nZXRPckluaXRMYW5ndWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzd2l0Y2hMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy5hcHBMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyXCI+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC10b3BiYXItbGVmdFwiPlxuICAgICAgICBAaWYgKChtbmdDb21tb25zLm1lbnVNb2RlSXNPdmVybGF5JCB8IGFzeW5jKSB8fCAobWFpbkxheW91dFNlcnZpY2UuaXNNb2JpbGUkIHwgYXN5bmMpKSB7XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidG9wYmFyLW1lbnUtYnV0dG9uXCIgKGNsaWNrKT1cIm1haW5MYXlvdXRTZXJ2aWNlLm9uTWVudUJ1dHRvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWJhcnNcIj48L2k+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctY29udGFpbmVyIFttbmdDb21wb25lbnRdPVwiYnJlYWRjcnVtYkNvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciBbbW5nQ29tcG9uZW50XT1cIm1lbnVDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXJpZ2h0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxheW91dC10b3BiYXItcmlnaHQtaXRlbXNcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICN1c2VyTWVudUl0ZW1cbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb2ZpbGUtaXRlbSBwcm9maWxlLWl0ZW0tZXh0ZW5kZWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlLXRvcG1lbnVpdGVtJzogKG1haW5MYXlvdXRTZXJ2aWNlLmFjdGl2ZVRvcGJhckl0ZW0kIHwgYXN5bmMpID09PSB1c2VyTWVudUl0ZW19XCJcbiAgICAgICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cInRvcGJhclVzZXJDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvbGk+XG4gICAgICAgICAgICBAaWYgKGxhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicHJvZmlsZS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktZ2xvYmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtuZ01vZGVsXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIiBbb3B0aW9uc109XCJsYW5ndWFnZXNcIiAob25DaGFuZ2UpPVwic3dpdGNoTGFuZ3VhZ2UoJGV2ZW50LnZhbHVlKVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,9 +1,10 @@
1
- import { AsyncPipe, NgClass } from '@angular/common';
1
+ import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ElementRef, Renderer2, ViewChild, inject } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { RouterModule } from '@angular/router';
5
5
  import { MngComponentDirective } from '../../directives';
6
6
  import { MNG_MODULE_CONFIG_IT } from '../../services/tokens';
7
+ import { NotificationWrapperComponent } from '../notification/notification-wrapper.component';
7
8
  import { MngBreadcrumbV2Component } from './breadcrumb.component';
8
9
  import { MngFooterV2Component } from './footer.component';
9
10
  import { MenuService, MngMainLayoutComponentV2Service } from './services';
@@ -16,6 +17,7 @@ export class MngMainLayoutV2Component {
16
17
  this.layoutService = inject(MngMainLayoutComponentV2Service);
17
18
  this.menuService = inject(MenuService);
18
19
  this.renderer = inject(Renderer2);
20
+ this.useNotificationWrapper = true;
19
21
  this.topbarComponent = MngTopbarV2Component;
20
22
  this.breadcrumbsComponent = MngBreadcrumbV2Component;
21
23
  this.footerComponent = MngFooterV2Component;
@@ -34,14 +36,15 @@ export class MngMainLayoutV2Component {
34
36
  });
35
37
  }
36
38
  ngOnInit() {
37
- if (this.config.components?.layout?.topbar) {
38
- this.topbarComponent = this.config.components.layout.topbar;
39
+ this.useNotificationWrapper = !this.config.layoutV2?.disableNotificationWrapper;
40
+ if (this.config.layoutV2?.components?.topbar !== undefined) {
41
+ this.topbarComponent = this.config.layoutV2.components.topbar;
39
42
  }
40
- if (this.config.components?.layout?.breadcrumb) {
41
- this.breadcrumbsComponent = this.config.components.layout.breadcrumb;
43
+ if (this.config.layoutV2?.components?.breadcrumb !== undefined) {
44
+ this.breadcrumbsComponent = this.config.layoutV2.components.breadcrumb;
42
45
  }
43
- if (this.config.components?.layout?.footer) {
44
- this.footerComponent = this.config.components.layout.footer;
46
+ if (this.config.layoutV2?.components?.footer !== undefined) {
47
+ this.footerComponent = this.config.layoutV2.components.footer;
45
48
  }
46
49
  }
47
50
  blockBodyScroll() {
@@ -80,13 +83,13 @@ export class MngMainLayoutV2Component {
80
83
  }
81
84
  }
82
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngMainLayoutV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: MngMainLayoutV2Component, isStandalone: true, selector: "mng-main-layout-v2", providers: [MngMainLayoutComponentV2Service], viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true }], ngImport: i0, template: "<div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': config.app?.colorScheme === 'light',\n 'layout-dark': config.app?.colorScheme === 'dark',\n 'layout-overlay': config.menuV2?.mode === 'overlay',\n 'layout-static': config.menuV2?.mode === 'static',\n 'layout-reveal': config.menuV2?.mode === 'reveal',\n 'layout-drawer': config.menuV2?.mode === 'drawer',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && config.menuV2?.mode === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !config.menuV2?.ripple,\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent\" [attachToHost]=\"true\"></div>\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent\" [attachToHost]=\"true\"></div>\n </div>\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n <div [mngComponent]=\"footerComponent\" [attachToHost]=\"true\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.8", type: MngMainLayoutV2Component, isStandalone: true, selector: "mng-main-layout-v2", providers: [MngMainLayoutComponentV2Service], viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true }], ngImport: i0, template: "@if (useNotificationWrapper) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': config.app?.colorScheme === 'light',\n 'layout-dark': config.app?.colorScheme === 'dark',\n 'layout-overlay': config.layoutV2?.menuMode === 'overlay',\n 'layout-static': config.layoutV2?.menuMode === 'static',\n 'layout-reveal': config.layoutV2?.menuMode === 'reveal',\n 'layout-drawer': config.layoutV2?.menuMode === 'drawer',\n 'layout-slim': config.layoutV2?.menuMode === 'slim',\n 'layout-slim-plus': config.layoutV2?.menuMode === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && config.layoutV2?.menuMode === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !config.layoutV2?.ripple,\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent) {\n <div [mngComponent]=\"footerComponent\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
87
  }
85
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MngMainLayoutV2Component, decorators: [{
86
89
  type: Component,
87
- args: [{ standalone: true, selector: 'mng-main-layout-v2', imports: [NgClass, RouterModule, MngTopbarV2Component, MngBreadcrumbV2Component, MngComponentDirective, AsyncPipe], providers: [MngMainLayoutComponentV2Service], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': config.app?.colorScheme === 'light',\n 'layout-dark': config.app?.colorScheme === 'dark',\n 'layout-overlay': config.menuV2?.mode === 'overlay',\n 'layout-static': config.menuV2?.mode === 'static',\n 'layout-reveal': config.menuV2?.mode === 'reveal',\n 'layout-drawer': config.menuV2?.mode === 'drawer',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && config.menuV2?.mode === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !config.menuV2?.ripple,\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent\" [attachToHost]=\"true\"></div>\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent\" [attachToHost]=\"true\"></div>\n </div>\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n <div [mngComponent]=\"footerComponent\" [attachToHost]=\"true\"></div>\n </div>\n</div>\n" }]
90
+ args: [{ standalone: true, selector: 'mng-main-layout-v2', imports: [NgClass, RouterModule, MngTopbarV2Component, MngBreadcrumbV2Component, MngComponentDirective, AsyncPipe, NotificationWrapperComponent, NgTemplateOutlet], providers: [MngMainLayoutComponentV2Service], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (useNotificationWrapper) {\n <mng-notification-wrapper>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </mng-notification-wrapper>\n} @else {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n}\n\n<ng-template #content>\n <div\n class=\"layout-container\"\n [ngClass]=\"{\n 'layout-light': config.app?.colorScheme === 'light',\n 'layout-dark': config.app?.colorScheme === 'dark',\n 'layout-overlay': config.layoutV2?.menuMode === 'overlay',\n 'layout-static': config.layoutV2?.menuMode === 'static',\n 'layout-reveal': config.layoutV2?.menuMode === 'reveal',\n 'layout-drawer': config.layoutV2?.menuMode === 'drawer',\n 'layout-slim': config.layoutV2?.menuMode === 'slim',\n 'layout-slim-plus': config.layoutV2?.menuMode === 'slim-plus',\n 'layout-static-inactive': layoutService.state().staticMenuDesktopInactive && config.layoutV2?.menuMode === 'static',\n 'layout-overlay-active': layoutService.state().overlayMenuActive,\n 'layout-mobile-active': layoutService.state().staticMenuMobileActive,\n 'p-ripple-disabled': !config.layoutV2?.ripple,\n 'layout-sidebar-active': layoutService.state().sidebarActive,\n 'layout-sidebar-anchored': layoutService.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent) {\n <div #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent) {\n <div [mngComponent]=\"footerComponent\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n" }]
88
91
  }], ctorParameters: () => [], propDecorators: { appTopbar: [{
89
92
  type: ViewChild,
90
93
  args: ['topbarCmp']
91
94
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dFYyL21haW4tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXRWMi9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQVEsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFDLFdBQVcsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVXhELE1BQU0sT0FBTyx3QkFBd0I7SUFjakM7UUFiZ0IsV0FBTSxHQUFvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3ZELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdB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QUFDO1lBQ3RDLEdBQUcsS0FBSztZQUNSLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixlQUFlLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDbkM7SUFDTCxDQUFDOzhHQTdFUSx3QkFBd0I7a0dBQXhCLHdCQUF3QixpRUFIdEIsQ0FBQywrQkFBK0IsQ0FBQyxrSUNsQmhELG03Q0E0QkEsNENEWmMsT0FBTyxtRkFBRSxZQUFZLHlNQUFrRCxxQkFBcUI7OzJGQUs3Rix3QkFBd0I7a0JBUnBDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLG9CQUFvQixXQUNyQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxDQUFDLGFBRXZHLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0RBUXZCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0NsYXNzfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBUeXBlLCBWaWV3Q2hpbGQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7TW5nQ29tcG9uZW50RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7TW5nTW9kdWxlQ29uZmlnfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtNTkdfTU9EVUxFX0NPTkZJR19JVH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW5zJztcbmltcG9ydCB7TW5nQnJlYWRjcnVtYlYyQ29tcG9uZW50fSBmcm9tICcuL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7TW5nRm9vdGVyVjJDb21wb25lbnR9IGZyb20gJy4vZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01lbnVTZXJ2aWNlLCBNbmdNYWluTGF5b3V0Q29tcG9uZW50VjJTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7TW5nVG9wYmFyVjJDb21wb25lbnR9IGZyb20gJy4vdG9wYmFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctbWFpbi1sYXlvdXQtdjInLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBSb3V0ZXJNb2R1bGUsIE1uZ1RvcGJhclYyQ29tcG9uZW50LCBNbmdCcmVhZGNydW1iVjJDb21wb25lbnQsIE1uZ0NvbXBvbmVudERpcmVjdGl2ZSwgQXN5bmNQaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW01uZ01haW5MYXlvdXRDb21wb25lbnRWMlNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ01haW5MYXlvdXRWMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBNbmdNb2R1bGVDb25maWcgPSBpbmplY3QoTU5HX01PRFVMRV9DT05GSUdfSVQpO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KE1uZ01haW5MYXlvdXRDb21wb25lbnRWMlNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVudVNlcnZpY2UgPSBpbmplY3QoTWVudVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RvcGJhckNtcCcpIGFwcFRvcGJhcj86IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xuXG4gICAgcHVibGljIHRvcGJhckNvbXBvbmVudDogVHlwZTxhbnk+ID0gTW5nVG9wYmFyVjJDb21wb25lbnQ7XG4gICAgcHVibGljIGJyZWFkY3J1bWJzQ29tcG9uZW50OiBUeXBlPGFueT4gPSBNbmdCcmVhZGNydW1iVjJDb21wb25lbnQ7XG4gICAgcHVibGljIGZvb3RlckNvbXBvbmVudDogVHlwZTxhbnk+ID0gTW5nRm9vdGVyVjJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm92ZXJsYXlPcGVuJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc091dHNpZGVDbGlja2VkID0gISh0aGlzLmFwcFRvcGJhcj8ubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHwgdGhpcy5hcHBUb3BiYXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc091dHNpZGVDbGlja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5jb21wb25lbnRzPy5sYXlvdXQ/LnRvcGJhcikge1xuICAgICAgICAgICAgdGhpcy50b3BiYXJDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5jb21wb25lbnRzLmxheW91dC50b3BiYXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbXBvbmVudHM/LmxheW91dD8uYnJlYWRjcnVtYikge1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic0NvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudHMubGF5b3V0LmJyZWFkY3J1bWI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbXBvbmVudHM/LmxheW91dD8uZm9vdGVyKSB7XG4gICAgICAgICAgICB0aGlzLmZvb3RlckNvbXBvbmVudCA9IHRoaXMuY29uZmlnLmNvbXBvbmVudHMubGF5b3V0LmZvb3RlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGJsb2NrZWQtc2Nyb2xsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnYmxvY2tlZC1zY3JvbGwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCcoXnxcXFxcYiknICsgJ2Jsb2NrZWQtc2Nyb2xsJy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSwgJyAnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVNZW51KCkge1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUudXBkYXRlKHN0YXRlID0+ICh7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVudUhvdmVyQWN0aXZlOiBmYWxzZVxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgaWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwibGF5b3V0LWNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnbGF5b3V0LWxpZ2h0JzogY29uZmlnLmFwcD8uY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXG4gICAgICAgICdsYXlvdXQtZGFyayc6IGNvbmZpZy5hcHA/LmNvbG9yU2NoZW1lID09PSAnZGFyaycsXG4gICAgICAgICdsYXlvdXQtb3ZlcmxheSc6IGNvbmZpZy5tZW51VjI/Lm1vZGUgPT09ICdvdmVybGF5JyxcbiAgICAgICAgJ2xheW91dC1zdGF0aWMnOiBjb25maWcubWVudVYyPy5tb2RlID09PSAnc3RhdGljJyxcbiAgICAgICAgJ2xheW91dC1yZXZlYWwnOiBjb25maWcubWVudVYyPy5tb2RlID09PSAncmV2ZWFsJyxcbiAgICAgICAgJ2xheW91dC1kcmF3ZXInOiBjb25maWcubWVudVYyPy5tb2RlID09PSAnZHJhd2VyJyxcbiAgICAgICAgJ2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOiBsYXlvdXRTZXJ2aWNlLnN0YXRlKCkuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiBjb25maWcubWVudVYyPy5tb2RlID09PSAnc3RhdGljJyxcbiAgICAgICAgJ2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IGxheW91dFNlcnZpY2Uuc3RhdGUoKS5vdmVybGF5TWVudUFjdGl2ZSxcbiAgICAgICAgJ2xheW91dC1tb2JpbGUtYWN0aXZlJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUsXG4gICAgICAgICdwLXJpcHBsZS1kaXNhYmxlZCc6ICFjb25maWcubWVudVYyPy5yaXBwbGUsXG4gICAgICAgICdsYXlvdXQtc2lkZWJhci1hY3RpdmUnOiBsYXlvdXRTZXJ2aWNlLnN0YXRlKCkuc2lkZWJhckFjdGl2ZSxcbiAgICAgICAgJ2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLmFuY2hvcmVkXG4gICAgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgI3RvcGJhckNtcCBjbGFzcz1cImxheW91dC10b3BiYXItd3JhcHBlclwiIFttbmdDb21wb25lbnRdPVwidG9wYmFyQ29tcG9uZW50XCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJyZWFkY3J1bWJcIj5cbiAgICAgICAgICAgIDxkaXYgW21uZ0NvbXBvbmVudF09XCJicmVhZGNydW1ic0NvbXBvbmVudFwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50XCI+XG4gICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBbbW5nQ29tcG9uZW50XT1cImZvb3RlckNvbXBvbmVudFwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dFYyL21haW4tbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXRWMi9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQVEsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFDLFdBQVcsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVXhELE1BQU0sT0FBTyx3QkFBd0I7SUFlakM7UUFkZ0IsV0FBTSxHQUFvQixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFH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dUIsQ0FBQyxNQUFNO3dEQVF2QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgVHlwZSwgVmlld0NoaWxkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge01uZ0NvbXBvbmVudERpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQge01uZ01vZHVsZUNvbmZpZ30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TU5HX01PRFVMRV9DT05GSUdfSVR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rva2Vucyc7XG5pbXBvcnQge05vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnR9IGZyb20gJy4uL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24td3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdCcmVhZGNydW1iVjJDb21wb25lbnR9IGZyb20gJy4vYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHtNbmdGb290ZXJWMkNvbXBvbmVudH0gZnJvbSAnLi9mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7TWVudVNlcnZpY2UsIE1uZ01haW5MYXlvdXRDb21wb25lbnRWMlNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHtNbmdUb3BiYXJWMkNvbXBvbmVudH0gZnJvbSAnLi90b3BiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1tYWluLWxheW91dC12MicsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIFJvdXRlck1vZHVsZSwgTW5nVG9wYmFyVjJDb21wb25lbnQsIE1uZ0JyZWFkY3J1bWJWMkNvbXBvbmVudCwgTW5nQ29tcG9uZW50RGlyZWN0aXZlLCBBc3luY1BpcGUsIE5vdGlmaWNhdGlvbldyYXBwZXJDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYWluLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbTW5nTWFpbkxheW91dENvbXBvbmVudFYyU2VydmljZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nTWFpbkxheW91dFYyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByZWFkb25seSBjb25maWc6IE1uZ01vZHVsZUNvbmZpZyA9IGluamVjdChNTkdfTU9EVUxFX0NPTkZJR19JVCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTW5nTWFpbkxheW91dENvbXBvbmVudFYyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gICAgQFZpZXdDaGlsZCgndG9wYmFyQ21wJykgYXBwVG9wYmFyPzogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgbWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XG5cbiAgICBwdWJsaWMgdXNlTm90aWZpY2F0aW9uV3JhcHBlciA9IHRydWU7XG4gICAgcHVibGljIHRvcGJhckNvbXBvbmVudDogVHlwZTxhbnk+IHwgZmFsc2UgPSBNbmdUb3BiYXJWMkNvbXBvbmVudDtcbiAgICBwdWJsaWMgYnJlYWRjcnVtYnNDb21wb25lbnQ6IFR5cGU8YW55PiB8IGZhbHNlID0gTW5nQnJlYWRjcnVtYlYyQ29tcG9uZW50O1xuICAgIHB1YmxpYyBmb290ZXJDb21wb25lbnQ6IFR5cGU8YW55PiB8IGZhbHNlID0gTW5nRm9vdGVyVjJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm92ZXJsYXlPcGVuJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc091dHNpZGVDbGlja2VkID0gISh0aGlzLmFwcFRvcGJhcj8ubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHwgdGhpcy5hcHBUb3BiYXI/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc091dHNpZGVDbGlja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUoKS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlTm90aWZpY2F0aW9uV3JhcHBlciA9ICF0aGlzLmNvbmZpZy5sYXlvdXRWMj8uZGlzYWJsZU5vdGlmaWNhdGlvbldyYXBwZXI7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5sYXlvdXRWMj8uY29tcG9uZW50cz8udG9wYmFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9wYmFyQ29tcG9uZW50ID0gdGhpcy5jb25maWcubGF5b3V0VjIuY29tcG9uZW50cy50b3BiYXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxheW91dFYyPy5jb21wb25lbnRzPy5icmVhZGNydW1iICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYnNDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5sYXlvdXRWMi5jb21wb25lbnRzLmJyZWFkY3J1bWI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmxheW91dFYyPy5jb21wb25lbnRzPy5mb290ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb290ZXJDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5sYXlvdXRWMi5jb21wb25lbnRzLmZvb3RlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSArPSAnIGJsb2NrZWQtc2Nyb2xsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnYmxvY2tlZC1zY3JvbGwnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCcoXnxcXFxcYiknICsgJ2Jsb2NrZWQtc2Nyb2xsJy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSwgJyAnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGVNZW51KCkge1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUudXBkYXRlKHN0YXRlID0+ICh7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIG92ZXJsYXlNZW51QWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6IGZhbHNlLFxuICAgICAgICAgICAgbWVudUhvdmVyQWN0aXZlOiBmYWxzZVxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgaWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmICh1c2VOb3RpZmljYXRpb25XcmFwcGVyKSB7XG4gICAgPG1uZy1ub3RpZmljYXRpb24td3JhcHBlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbW5nLW5vdGlmaWNhdGlvbi13cmFwcGVyPlxufSBAZWxzZSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxheW91dC1jb250YWluZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnbGF5b3V0LWxpZ2h0JzogY29uZmlnLmFwcD8uY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXG4gICAgICAgICAgICAnbGF5b3V0LWRhcmsnOiBjb25maWcuYXBwPy5jb2xvclNjaGVtZSA9PT0gJ2RhcmsnLFxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5JzogY29uZmlnLmxheW91dFYyPy5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxuICAgICAgICAgICAgJ2xheW91dC1zdGF0aWMnOiBjb25maWcubGF5b3V0VjI/Lm1lbnVNb2RlID09PSAnc3RhdGljJyxcbiAgICAgICAgICAgICdsYXlvdXQtcmV2ZWFsJzogY29uZmlnLmxheW91dFYyPy5tZW51TW9kZSA9PT0gJ3JldmVhbCcsXG4gICAgICAgICAgICAnbGF5b3V0LWRyYXdlcic6IGNvbmZpZy5sYXlvdXRWMj8ubWVudU1vZGUgPT09ICdkcmF3ZXInLFxuICAgICAgICAgICAgJ2xheW91dC1zbGltJzogY29uZmlnLmxheW91dFYyPy5tZW51TW9kZSA9PT0gJ3NsaW0nLFxuICAgICAgICAgICAgJ2xheW91dC1zbGltLXBsdXMnOiBjb25maWcubGF5b3V0VjI/Lm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJyxcbiAgICAgICAgICAgICdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgJiYgY29uZmlnLmxheW91dFYyPy5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXG4gICAgICAgICAgICAnbGF5b3V0LW92ZXJsYXktYWN0aXZlJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLm92ZXJsYXlNZW51QWN0aXZlLFxuICAgICAgICAgICAgJ2xheW91dC1tb2JpbGUtYWN0aXZlJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUsXG4gICAgICAgICAgICAncC1yaXBwbGUtZGlzYWJsZWQnOiAhY29uZmlnLmxheW91dFYyPy5yaXBwbGUsXG4gICAgICAgICAgICAnbGF5b3V0LXNpZGViYXItYWN0aXZlJzogbGF5b3V0U2VydmljZS5zdGF0ZSgpLnNpZGViYXJBY3RpdmUsXG4gICAgICAgICAgICAnbGF5b3V0LXNpZGViYXItYW5jaG9yZWQnOiBsYXlvdXRTZXJ2aWNlLnN0YXRlKCkuYW5jaG9yZWRcbiAgICAgICAgfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgQGlmICh0b3BiYXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2ICN0b3BiYXJDbXAgY2xhc3M9XCJsYXlvdXQtdG9wYmFyLXdyYXBwZXJcIiBbbW5nQ29tcG9uZW50XT1cInRvcGJhckNvbXBvbmVudFwiIFthdHRhY2hUb0hvc3RdPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChicmVhZGNydW1ic0NvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJyZWFkY3J1bWJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbW5nQ29tcG9uZW50XT1cImJyZWFkY3J1bWJzQ29tcG9uZW50XCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChmb290ZXJDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IFttbmdDb21wb25lbnRdPVwiZm9vdGVyQ29tcG9uZW50XCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==