@mediusinc/mng-commons-layout 6.2.0 → 7.0.0-rc.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 (97) hide show
  1. package/components/index.d.ts +168 -10
  2. package/components/pages/error/index.d.ts +10 -1
  3. package/components/pages/main/index.d.ts +35 -2
  4. package/components/pages/main/lazy/index.d.ts +11 -1
  5. package/components/pages/not-found/index.d.ts +10 -1
  6. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs +4 -4
  7. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs.map +1 -1
  8. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs +9 -9
  10. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs +4 -4
  12. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs.map +1 -1
  13. package/fesm2022/mediusinc-mng-commons-layout-components.mjs +66 -65
  14. package/fesm2022/mediusinc-mng-commons-layout-components.mjs.map +1 -1
  15. package/fesm2022/mediusinc-mng-commons-layout.mjs +40 -41
  16. package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
  17. package/index.d.ts +206 -8
  18. package/package.json +25 -16
  19. package/styles/atlantis/index.scss +16 -0
  20. package/{scss → styles/atlantis}/layout/_content.scss +1 -1
  21. package/{scss → styles/atlantis}/layout/_main.scss +17 -2
  22. package/{scss → styles/atlantis}/layout/_profile.scss +1 -1
  23. package/styles/atlantis/layout/_sass_variables.scss +1 -0
  24. package/{scss → styles/atlantis}/layout/_sidebar_drawer.scss +5 -3
  25. package/{scss → styles/atlantis}/layout/_sidebar_horizontal.scss +8 -10
  26. package/{scss → styles/atlantis}/layout/_sidebar_reveal.scss +9 -12
  27. package/{scss → styles/atlantis}/layout/_sidebar_slim.scss +1 -2
  28. package/{scss → styles/atlantis}/layout/_sidebar_slim_plus.scss +1 -2
  29. package/{scss → styles/atlantis}/layout/_sidebar_vertical.scss +3 -1
  30. package/{scss → styles/atlantis}/layout/_topbar.scss +0 -1
  31. package/styles/atlantis/layout/atlantis.scss +0 -0
  32. package/{scss → styles/atlantis}/layout/layout.scss +3 -3
  33. package/{scss → styles/atlantis}/layout/variables/_dark.scss +2 -2
  34. package/{scss → styles/atlantis}/layout/variables/_light.scss +2 -2
  35. package/styles/tailwindcss-commons/atlantis/index.css +20 -0
  36. package/styles/tailwindcss-commons/atlantis/layout/breadcrumb.css +100 -0
  37. package/styles/tailwindcss-commons/atlantis/layout/content.css +3 -0
  38. package/styles/tailwindcss-commons/atlantis/layout/main.css +67 -0
  39. package/styles/tailwindcss-commons/atlantis/layout/profile.css +10 -0
  40. package/styles/tailwindcss-commons/atlantis/layout/responsive.css +131 -0
  41. package/styles/tailwindcss-commons/atlantis/layout/sidebar-drawer.css +286 -0
  42. package/styles/tailwindcss-commons/atlantis/layout/sidebar-reveal.css +204 -0
  43. package/styles/tailwindcss-commons/atlantis/layout/sidebar-slim-plus.css +166 -0
  44. package/styles/tailwindcss-commons/atlantis/layout/sidebar-slim.css +156 -0
  45. package/styles/tailwindcss-commons/atlantis/layout/sidebar-vertical.css +184 -0
  46. package/styles/tailwindcss-commons/atlantis/layout/topbar.css +203 -0
  47. package/styles/tailwindcss-commons/atlantis/layout/utils.css +29 -0
  48. package/styles/tailwindcss-commons/atlantis/variables/common.css +15 -0
  49. package/styles/tailwindcss-commons/atlantis/variables/dark.css +10 -0
  50. package/styles/tailwindcss-commons/atlantis/variables/light.css +10 -0
  51. package/styles/tailwindcss-commons/index.css +14 -0
  52. package/styles/tailwindcss-commons/index_wo_atlantis.css +13 -0
  53. package/styles/tailwindcss-commons/setup/breakpoints.css +15 -0
  54. package/styles/tailwindcss-commons/setup/dark.css +2 -0
  55. package/{scss/layout/mng/variables/_mng-variables-common.scss → styles/tailwindcss-commons/setup/variables.css} +9 -0
  56. package/{scss/layout/mng/theme/_mng_theme_button.scss → styles/tailwindcss-commons/styles/button.css} +2 -2
  57. package/{scss/layout/mng/theme/_mng_theme_dialog.scss → styles/tailwindcss-commons/styles/dialog.css} +22 -18
  58. package/styles/tailwindcss-commons/styles/tailwind.css +44 -0
  59. package/styles/tailwindcss-commons/styles/topbar.css +24 -0
  60. package/version-info.json +6 -6
  61. package/components/lib/components/breadcrumb.component.d.ts +0 -9
  62. package/components/lib/components/footer.component.d.ts +0 -13
  63. package/components/lib/components/main-layout.component.d.ts +0 -23
  64. package/components/lib/components/menu-item.component.d.ts +0 -26
  65. package/components/lib/components/menu.component.d.ts +0 -12
  66. package/components/lib/components/settings.component.d.ts +0 -28
  67. package/components/lib/components/sidebar.component.d.ts +0 -15
  68. package/components/lib/components/topbar-user.component.d.ts +0 -16
  69. package/components/lib/components/topbar.component.d.ts +0 -16
  70. package/components/lib/components/version.component.d.ts +0 -19
  71. package/components/pages/error/lib/error.page.component.d.ts +0 -7
  72. package/components/pages/main/lazy/lib/route-builder.d.ts +0 -8
  73. package/components/pages/main/lib/main-layout.component.d.ts +0 -23
  74. package/components/pages/main/lib/route-builder.d.ts +0 -8
  75. package/components/pages/not-found/lib/not-found.page.component.d.ts +0 -7
  76. package/lib/helpers/menu-items.d.ts +0 -5
  77. package/lib/models/layout-state.model.d.ts +0 -10
  78. package/lib/models/menu.model.d.ts +0 -4
  79. package/lib/provide.d.ts +0 -8
  80. package/lib/services/layout-feature-config.token.d.ts +0 -91
  81. package/lib/services/layout.service.d.ts +0 -48
  82. package/lib/services/menu.service.d.ts +0 -22
  83. package/lib/services/version.service.d.ts +0 -14
  84. package/scss/commons.scss +0 -1
  85. package/scss/layout/_sass_variables.scss +0 -1
  86. package/scss/layout/mng/layout/_mng_layout_topbar.scss +0 -18
  87. /package/{scss → styles/atlantis}/layout/_breadcrumb.scss +0 -0
  88. /package/{scss → styles/atlantis}/layout/_config.scss +0 -0
  89. /package/{scss → styles/atlantis}/layout/_responsive.scss +0 -0
  90. /package/{scss → styles/atlantis}/layout/_utils.scss +0 -0
  91. /package/{scss → styles/atlantis}/layout/variables/_common.scss +0 -0
  92. /package/{scss/layout/mng/layout/_mng_layout_footer.scss → styles/tailwindcss-commons/styles/footer.css} +0 -0
  93. /package/{scss/layout/mng/layout/_mng_layout.scss → styles/tailwindcss-commons/styles/layout.css} +0 -0
  94. /package/{scss/layout/mng/layout/_mng_layout_menu.scss → styles/tailwindcss-commons/styles/menu.css} +0 -0
  95. /package/{scss/layout/mng/layout/_mng_sidebar_vertical.scss → styles/tailwindcss-commons/styles/sidebar.css} +0 -0
  96. /package/{scss/layout/mng/theme/_mng_theme_toast.scss → styles/tailwindcss-commons/styles/toast.css} +0 -0
  97. /package/{scss/layout/mng/theme/_mng_theme_toggleswitch.scss → styles/tailwindcss-commons/styles/toggleswitch.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-layout-components-pages-not-found.mjs","sources":["../../components/pages/not-found/src/lib/not-found.page.component.ts","../../components/pages/not-found/src/lib/not-found.page.component.html","../../components/pages/not-found/src/mediusinc-mng-commons-layout-components-pages-not-found.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {RouterLink} from '@angular/router';\n\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {ButtonDirective} from 'primeng/button';\n\nimport {LayoutService} from '@mediusinc/mng-commons-layout';\n\n@Component({\n selector: 'mng-not-found-page',\n imports: [RouterLink, TranslatePipe, ButtonDirective],\n styleUrls: ['not-found.page.component.scss'],\n templateUrl: './not-found.page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NotFoundPageComponent {\n public readonly layout = inject(LayoutService);\n}\n","<div [class]=\"'exception-body min-h-screen ' + (layout.colorSchemeIsLight() ? 'layout-light' : 'layout-dark')\">\n <div class=\"exception-container min-h-screen flex items-center justify-center flex-col bg-auto md:bg-contain bg-no-repeat\">\n <div class=\"exception-panel text-center flex items-center justify-center flex-col\">\n <h1 class=\"text-red-400 mb-0\">{{ 'pages.notFound.title' | translate }}</h1>\n <h3 class=\"text-red-300\">{{ 'pages.notFound.subtitle' | translate }}</h3>\n <p>{{ 'pages.notFound.message' | translate }}</p>\n <button type=\"button\" pButton [label]=\"'general.returnHome' | translate\" [routerLink]=\"['/']\"></button>\n </div>\n <div class=\"exception-footer items-center flex\">\n @if (layout.appLogo()) {\n <img [src]=\"layout.appLogo()\" class=\"exception-logo\" alt=\"App logo\" />\n }\n @if (layout.appLogoName()) {\n <img [src]=\"layout.appLogoName()\" class=\"exception-appname ml-4\" alt=\"App name\" />\n }\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAea,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAQoB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACjD;+GAFY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,8ECflC,2mCAkBA,EAAA,MAAA,EAAA,CAAA,y+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRc,UAAU,EAAE,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAa,kDAAE,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAK3C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACI,oBAAoB,EAAA,OAAA,EACrB,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,eAAA,EAGpC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2mCAAA,EAAA,MAAA,EAAA,CAAA,y+BAAA,CAAA,EAAA;;;AEbnD;;AAEG;;;;"}
1
+ {"version":3,"file":"mediusinc-mng-commons-layout-components-pages-not-found.mjs","sources":["../tmp-esm2022/components/pages/not-found/lib/not-found.page.component.js","../tmp-esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ButtonDirective } from 'primeng/button';\nimport { LayoutService } from '@mediusinc/mng-commons-layout';\nimport * as i0 from \"@angular/core\";\nexport class NotFoundPageComponent {\n constructor() {\n this.layout = inject(LayoutService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NotFoundPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.7\", type: NotFoundPageComponent, isStandalone: true, selector: \"mng-not-found-page\", ngImport: i0, template: \"<div [class]=\\\"'exception-body min-h-screen ' + (layout.colorSchemeIsLight() ? 'layout-light' : 'layout-dark')\\\">\\n <div class=\\\"exception-container min-h-screen flex items-center justify-center flex-col bg-auto md:bg-contain bg-no-repeat\\\">\\n <div class=\\\"exception-panel text-center flex items-center justify-center flex-col\\\">\\n <h1 class=\\\"text-red-400 mb-0\\\">{{ 'pages.notFound.title' | translate }}</h1>\\n <h3 class=\\\"text-red-300\\\">{{ 'pages.notFound.subtitle' | translate }}</h3>\\n <p>{{ 'pages.notFound.message' | translate }}</p>\\n <button type=\\\"button\\\" pButton [label]=\\\"'general.returnHome' | translate\\\" [routerLink]=\\\"['/']\\\"></button>\\n </div>\\n <div class=\\\"exception-footer items-center flex\\\">\\n @if (layout.appLogo()) {\\n <img [src]=\\\"layout.appLogo()\\\" class=\\\"exception-logo\\\" alt=\\\"App logo\\\" />\\n }\\n @if (layout.appLogoName()) {\\n <img [src]=\\\"layout.appLogoName()\\\" class=\\\"exception-appname ml-4\\\" alt=\\\"App name\\\" />\\n }\\n </div>\\n </div>\\n</div>\\n\", styles: [\".exception-body{background:var(--surface-ground)}.exception-body .exception-container{background:var(--exception-pages-image);background-repeat:no-repeat;background-size:contain;box-sizing:border-box}.exception-body .exception-container .exception-panel{box-sizing:border-box;flex-grow:1;margin-top:3rem;margin-bottom:3rem}.exception-body .exception-container .exception-panel h1{font-size:140px;font-weight:900;text-shadow:0 0 50px rgba(#fc6161,.2)}.exception-body .exception-container .exception-panel h3{font-size:80px;font-weight:900;margin-top:-90px;margin-bottom:50px}.exception-body .exception-container .exception-panel p{font-size:24px;font-weight:400;max-width:320px}.exception-body .exception-container .exception-panel button{margin-top:50px}.exception-body .exception-container .exception-footer{margin-bottom:2rem}.exception-body .exception-container .exception-footer .exception-logo{width:34px}.exception-body .exception-container .exception-footer .exception-appname{width:72px}\\n\"], dependencies: [{ kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NotFoundPageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'mng-not-found-page', imports: [RouterLink, TranslatePipe, ButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div [class]=\\\"'exception-body min-h-screen ' + (layout.colorSchemeIsLight() ? 'layout-light' : 'layout-dark')\\\">\\n <div class=\\\"exception-container min-h-screen flex items-center justify-center flex-col bg-auto md:bg-contain bg-no-repeat\\\">\\n <div class=\\\"exception-panel text-center flex items-center justify-center flex-col\\\">\\n <h1 class=\\\"text-red-400 mb-0\\\">{{ 'pages.notFound.title' | translate }}</h1>\\n <h3 class=\\\"text-red-300\\\">{{ 'pages.notFound.subtitle' | translate }}</h3>\\n <p>{{ 'pages.notFound.message' | translate }}</p>\\n <button type=\\\"button\\\" pButton [label]=\\\"'general.returnHome' | translate\\\" [routerLink]=\\\"['/']\\\"></button>\\n </div>\\n <div class=\\\"exception-footer items-center flex\\\">\\n @if (layout.appLogo()) {\\n <img [src]=\\\"layout.appLogo()\\\" class=\\\"exception-logo\\\" alt=\\\"App logo\\\" />\\n }\\n @if (layout.appLogoName()) {\\n <img [src]=\\\"layout.appLogoName()\\\" class=\\\"exception-appname ml-4\\\" alt=\\\"App name\\\" />\\n }\\n </div>\\n </div>\\n</div>\\n\", styles: [\".exception-body{background:var(--surface-ground)}.exception-body .exception-container{background:var(--exception-pages-image);background-repeat:no-repeat;background-size:contain;box-sizing:border-box}.exception-body .exception-container .exception-panel{box-sizing:border-box;flex-grow:1;margin-top:3rem;margin-bottom:3rem}.exception-body .exception-container .exception-panel h1{font-size:140px;font-weight:900;text-shadow:0 0 50px rgba(#fc6161,.2)}.exception-body .exception-container .exception-panel h3{font-size:80px;font-weight:900;margin-top:-90px;margin-bottom:50px}.exception-body .exception-container .exception-panel p{font-size:24px;font-weight:400;max-width:320px}.exception-body .exception-container .exception-panel button{margin-top:50px}.exception-body .exception-container .exception-footer{margin-bottom:2rem}.exception-body .exception-container .exception-footer .exception-logo{width:34px}.exception-body .exception-container .exception-footer .exception-appname{width:72px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWZvdW5kLnBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9wYWdlcy9ub3QtZm91bmQvc3JjL2xpYi9ub3QtZm91bmQucGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3BhZ2VzL25vdC1mb3VuZC9zcmMvbGliL25vdC1mb3VuZC5wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFTNUQsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFvQixXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ2xEOzhHQUZZLHFCQUFxQjtrR0FBckIscUJBQXFCLDhFQ2ZsQywybUNBa0JBLCtoQ0RSYyxVQUFVLG9PQUFpQixlQUFlLCtNQUE5QixhQUFhOzsyRkFLMUIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNJLG9CQUFvQixXQUNyQixDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLG1CQUdwQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJMaW5rfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVBpcGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b25EaXJlY3RpdmV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcblxuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zLWxheW91dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLW5vdC1mb3VuZC1wYWdlJyxcbiAgICBpbXBvcnRzOiBbUm91dGVyTGluaywgVHJhbnNsYXRlUGlwZSwgQnV0dG9uRGlyZWN0aXZlXSxcbiAgICBzdHlsZVVybHM6IFsnbm90LWZvdW5kLnBhZ2UuY29tcG9uZW50LmNzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3QtZm91bmQucGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm90Rm91bmRQYWdlQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0ID0gaW5qZWN0KExheW91dFNlcnZpY2UpO1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiJ2V4Y2VwdGlvbi1ib2R5IG1pbi1oLXNjcmVlbiAnICsgKGxheW91dC5jb2xvclNjaGVtZUlzTGlnaHQoKSA/ICdsYXlvdXQtbGlnaHQnIDogJ2xheW91dC1kYXJrJylcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXhjZXB0aW9uLWNvbnRhaW5lciBtaW4taC1zY3JlZW4gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1jb2wgYmctYXV0byBtZDpiZy1jb250YWluIGJnLW5vLXJlcGVhdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhjZXB0aW9uLXBhbmVsIHRleHQtY2VudGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8aDEgY2xhc3M9XCJ0ZXh0LXJlZC00MDAgbWItMFwiPnt7ICdwYWdlcy5ub3RGb3VuZC50aXRsZScgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC1yZWQtMzAwXCI+e3sgJ3BhZ2VzLm5vdEZvdW5kLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XG4gICAgICAgICAgICA8cD57eyAncGFnZXMubm90Rm91bmQubWVzc2FnZScgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIFtsYWJlbF09XCInZ2VuZXJhbC5yZXR1cm5Ib21lJyB8IHRyYW5zbGF0ZVwiIFtyb3V0ZXJMaW5rXT1cIlsnLyddXCI+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhjZXB0aW9uLWZvb3RlciBpdGVtcy1jZW50ZXIgZmxleFwiPlxuICAgICAgICAgICAgQGlmIChsYXlvdXQuYXBwTG9nbygpKSB7XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImxheW91dC5hcHBMb2dvKClcIiBjbGFzcz1cImV4Y2VwdGlvbi1sb2dvXCIgYWx0PVwiQXBwIGxvZ29cIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChsYXlvdXQuYXBwTG9nb05hbWUoKSkge1xuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJsYXlvdXQuYXBwTG9nb05hbWUoKVwiIGNsYXNzPVwiZXhjZXB0aW9uLWFwcG5hbWUgbWwtNFwiIGFsdD1cIkFwcCBuYW1lXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaXVzaW5jLW1uZy1jb21tb25zLWxheW91dC1jb21wb25lbnRzLXBhZ2VzLW5vdC1mb3VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvcGFnZXMvbm90LWZvdW5kL3NyYy9tZWRpdXNpbmMtbW5nLWNvbW1vbnMtbGF5b3V0LWNvbXBvbmVudHMtcGFnZXMtbm90LWZvdW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;AAMO,MAAM,qBAAqB,CAAC;AACnC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AAC3C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2mCAA2mC,EAAE,MAAM,EAAE,CAAC,u+BAAu+B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACt3F;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,2mCAA2mC,EAAE,MAAM,EAAE,CAAC,u+BAAu+B,CAAC,EAAE;AACvwE,SAAS,CAAC,EAAE,CAAC;;AChBb;AACA;AACA;;;;"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, DestroyRef, input, signal, computed, ChangeDetectionStrategy, Component, output, viewChild, effect, untracked, ElementRef, HostListener, Injector, Renderer2 } from '@angular/core';
3
3
  import { TranslatePipe, TranslateService } from '@ngx-translate/core';
4
4
  import { VersionService, COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService } from '@mediusinc/mng-commons-layout';
5
- import { CommonsConfigurationService, JsonPathPipe, CommonsService, ComponentDirective, PermissionService, toObservable as toObservable$1, NotificationWrapperComponent } from '@mediusinc/mng-commons/core';
5
+ import { CommonsConfigurationService, JsonPathPipe, ComponentDirective, CommonsService, PermissionService, toObservable as toObservable$1, NotificationWrapperComponent } from '@mediusinc/mng-commons/core';
6
6
  import { toObservable, takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
7
7
  import { catchError, of, switchMap, take, distinctUntilChanged } from 'rxjs';
8
8
  import { map } from 'rxjs/operators';
@@ -22,19 +22,20 @@ import { SelectButton } from 'primeng/selectbutton';
22
22
 
23
23
  class VersionComponent {
24
24
  constructor() {
25
+ this.cmp = VersionComponent;
25
26
  this.versionService = inject(VersionService);
26
27
  this.configService = inject(CommonsConfigurationService);
27
28
  this.destroyRef = inject(DestroyRef);
28
29
  this.jsonPathPipe = new JsonPathPipe();
29
- this.versionInput = input(undefined, { alias: 'version' });
30
- this.isLoading = signal(false);
31
- this.loadedVersion = signal(undefined);
30
+ this.versionInput = input(undefined, ...(ngDevMode ? [{ debugName: "versionInput", alias: 'version' }] : [{ alias: 'version' }]));
31
+ this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
32
+ this.loadedVersion = signal(undefined, ...(ngDevMode ? [{ debugName: "loadedVersion" }] : []));
32
33
  this.versionAsArray = computed(() => {
33
34
  if (Array.isArray(this.versionInput())) {
34
35
  return this.versionInput();
35
36
  }
36
37
  return undefined;
37
- });
38
+ }, ...(ngDevMode ? [{ debugName: "versionAsArray" }] : []));
38
39
  this.versionInfo = computed(() => {
39
40
  if (this.versionAsArray() !== undefined) {
40
41
  return undefined; // Each version will be processed separately in child component
@@ -57,7 +58,7 @@ class VersionComponent {
57
58
  }
58
59
  }
59
60
  return undefined;
60
- });
61
+ }, ...(ngDevMode ? [{ debugName: "versionInfo" }] : []));
61
62
  this.versionAsString = computed(() => {
62
63
  const versionInfo = this.versionInfo();
63
64
  if (versionInfo == null) {
@@ -69,9 +70,9 @@ class VersionComponent {
69
70
  else {
70
71
  return versionInfo.raw;
71
72
  }
72
- });
73
- this.displayName = computed(() => this.versionInput()?.displayName);
74
- this.displayText = computed(() => `${this.displayName() ?? ''}${this.displayName() && this.versionAsString() ? ': ' : ''}${!this.isLoading() ? (this.versionAsString() ?? '') : ''}`);
73
+ }, ...(ngDevMode ? [{ debugName: "versionAsString" }] : []));
74
+ this.displayName = computed(() => this.versionInput()?.displayName, ...(ngDevMode ? [{ debugName: "displayName" }] : []));
75
+ this.displayText = computed(() => `${this.displayName() ?? ''}${this.displayName() && this.versionAsString() ? ': ' : ''}${!this.isLoading() ? (this.versionAsString() ?? '') : ''}`, ...(ngDevMode ? [{ debugName: "displayText" }] : []));
75
76
  toObservable(this.versionInput)
76
77
  .pipe(catchError(() => of(undefined)), switchMap(version => {
77
78
  if (typeof version !== 'undefined' && !Array.isArray(version)) {
@@ -100,12 +101,12 @@ class VersionComponent {
100
101
  }
101
102
  });
102
103
  }
103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: VersionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: VersionComponent, isStandalone: true, selector: "mng-version", inputs: { versionInput: { classPropertyName: "versionInput", publicName: "version", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (versionAsArray()) {\n @for (v of versionAsArray(); track v; let last = $last) {\n <mng-version [version]=\"v\"></mng-version>\n @if (!last) {\n <br />\n }\n }\n} @else if (displayText()) {\n {{ displayText() }}\n}\n", dependencies: [{ kind: "component", type: VersionComponent, selector: "mng-version", inputs: ["version"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: VersionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: VersionComponent, isStandalone: true, selector: "mng-version", inputs: { versionInput: { classPropertyName: "versionInput", publicName: "version", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (versionAsArray()) {\n @for (v of versionAsArray(); track v; let last = $last) {\n <!-- Bypasses problems with self-importing component -->\n <ng-container [mngComponent]=\"cmp\" [inputs]=\"{version: v}\"></ng-container>\n @if (!last) {\n <br />\n }\n }\n} @else if (displayText()) {\n {{ displayText() }}\n}\n", dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
106
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: VersionComponent, decorators: [{
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: VersionComponent, decorators: [{
107
108
  type: Component,
108
- args: [{ selector: 'mng-version', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (versionAsArray()) {\n @for (v of versionAsArray(); track v; let last = $last) {\n <mng-version [version]=\"v\"></mng-version>\n @if (!last) {\n <br />\n }\n }\n} @else if (displayText()) {\n {{ displayText() }}\n}\n" }]
109
+ args: [{ selector: 'mng-version', imports: [ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (versionAsArray()) {\n @for (v of versionAsArray(); track v; let last = $last) {\n <!-- Bypasses problems with self-importing component -->\n <ng-container [mngComponent]=\"cmp\" [inputs]=\"{version: v}\"></ng-container>\n @if (!last) {\n <br />\n }\n }\n} @else if (displayText()) {\n {{ displayText() }}\n}\n" }]
109
110
  }], ctorParameters: () => [] });
110
111
 
111
112
  class FooterComponent {
@@ -113,13 +114,13 @@ class FooterComponent {
113
114
  this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
114
115
  this.layout = inject(LayoutService);
115
116
  this.commons = inject(CommonsService);
116
- this.currentYear = signal(new Date().getFullYear());
117
- this.versionComponent = signal(this.config?.components?.version === false ? undefined : (this.config?.components?.version ?? VersionComponent));
117
+ this.currentYear = signal(new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "currentYear" }] : []));
118
+ this.versionComponent = signal(this.config?.components?.version === false ? undefined : (this.config?.components?.version ?? VersionComponent), ...(ngDevMode ? [{ debugName: "versionComponent" }] : []));
118
119
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: FooterComponent, isStandalone: true, selector: "mng-footer", host: { classAttribute: "mt-auto" }, ngImport: i0, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n @if (layout.appLogo()) {\n <img id=\"footer-logo\" [src]=\"layout.appLogo()\" alt=\"atlantis-layout\" />\n }\n <span class=\"app-name\">{{ commons.appName() | translate }}</span>\n </div>\n <div class=\"flex flex-col\">\n <div>\n <span class=\"copyright\">&#169; {{ commons.appOwner() | translate }} - {{ currentYear() }}</span>\n </div>\n @if (versionComponent()) {\n <div class=\"version\" [mngComponent]=\"versionComponent()\" [inputs]=\"{version: commons.appVersion()}\" [attachToHost]=\"true\"></div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: FooterComponent, isStandalone: true, selector: "mng-footer", host: { classAttribute: "mt-auto" }, ngImport: i0, template: "<div class=\"layout-footer\">\n <div class=\"footer-logo-container\">\n @if (layout.appLogo()) {\n <img id=\"footer-logo\" [src]=\"layout.appLogo()\" alt=\"atlantis-layout\" />\n }\n <span class=\"app-name\">{{ commons.appName() | translate }}</span>\n </div>\n <div class=\"flex flex-col\">\n <div>\n <span class=\"copyright\">&#169; {{ commons.appOwner() | translate }} - {{ currentYear() }}</span>\n </div>\n @if (versionComponent()) {\n <div class=\"version\" [mngComponent]=\"versionComponent()\" [inputs]=\"{version: commons.appVersion()}\" [attachToHost]=\"true\"></div>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
122
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: FooterComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: FooterComponent, decorators: [{
123
124
  type: Component,
124
125
  args: [{ selector: 'mng-footer', imports: [TranslatePipe, ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
125
126
  class: 'mt-auto'
@@ -132,7 +133,7 @@ class BreadcrumbComponent {
132
133
  this.mappedBreadcrumbs = computed(() => {
133
134
  const items = this.commons.breadcrumbs();
134
135
  return items.map(el => this.mapMenuItem(el));
135
- });
136
+ }, ...(ngDevMode ? [{ debugName: "mappedBreadcrumbs" }] : []));
136
137
  }
137
138
  mapMenuItem(item) {
138
139
  return {
@@ -142,10 +143,10 @@ class BreadcrumbComponent {
142
143
  styleClass: item.className
143
144
  };
144
145
  }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: BreadcrumbComponent, isStandalone: true, selector: "mng-breadcrumb", host: { classAttribute: "layout-breadcrumb flex items-center relative h-12" }, ngImport: i0, template: "<nav>\n <ol class=\"relative z-20\">\n @for (item of mappedBreadcrumbs(); track item.id; let last = $last) {\n <li>{{ item.label! | translate }}</li>\n @if (!last) {\n <li class=\"layout-breadcrumb-chevron\">/</li>\n }\n }\n </ol>\n</nav>\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: BreadcrumbComponent, isStandalone: true, selector: "mng-breadcrumb", host: { classAttribute: "layout-breadcrumb flex items-center relative h-12" }, ngImport: i0, template: "<nav>\n <ol class=\"relative z-20\">\n @for (item of mappedBreadcrumbs(); track item.id; let last = $last) {\n <li>{{ item.label! | translate }}</li>\n @if (!last) {\n <li class=\"layout-breadcrumb-chevron\">/</li>\n }\n }\n </ol>\n</nav>\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
147
148
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: BreadcrumbComponent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: BreadcrumbComponent, decorators: [{
149
150
  type: Component,
150
151
  args: [{ selector: 'mng-breadcrumb', imports: [TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
151
152
  class: 'layout-breadcrumb flex items-center relative h-12'
@@ -157,10 +158,10 @@ class MenuItemComponent {
157
158
  this.menuService = inject(MenuService);
158
159
  this.permissionService = inject(PermissionService);
159
160
  this.layout = inject(LayoutService);
160
- this.item = input.required();
161
- this.root = input(false);
161
+ this.item = input.required(...(ngDevMode ? [{ debugName: "item" }] : []));
162
+ this.root = input(false, ...(ngDevMode ? [{ debugName: "root" }] : []));
162
163
  this.visibleChange = output();
163
- this.submenuElRef = viewChild('submenu');
164
+ this.submenuElRef = viewChild('submenu', ...(ngDevMode ? [{ debugName: "submenuElRef" }] : []));
164
165
  this.isPermitted = toSignal(toObservable(this.item).pipe(switchMap(i => (i.permissions ? this.permissionService.isMenuItemVisible(i.permissions, i.config) : of(true)))));
165
166
  this.isVisibleFromItemSettings = toSignal(toObservable(this.item).pipe(switchMap(i => (typeof i.isVisible === 'function' ? toObservable$1(i.isVisible(i.config)) : of(i.isVisible ?? true)))));
166
167
  this.menuChangeEvents = toSignal(this.menuService.menuChange$.pipe(distinctUntilChanged((v1, v2) => v1.key === v2.key)));
@@ -175,7 +176,7 @@ class MenuItemComponent {
175
176
  : this.item().key === menuChangeEvent.key || menuChangeEvent.key.startsWith((this.item().key ?? '') + '-');
176
177
  }
177
178
  return false;
178
- });
179
+ }, ...(ngDevMode ? [{ debugName: "active" }] : []));
179
180
  this.visible = computed(() => {
180
181
  const isPermitted = this.isPermitted();
181
182
  if (!isPermitted) {
@@ -193,7 +194,7 @@ class MenuItemComponent {
193
194
  return false;
194
195
  }
195
196
  return true;
196
- });
197
+ }, ...(ngDevMode ? [{ debugName: "visible" }] : []));
197
198
  this.submenuAnimation = computed(() => {
198
199
  if (this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
199
200
  return this.layout.submenuOverlayKey() === this.item().key ? 'visible' : 'hidden';
@@ -201,7 +202,7 @@ class MenuItemComponent {
201
202
  else {
202
203
  return this.root() ? 'expanded' : this.active() ? 'expanded' : 'collapsed';
203
204
  }
204
- });
205
+ }, ...(ngDevMode ? [{ debugName: "submenuAnimation" }] : []));
205
206
  effect(() => {
206
207
  if (this.root() && this.active() && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
207
208
  this.calculatePosition(this.submenuElRef()?.nativeElement, this.submenuElRef()?.nativeElement.parentElement);
@@ -263,8 +264,8 @@ class MenuItemComponent {
263
264
  }
264
265
  }
265
266
  }
266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
267
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: MenuItemComponent, isStandalone: true, selector: "[mng-menuitem]", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class.active-menuitem": "!root() && active()", "class.layout-root-menuitem": "root()" } }, providers: [PermissionService], viewQueries: [{ propertyName: "submenuElRef", first: true, predicate: ["submenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n [routerLink]=\"layout.isSlim() || layout.isSlimPlus() ? null : item().routerLink\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hrefExternalIcon !== null) {\n <i [ngClass]=\"item().hrefExternalIcon ?? 'pi pi-fw pi-external-link'\" class=\"ml-auto\"></i>\n }\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation()\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
267
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
268
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: MenuItemComponent, isStandalone: true, selector: "[mng-menuitem]", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class.active-menuitem": "!root() && active()", "class.layout-root-menuitem": "root()" } }, providers: [PermissionService], viewQueries: [{ propertyName: "submenuElRef", first: true, predicate: ["submenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n [routerLink]=\"layout.isSlim() || layout.isSlimPlus() ? null : item().routerLink\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\">\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hrefExternalIcon !== null) {\n <i [ngClass]=\"item().hrefExternalIcon ?? 'pi pi-fw pi-external-link'\" class=\"ml-auto\"></i>\n }\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation()\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
268
269
  trigger('children', [
269
270
  state('collapsed', style({
270
271
  height: '0'
@@ -282,7 +283,7 @@ class MenuItemComponent {
282
283
  ])
283
284
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
284
285
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuItemComponent, decorators: [{
286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MenuItemComponent, decorators: [{
286
287
  type: Component,
287
288
  args: [{ selector: '[mng-menuitem]', imports: [NgClass, RouterModule, TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
288
289
  trigger('children', [
@@ -328,10 +329,10 @@ class MenuComponent {
328
329
  untracked(() => this.menuService.setItems(items));
329
330
  });
330
331
  }
331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: MenuComponent, isStandalone: true, selector: "mng-menu", ngImport: i0, template: "<ul class=\"layout-menu\">\n @for (item of menuService.menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
333
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: MenuComponent, isStandalone: true, selector: "mng-menu", ngImport: i0, template: "<ul class=\"layout-menu\">\n @for (item of menuService.menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
333
334
  }
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MenuComponent, decorators: [{
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MenuComponent, decorators: [{
335
336
  type: Component,
336
337
  args: [{ selector: 'mng-menu', imports: [MenuItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"layout-menu\">\n @for (item of menuService.menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n" }]
337
338
  }], ctorParameters: () => [] });
@@ -341,7 +342,7 @@ class SidebarComponent {
341
342
  this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
342
343
  this.layout = inject(LayoutService);
343
344
  this.el = inject(ElementRef);
344
- this.menuComponent = signal(this.config?.components?.menu === false ? undefined : (this.config?.components?.menu ?? MenuComponent));
345
+ this.menuComponent = signal(this.config?.components?.menu === false ? undefined : (this.config?.components?.menu ?? MenuComponent), ...(ngDevMode ? [{ debugName: "menuComponent" }] : []));
345
346
  this.timeout = null;
346
347
  }
347
348
  onMouseEnter() {
@@ -372,14 +373,14 @@ class SidebarComponent {
372
373
  anchored: !state.anchored
373
374
  }));
374
375
  }
375
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: SidebarComponent, isStandalone: true, selector: "mng-sidebar", host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)" }, classAttribute: "layout-sidebar" }, ngImport: i0, template: "<div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small\">\n @if (layout.appLogo()) {\n <img class=\"!inline-block\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"!inline-block\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"ml-6 !inline-block\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor z-20\" type=\"button\" (click)=\"anchor()\"></button>\n</div>\n\n@if (menuComponent()) {\n <div class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: SidebarComponent, isStandalone: true, selector: "mng-sidebar", host: { listeners: { "mouseenter": "onMouseEnter($event)", "mouseleave": "onMouseLeave($event)" }, classAttribute: "layout-sidebar" }, ngImport: i0, template: "<div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small\">\n @if (layout.appLogo()) {\n <img class=\"inline-block!\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"inline-block!\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"ml-6 inline-block!\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor z-20\" type=\"button\" (click)=\"anchor()\"></button>\n</div>\n\n@if (menuComponent()) {\n <div class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n}\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
377
378
  }
378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SidebarComponent, decorators: [{
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: SidebarComponent, decorators: [{
379
380
  type: Component,
380
381
  args: [{ selector: 'mng-sidebar', imports: [RouterModule, ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
381
382
  class: 'layout-sidebar'
382
- }, template: "<div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small\">\n @if (layout.appLogo()) {\n <img class=\"!inline-block\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"!inline-block\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"ml-6 !inline-block\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor z-20\" type=\"button\" (click)=\"anchor()\"></button>\n</div>\n\n@if (menuComponent()) {\n <div class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n}\n" }]
383
+ }, template: "<div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small\">\n @if (layout.appLogo()) {\n <img class=\"inline-block!\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"inline-block!\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"ml-6 inline-block!\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor z-20\" type=\"button\" (click)=\"anchor()\"></button>\n</div>\n\n@if (menuComponent()) {\n <div class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n}\n" }]
383
384
  }], propDecorators: { onMouseEnter: [{
384
385
  type: HostListener,
385
386
  args: ['mouseenter', ['$event']]
@@ -406,7 +407,7 @@ class SettingsComponent {
406
407
  constructor() {
407
408
  this.dynamicDialogConfig = inject(DynamicDialogConfig);
408
409
  this.dynamicDialogRef = inject(DynamicDialogRef);
409
- this.colorSchemeOptions = signal(defaultColorSchemeOpts);
410
+ this.colorSchemeOptions = signal(defaultColorSchemeOpts, ...(ngDevMode ? [{ debugName: "colorSchemeOptions" }] : []));
410
411
  this.injector = this.dynamicDialogConfig.data.injector;
411
412
  this.translate = this.injector.get(TranslateService);
412
413
  this.commons = this.injector.get(CommonsService);
@@ -449,10 +450,10 @@ class SettingsComponent {
449
450
  closeDialog() {
450
451
  this.dynamicDialogRef.close();
451
452
  }
452
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
453
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: SettingsComponent, isStandalone: true, selector: "mng-settings", ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"grow mng-action-editor-form-container\">\n @if (commons.appLocales().length > 1 || commons.appDataLocales().length > 1) {\n <h5>{{ 'mngSettings.locales' | translate }}</h5>\n <div class=\"flex\">\n @if (commons.appLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-select>\n </div>\n }\n @if (commons.appDataLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-database\"></i>\n <p-select [ngModel]=\"commons.appDataLocale()\" [options]=\"commons.appDataLocales()\" (onChange)=\"switchDataLocale($event.value)\"></p-select>\n </div>\n }\n </div>\n }\n\n <h5 class=\"mt-2\">{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"flex\">\n <p-selectButton\n [options]=\"colorSchemeOptions()\"\n [ngModel]=\"layout.colorSchemeSetting()\"\n (ngModelChange)=\"onColorSchemeChange($event)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n allowEmpty=\"false\" />\n </div>\n\n @if (menuModes.length > 1) {\n <h5 class=\"mt-2\">{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"grid grid-cols-12\">\n @for (mode of menuModes; track mode) {\n <div class=\"mb-2 col-span-6 md:col-span-4\">\n <p-radioButton name=\"category\" [value]=\"mode\" [ngModel]=\"layout.menuMode()\" (ngModelChange)=\"onMenuModeChange(mode)\" />\n <label [for]=\"mode\" class=\"ml-2\">\n {{ 'mngSettings.menuMode.' + mode | translate }}\n </label>\n </div>\n }\n </div>\n }\n\n <div class=\"flex flex-row justify-between mng-action-editor-footer-container\">\n <div></div>\n <div>\n <p-button (onClick)=\"closeDialog()\" [label]=\"'general.close' | translate\" icon=\"pi pi-times\" styleClass=\"p-button-primary p-button-text\" />\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "formControlName", "name", "disabled", "variant", "size", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "autofocus", "binary"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: SelectButton, selector: "p-selectButton, p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "style", "styleClass", "ariaLabelledBy", "size", "disabled", "dataKey", "autofocus"], outputs: ["onOptionClick", "onChange"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: SettingsComponent, isStandalone: true, selector: "mng-settings", ngImport: i0, template: "<div class=\"h-full flex flex-col\">\n <div class=\"grow mng-action-editor-form-container\">\n @if (commons.appLocales().length > 1 || commons.appDataLocales().length > 1) {\n <h5>{{ 'mngSettings.locales' | translate }}</h5>\n <div class=\"flex\">\n @if (commons.appLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-select>\n </div>\n }\n @if (commons.appDataLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-database\"></i>\n <p-select [ngModel]=\"commons.appDataLocale()\" [options]=\"commons.appDataLocales()\" (onChange)=\"switchDataLocale($event.value)\"></p-select>\n </div>\n }\n </div>\n }\n\n <h5 class=\"mt-2\">{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"flex\">\n <p-selectButton\n [options]=\"colorSchemeOptions()\"\n [ngModel]=\"layout.colorSchemeSetting()\"\n (ngModelChange)=\"onColorSchemeChange($event)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n allowEmpty=\"false\" />\n </div>\n\n @if (menuModes.length > 1) {\n <h5 class=\"mt-2\">{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"grid grid-cols-12\">\n @for (mode of menuModes; track mode) {\n <div class=\"mb-2 col-span-6 md:col-span-4\">\n <p-radioButton name=\"category\" [value]=\"mode\" [ngModel]=\"layout.menuMode()\" (ngModelChange)=\"onMenuModeChange(mode)\" />\n <label [for]=\"mode\" class=\"ml-2\">\n {{ 'mngSettings.menuMode.' + mode | translate }}\n </label>\n </div>\n }\n </div>\n }\n\n <div class=\"flex flex-row justify-between mng-action-editor-footer-container\">\n <div></div>\n <div>\n <p-button (onClick)=\"closeDialog()\" [label]=\"'general.close' | translate\" icon=\"pi pi-times\" styleClass=\"p-button-primary p-button-text\" />\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "styleClass", "autofocus", "binary", "variant", "size"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: SelectButton, selector: "p-selectButton, p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "styleClass", "ariaLabelledBy", "dataKey", "autofocus", "size", "fluid"], outputs: ["onOptionClick", "onChange"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
454
455
  }
455
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: SettingsComponent, decorators: [{
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: SettingsComponent, decorators: [{
456
457
  type: Component,
457
458
  args: [{ selector: 'mng-settings', imports: [TranslatePipe, RadioButton, FormsModule, Button, SelectButton, Select], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"h-full flex flex-col\">\n <div class=\"grow mng-action-editor-form-container\">\n @if (commons.appLocales().length > 1 || commons.appDataLocales().length > 1) {\n <h5>{{ 'mngSettings.locales' | translate }}</h5>\n <div class=\"flex\">\n @if (commons.appLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-select>\n </div>\n }\n @if (commons.appDataLocales().length > 1) {\n <div class=\"mb-2 pr-6\">\n <i class=\"pi pi-fw pi-database\"></i>\n <p-select [ngModel]=\"commons.appDataLocale()\" [options]=\"commons.appDataLocales()\" (onChange)=\"switchDataLocale($event.value)\"></p-select>\n </div>\n }\n </div>\n }\n\n <h5 class=\"mt-2\">{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"flex\">\n <p-selectButton\n [options]=\"colorSchemeOptions()\"\n [ngModel]=\"layout.colorSchemeSetting()\"\n (ngModelChange)=\"onColorSchemeChange($event)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n allowEmpty=\"false\" />\n </div>\n\n @if (menuModes.length > 1) {\n <h5 class=\"mt-2\">{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"grid grid-cols-12\">\n @for (mode of menuModes; track mode) {\n <div class=\"mb-2 col-span-6 md:col-span-4\">\n <p-radioButton name=\"category\" [value]=\"mode\" [ngModel]=\"layout.menuMode()\" (ngModelChange)=\"onMenuModeChange(mode)\" />\n <label [for]=\"mode\" class=\"ml-2\">\n {{ 'mngSettings.menuMode.' + mode | translate }}\n </label>\n </div>\n }\n </div>\n }\n\n <div class=\"flex flex-row justify-between mng-action-editor-footer-container\">\n <div></div>\n <div>\n <p-button (onClick)=\"closeDialog()\" [label]=\"'general.close' | translate\" icon=\"pi pi-times\" styleClass=\"p-button-primary p-button-text\" />\n </div>\n </div>\n </div>\n</div>\n" }]
458
459
  }], ctorParameters: () => [] });
@@ -464,9 +465,9 @@ class TopbarUserComponent {
464
465
  this.commons = inject(CommonsService);
465
466
  this.hrefJsVoid = inject(DomSanitizer).bypassSecurityTrustUrl('javascript:void(0)');
466
467
  this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
467
- this.user = computed(() => this.commons.user());
468
- this.userRoles = computed(() => this.commons.userRoles());
469
- this.settingsDisabled = signal(this.config?.components?.settings === false);
468
+ this.user = computed(() => this.commons.user(), ...(ngDevMode ? [{ debugName: "user" }] : []));
469
+ this.userRoles = computed(() => this.commons.userRoles(), ...(ngDevMode ? [{ debugName: "userRoles" }] : []));
470
+ this.settingsDisabled = signal(this.config?.components?.settings === false, ...(ngDevMode ? [{ debugName: "settingsDisabled" }] : []));
470
471
  }
471
472
  logout(user, event) {
472
473
  if (typeof user?.logout === 'function') {
@@ -487,12 +488,12 @@ class TopbarUserComponent {
487
488
  }
488
489
  });
489
490
  }
490
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TopbarUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
491
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: TopbarUserComponent, isStandalone: true, selector: "mng-topbar-user-component", ngImport: i0, template: "<a\n [hideOnOutsideClick]=\"true\"\n class=\"cursor-pointer\"\n pStyleClass=\"@next\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-2xl\"></i>\n <span class=\"\">&nbsp; {{ user()?.displayName ?? user()?.username }}</span>\n</a>\n<ul class=\"topbar-menu active-topbar-menu !p-6 w-60 z-50 !hidden rounded\">\n <li role=\"menuitem\" class=\"!m-0 !mb-4\">\n <a\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-base mr-2\"></i>\n <div>\n <strong>{{ user()?.displayName ?? user()?.username }}</strong>\n @if (userRoles().length > 0) {\n <small>\n <br />\n {{ userRoles() }}\n </small>\n }\n </div>\n </a>\n </li>\n @if (!settingsDisabled()) {\n <li role=\"menuitem\" class=\"!m-0\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\" class=\"!m-0\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
491
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TopbarUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
492
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: TopbarUserComponent, isStandalone: true, selector: "mng-topbar-user-component", ngImport: i0, template: "<a\n [hideOnOutsideClick]=\"true\"\n class=\"cursor-pointer\"\n pStyleClass=\"@next\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-2xl\"></i>\n <span>&nbsp; {{ user()?.displayName ?? user()?.username }}</span>\n</a>\n<ul class=\"topbar-menu active-topbar-menu p-6! w-60 z-50 hidden! rounded\">\n <li role=\"menuitem\" class=\"m-0! mb-4!\">\n <a\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-base mr-2\"></i>\n <div>\n <strong>{{ user()?.displayName ?? user()?.username }}</strong>\n @if (userRoles().length > 0) {\n <small>\n <br />\n {{ userRoles() }}\n </small>\n }\n </div>\n </a>\n </li>\n @if (!settingsDisabled()) {\n <li role=\"menuitem\" class=\"m-0!\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\" class=\"m-0!\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
492
493
  }
493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TopbarUserComponent, decorators: [{
494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TopbarUserComponent, decorators: [{
494
495
  type: Component,
495
- args: [{ selector: 'mng-topbar-user-component', imports: [TranslatePipe, StyleClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n [hideOnOutsideClick]=\"true\"\n class=\"cursor-pointer\"\n pStyleClass=\"@next\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-2xl\"></i>\n <span class=\"\">&nbsp; {{ user()?.displayName ?? user()?.username }}</span>\n</a>\n<ul class=\"topbar-menu active-topbar-menu !p-6 w-60 z-50 !hidden rounded\">\n <li role=\"menuitem\" class=\"!m-0 !mb-4\">\n <a\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-base mr-2\"></i>\n <div>\n <strong>{{ user()?.displayName ?? user()?.username }}</strong>\n @if (userRoles().length > 0) {\n <small>\n <br />\n {{ userRoles() }}\n </small>\n }\n </div>\n </a>\n </li>\n @if (!settingsDisabled()) {\n <li role=\"menuitem\" class=\"!m-0\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\" class=\"!m-0\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"!hidden\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"!hidden\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n" }]
496
+ args: [{ selector: 'mng-topbar-user-component', imports: [TranslatePipe, StyleClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<a\n [hideOnOutsideClick]=\"true\"\n class=\"cursor-pointer\"\n pStyleClass=\"@next\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-2xl\"></i>\n <span>&nbsp; {{ user()?.displayName ?? user()?.username }}</span>\n</a>\n<ul class=\"topbar-menu active-topbar-menu p-6! w-60 z-50 hidden! rounded\">\n <li role=\"menuitem\" class=\"m-0! mb-4!\">\n <a\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-user text-base mr-2\"></i>\n <div>\n <strong>{{ user()?.displayName ?? user()?.username }}</strong>\n @if (userRoles().length > 0) {\n <small>\n <br />\n {{ userRoles() }}\n </small>\n }\n </div>\n </a>\n </li>\n @if (!settingsDisabled()) {\n <li role=\"menuitem\" class=\"m-0!\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\" class=\"m-0!\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex items-center hover:text-primary-500 duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"hidden!\"\n enterActiveClass=\"animate-scalein\"\n leaveToClass=\"hidden!\"\n leaveActiveClass=\"animate-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n" }]
496
497
  }] });
497
498
 
498
499
  class TopbarComponent {
@@ -501,8 +502,8 @@ class TopbarComponent {
501
502
  this.commons = inject(CommonsService);
502
503
  this.layout = inject(LayoutService);
503
504
  this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
504
- this.topbarUserComponent = signal(this.config?.components?.topbarUser === false ? undefined : (this.config?.components?.topbarUser ?? TopbarUserComponent));
505
- this.breadcrumbComponent = signal(this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent));
505
+ this.topbarUserComponent = signal(this.config?.components?.topbarUser === false ? undefined : (this.config?.components?.topbarUser ?? TopbarUserComponent), ...(ngDevMode ? [{ debugName: "topbarUserComponent" }] : []));
506
+ this.breadcrumbComponent = signal(this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent), ...(ngDevMode ? [{ debugName: "breadcrumbComponent" }] : []));
506
507
  }
507
508
  onMenuButtonClick() {
508
509
  this.layout.onMenuToggle();
@@ -510,14 +511,14 @@ class TopbarComponent {
510
511
  switchLocale(language) {
511
512
  this.commons.setAppLocale(language);
512
513
  }
513
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TopbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
514
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: TopbarComponent, isStandalone: true, selector: "mng-topbar", host: { classAttribute: "layout-topbar" }, ngImport: i0, template: "<div class=\"topbar-start\">\n <button #menubutton pButton type=\"button\" class=\"topbar-menubutton p-trigger\" (click)=\"onMenuButtonClick()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n\n @if (breadcrumbComponent()) {\n <div class=\"topbar-breadcrumb\">\n <div [mngComponent]=\"breadcrumbComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n<div class=\"layout-topbar-menu-section\">\n <mng-sidebar></mng-sidebar>\n</div>\n<div class=\"topbar-end\">\n <ul class=\"topbar-menu\">\n @if (commons.appLocales().length > 1) {\n <li class=\"profile-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-select>\n </li>\n }\n @if (topbarUserComponent()) {\n <li #userMenuItem class=\"profile-item topbar-item mr-8\" [mngComponent]=\"topbarUserComponent()\" [attachToHost]=\"true\"></li>\n }\n </ul>\n</div>\n", dependencies: [{ kind: "component", type: SidebarComponent, selector: "mng-sidebar" }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
514
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TopbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
515
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: TopbarComponent, isStandalone: true, selector: "mng-topbar", host: { classAttribute: "layout-topbar" }, ngImport: i0, template: "<div class=\"topbar-start\">\n <button #menubutton pButton type=\"button\" class=\"topbar-menubutton p-trigger\" (click)=\"onMenuButtonClick()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n\n @if (breadcrumbComponent()) {\n <div class=\"topbar-breadcrumb\">\n <div [mngComponent]=\"breadcrumbComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n<div class=\"layout-topbar-menu-section\">\n <mng-sidebar></mng-sidebar>\n</div>\n<div class=\"topbar-end\">\n <ul class=\"topbar-menu\">\n @if (commons.appLocales().length > 1) {\n <li class=\"topbar-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\" appendTo=\"body\" />\n </li>\n }\n @if (topbarUserComponent()) {\n <li #userMenuItem class=\"profile-item topbar-item mr-8\" [mngComponent]=\"topbarUserComponent()\" [attachToHost]=\"true\"></li>\n }\n </ul>\n</div>\n", dependencies: [{ kind: "component", type: SidebarComponent, selector: "mng-sidebar" }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
515
516
  }
516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: TopbarComponent, decorators: [{
517
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TopbarComponent, decorators: [{
517
518
  type: Component,
518
519
  args: [{ selector: 'mng-topbar', imports: [SidebarComponent, StyleClassModule, ComponentDirective, FormsModule, Select, ButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
519
520
  class: 'layout-topbar'
520
- }, template: "<div class=\"topbar-start\">\n <button #menubutton pButton type=\"button\" class=\"topbar-menubutton p-trigger\" (click)=\"onMenuButtonClick()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n\n @if (breadcrumbComponent()) {\n <div class=\"topbar-breadcrumb\">\n <div [mngComponent]=\"breadcrumbComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n<div class=\"layout-topbar-menu-section\">\n <mng-sidebar></mng-sidebar>\n</div>\n<div class=\"topbar-end\">\n <ul class=\"topbar-menu\">\n @if (commons.appLocales().length > 1) {\n <li class=\"profile-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-select>\n </li>\n }\n @if (topbarUserComponent()) {\n <li #userMenuItem class=\"profile-item topbar-item mr-8\" [mngComponent]=\"topbarUserComponent()\" [attachToHost]=\"true\"></li>\n }\n </ul>\n</div>\n" }]
521
+ }, template: "<div class=\"topbar-start\">\n <button #menubutton pButton type=\"button\" class=\"topbar-menubutton p-trigger\" (click)=\"onMenuButtonClick()\">\n <i class=\"pi pi-bars\"></i>\n </button>\n\n @if (breadcrumbComponent()) {\n <div class=\"topbar-breadcrumb\">\n <div [mngComponent]=\"breadcrumbComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n<div class=\"layout-topbar-menu-section\">\n <mng-sidebar></mng-sidebar>\n</div>\n<div class=\"topbar-end\">\n <ul class=\"topbar-menu\">\n @if (commons.appLocales().length > 1) {\n <li class=\"topbar-item\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-select [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\" appendTo=\"body\" />\n </li>\n }\n @if (topbarUserComponent()) {\n <li #userMenuItem class=\"profile-item topbar-item mr-8\" [mngComponent]=\"topbarUserComponent()\" [attachToHost]=\"true\"></li>\n }\n </ul>\n</div>\n" }]
521
522
  }] });
522
523
 
523
524
  class MainLayoutComponent {
@@ -527,12 +528,12 @@ class MainLayoutComponent {
527
528
  this.layout = inject(LayoutService);
528
529
  this.menuService = inject(MenuService);
529
530
  this.renderer = inject(Renderer2);
530
- this.appTopbar = viewChild('topbarCmp');
531
- this.ripple = signal(this.config?.ripple ?? true);
532
- this.topbarComponent = signal(this.config?.components?.topbar === false ? undefined : (this.config?.components?.topbar ?? TopbarComponent));
533
- this.breadcrumbsComponent = signal(this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent));
534
- this.footerComponent = signal(this.config?.components?.footer === false ? undefined : (this.config?.components?.footer ?? FooterComponent));
535
- this.useNotificationWrapper = signal(!this.config?.disableNotificationWrapper);
531
+ this.appTopbar = viewChild('topbarCmp', ...(ngDevMode ? [{ debugName: "appTopbar" }] : []));
532
+ this.ripple = signal(this.config?.ripple ?? true, ...(ngDevMode ? [{ debugName: "ripple" }] : []));
533
+ this.topbarComponent = signal(this.config?.components?.topbar === false ? undefined : (this.config?.components?.topbar ?? TopbarComponent), ...(ngDevMode ? [{ debugName: "topbarComponent" }] : []));
534
+ this.breadcrumbsComponent = signal(this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent), ...(ngDevMode ? [{ debugName: "breadcrumbsComponent" }] : []));
535
+ this.footerComponent = signal(this.config?.components?.footer === false ? undefined : (this.config?.components?.footer ?? FooterComponent), ...(ngDevMode ? [{ debugName: "footerComponent" }] : []));
536
+ this.useNotificationWrapper = signal(!this.config?.disableNotificationWrapper, ...(ngDevMode ? [{ debugName: "useNotificationWrapper" }] : []));
536
537
  this.layout.overlayOpen$.pipe(takeUntilDestroyed()).subscribe(() => {
537
538
  if (!this.menuOutsideClickListener) {
538
539
  this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {
@@ -587,10 +588,10 @@ class MainLayoutComponent {
587
588
  this.menuOutsideClickListener();
588
589
  }
589
590
  }
590
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
591
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: MainLayoutComponent, isStandalone: true, selector: "mng-main-layout", viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true, isSignal: 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': layout.colorScheme() === 'light',\n 'layout-dark': layout.colorScheme() === 'dark',\n 'layout-overlay': layout.menuMode() === 'overlay',\n 'layout-static': layout.menuMode() === 'static',\n 'layout-reveal': layout.menuMode() === 'reveal',\n 'layout-drawer': layout.menuMode() === 'drawer',\n 'layout-slim': layout.menuMode() === 'slim',\n 'layout-slim-plus': layout.menuMode() === 'slim-plus',\n 'layout-static-inactive': layout.state().staticMenuDesktopInactive && layout.menuMode() === 'static',\n 'layout-overlay-active': layout.state().overlayMenuActive,\n 'layout-mobile-active': layout.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layout.state().sidebarActive,\n 'layout-sidebar-anchored': layout.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div [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", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
591
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: MainLayoutComponent, isStandalone: true, selector: "mng-main-layout", viewQueries: [{ propertyName: "appTopbar", first: true, predicate: ["topbarCmp"], descendants: true, isSignal: 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': layout.colorScheme() === 'light',\n 'layout-dark': layout.colorScheme() === 'dark',\n 'layout-overlay': layout.menuMode() === 'overlay',\n 'layout-static': layout.menuMode() === 'static',\n 'layout-reveal': layout.menuMode() === 'reveal',\n 'layout-drawer': layout.menuMode() === 'drawer',\n 'layout-slim': layout.menuMode() === 'slim',\n 'layout-slim-plus': layout.menuMode() === 'slim-plus',\n 'layout-static-inactive': layout.state().staticMenuDesktopInactive && layout.menuMode() === 'static',\n 'layout-overlay-active': layout.state().overlayMenuActive,\n 'layout-mobile-active': layout.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layout.state().sidebarActive,\n 'layout-sidebar-anchored': layout.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div [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", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "component", type: NotificationWrapperComponent, selector: "mng-notification-wrapper" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
592
593
  }
593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: MainLayoutComponent, decorators: [{
594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: MainLayoutComponent, decorators: [{
594
595
  type: Component,
595
596
  args: [{ selector: 'mng-main-layout', imports: [NgClass, RouterModule, ComponentDirective, 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-container\"\n [ngClass]=\"{\n 'layout-light': layout.colorScheme() === 'light',\n 'layout-dark': layout.colorScheme() === 'dark',\n 'layout-overlay': layout.menuMode() === 'overlay',\n 'layout-static': layout.menuMode() === 'static',\n 'layout-reveal': layout.menuMode() === 'reveal',\n 'layout-drawer': layout.menuMode() === 'drawer',\n 'layout-slim': layout.menuMode() === 'slim',\n 'layout-slim-plus': layout.menuMode() === 'slim-plus',\n 'layout-static-inactive': layout.state().staticMenuDesktopInactive && layout.menuMode() === 'static',\n 'layout-overlay-active': layout.state().overlayMenuActive,\n 'layout-mobile-active': layout.state().staticMenuMobileActive,\n 'p-ripple-disabled': !ripple(),\n 'layout-sidebar-active': layout.state().sidebarActive,\n 'layout-sidebar-anchored': layout.state().anchored\n }\">\n <div class=\"layout-content-wrapper\">\n @if (topbarComponent()) {\n <div [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" }]
596
597
  }], ctorParameters: () => [] });