@mediusinc/mng-commons-layout 6.0.0-rc.4 → 6.0.0-rc.6

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 (195) hide show
  1. package/components/pages/error/index.d.ts +1 -3
  2. package/components/pages/not-found/index.d.ts +1 -3
  3. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs +6 -7
  4. package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs.map +1 -1
  5. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs +3 -3
  6. package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs.map +1 -1
  7. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs +6 -7
  8. package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs.map +1 -1
  9. package/fesm2022/mediusinc-mng-commons-layout-components.mjs +62 -58
  10. package/fesm2022/mediusinc-mng-commons-layout-components.mjs.map +1 -1
  11. package/fesm2022/mediusinc-mng-commons-layout.mjs +21 -14
  12. package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
  13. package/package.json +11 -21
  14. package/scss/commons.scss +1 -0
  15. package/scss/layout/_breadcrumb.scss +14 -11
  16. package/scss/layout/_config.scss +75 -7
  17. package/scss/layout/_content.scss +1 -1
  18. package/scss/layout/_main.scss +7 -9
  19. package/scss/layout/_profile.scss +1 -1
  20. package/scss/layout/_responsive.scss +4 -2
  21. package/scss/layout/_sass_variables.scss +1 -0
  22. package/scss/layout/_sidebar_drawer.scss +6 -5
  23. package/scss/layout/_sidebar_horizontal.scss +15 -11
  24. package/scss/layout/_sidebar_reveal.scss +16 -10
  25. package/scss/layout/_sidebar_slim.scss +5 -3
  26. package/scss/layout/_sidebar_slim_plus.scss +5 -2
  27. package/scss/layout/_sidebar_vertical.scss +13 -7
  28. package/scss/layout/_topbar.scss +75 -45
  29. package/scss/layout/_utils.scss +1 -5
  30. package/scss/layout/layout.scss +29 -22
  31. package/scss/layout/mng/{_mng_layout_menu.scss → layout/_mng_layout_menu.scss} +0 -4
  32. package/scss/layout/mng/{_mng_layout_topbar.scss → layout/_mng_layout_topbar.scss} +2 -2
  33. package/scss/layout/mng/theme/_mng_theme_button.scss +63 -0
  34. package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_dialog.scss +44 -46
  35. package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_toast.scss +4 -4
  36. package/scss/layout/mng/theme/_mng_theme_toggleswitch.scss +3 -0
  37. package/scss/layout/mng/variables/_mng-variables-common.scss +22 -0
  38. package/scss/layout/variables/_common.scss +15 -0
  39. package/scss/layout/variables/_dark.scss +10 -0
  40. package/scss/layout/variables/_light.scss +10 -0
  41. package/version-info.json +3 -3
  42. package/esm2022/components/index.mjs +0 -12
  43. package/esm2022/components/lib/components/breadcrumb.component.mjs +0 -29
  44. package/esm2022/components/lib/components/footer.component.mjs +0 -23
  45. package/esm2022/components/lib/components/main-layout.component.mjs +0 -86
  46. package/esm2022/components/lib/components/menu-item.component.mjs +0 -169
  47. package/esm2022/components/lib/components/menu.component.mjs +0 -36
  48. package/esm2022/components/lib/components/settings.component.mjs +0 -87
  49. package/esm2022/components/lib/components/sidebar.component.mjs +0 -51
  50. package/esm2022/components/lib/components/topbar-user.component.mjs +0 -51
  51. package/esm2022/components/lib/components/topbar.component.mjs +0 -37
  52. package/esm2022/components/lib/components/version.component.mjs +0 -95
  53. package/esm2022/components/mediusinc-mng-commons-layout-components.mjs +0 -5
  54. package/esm2022/components/pages/error/index.mjs +0 -4
  55. package/esm2022/components/pages/error/lib/error.page.component.mjs +0 -20
  56. package/esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs +0 -5
  57. package/esm2022/components/pages/main/index.mjs +0 -3
  58. package/esm2022/components/pages/main/lazy/index.mjs +0 -2
  59. package/esm2022/components/pages/main/lazy/lib/route-builder.mjs +0 -11
  60. package/esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs +0 -5
  61. package/esm2022/components/pages/main/lib/main-layout.component.mjs +0 -84
  62. package/esm2022/components/pages/main/lib/route-builder.mjs +0 -12
  63. package/esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs +0 -5
  64. package/esm2022/components/pages/not-found/index.mjs +0 -4
  65. package/esm2022/components/pages/not-found/lib/not-found.page.component.mjs +0 -20
  66. package/esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs +0 -5
  67. package/esm2022/index.mjs +0 -13
  68. package/esm2022/lib/helpers/menu-items.mjs +0 -29
  69. package/esm2022/lib/models/layout-state.model.mjs +0 -2
  70. package/esm2022/lib/models/menu.model.mjs +0 -2
  71. package/esm2022/lib/provide.mjs +0 -25
  72. package/esm2022/lib/services/layout-feature-config.token.mjs +0 -3
  73. package/esm2022/lib/services/layout.service.mjs +0 -167
  74. package/esm2022/lib/services/menu.service.mjs +0 -121
  75. package/esm2022/lib/services/version.service.mjs +0 -45
  76. package/esm2022/mediusinc-mng-commons-layout.mjs +0 -5
  77. package/scss/commons-dark.scss +0 -9
  78. package/scss/commons-light.scss +0 -9
  79. package/scss/layout/_animation.scss +0 -53
  80. package/scss/layout/_fonts.scss +0 -40
  81. package/scss/layout/_layout_dark.scss +0 -12
  82. package/scss/layout/_layout_light.scss +0 -12
  83. package/scss/layout/_typography.scss +0 -67
  84. package/scss/layout/mng/_mng_layout_styles.scss +0 -4
  85. package/scss/layout/preloading.scss +0 -84
  86. package/scss/theme/extensions/_fullcalendar.scss +0 -328
  87. package/scss/theme/theme-base/_colors.scss +0 -17
  88. package/scss/theme/theme-base/_common.scss +0 -76
  89. package/scss/theme/theme-base/_components.scss +0 -110
  90. package/scss/theme/theme-base/_mixins.scss +0 -337
  91. package/scss/theme/theme-base/components/button/_button.scss +0 -576
  92. package/scss/theme/theme-base/components/button/_speeddial.scss +0 -96
  93. package/scss/theme/theme-base/components/button/_splitbutton.scss +0 -348
  94. package/scss/theme/theme-base/components/data/_carousel.scss +0 -37
  95. package/scss/theme/theme-base/components/data/_datatable.scss +0 -338
  96. package/scss/theme/theme-base/components/data/_dataview.scss +0 -46
  97. package/scss/theme/theme-base/components/data/_filter.scss +0 -137
  98. package/scss/theme/theme-base/components/data/_orderlist.scss +0 -114
  99. package/scss/theme/theme-base/components/data/_organizationchart.scss +0 -50
  100. package/scss/theme/theme-base/components/data/_paginator.scss +0 -92
  101. package/scss/theme/theme-base/components/data/_picklist.scss +0 -114
  102. package/scss/theme/theme-base/components/data/_timeline.scss +0 -35
  103. package/scss/theme/theme-base/components/data/_tree.scss +0 -150
  104. package/scss/theme/theme-base/components/data/_treetable.scss +0 -255
  105. package/scss/theme/theme-base/components/data/_virtualscroller.scss +0 -28
  106. package/scss/theme/theme-base/components/file/_fileupload.scss +0 -64
  107. package/scss/theme/theme-base/components/input/_autocomplete.scss +0 -136
  108. package/scss/theme/theme-base/components/input/_calendar.scss +0 -267
  109. package/scss/theme/theme-base/components/input/_cascadeselect.scss +0 -135
  110. package/scss/theme/theme-base/components/input/_checkbox.scss +0 -94
  111. package/scss/theme/theme-base/components/input/_chips.scss +0 -65
  112. package/scss/theme/theme-base/components/input/_colorpicker.scss +0 -19
  113. package/scss/theme/theme-base/components/input/_dropdown.scss +0 -151
  114. package/scss/theme/theme-base/components/input/_editor.scss +0 -122
  115. package/scss/theme/theme-base/components/input/_inputgroup.scss +0 -74
  116. package/scss/theme/theme-base/components/input/_inputmask.scss +0 -16
  117. package/scss/theme/theme-base/components/input/_inputnumber.scss +0 -28
  118. package/scss/theme/theme-base/components/input/_inputswitch.scss +0 -60
  119. package/scss/theme/theme-base/components/input/_inputtext.scss +0 -100
  120. package/scss/theme/theme-base/components/input/_listbox.scss +0 -97
  121. package/scss/theme/theme-base/components/input/_multiselect.scss +0 -177
  122. package/scss/theme/theme-base/components/input/_password.scss +0 -52
  123. package/scss/theme/theme-base/components/input/_radiobutton.scss +0 -78
  124. package/scss/theme/theme-base/components/input/_rating.scss +0 -60
  125. package/scss/theme/theme-base/components/input/_selectbutton.scss +0 -50
  126. package/scss/theme/theme-base/components/input/_slider.scss +0 -75
  127. package/scss/theme/theme-base/components/input/_togglebutton.scss +0 -48
  128. package/scss/theme/theme-base/components/input/_treeselect.scss +0 -139
  129. package/scss/theme/theme-base/components/menu/_breadcrumb.scss +0 -42
  130. package/scss/theme/theme-base/components/menu/_contextmenu.scss +0 -39
  131. package/scss/theme/theme-base/components/menu/_dock.scss +0 -95
  132. package/scss/theme/theme-base/components/menu/_megamenu.scss +0 -55
  133. package/scss/theme/theme-base/components/menu/_menu.scss +0 -37
  134. package/scss/theme/theme-base/components/menu/_menubar.scss +0 -140
  135. package/scss/theme/theme-base/components/menu/_panelmenu.scss +0 -153
  136. package/scss/theme/theme-base/components/menu/_slidemenu.scss +0 -59
  137. package/scss/theme/theme-base/components/menu/_steps.scss +0 -56
  138. package/scss/theme/theme-base/components/menu/_tabmenu.scss +0 -73
  139. package/scss/theme/theme-base/components/menu/_tieredmenu.scss +0 -43
  140. package/scss/theme/theme-base/components/messages/_inlinemessage.scss +0 -69
  141. package/scss/theme/theme-base/components/messages/_message.scss +0 -107
  142. package/scss/theme/theme-base/components/messages/_toast.scss +0 -99
  143. package/scss/theme/theme-base/components/misc/_avatar.scss +0 -30
  144. package/scss/theme/theme-base/components/misc/_badge.scss +0 -48
  145. package/scss/theme/theme-base/components/misc/_blockui.scss +0 -0
  146. package/scss/theme/theme-base/components/misc/_chip.scss +0 -42
  147. package/scss/theme/theme-base/components/misc/_inplace.scss +0 -16
  148. package/scss/theme/theme-base/components/misc/_progressbar.scss +0 -17
  149. package/scss/theme/theme-base/components/misc/_scrolltop.scss +0 -25
  150. package/scss/theme/theme-base/components/misc/_skeleton.scss +0 -8
  151. package/scss/theme/theme-base/components/misc/_tag.scss +0 -40
  152. package/scss/theme/theme-base/components/misc/_terminal.scss +0 -12
  153. package/scss/theme/theme-base/components/multimedia/_galleria.scss +0 -155
  154. package/scss/theme/theme-base/components/multimedia/_image.scss +0 -49
  155. package/scss/theme/theme-base/components/overlay/_confirmpopup.scss +0 -70
  156. package/scss/theme/theme-base/components/overlay/_dialog.scss +0 -69
  157. package/scss/theme/theme-base/components/overlay/_overlaypanel.scss +0 -62
  158. package/scss/theme/theme-base/components/overlay/_sidebar.scss +0 -27
  159. package/scss/theme/theme-base/components/overlay/_tooltip.scss +0 -33
  160. package/scss/theme/theme-base/components/panel/_accordion.scss +0 -119
  161. package/scss/theme/theme-base/components/panel/_card.scss +0 -30
  162. package/scss/theme/theme-base/components/panel/_divider.scss +0 -31
  163. package/scss/theme/theme-base/components/panel/_fieldset.scss +0 -47
  164. package/scss/theme/theme-base/components/panel/_panel.scss +0 -63
  165. package/scss/theme/theme-base/components/panel/_scrollpanel.scss +0 -6
  166. package/scss/theme/theme-base/components/panel/_splitter.scss +0 -19
  167. package/scss/theme/theme-base/components/panel/_tabview.scss +0 -82
  168. package/scss/theme/theme-base/components/panel/_toolbar.scss +0 -11
  169. package/scss/theme/theme-base/mng/_mng_mixins.scss +0 -69
  170. package/scss/theme/theme-base/mng/_mng_theme_autocomplete.scss +0 -34
  171. package/scss/theme/theme-base/mng/_mng_theme_button.scss +0 -68
  172. package/scss/theme/theme-base/mng/_mng_theme_datatable.scss +0 -157
  173. package/scss/theme/theme-base/mng/_mng_theme_datepicker.scss +0 -21
  174. package/scss/theme/theme-base/mng/_mng_theme_dropdown.scss +0 -32
  175. package/scss/theme/theme-base/mng/_mng_theme_fileupload.scss +0 -24
  176. package/scss/theme/theme-base/mng/_mng_theme_forms.scss +0 -66
  177. package/scss/theme/theme-base/mng/_mng_theme_image.scss +0 -27
  178. package/scss/theme/theme-base/mng/_mng_theme_input.scss +0 -42
  179. package/scss/theme/theme-base/mng/_mng_theme_menu.scss +0 -5
  180. package/scss/theme/theme-base/mng/_mng_theme_multiselect.scss +0 -20
  181. package/scss/theme/theme-base/mng/_mng_theme_styles.scss +0 -19
  182. package/scss/theme/theme-base/mng/_mng_theme_table.scss +0 -54
  183. package/scss/theme/theme-base/mng/_mng_theme_tableview.scss +0 -41
  184. package/scss/theme/theme-base/mng/_mng_theme_tabview.scss +0 -14
  185. package/scss/theme/theme-base/mng/_mng_theme_tag.scss +0 -11
  186. package/scss/theme/theme-base/mng/_mng_theme_toolbar.scss +0 -5
  187. package/scss/theme/theme-base/mng/_mng_variables.scss +0 -15
  188. package/scss/theme/theme-dark/_extensions.scss +0 -109
  189. package/scss/theme/theme-dark/_variables.scss +0 -941
  190. package/scss/theme/theme-dark/blue/theme.scss +0 -14
  191. package/scss/theme/theme-light/_extensions.scss +0 -109
  192. package/scss/theme/theme-light/_variables.scss +0 -937
  193. package/scss/theme/theme-light/blue/theme.scss +0 -14
  194. /package/scss/layout/mng/{_mng_layout_footer.scss → layout/_mng_layout_footer.scss} +0 -0
  195. /package/scss/layout/mng/{_mng_sidebar_vertical.scss → layout/_mng_sidebar_vertical.scss} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mediusinc-mng-commons-layout-components.mjs","sources":["../../components/src/lib/components/version.component.ts","../../components/src/lib/components/version.component.html","../../components/src/lib/components/footer.component.ts","../../components/src/lib/components/footer.component.html","../../components/src/lib/components/breadcrumb.component.ts","../../components/src/lib/components/breadcrumb.component.html","../../components/src/lib/components/menu-item.component.ts","../../components/src/lib/components/menu-item.component.html","../../components/src/lib/components/menu.component.ts","../../components/src/lib/components/menu.component.html","../../components/src/lib/components/sidebar.component.ts","../../components/src/lib/components/sidebar.component.html","../../components/src/lib/components/settings.component.ts","../../components/src/lib/components/settings.component.html","../../components/src/lib/components/topbar-user.component.ts","../../components/src/lib/components/topbar-user.component.html","../../components/src/lib/components/topbar.component.ts","../../components/src/lib/components/topbar.component.html","../../components/src/lib/components/main-layout.component.ts","../../components/src/lib/components/main-layout.component.html","../../components/src/index.ts","../../components/src/mediusinc-mng-commons-layout-components.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, DestroyRef, computed, inject, input, signal} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\n\nimport {catchError, of, switchMap, take} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {VersionService} from '@mediusinc/mng-commons-layout';\nimport {CommonsConfigurationService, JsonPathPipe, VersionConfig, VersionConfigType, VersionInfo} from '@mediusinc/mng-commons/core';\n\n@Component({\n standalone: true,\n selector: 'mng-version',\n templateUrl: './version.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent {\n private readonly versionService = inject(VersionService);\n private readonly configService = inject(CommonsConfigurationService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly jsonPathPipe = new JsonPathPipe();\n\n public readonly versionInput = input<VersionConfigType>(undefined, {alias: 'version'});\n\n public readonly isLoading = signal<boolean>(false);\n private readonly loadedVersion = signal<VersionInfo | string | undefined>(undefined);\n\n public versionAsArray = computed<Array<VersionConfig> | undefined>(() => {\n if (Array.isArray(this.versionInput())) {\n return this.versionInput() as Array<VersionConfig>;\n }\n return undefined;\n });\n\n private readonly versionInfo = computed(() => {\n if (this.versionAsArray() !== undefined) {\n return undefined; // Each version will be processed separately in child component\n }\n const initVersion = this.versionInput();\n if (typeof initVersion === 'string') {\n return initVersion;\n } else if (typeof initVersion !== 'undefined' && !Array.isArray(initVersion)) {\n const source = initVersion.source;\n switch (source) {\n case 'config':\n return this.configService.getConfigValue<string | VersionInfo>(initVersion.configKey);\n case 'httpResource':\n return this.loadedVersion();\n case 'info':\n return initVersion.info;\n default:\n return initVersion;\n }\n }\n return undefined;\n });\n\n private readonly versionAsString = computed(() => {\n const versionInfo = this.versionInfo();\n if (versionInfo == null) {\n return undefined;\n } else if (typeof versionInfo === 'string') {\n return versionInfo;\n } else {\n return versionInfo.raw;\n }\n });\n\n private readonly displayName = computed(() => (this.versionInput() as VersionConfig | undefined)?.displayName);\n\n public readonly displayText = computed(\n () => `${this.displayName() ?? ''}${this.displayName() && this.versionAsString() ? ': ' : ''}${!this.isLoading() ? (this.versionAsString() ?? '') : ''}`\n );\n\n constructor() {\n toObservable(this.versionInput)\n .pipe(\n catchError(() => of(undefined)),\n switchMap(version => {\n if (typeof version !== 'undefined' && !Array.isArray(version)) {\n const config = version as VersionConfig;\n if (config.source === 'httpResource') {\n this.isLoading.set(true);\n const infoJsonPath = config.infoJsonPath;\n return this.versionService.loadVersion(config.urlPath, config.urlBaseConfigKey).pipe(\n take(1),\n map(res => ({res, infoJsonPath}))\n );\n }\n }\n return of({res: undefined, infoJsonPath: undefined});\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe({\n next: ({res, infoJsonPath}) => {\n if (typeof res !== 'undefined') {\n this.loadedVersion.set(this.jsonPathPipe.transform(res, infoJsonPath ?? '$'));\n } else {\n this.loadedVersion.set(undefined);\n }\n this.isLoading.set(false);\n },\n error: () => {\n this.loadedVersion.set('');\n this.isLoading.set(false);\n }\n });\n }\n}\n","@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","import {ChangeDetectionStrategy, Component, Type, inject, signal} from '@angular/core';\n\nimport {TranslateModule} from '@ngx-translate/core';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {VersionComponent} from './version.component';\n\n@Component({\n standalone: true,\n selector: 'mng-footer',\n templateUrl: 'footer.component.html',\n imports: [TranslateModule, ComponentDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n private config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n public commons = inject(CommonsService);\n\n public currentYear = signal(new Date().getFullYear());\n public versionComponent = signal<Type<any> | undefined>(this.config?.components?.version === false ? undefined : (this.config?.components?.version ?? VersionComponent));\n}\n","<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-column\">\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","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MenuItem} from 'primeng/api';\n\nimport {CommonsMenuItem, CommonsService} from '@mediusinc/mng-commons/core';\n\n@Component({\n standalone: true,\n selector: 'mng-breadcrumb',\n imports: [TranslateModule],\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbComponent {\n private commons = inject(CommonsService);\n\n public mappedBreadcrumbs = computed(() => {\n const items: CommonsMenuItem[] = this.commons.breadcrumbs();\n return items.map(el => this.mapMenuItem(el));\n });\n\n private mapMenuItem(item: CommonsMenuItem): MenuItem {\n return {\n ...item,\n url: item.href,\n badgeStyleClass: item.badgeClassName,\n styleClass: item.className\n };\n }\n}\n","<div class=\"layout-breadcrumb flex align-items-center relative h-3rem\">\n <nav>\n <ol class=\"relative z-2\">\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</div>\n","import {AnimationEvent, animate, state, style, transition, trigger} from '@angular/animations';\nimport {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ElementRef, computed, effect, inject, input, output, viewChild} from '@angular/core';\nimport {toObservable as ngToObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {RouterModule} from '@angular/router';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {RippleModule} from 'primeng/ripple';\nimport {TooltipModule} from 'primeng/tooltip';\nimport {distinctUntilChanged, of, switchMap} from 'rxjs';\n\nimport {LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {InternalCommonsMenuItem, PermissionService, toObservable} from '@mediusinc/mng-commons/core';\n\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[mng-menuitem]',\n templateUrl: 'menu-item.component.html',\n imports: [NgClass, RippleModule, TooltipModule, RouterModule, TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('children', [\n state(\n 'collapsed',\n style({\n height: '0'\n })\n ),\n state(\n 'expanded',\n style({\n height: '*'\n })\n ),\n state(\n 'hidden',\n style({\n display: 'none'\n })\n ),\n state(\n 'visible',\n style({\n display: 'block'\n })\n ),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ],\n host: {\n '[class.active-menuitem]': '!root() && active()',\n '[class.layout-root-menuitem]': 'root()'\n },\n providers: [PermissionService]\n})\nexport class MenuItemComponent {\n private readonly menuService = inject(MenuService);\n private readonly permissionService = inject(PermissionService);\n public readonly layout = inject(LayoutService);\n\n public item = input.required<InternalCommonsMenuItem>();\n public root = input(false);\n public visibleChange = output<boolean>();\n\n private submenuElRef = viewChild<ElementRef>('submenu');\n\n public isPermitted = toSignal(ngToObservable(this.item).pipe(switchMap(i => (i.permissions ? this.permissionService.isMenuItemVisible(i.permissions, i.config) : of(true)))));\n public isVisibleFromItemSettings = toSignal(\n ngToObservable(this.item).pipe(switchMap(i => (typeof i.isVisible === 'function' ? toObservable(i.isVisible(i.config)) : of(i.isVisible ?? true))))\n );\n private menuChangeEvents = toSignal(this.menuService.menuChange$.pipe(distinctUntilChanged((v1, v2) => v1.key === v2.key)));\n public active = computed(() => {\n if (!this.isPermitted()) {\n return false;\n }\n const menuChangeEvent = this.menuChangeEvents();\n if (menuChangeEvent) {\n return menuChangeEvent.eventType === 'reset' || !menuChangeEvent.key\n ? false\n : this.item().key === menuChangeEvent.key || menuChangeEvent.key.startsWith((this.item().key ?? '') + '-');\n }\n return false;\n });\n public visible = computed(() => {\n const isPermitted = this.isPermitted();\n if (!isPermitted) {\n return false;\n }\n if (!this.isVisibleFromItemSettings()) {\n return false;\n }\n const items = this.item().items();\n if (\n Array.isArray(items) &&\n items.length > 0 &&\n this.item()\n .itemsVisibility()\n .every(v => !v())\n ) {\n return false;\n }\n return true;\n });\n\n public submenuAnimation = computed(() => {\n if (this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n return this.layout.submenuOverlayKey() === this.item().key ? 'visible' : 'hidden';\n } else {\n return this.root() ? 'expanded' : this.active() ? 'expanded' : 'collapsed';\n }\n });\n\n constructor() {\n effect(() => {\n if (this.root() && this.active() && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.calculatePosition(this.submenuElRef()?.nativeElement, this.submenuElRef()?.nativeElement.parentElement);\n }\n });\n }\n\n public itemClick(event: Event) {\n const item = this.item();\n // avoid processing disabled items\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (item.hasItemsOrLazyChildren()) {\n // open submenu in slim/slim+ mode\n if (this.root() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.layout.onOverlaySubmenuOpen(item.key);\n }\n } else {\n if (this.layout.isMobile()) {\n this.layout.state.update(state => ({\n ...state,\n staticMenuMobileActive: false\n }));\n }\n if (this.layout.isSlim() || this.layout.isSlimPlus()) {\n this.layout.state.update(state => ({\n ...state,\n menuHoverActive: false\n }));\n }\n\n if (this.layout.submenuOverlayKey() !== undefined) {\n this.layout.onOverlaySubmenuClose();\n }\n }\n }\n\n onSubmenuAnimated(event: AnimationEvent) {\n if (event.toState === 'visible' && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n const el = <HTMLUListElement>event.element;\n const elParent = <HTMLUListElement>el.parentElement;\n this.calculatePosition(el, elParent);\n }\n }\n\n public onChildVisibleChange(visible: boolean, item: InternalCommonsMenuItem, idx: number) {\n this.item().itemsVisibility()[idx]?.set(visible);\n }\n\n private calculatePosition(overlay: HTMLElement, target: HTMLElement) {\n if (overlay) {\n const top = target.getBoundingClientRect().top;\n const vHeight = window.innerHeight;\n const oHeight = overlay.offsetHeight;\n\n // reset\n overlay.style.top = '';\n overlay.style.left = '';\n if (this.layout.isSlim() || this.layout.isSlimPlus()) {\n const height = top + oHeight;\n overlay.style.top = vHeight < height ? `${top - (height - vHeight)}px` : `${top}px`;\n }\n }\n }\n}\n","@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 pRipple>\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 pRipple>\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 ?? ''\" pRipple>\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 }\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","import {ChangeDetectionStrategy, Component, effect, inject, untracked} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {CommonsMenuItem, CommonsRouteData} from '@mediusinc/mng-commons/core';\n\nimport {MenuItemComponent} from './menu-item.component';\n\n@Component({\n standalone: true,\n selector: 'mng-menu',\n imports: [MenuItemComponent],\n templateUrl: './menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n private readonly layout = inject(LayoutService);\n public readonly menuService = inject(MenuService);\n\n public routeData = toSignal(this.route.data);\n\n constructor() {\n effect(() => {\n let items: CommonsMenuItem[] = [];\n if (this.config?.menuItems && Array.isArray(this.config.menuItems)) {\n items = this.config.menuItems;\n } else if (Array.isArray((this.routeData() as CommonsRouteData | undefined)?.menuItems)) {\n items = (this.routeData() as CommonsRouteData).menuItems!;\n }\n // Wraps menu items\n if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {\n items = [{items}];\n }\n\n untracked(() => this.menuService.setItems(items));\n });\n }\n}\n","<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","import {ChangeDetectionStrategy, Component, ElementRef, Type, inject, signal} from '@angular/core';\nimport {RouterModule} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {MenuComponent} from './menu.component';\n\n@Component({\n standalone: true,\n selector: 'mng-sidebar',\n imports: [RouterModule, ComponentDirective],\n templateUrl: './sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SidebarComponent {\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n public readonly el = inject(ElementRef);\n\n public menuComponent = signal<Type<any> | undefined>(this.config?.components?.menu === false ? undefined : (this.config?.components?.menu ?? MenuComponent));\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n onMouseEnter() {\n if (!this.layout.state().anchored) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.layout.state.update(state => ({\n ...state,\n sidebarActive: true\n }));\n }\n }\n\n onMouseLeave() {\n if (!this.layout.state().anchored) {\n if (!this.timeout) {\n this.timeout = setTimeout(\n () =>\n this.layout.state.update(state => ({\n ...state,\n sidebarActive: false\n })),\n 300\n );\n }\n }\n }\n\n anchor() {\n this.layout.state.update(state => ({\n ...state,\n anchored: !state.anchored\n }));\n }\n}\n","<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small h-2rem\">\n @if (layout.appLogo()) {\n <img [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"h-2rem mr-3\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"h-2rem\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor p-link z-2\" type=\"button\" (click)=\"anchor()\"></button>\n </div>\n\n @if (menuComponent()) {\n <div #menuContainer class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n","import {ChangeDetectionStrategy, Component, Injector, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Button} from 'primeng/button';\nimport {DropdownModule} from 'primeng/dropdown';\nimport {DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\nimport {InputSwitchModule} from 'primeng/inputswitch';\nimport {RadioButtonModule} from 'primeng/radiobutton';\nimport {SelectButtonModule} from 'primeng/selectbutton';\n\nimport {LayoutMenuMode, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {ColorScheme, CommonsService} from '@mediusinc/mng-commons/core';\n\ninterface ColorSchemeOption {\n value: ColorScheme;\n label: string;\n}\n\nconst defaultColorSchemeOpts: ColorSchemeOption[] = [\n {\n value: 'auto',\n label: 'system'\n },\n {\n value: 'light',\n label: 'light'\n },\n {\n value: 'dark',\n label: 'dark'\n }\n];\n\n@Component({\n standalone: true,\n selector: 'mng-settings',\n imports: [TranslateModule, RadioButtonModule, FormsModule, Button, DropdownModule, InputSwitchModule, SelectButtonModule],\n templateUrl: './settings.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SettingsComponent {\n private readonly dynamicDialogConfig = inject(DynamicDialogConfig);\n private readonly dynamicDialogRef = inject(DynamicDialogRef);\n public readonly injector: Injector;\n public readonly translate;\n public readonly commons;\n public readonly layout;\n\n public readonly menuModes;\n\n public colorSchemeOptions = signal(defaultColorSchemeOpts);\n\n constructor() {\n this.injector = this.dynamicDialogConfig.data.injector;\n this.translate = this.injector.get(TranslateService);\n this.commons = this.injector.get(CommonsService);\n this.layout = this.injector.get(LayoutService);\n this.menuModes = this.layout.menuModes;\n\n this.translate\n .stream('mngSettings.title')\n .pipe(takeUntilDestroyed())\n .subscribe(t => {\n setTimeout(() => (this.dynamicDialogConfig.header = t));\n });\n\n const translateKey = 'mngSettings.colorScheme.options';\n this.translate\n .stream(translateKey)\n .pipe(takeUntilDestroyed())\n .subscribe(t => {\n if (t === translateKey) {\n this.colorSchemeOptions.set(defaultColorSchemeOpts);\n } else {\n this.colorSchemeOptions.update(options =>\n options.map(o => ({\n value: o.value,\n label: `${t[o.value]}`\n }))\n );\n }\n });\n }\n\n switchLocale(language: string) {\n this.commons.setAppLocale(language);\n }\n\n switchDataLocale(language: string) {\n this.commons.setAppDataLocale(language);\n }\n\n onMenuModeChange(mode: LayoutMenuMode) {\n this.layout.onMenuModeChange(mode);\n }\n\n onColorSchemeChange(scheme: ColorScheme) {\n this.layout.setColorScheme(scheme);\n }\n\n closeDialog() {\n this.dynamicDialogRef.close();\n }\n}\n","<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 mng-action-editor-form-container\">\n @if (commons.appLocales().length > 1 || commons.appDataLocales().length > 1) {\n <h5>{{ 'mngSettings.locales' | translate }}</h5>\n <div class=\"formgrid grid\">\n @if (commons.appLocales().length > 1) {\n <div class=\"field pr-4\">\n <i class=\"pi pi-fw pi-globe\"></i>\n <p-dropdown [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-dropdown>\n </div>\n }\n @if (commons.appDataLocales().length > 1) {\n <div class=\"field pr-4\">\n <i class=\"pi pi-fw pi-database\"></i>\n <p-dropdown [ngModel]=\"commons.appDataLocale()\" [options]=\"commons.appDataLocales()\" (onChange)=\"switchDataLocale($event.value)\"></p-dropdown>\n </div>\n }\n </div>\n }\n\n <h5>{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"formgrid grid\">\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>{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"formgrid grid\">\n @for (mode of menuModes; track mode) {\n <div class=\"field-radiobutton col-6 md:col-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-content-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","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DialogService} from 'primeng/dynamicdialog';\nimport {RippleModule} from 'primeng/ripple';\nimport {StyleClassModule} from 'primeng/styleclass';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, IUser} from '@mediusinc/mng-commons/core';\n\nimport {SettingsComponent} from './settings.component';\n\n@Component({\n standalone: true,\n selector: 'mng-topbar-user-component',\n imports: [TranslateModule, RippleModule, StyleClassModule],\n templateUrl: './topbar-user.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopbarUserComponent {\n private readonly injector = inject(Injector);\n private readonly dialogService = inject(DialogService);\n private readonly commons = inject(CommonsService);\n public hrefJsVoid = inject(DomSanitizer).bypassSecurityTrustUrl('javascript:void(0)');\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n\n public user = computed<IUser | undefined>(() => this.commons.user());\n public userRoles = computed<string[]>(() => this.commons.userRoles());\n\n public settingsDisabled = signal(this.config?.components?.settings === false);\n\n public logout(user: IUser | undefined, event: Event) {\n if (typeof user?.logout === 'function') {\n event.preventDefault();\n event.stopPropagation();\n user.logout();\n }\n }\n\n public openSettings() {\n if (this.config?.components?.settings === false) {\n return;\n }\n\n this.dialogService.open(this.config?.components?.settings ?? SettingsComponent, {\n modal: true,\n styleClass: 'mng-dialog mng-action-editor-dialog mng-dialog-xs',\n data: {\n injector: this.injector\n }\n });\n }\n}\n","<a\n class=\"cursor-pointer lg:pr-4\"\n pStyleClass=\"@next\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\"\n [hideOnOutsideClick]=\"true\"\n pRipple>\n <i class=\"pi pi-fw pi-user text-2xl\"></i>\n <span class=\"hidden sm:inline-block\">&nbsp; {{ user()?.displayName ?? user()?.username }}</span>\n</a>\n<ul class=\"topbar-menu active-topbar-menu w-15rem z-5 ng-hidden border-round\">\n <li role=\"menuitem\">\n <a\n class=\"flex align-items-center transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-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\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex align-items-center transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-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\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex align-items-center hover:text-primary-500 transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-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","import {ChangeDetectionStrategy, Component, ElementRef, Type, inject, signal} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\n\nimport {ButtonModule} from 'primeng/button';\nimport {DropdownModule} from 'primeng/dropdown';\nimport {RippleModule} from 'primeng/ripple';\nimport {StyleClassModule} from 'primeng/styleclass';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {BreadcrumbComponent} from './breadcrumb.component';\nimport {SidebarComponent} from './sidebar.component';\nimport {TopbarUserComponent} from './topbar-user.component';\n\n@Component({\n standalone: true,\n selector: 'mng-topbar',\n imports: [SidebarComponent, ButtonModule, StyleClassModule, RippleModule, DropdownModule, ComponentDirective, FormsModule],\n templateUrl: './topbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopbarComponent {\n public readonly el = inject(ElementRef);\n public readonly commons = inject(CommonsService);\n public readonly layout = inject(LayoutService);\n protected readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n\n public topbarUserComponent = signal<Type<any> | undefined>(\n this.config?.components?.topbarUser === false ? undefined : (this.config?.components?.topbarUser ?? TopbarUserComponent)\n );\n public breadcrumbComponent = signal<Type<any> | undefined>(\n this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent)\n );\n\n public onMenuButtonClick() {\n this.layout.onMenuToggle();\n }\n\n public switchLocale(language: string) {\n this.commons.setAppLocale(language);\n }\n}\n","<div class=\"layout-topbar\">\n <div class=\"topbar-start\">\n <button #menubutton type=\"button\" class=\"topbar-menubutton p-link 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-dropdown [ngModel]=\"commons.appLocale()\" [options]=\"commons.appLocales()\" (onChange)=\"switchLocale($event.value)\"></p-dropdown>\n </li>\n }\n @if (topbarUserComponent()) {\n <li #userMenuItem class=\"profile-item topbar-item mr-3\" [mngComponent]=\"topbarUserComponent()\" [attachToHost]=\"true\"></li>\n }\n </ul>\n </div>\n</div>\n","import {NgClass, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ElementRef, OnDestroy, Renderer2, Type, inject, signal, viewChild} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterModule} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {ComponentDirective, NotificationWrapperComponent} from '@mediusinc/mng-commons/core';\n\nimport {BreadcrumbComponent} from './breadcrumb.component';\nimport {FooterComponent} from './footer.component';\nimport {TopbarComponent} from './topbar.component';\n\n@Component({\n standalone: true,\n selector: 'mng-main-layout',\n imports: [NgClass, RouterModule, ComponentDirective, NotificationWrapperComponent, NgTemplateOutlet],\n templateUrl: './main-layout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MainLayoutComponent implements OnDestroy {\n // private readonly commonsService = inject(CommonsService);\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n private readonly menuService = inject(MenuService);\n private readonly renderer = inject(Renderer2);\n\n private appTopbar = viewChild<ElementRef>('topbarCmp');\n\n public readonly ripple = signal(this.config?.ripple ?? true);\n\n public topbarComponent = signal<Type<any> | undefined>(this.config?.components?.topbar === false ? undefined : (this.config?.components?.topbar ?? TopbarComponent));\n public breadcrumbsComponent = signal<Type<any> | undefined>(\n this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent)\n );\n public footerComponent = signal<Type<any> | undefined>(this.config?.components?.footer === false ? undefined : (this.config?.components?.footer ?? FooterComponent));\n\n public useNotificationWrapper = signal(!this.config?.disableNotificationWrapper);\n private menuOutsideClickListener: any;\n\n constructor() {\n this.layout.overlayOpen$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appTopbar()?.nativeElement.isSameNode(event.target) || this.appTopbar()?.nativeElement.contains(event.target));\n if (isOutsideClicked) {\n this.hideMenu();\n }\n });\n }\n if (this.layout.state().staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n } else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n } else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n hideMenu() {\n this.layout.state.update(state => ({\n ...state,\n overlayMenuActive: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n }));\n\n if (this.layout.submenuOverlayKey() !== undefined) {\n this.layout.onOverlaySubmenuClose();\n }\n if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.menuService.reset();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n this.unblockBodyScroll();\n }\n\n ngOnDestroy() {\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n }\n}\n","@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 #topbarCmp class=\"layout-topbar-wrapper\" [mngComponent]=\"topbarComponent()\" [attachToHost]=\"true\"></div>\n }\n @if (breadcrumbsComponent()) {\n <div class=\"content-breadcrumb\">\n <div [mngComponent]=\"breadcrumbsComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n <div class=\"layout-content\">\n <router-outlet></router-outlet>\n </div>\n <div class=\"layout-mask\"></div>\n @if (footerComponent()) {\n <div [mngComponent]=\"footerComponent()\" [attachToHost]=\"true\"></div>\n }\n </div>\n </div>\n</ng-template>\n","// components\nexport * from './lib/components/footer.component';\nexport * from './lib/components/breadcrumb.component';\nexport * from './lib/components/main-layout.component';\nexport * from './lib/components/menu.component';\nexport * from './lib/components/menu-item.component';\nexport * from './lib/components/settings.component';\nexport * from './lib/components/sidebar.component';\nexport * from './lib/components/topbar.component';\nexport * from './lib/components/topbar-user.component';\nexport * from './lib/components/version.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ngToObservable","toObservable","i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"mediusinc-mng-commons-layout-components.mjs","sources":["../../components/src/lib/components/version.component.ts","../../components/src/lib/components/version.component.html","../../components/src/lib/components/footer.component.ts","../../components/src/lib/components/footer.component.html","../../components/src/lib/components/breadcrumb.component.ts","../../components/src/lib/components/breadcrumb.component.html","../../components/src/lib/components/menu-item.component.ts","../../components/src/lib/components/menu-item.component.html","../../components/src/lib/components/menu.component.ts","../../components/src/lib/components/menu.component.html","../../components/src/lib/components/sidebar.component.ts","../../components/src/lib/components/sidebar.component.html","../../components/src/lib/components/settings.component.ts","../../components/src/lib/components/settings.component.html","../../components/src/lib/components/topbar-user.component.ts","../../components/src/lib/components/topbar-user.component.html","../../components/src/lib/components/topbar.component.ts","../../components/src/lib/components/topbar.component.html","../../components/src/lib/components/main-layout.component.ts","../../components/src/lib/components/main-layout.component.html","../../components/src/index.ts","../../components/src/mediusinc-mng-commons-layout-components.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, DestroyRef, computed, inject, input, signal} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} from '@angular/core/rxjs-interop';\n\nimport {catchError, of, switchMap, take} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {VersionService} from '@mediusinc/mng-commons-layout';\nimport {CommonsConfigurationService, JsonPathPipe, VersionConfig, VersionConfigType, VersionInfo} from '@mediusinc/mng-commons/core';\n\n@Component({\n selector: 'mng-version',\n templateUrl: './version.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class VersionComponent {\n private readonly versionService = inject(VersionService);\n private readonly configService = inject(CommonsConfigurationService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly jsonPathPipe = new JsonPathPipe();\n\n public readonly versionInput = input<VersionConfigType>(undefined, {alias: 'version'});\n\n public readonly isLoading = signal<boolean>(false);\n private readonly loadedVersion = signal<VersionInfo | string | undefined>(undefined);\n\n public versionAsArray = computed<Array<VersionConfig> | undefined>(() => {\n if (Array.isArray(this.versionInput())) {\n return this.versionInput() as Array<VersionConfig>;\n }\n return undefined;\n });\n\n private readonly versionInfo = computed(() => {\n if (this.versionAsArray() !== undefined) {\n return undefined; // Each version will be processed separately in child component\n }\n const initVersion = this.versionInput();\n if (typeof initVersion === 'string') {\n return initVersion;\n } else if (typeof initVersion !== 'undefined' && !Array.isArray(initVersion)) {\n const source = initVersion.source;\n switch (source) {\n case 'config':\n return this.configService.getConfigValue<string | VersionInfo>(initVersion.configKey);\n case 'httpResource':\n return this.loadedVersion();\n case 'info':\n return initVersion.info;\n default:\n return initVersion;\n }\n }\n return undefined;\n });\n\n private readonly versionAsString = computed(() => {\n const versionInfo = this.versionInfo();\n if (versionInfo == null) {\n return undefined;\n } else if (typeof versionInfo === 'string') {\n return versionInfo;\n } else {\n return versionInfo.raw;\n }\n });\n\n private readonly displayName = computed(() => (this.versionInput() as VersionConfig | undefined)?.displayName);\n\n public readonly displayText = computed(\n () => `${this.displayName() ?? ''}${this.displayName() && this.versionAsString() ? ': ' : ''}${!this.isLoading() ? (this.versionAsString() ?? '') : ''}`\n );\n\n constructor() {\n toObservable(this.versionInput)\n .pipe(\n catchError(() => of(undefined)),\n switchMap(version => {\n if (typeof version !== 'undefined' && !Array.isArray(version)) {\n const config = version as VersionConfig;\n if (config.source === 'httpResource') {\n this.isLoading.set(true);\n const infoJsonPath = config.infoJsonPath;\n return this.versionService.loadVersion(config.urlPath, config.urlBaseConfigKey).pipe(\n take(1),\n map(res => ({res, infoJsonPath}))\n );\n }\n }\n return of({res: undefined, infoJsonPath: undefined});\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe({\n next: ({res, infoJsonPath}) => {\n if (typeof res !== 'undefined') {\n this.loadedVersion.set(this.jsonPathPipe.transform(res, infoJsonPath ?? '$'));\n } else {\n this.loadedVersion.set(undefined);\n }\n this.isLoading.set(false);\n },\n error: () => {\n this.loadedVersion.set('');\n this.isLoading.set(false);\n }\n });\n }\n}\n","@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","import {ChangeDetectionStrategy, Component, Type, inject, signal} from '@angular/core';\n\nimport {TranslateModule} from '@ngx-translate/core';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {VersionComponent} from './version.component';\n\n@Component({\n selector: 'mng-footer',\n templateUrl: 'footer.component.html',\n imports: [TranslateModule, ComponentDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FooterComponent {\n private config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n public commons = inject(CommonsService);\n\n public currentYear = signal(new Date().getFullYear());\n public versionComponent = signal<Type<any> | undefined>(this.config?.components?.version === false ? undefined : (this.config?.components?.version ?? VersionComponent));\n}\n","<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","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MenuItem} from 'primeng/api';\n\nimport {CommonsMenuItem, CommonsService} from '@mediusinc/mng-commons/core';\n\n@Component({\n selector: 'mng-breadcrumb',\n imports: [TranslateModule],\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'layout-breadcrumb flex items-center relative h-12'\n }\n})\nexport class BreadcrumbComponent {\n private commons = inject(CommonsService);\n\n public mappedBreadcrumbs = computed(() => {\n const items: CommonsMenuItem[] = this.commons.breadcrumbs();\n return items.map(el => this.mapMenuItem(el));\n });\n\n private mapMenuItem(item: CommonsMenuItem): MenuItem {\n return {\n ...item,\n url: item.href,\n badgeStyleClass: item.badgeClassName,\n styleClass: item.className\n };\n }\n}\n","<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","import {AnimationEvent, animate, state, style, transition, trigger} from '@angular/animations';\nimport {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ElementRef, computed, effect, inject, input, output, viewChild} from '@angular/core';\nimport {toObservable as ngToObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {RouterModule} from '@angular/router';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {distinctUntilChanged, of, switchMap} from 'rxjs';\n\nimport {LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {InternalCommonsMenuItem, PermissionService, toObservable} from '@mediusinc/mng-commons/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[mng-menuitem]',\n templateUrl: 'menu-item.component.html',\n imports: [NgClass, RouterModule, TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('children', [\n state(\n 'collapsed',\n style({\n height: '0'\n })\n ),\n state(\n 'expanded',\n style({\n height: '*'\n })\n ),\n state(\n 'hidden',\n style({\n display: 'none'\n })\n ),\n state(\n 'visible',\n style({\n display: 'block'\n })\n ),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ],\n host: {\n '[class.active-menuitem]': '!root() && active()',\n '[class.layout-root-menuitem]': 'root()'\n },\n providers: [PermissionService]\n})\nexport class MenuItemComponent {\n private readonly menuService = inject(MenuService);\n private readonly permissionService = inject(PermissionService);\n public readonly layout = inject(LayoutService);\n\n public item = input.required<InternalCommonsMenuItem>();\n public root = input(false);\n public visibleChange = output<boolean>();\n\n private submenuElRef = viewChild<ElementRef>('submenu');\n\n public isPermitted = toSignal(ngToObservable(this.item).pipe(switchMap(i => (i.permissions ? this.permissionService.isMenuItemVisible(i.permissions, i.config) : of(true)))));\n public isVisibleFromItemSettings = toSignal(\n ngToObservable(this.item).pipe(switchMap(i => (typeof i.isVisible === 'function' ? toObservable(i.isVisible(i.config)) : of(i.isVisible ?? true))))\n );\n private menuChangeEvents = toSignal(this.menuService.menuChange$.pipe(distinctUntilChanged((v1, v2) => v1.key === v2.key)));\n public active = computed(() => {\n if (!this.isPermitted()) {\n return false;\n }\n const menuChangeEvent = this.menuChangeEvents();\n if (menuChangeEvent) {\n return menuChangeEvent.eventType === 'reset' || !menuChangeEvent.key\n ? false\n : this.item().key === menuChangeEvent.key || menuChangeEvent.key.startsWith((this.item().key ?? '') + '-');\n }\n return false;\n });\n public visible = computed(() => {\n const isPermitted = this.isPermitted();\n if (!isPermitted) {\n return false;\n }\n if (!this.isVisibleFromItemSettings()) {\n return false;\n }\n const items = this.item().items();\n if (\n Array.isArray(items) &&\n items.length > 0 &&\n this.item()\n .itemsVisibility()\n .every(v => !v())\n ) {\n return false;\n }\n return true;\n });\n\n public submenuAnimation = computed(() => {\n if (this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n return this.layout.submenuOverlayKey() === this.item().key ? 'visible' : 'hidden';\n } else {\n return this.root() ? 'expanded' : this.active() ? 'expanded' : 'collapsed';\n }\n });\n\n constructor() {\n effect(() => {\n if (this.root() && this.active() && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.calculatePosition(this.submenuElRef()?.nativeElement, this.submenuElRef()?.nativeElement.parentElement);\n }\n });\n }\n\n public itemClick(event: Event) {\n const item = this.item();\n // avoid processing disabled items\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n if (item.hasItemsOrLazyChildren()) {\n // open submenu in slim/slim+ mode\n if (this.root() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.layout.onOverlaySubmenuOpen(item.key);\n }\n } else {\n if (this.layout.isMobile()) {\n this.layout.state.update(state => ({\n ...state,\n staticMenuMobileActive: false\n }));\n }\n if (this.layout.isSlim() || this.layout.isSlimPlus()) {\n this.layout.state.update(state => ({\n ...state,\n menuHoverActive: false\n }));\n }\n\n if (this.layout.submenuOverlayKey() !== undefined) {\n this.layout.onOverlaySubmenuClose();\n }\n }\n }\n\n onSubmenuAnimated(event: AnimationEvent) {\n if (event.toState === 'visible' && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {\n const el = <HTMLUListElement>event.element;\n const elParent = <HTMLUListElement>el.parentElement;\n this.calculatePosition(el, elParent);\n }\n }\n\n public onChildVisibleChange(visible: boolean, item: InternalCommonsMenuItem, idx: number) {\n this.item().itemsVisibility()[idx]?.set(visible);\n }\n\n private calculatePosition(overlay: HTMLElement, target: HTMLElement) {\n if (overlay) {\n const top = target.getBoundingClientRect().top;\n const vHeight = window.innerHeight;\n const oHeight = overlay.offsetHeight;\n\n // reset\n overlay.style.top = '';\n overlay.style.left = '';\n if (this.layout.isSlim() || this.layout.isSlimPlus()) {\n const height = top + oHeight;\n overlay.style.top = vHeight < height ? `${top - (height - vHeight)}px` : `${top}px`;\n }\n }\n }\n}\n","@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 ?? ''\" pRipple>\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 }\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","import {ChangeDetectionStrategy, Component, effect, inject, untracked} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ActivatedRoute} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {CommonsMenuItem, CommonsRouteData} from '@mediusinc/mng-commons/core';\n\nimport {MenuItemComponent} from './menu-item.component';\n\n@Component({\n selector: 'mng-menu',\n imports: [MenuItemComponent],\n templateUrl: './menu.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n private readonly layout = inject(LayoutService);\n public readonly menuService = inject(MenuService);\n\n public routeData = toSignal(this.route.data);\n\n constructor() {\n effect(() => {\n let items: CommonsMenuItem[] = [];\n if (this.config?.menuItems && Array.isArray(this.config.menuItems)) {\n items = this.config.menuItems;\n } else if (Array.isArray((this.routeData() as CommonsRouteData | undefined)?.menuItems)) {\n items = (this.routeData() as CommonsRouteData).menuItems!;\n }\n // Wraps menu items\n if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {\n items = [{items}];\n }\n\n untracked(() => this.menuService.setItems(items));\n });\n }\n}\n","<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","import {ChangeDetectionStrategy, Component, ElementRef, HostListener, Type, inject, signal} from '@angular/core';\nimport {RouterModule} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {MenuComponent} from './menu.component';\n\n@Component({\n selector: 'mng-sidebar',\n imports: [RouterModule, ComponentDirective],\n templateUrl: './sidebar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'layout-sidebar'\n }\n})\nexport class SidebarComponent {\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n public readonly el = inject(ElementRef);\n\n public menuComponent = signal<Type<any> | undefined>(this.config?.components?.menu === false ? undefined : (this.config?.components?.menu ?? MenuComponent));\n private timeout: ReturnType<typeof setTimeout> | null = null;\n\n @HostListener('mouseenter', ['$event'])\n onMouseEnter() {\n if (!this.layout.state().anchored) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.layout.state.update(state => ({\n ...state,\n sidebarActive: true\n }));\n }\n }\n\n @HostListener('mouseleave', ['$event'])\n onMouseLeave() {\n if (!this.layout.state().anchored) {\n if (!this.timeout) {\n this.timeout = setTimeout(\n () =>\n this.layout.state.update(state => ({\n ...state,\n sidebarActive: false\n })),\n 300\n );\n }\n }\n }\n\n anchor() {\n this.layout.state.update(state => ({\n ...state,\n anchored: !state.anchored\n }));\n }\n}\n","<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","import {ChangeDetectionStrategy, Component, Injector, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {FormsModule} from '@angular/forms';\n\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {Button} from 'primeng/button';\nimport {DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog';\nimport {RadioButton} from 'primeng/radiobutton';\nimport {Select} from 'primeng/select';\nimport {SelectButton} from 'primeng/selectbutton';\n\nimport {LayoutMenuMode, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {ColorScheme, CommonsService} from '@mediusinc/mng-commons/core';\n\ninterface ColorSchemeOption {\n value: ColorScheme;\n label: string;\n}\n\nconst defaultColorSchemeOpts: ColorSchemeOption[] = [\n {\n value: 'auto',\n label: 'system'\n },\n {\n value: 'light',\n label: 'light'\n },\n {\n value: 'dark',\n label: 'dark'\n }\n];\n\n@Component({\n selector: 'mng-settings',\n imports: [TranslateModule, RadioButton, FormsModule, Button, SelectButton, Select],\n templateUrl: './settings.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SettingsComponent {\n private readonly dynamicDialogConfig = inject(DynamicDialogConfig);\n private readonly dynamicDialogRef = inject(DynamicDialogRef);\n public readonly injector: Injector;\n public readonly translate;\n public readonly commons;\n public readonly layout;\n\n public readonly menuModes;\n\n public colorSchemeOptions = signal(defaultColorSchemeOpts);\n\n constructor() {\n this.injector = this.dynamicDialogConfig.data.injector;\n this.translate = this.injector.get(TranslateService);\n this.commons = this.injector.get(CommonsService);\n this.layout = this.injector.get(LayoutService);\n this.menuModes = this.layout.menuModes;\n\n this.translate\n .stream('mngSettings.title')\n .pipe(takeUntilDestroyed())\n .subscribe(t => {\n setTimeout(() => (this.dynamicDialogConfig.header = t));\n });\n\n const translateKey = 'mngSettings.colorScheme.options';\n this.translate\n .stream(translateKey)\n .pipe(takeUntilDestroyed())\n .subscribe(t => {\n if (t === translateKey) {\n this.colorSchemeOptions.set(defaultColorSchemeOpts);\n } else {\n this.colorSchemeOptions.update(options =>\n options.map(o => ({\n value: o.value,\n label: `${t[o.value]}`\n }))\n );\n }\n });\n }\n\n switchLocale(language: string) {\n this.commons.setAppLocale(language);\n }\n\n switchDataLocale(language: string) {\n this.commons.setAppDataLocale(language);\n }\n\n onMenuModeChange(mode: LayoutMenuMode) {\n this.layout.onMenuModeChange(mode);\n }\n\n onColorSchemeChange(scheme: ColorScheme) {\n this.layout.setColorScheme(scheme);\n }\n\n closeDialog() {\n this.dynamicDialogRef.close();\n }\n}\n","<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","import {ChangeDetectionStrategy, Component, Injector, computed, inject, signal} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DialogService} from 'primeng/dynamicdialog';\nimport {StyleClass} from 'primeng/styleclass';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, IUser} from '@mediusinc/mng-commons/core';\n\nimport {SettingsComponent} from './settings.component';\n\n@Component({\n selector: 'mng-topbar-user-component',\n imports: [TranslateModule, StyleClass],\n templateUrl: './topbar-user.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopbarUserComponent {\n private readonly injector = inject(Injector);\n private readonly dialogService = inject(DialogService);\n private readonly commons = inject(CommonsService);\n public hrefJsVoid = inject(DomSanitizer).bypassSecurityTrustUrl('javascript:void(0)');\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n\n public user = computed<IUser | undefined>(() => this.commons.user());\n public userRoles = computed<string[]>(() => this.commons.userRoles());\n\n public settingsDisabled = signal(this.config?.components?.settings === false);\n\n public logout(user: IUser | undefined, event: Event) {\n if (typeof user?.logout === 'function') {\n event.preventDefault();\n event.stopPropagation();\n user.logout();\n }\n }\n\n public openSettings() {\n if (this.config?.components?.settings === false) {\n return;\n }\n\n this.dialogService.open(this.config?.components?.settings ?? SettingsComponent, {\n modal: true,\n styleClass: 'mng-dialog mng-action-editor-dialog mng-dialog-xs',\n data: {\n injector: this.injector\n }\n });\n }\n}\n","<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","import {ChangeDetectionStrategy, Component, ElementRef, Type, inject, signal} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\n\nimport {ButtonDirective} from 'primeng/button';\nimport {Select} from 'primeng/select';\nimport {StyleClassModule} from 'primeng/styleclass';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService} from '@mediusinc/mng-commons-layout';\nimport {CommonsService, ComponentDirective} from '@mediusinc/mng-commons/core';\n\nimport {BreadcrumbComponent} from './breadcrumb.component';\nimport {SidebarComponent} from './sidebar.component';\nimport {TopbarUserComponent} from './topbar-user.component';\n\n@Component({\n selector: 'mng-topbar',\n imports: [SidebarComponent, StyleClassModule, ComponentDirective, FormsModule, Select, ButtonDirective],\n templateUrl: './topbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'layout-topbar'\n }\n})\nexport class TopbarComponent {\n public readonly el = inject(ElementRef);\n public readonly commons = inject(CommonsService);\n public readonly layout = inject(LayoutService);\n protected readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n\n public topbarUserComponent = signal<Type<any> | undefined>(\n this.config?.components?.topbarUser === false ? undefined : (this.config?.components?.topbarUser ?? TopbarUserComponent)\n );\n public breadcrumbComponent = signal<Type<any> | undefined>(\n this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent)\n );\n\n public onMenuButtonClick() {\n this.layout.onMenuToggle();\n }\n\n public switchLocale(language: string) {\n this.commons.setAppLocale(language);\n }\n}\n","<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","import {NgClass, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ElementRef, OnDestroy, Renderer2, Type, inject, signal, viewChild} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterModule} from '@angular/router';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService} from '@mediusinc/mng-commons-layout';\nimport {ComponentDirective, NotificationWrapperComponent} from '@mediusinc/mng-commons/core';\n\nimport {BreadcrumbComponent} from './breadcrumb.component';\nimport {FooterComponent} from './footer.component';\nimport {TopbarComponent} from './topbar.component';\n\n@Component({\n selector: 'mng-main-layout',\n imports: [NgClass, RouterModule, ComponentDirective, NotificationWrapperComponent, NgTemplateOutlet],\n templateUrl: './main-layout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MainLayoutComponent implements OnDestroy {\n // private readonly commonsService = inject(CommonsService);\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n public readonly layout = inject(LayoutService);\n private readonly menuService = inject(MenuService);\n private readonly renderer = inject(Renderer2);\n\n private appTopbar = viewChild<ElementRef>('topbarCmp');\n\n public readonly ripple = signal(this.config?.ripple ?? true);\n\n public topbarComponent = signal<Type<any> | undefined>(this.config?.components?.topbar === false ? undefined : (this.config?.components?.topbar ?? TopbarComponent));\n public breadcrumbsComponent = signal<Type<any> | undefined>(\n this.config?.components?.breadcrumb === false ? undefined : (this.config?.components?.breadcrumb ?? BreadcrumbComponent)\n );\n public footerComponent = signal<Type<any> | undefined>(this.config?.components?.footer === false ? undefined : (this.config?.components?.footer ?? FooterComponent));\n\n public useNotificationWrapper = signal(!this.config?.disableNotificationWrapper);\n private menuOutsideClickListener: any;\n\n constructor() {\n this.layout.overlayOpen$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appTopbar()?.nativeElement.isSameNode(event.target) || this.appTopbar()?.nativeElement.contains(event.target));\n if (isOutsideClicked) {\n this.hideMenu();\n }\n });\n }\n if (this.layout.state().staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n } else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n } else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n hideMenu() {\n this.layout.state.update(state => ({\n ...state,\n overlayMenuActive: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n }));\n\n if (this.layout.submenuOverlayKey() !== undefined) {\n this.layout.onOverlaySubmenuClose();\n }\n if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {\n this.menuService.reset();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n this.unblockBodyScroll();\n }\n\n ngOnDestroy() {\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n }\n}\n","@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","// components\nexport * from './lib/components/footer.component';\nexport * from './lib/components/breadcrumb.component';\nexport * from './lib/components/main-layout.component';\nexport * from './lib/components/menu.component';\nexport * from './lib/components/menu-item.component';\nexport * from './lib/components/settings.component';\nexport * from './lib/components/sidebar.component';\nexport * from './lib/components/topbar.component';\nexport * from './lib/components/topbar-user.component';\nexport * from './lib/components/version.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ngToObservable","toObservable","i1","i2"],"mappings":"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"}
@@ -123,13 +123,20 @@ class LayoutService {
123
123
  });
124
124
  effect(() => {
125
125
  const colorScheme = this._colorScheme();
126
- const linkElement = this.document.getElementById('app-theme');
127
- if (colorScheme === 'dark' && linkElement?.href.includes('light')) {
128
- linkElement.href = 'theme-dark.css';
126
+ const themeEl = document.documentElement;
127
+ if (colorScheme === 'dark' && !themeEl.classList.contains('app-dark')) {
128
+ themeEl.classList.add('app-dark');
129
129
  }
130
- else if (colorScheme === 'light' && linkElement?.href.includes('dark')) {
131
- linkElement.href = 'theme-light.css';
130
+ else if (colorScheme === 'light' && themeEl.classList.contains('app-dark')) {
131
+ themeEl.classList.remove('app-dark');
132
132
  }
133
+ // TODO: check
134
+ // const linkElement = this.document.getElementById('app-theme') as HTMLLinkElement | undefined;
135
+ // if (colorScheme === 'dark' && linkElement?.href.includes('light')) {
136
+ // linkElement.href = 'theme-dark.css';
137
+ // } else if (colorScheme === 'light' && linkElement?.href.includes('dark')) {
138
+ // linkElement.href = 'theme-light.css';
139
+ // }
133
140
  });
134
141
  }
135
142
  onMenuModeChange(mode) {
@@ -193,10 +200,10 @@ class LayoutService {
193
200
  }
194
201
  return this.config?.menuMode ?? 'static';
195
202
  }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
197
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LayoutService }); }
203
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
204
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LayoutService }); }
198
205
  }
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: LayoutService, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LayoutService, decorators: [{
200
207
  type: Injectable
201
208
  }], ctorParameters: () => [] });
202
209
 
@@ -306,10 +313,10 @@ class MenuService {
306
313
  eventType: 'reset'
307
314
  });
308
315
  }
309
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
310
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuService }); }
316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
317
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: MenuService }); }
311
318
  }
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuService, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: MenuService, decorators: [{
313
320
  type: Injectable
314
321
  }] });
315
322
 
@@ -344,10 +351,10 @@ class VersionService {
344
351
  }
345
352
  return this.cache[url].asObservable();
346
353
  }
347
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: VersionService, deps: [{ token: i1.HttpClient }, { token: i2.CommonsConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
348
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: VersionService }); }
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: VersionService, deps: [{ token: i1.HttpClient }, { token: i2.CommonsConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
355
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: VersionService }); }
349
356
  }
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: VersionService, decorators: [{
357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: VersionService, decorators: [{
351
358
  type: Injectable
352
359
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CommonsConfigurationService }] });
353
360