@mediusinc/mng-commons-layout 6.0.0-rc.5 → 6.0.0-rc.7
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.
- package/components/pages/error/index.d.ts +1 -3
- package/components/pages/not-found/index.d.ts +1 -3
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs +6 -8
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs +3 -3
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs +6 -8
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components.mjs +63 -60
- package/fesm2022/mediusinc-mng-commons-layout-components.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout.mjs +21 -14
- package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
- package/package.json +12 -22
- package/scss/commons.scss +1 -0
- package/scss/layout/_breadcrumb.scss +14 -11
- package/scss/layout/_config.scss +75 -7
- package/scss/layout/_content.scss +1 -1
- package/scss/layout/_main.scss +7 -9
- package/scss/layout/_profile.scss +1 -1
- package/scss/layout/_responsive.scss +4 -2
- package/scss/layout/_sass_variables.scss +1 -0
- package/scss/layout/_sidebar_drawer.scss +6 -5
- package/scss/layout/_sidebar_horizontal.scss +15 -11
- package/scss/layout/_sidebar_reveal.scss +16 -10
- package/scss/layout/_sidebar_slim.scss +5 -3
- package/scss/layout/_sidebar_slim_plus.scss +5 -2
- package/scss/layout/_sidebar_vertical.scss +13 -7
- package/scss/layout/_topbar.scss +75 -45
- package/scss/layout/_utils.scss +1 -5
- package/scss/layout/layout.scss +29 -22
- package/scss/layout/mng/{_mng_layout_menu.scss → layout/_mng_layout_menu.scss} +0 -4
- package/scss/layout/mng/{_mng_layout_topbar.scss → layout/_mng_layout_topbar.scss} +2 -2
- package/scss/layout/mng/theme/_mng_theme_button.scss +63 -0
- package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_dialog.scss +44 -46
- package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_toast.scss +4 -4
- package/scss/layout/mng/theme/_mng_theme_toggleswitch.scss +3 -0
- package/scss/layout/mng/variables/_mng-variables-common.scss +22 -0
- package/scss/layout/variables/_common.scss +15 -0
- package/scss/layout/variables/_dark.scss +10 -0
- package/scss/layout/variables/_light.scss +10 -0
- package/version-info.json +3 -3
- package/esm2022/components/index.mjs +0 -12
- package/esm2022/components/lib/components/breadcrumb.component.mjs +0 -29
- package/esm2022/components/lib/components/footer.component.mjs +0 -23
- package/esm2022/components/lib/components/main-layout.component.mjs +0 -86
- package/esm2022/components/lib/components/menu-item.component.mjs +0 -169
- package/esm2022/components/lib/components/menu.component.mjs +0 -36
- package/esm2022/components/lib/components/settings.component.mjs +0 -87
- package/esm2022/components/lib/components/sidebar.component.mjs +0 -51
- package/esm2022/components/lib/components/topbar-user.component.mjs +0 -51
- package/esm2022/components/lib/components/topbar.component.mjs +0 -37
- package/esm2022/components/lib/components/version.component.mjs +0 -95
- package/esm2022/components/mediusinc-mng-commons-layout-components.mjs +0 -5
- package/esm2022/components/pages/error/index.mjs +0 -4
- package/esm2022/components/pages/error/lib/error.page.component.mjs +0 -20
- package/esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs +0 -5
- package/esm2022/components/pages/main/index.mjs +0 -3
- package/esm2022/components/pages/main/lazy/index.mjs +0 -2
- package/esm2022/components/pages/main/lazy/lib/route-builder.mjs +0 -11
- package/esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs +0 -5
- package/esm2022/components/pages/main/lib/main-layout.component.mjs +0 -84
- package/esm2022/components/pages/main/lib/route-builder.mjs +0 -12
- package/esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs +0 -5
- package/esm2022/components/pages/not-found/index.mjs +0 -4
- package/esm2022/components/pages/not-found/lib/not-found.page.component.mjs +0 -20
- package/esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs +0 -5
- package/esm2022/index.mjs +0 -13
- package/esm2022/lib/helpers/menu-items.mjs +0 -29
- package/esm2022/lib/models/layout-state.model.mjs +0 -2
- package/esm2022/lib/models/menu.model.mjs +0 -2
- package/esm2022/lib/provide.mjs +0 -25
- package/esm2022/lib/services/layout-feature-config.token.mjs +0 -3
- package/esm2022/lib/services/layout.service.mjs +0 -167
- package/esm2022/lib/services/menu.service.mjs +0 -121
- package/esm2022/lib/services/version.service.mjs +0 -45
- package/esm2022/mediusinc-mng-commons-layout.mjs +0 -5
- package/scss/commons-dark.scss +0 -9
- package/scss/commons-light.scss +0 -9
- package/scss/layout/_animation.scss +0 -53
- package/scss/layout/_fonts.scss +0 -40
- package/scss/layout/_layout_dark.scss +0 -12
- package/scss/layout/_layout_light.scss +0 -12
- package/scss/layout/_typography.scss +0 -67
- package/scss/layout/mng/_mng_layout_styles.scss +0 -4
- package/scss/layout/preloading.scss +0 -84
- package/scss/theme/extensions/_fullcalendar.scss +0 -328
- package/scss/theme/theme-base/_colors.scss +0 -17
- package/scss/theme/theme-base/_common.scss +0 -76
- package/scss/theme/theme-base/_components.scss +0 -110
- package/scss/theme/theme-base/_mixins.scss +0 -337
- package/scss/theme/theme-base/components/button/_button.scss +0 -576
- package/scss/theme/theme-base/components/button/_speeddial.scss +0 -96
- package/scss/theme/theme-base/components/button/_splitbutton.scss +0 -348
- package/scss/theme/theme-base/components/data/_carousel.scss +0 -37
- package/scss/theme/theme-base/components/data/_datatable.scss +0 -338
- package/scss/theme/theme-base/components/data/_dataview.scss +0 -46
- package/scss/theme/theme-base/components/data/_filter.scss +0 -137
- package/scss/theme/theme-base/components/data/_orderlist.scss +0 -114
- package/scss/theme/theme-base/components/data/_organizationchart.scss +0 -50
- package/scss/theme/theme-base/components/data/_paginator.scss +0 -92
- package/scss/theme/theme-base/components/data/_picklist.scss +0 -114
- package/scss/theme/theme-base/components/data/_timeline.scss +0 -35
- package/scss/theme/theme-base/components/data/_tree.scss +0 -150
- package/scss/theme/theme-base/components/data/_treetable.scss +0 -255
- package/scss/theme/theme-base/components/data/_virtualscroller.scss +0 -28
- package/scss/theme/theme-base/components/file/_fileupload.scss +0 -64
- package/scss/theme/theme-base/components/input/_autocomplete.scss +0 -136
- package/scss/theme/theme-base/components/input/_calendar.scss +0 -267
- package/scss/theme/theme-base/components/input/_cascadeselect.scss +0 -135
- package/scss/theme/theme-base/components/input/_checkbox.scss +0 -94
- package/scss/theme/theme-base/components/input/_chips.scss +0 -65
- package/scss/theme/theme-base/components/input/_colorpicker.scss +0 -19
- package/scss/theme/theme-base/components/input/_dropdown.scss +0 -151
- package/scss/theme/theme-base/components/input/_editor.scss +0 -122
- package/scss/theme/theme-base/components/input/_inputgroup.scss +0 -74
- package/scss/theme/theme-base/components/input/_inputmask.scss +0 -16
- package/scss/theme/theme-base/components/input/_inputnumber.scss +0 -28
- package/scss/theme/theme-base/components/input/_inputswitch.scss +0 -60
- package/scss/theme/theme-base/components/input/_inputtext.scss +0 -100
- package/scss/theme/theme-base/components/input/_listbox.scss +0 -97
- package/scss/theme/theme-base/components/input/_multiselect.scss +0 -177
- package/scss/theme/theme-base/components/input/_password.scss +0 -52
- package/scss/theme/theme-base/components/input/_radiobutton.scss +0 -78
- package/scss/theme/theme-base/components/input/_rating.scss +0 -60
- package/scss/theme/theme-base/components/input/_selectbutton.scss +0 -50
- package/scss/theme/theme-base/components/input/_slider.scss +0 -75
- package/scss/theme/theme-base/components/input/_togglebutton.scss +0 -48
- package/scss/theme/theme-base/components/input/_treeselect.scss +0 -139
- package/scss/theme/theme-base/components/menu/_breadcrumb.scss +0 -42
- package/scss/theme/theme-base/components/menu/_contextmenu.scss +0 -39
- package/scss/theme/theme-base/components/menu/_dock.scss +0 -95
- package/scss/theme/theme-base/components/menu/_megamenu.scss +0 -55
- package/scss/theme/theme-base/components/menu/_menu.scss +0 -37
- package/scss/theme/theme-base/components/menu/_menubar.scss +0 -140
- package/scss/theme/theme-base/components/menu/_panelmenu.scss +0 -153
- package/scss/theme/theme-base/components/menu/_slidemenu.scss +0 -59
- package/scss/theme/theme-base/components/menu/_steps.scss +0 -56
- package/scss/theme/theme-base/components/menu/_tabmenu.scss +0 -73
- package/scss/theme/theme-base/components/menu/_tieredmenu.scss +0 -43
- package/scss/theme/theme-base/components/messages/_inlinemessage.scss +0 -69
- package/scss/theme/theme-base/components/messages/_message.scss +0 -107
- package/scss/theme/theme-base/components/messages/_toast.scss +0 -99
- package/scss/theme/theme-base/components/misc/_avatar.scss +0 -30
- package/scss/theme/theme-base/components/misc/_badge.scss +0 -48
- package/scss/theme/theme-base/components/misc/_blockui.scss +0 -0
- package/scss/theme/theme-base/components/misc/_chip.scss +0 -42
- package/scss/theme/theme-base/components/misc/_inplace.scss +0 -16
- package/scss/theme/theme-base/components/misc/_progressbar.scss +0 -17
- package/scss/theme/theme-base/components/misc/_scrolltop.scss +0 -25
- package/scss/theme/theme-base/components/misc/_skeleton.scss +0 -8
- package/scss/theme/theme-base/components/misc/_tag.scss +0 -40
- package/scss/theme/theme-base/components/misc/_terminal.scss +0 -12
- package/scss/theme/theme-base/components/multimedia/_galleria.scss +0 -155
- package/scss/theme/theme-base/components/multimedia/_image.scss +0 -49
- package/scss/theme/theme-base/components/overlay/_confirmpopup.scss +0 -70
- package/scss/theme/theme-base/components/overlay/_dialog.scss +0 -69
- package/scss/theme/theme-base/components/overlay/_overlaypanel.scss +0 -62
- package/scss/theme/theme-base/components/overlay/_sidebar.scss +0 -27
- package/scss/theme/theme-base/components/overlay/_tooltip.scss +0 -33
- package/scss/theme/theme-base/components/panel/_accordion.scss +0 -119
- package/scss/theme/theme-base/components/panel/_card.scss +0 -30
- package/scss/theme/theme-base/components/panel/_divider.scss +0 -31
- package/scss/theme/theme-base/components/panel/_fieldset.scss +0 -47
- package/scss/theme/theme-base/components/panel/_panel.scss +0 -63
- package/scss/theme/theme-base/components/panel/_scrollpanel.scss +0 -6
- package/scss/theme/theme-base/components/panel/_splitter.scss +0 -19
- package/scss/theme/theme-base/components/panel/_tabview.scss +0 -82
- package/scss/theme/theme-base/components/panel/_toolbar.scss +0 -11
- package/scss/theme/theme-base/mng/_mng_mixins.scss +0 -69
- package/scss/theme/theme-base/mng/_mng_theme_autocomplete.scss +0 -34
- package/scss/theme/theme-base/mng/_mng_theme_button.scss +0 -68
- package/scss/theme/theme-base/mng/_mng_theme_datatable.scss +0 -157
- package/scss/theme/theme-base/mng/_mng_theme_datepicker.scss +0 -21
- package/scss/theme/theme-base/mng/_mng_theme_dropdown.scss +0 -32
- package/scss/theme/theme-base/mng/_mng_theme_fileupload.scss +0 -24
- package/scss/theme/theme-base/mng/_mng_theme_forms.scss +0 -66
- package/scss/theme/theme-base/mng/_mng_theme_image.scss +0 -27
- package/scss/theme/theme-base/mng/_mng_theme_input.scss +0 -42
- package/scss/theme/theme-base/mng/_mng_theme_menu.scss +0 -5
- package/scss/theme/theme-base/mng/_mng_theme_multiselect.scss +0 -20
- package/scss/theme/theme-base/mng/_mng_theme_styles.scss +0 -19
- package/scss/theme/theme-base/mng/_mng_theme_table.scss +0 -54
- package/scss/theme/theme-base/mng/_mng_theme_tableview.scss +0 -41
- package/scss/theme/theme-base/mng/_mng_theme_tabview.scss +0 -14
- package/scss/theme/theme-base/mng/_mng_theme_tag.scss +0 -11
- package/scss/theme/theme-base/mng/_mng_theme_toolbar.scss +0 -5
- package/scss/theme/theme-base/mng/_mng_variables.scss +0 -15
- package/scss/theme/theme-dark/_extensions.scss +0 -109
- package/scss/theme/theme-dark/_variables.scss +0 -941
- package/scss/theme/theme-dark/blue/theme.scss +0 -14
- package/scss/theme/theme-light/_extensions.scss +0 -109
- package/scss/theme/theme-light/_variables.scss +0 -937
- package/scss/theme/theme-light/blue/theme.scss +0 -14
- /package/scss/layout/mng/{_mng_layout_footer.scss → layout/_mng_layout_footer.scss} +0 -0
- /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.mjs","sources":["../../src/lib/helpers/menu-items.ts","../../src/lib/services/layout-feature-config.token.ts","../../src/lib/services/layout.service.ts","../../src/lib/services/menu.service.ts","../../src/lib/services/version.service.ts","../../src/lib/provide.ts","../../src/index.ts","../../src/mediusinc-mng-commons-layout.ts"],"sourcesContent":["import {computed, signal} from '@angular/core';\n\nimport {CommonsMenuItem, InternalCommonsMenuItem} from '@mediusinc/mng-commons/core';\n\n/**\n * @internal\n */\nexport function prepareMenuItemsToInternal(menuItems: CommonsMenuItem[], parentKey = ''): InternalCommonsMenuItem[] {\n const newItems = menuItems.map((item, idx) => {\n const itemsProp = signal<InternalCommonsMenuItem[]>([]);\n const lazyChildrenProp = signal(item.lazyChildren ?? false);\n const hasItemsProp = computed(() => itemsProp().length > 0);\n const newItem: InternalCommonsMenuItem = {\n ...item,\n isVisible: item.isVisible,\n key: parentKey ? parentKey + '-' + idx : idx.toString(),\n config: item,\n items: itemsProp,\n lazyChildren: lazyChildrenProp,\n itemsVisibility: signal([]),\n hasItems: hasItemsProp,\n hasItemsOrLazyChildren: computed(() => lazyChildrenProp() || hasItemsProp())\n };\n\n if (Array.isArray(item.items) && item.items.length > 0) {\n newItem.items.set(prepareMenuItemsToInternal(item.items, newItem.key));\n newItem.itemsVisibility.set(newItem.items()?.map(() => signal(true)));\n }\n\n return newItem;\n });\n\n return newItems;\n}\n","import {InjectionToken, Type} from '@angular/core';\n\nimport {MenuItem} from 'primeng/api';\n\nexport type LayoutMenuMode = 'static' | 'overlay' | 'reveal' | 'drawer' | 'slim' | 'slim-plus';\n\nexport type ColorScheme = 'light' | 'dark' | 'auto';\n\n/**\n * Set of configurations for layout customization.\n */\nexport interface LayoutFeatureConfig {\n /**\n * Choose default menu mode.\n */\n menuMode?: LayoutMenuMode;\n /**\n * Sets available menu modes.\n */\n menuModes?: LayoutMenuMode[];\n /**\n * Predefines menu modes (instead of taking them from route data config).\n */\n menuItems?: MenuItem[];\n /**\n * Logo path (usually icon part only).\n */\n logoPath?: string | false;\n /**\n * Logo path for light color mode (usually icon part only).\n */\n logoPathLight?: string;\n /**\n * Logo path for dark color mode (usually icon part only).\n */\n logoPathDark?: string;\n /**\n * Logo path (usually name part only).\n */\n logoNamePath?: string | false;\n /**\n * Logo path for light color mode (usually name part only).\n */\n logoNamePathLight?: string;\n /**\n * Logo path for dark color mode (usually name part only).\n */\n logoNamePathDark?: string;\n /**\n * Default color scheme (defaults to 'auto').\n */\n colorScheme?: ColorScheme;\n /**\n * Enable ripple effect.\n */\n ripple?: boolean;\n /**\n * Disables wrapping layout in notification wrapper.\n */\n disableNotificationWrapper?: boolean;\n /**\n * Set custom components instead of default layout's one. If false provided for component, then it will not be displayed.\n */\n components?: {\n /**\n * Specify custom topbar component or disable (if false).\n */\n topbar?: Type<any> | false;\n /**\n * Specify custom menu component or disable (if false).\n */\n menu?: Type<any> | false;\n /**\n * Specify custom footer component or disable (if false).\n */\n footer?: Type<any> | false;\n /**\n * Specify custom breadcrumb component or disable (if false).\n */\n breadcrumb?: Type<any> | false;\n /**\n * Specify custom topbarUser component or disable (if false).\n */\n topbarUser?: Type<any> | false;\n /**\n * Specify custom version component or disable (if false).\n */\n version?: Type<any> | false;\n /**\n * Specify custom settings component or disable (if false).\n */\n settings?: Type<any> | false;\n };\n}\n\nexport const COMMONS_LAYOUT_FEATURE_CONFIG_IT = new InjectionToken<LayoutFeatureConfig>('COMMONS_LAYOUT_FEATURE_CONFIG');\n","import {DOCUMENT} from '@angular/common';\nimport {Injectable, PLATFORM_ID, afterNextRender, computed, effect, inject, signal} from '@angular/core';\n\nimport {Subject} from 'rxjs';\n\nimport {COMMONS_MODULE_CONFIG_IT, CommonsStorageService} from '@mediusinc/mng-commons/core';\n\nimport {LayoutState} from '../models/layout-state.model';\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, ColorScheme, LayoutMenuMode} from './layout-feature-config.token';\n\n@Injectable()\nexport class LayoutService {\n private readonly typeName = 'MainLayoutComponentService';\n private readonly storageMenuModeKey = 'menuMode';\n private readonly storageColorSchemeKey = 'colorScheme';\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly document = inject(DOCUMENT);\n private readonly commonsConfig = inject(COMMONS_MODULE_CONFIG_IT, {optional: true});\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n private readonly storageService = inject(CommonsStorageService);\n\n public state = signal<LayoutState>({\n staticMenuDesktopInactive: false,\n overlayMenuActive: false,\n rightMenuActive: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false,\n sidebarActive: false,\n anchored: false\n });\n\n private overlayOpen = new Subject<any>();\n public overlayOpen$ = this.overlayOpen.asObservable();\n\n // color scheme\n private _colorSchemeSetting = signal(this.getInitColorScheme());\n public colorSchemeSetting = this._colorSchemeSetting.asReadonly();\n private _colorScheme = signal<Exclude<ColorScheme, 'system'>>(this.getInitActualColorScheme(this.colorSchemeSetting()));\n public colorScheme = this._colorScheme.asReadonly();\n public colorSchemeIsLight = computed(() => this._colorScheme() === 'light');\n\n private getInitColorScheme(): ColorScheme {\n let colorScheme = this.storageService.getItem<ColorScheme>(this.typeName, this.storageColorSchemeKey);\n if (colorScheme == null || !(['dark', 'light', 'auto'] as ColorScheme[]).includes(colorScheme)) {\n colorScheme = this.getDefaultColorScheme();\n }\n return colorScheme;\n }\n\n private getInitActualColorScheme(colorScheme: ColorScheme): Exclude<ColorScheme, 'system'> {\n if (colorScheme === 'auto') {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n } else {\n return colorScheme;\n }\n }\n\n private getDefaultColorScheme(): ColorScheme {\n return this.config?.colorScheme ?? 'auto';\n }\n\n public setColorScheme(scheme: ColorScheme) {\n const defaultColorScheme = this.getDefaultColorScheme();\n if (scheme === defaultColorScheme) {\n this.storageService.removeItem(this.typeName, this.storageColorSchemeKey);\n } else {\n this.storageService.setItem(this.typeName, this.storageColorSchemeKey, scheme);\n }\n this._colorSchemeSetting.set(scheme);\n this._colorScheme.set(this.getInitActualColorScheme(scheme));\n }\n\n // menu mode\n public readonly menuModes: LayoutMenuMode[] = this.config?.menuModes ?? ['static', 'overlay', 'reveal', 'drawer', 'slim', 'slim-plus'];\n private _menuMode = signal(this.initMenuMode());\n public menuMode = this._menuMode.asReadonly();\n\n // logos\n private appLogoLight = signal(this.config?.logoPathLight ?? this.config?.logoPath ?? 'assets/layout/images/logo.png');\n private appLogoDark = signal(this.config?.logoPathLight ?? this.config?.logoPath ?? 'assets/layout/images/logo.png');\n public appLogo = computed(() => (this.colorSchemeIsLight() ? this.appLogoLight() : this.appLogoDark()));\n\n private appLogoNameLight = signal(this.config?.logoNamePathLight ?? this.config?.logoNamePath ?? 'assets/layout/images/logo-appname.png');\n private appLogoNameDark = signal(this.config?.logoNamePathDark ?? this.config?.logoNamePath ?? 'assets/layout/images/logo-appname.png');\n public appLogoName = computed(() => (this.colorSchemeIsLight() ? this.appLogoNameLight() : this.appLogoNameDark()));\n\n // overlays\n public isOverlay = computed(() => this.menuMode() === 'overlay');\n public isSlim = computed(() => this.menuMode() === 'slim');\n public isSlimPlus = computed(() => this.menuMode() === 'slim-plus');\n\n // used for managing the submenu dropdown overlay in slim and slim+ layouts\n public submenuOverlayKey = signal<string | undefined>(undefined);\n\n constructor() {\n afterNextRender(() => {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {\n if (this.colorSchemeSetting() === 'auto') {\n const newColorScheme = event.matches ? 'dark' : 'light';\n this._colorScheme.set(newColorScheme);\n }\n });\n });\n\n effect(() => {\n const colorScheme = this._colorScheme();\n const linkElement = this.document.getElementById('app-theme') as HTMLLinkElement | undefined;\n if (colorScheme === 'dark' && linkElement?.href.includes('light')) {\n linkElement.href = 'theme-dark.css';\n } else if (colorScheme === 'light' && linkElement?.href.includes('dark')) {\n linkElement.href = 'theme-light.css';\n }\n });\n }\n\n onMenuModeChange(mode: LayoutMenuMode) {\n if (!this.menuModes.includes(mode)) {\n return;\n }\n if (mode === this.config?.menuMode) {\n this.storageService.removeItem(this.typeName, this.storageMenuModeKey);\n } else {\n this.storageService.setItem(this.typeName, this.storageMenuModeKey, mode);\n }\n this._menuMode.set(mode);\n }\n\n onMenuToggle() {\n if (this.isOverlay()) {\n this.state.update(state => ({\n ...state,\n overlayMenuActive: !state.overlayMenuActive\n }));\n\n if (this.state().overlayMenuActive) {\n this.overlayOpen.next(null);\n }\n }\n\n if (this.isDesktop()) {\n this.state.update(state => ({\n ...state,\n staticMenuDesktopInactive: !state.staticMenuDesktopInactive\n }));\n } else {\n this.state.update(state => ({\n ...state,\n staticMenuMobileActive: !state.staticMenuMobileActive\n }));\n\n if (this.state().staticMenuMobileActive) {\n this.overlayOpen.next(null);\n }\n }\n }\n\n onOverlaySubmenuOpen(key: string) {\n if (this.submenuOverlayKey() === key) {\n return;\n }\n\n this.submenuOverlayKey.set(key);\n this.overlayOpen.next(null);\n }\n\n onOverlaySubmenuClose() {\n this.submenuOverlayKey.set(undefined);\n }\n\n isDesktop() {\n return window.innerWidth > 991;\n }\n\n isMobile() {\n return !this.isDesktop();\n }\n\n private initMenuMode(): LayoutMenuMode {\n const lsMode = this.storageService.getItem<LayoutMenuMode>(this.typeName, this.storageMenuModeKey);\n if (lsMode && this.menuModes.includes(lsMode)) {\n return lsMode;\n }\n return this.config?.menuMode ?? 'static';\n }\n}\n","import {DestroyRef, Injectable, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NavigationEnd, Router} from '@angular/router';\n\nimport {ReplaySubject, Subscription, startWith, take} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\n\nimport {\n CommonsMenuItem,\n CommonsRouteData,\n CommonsRouterService,\n InternalCommonsMenuItem,\n LoggerService,\n adjustRouteMenuLazyChildrenRouterLinks,\n doesUrlMatchRouterLink\n} from '@mediusinc/mng-commons/core';\n\nimport {prepareMenuItemsToInternal} from '../helpers/menu-items';\nimport {MenuChangeEvent} from '../models/menu.model';\n\n@Injectable()\nexport class MenuService {\n private readonly destroyRef = inject(DestroyRef);\n private readonly logger = LoggerService.create('MenuService');\n private readonly router = inject(Router);\n private readonly commonsRouter = inject(CommonsRouterService);\n\n private readonly _menuItems = signal<InternalCommonsMenuItem[]>([]);\n public menuItems = this._menuItems.asReadonly();\n\n private readonly menuChangeSubject = new ReplaySubject<MenuChangeEvent>(1);\n menuChange$ = this.menuChangeSubject.asObservable();\n\n private routeLoadedChildrenSubscriptions: Subscription[] = [];\n\n setItems(menuItems: Array<CommonsMenuItem>) {\n this.routeLoadedChildrenSubscriptions.forEach(s => s.unsubscribe());\n this.routeLoadedChildrenSubscriptions = [];\n\n this._menuItems.set(prepareMenuItemsToInternal(menuItems));\n this.appendListenersToLazyChildren(this._menuItems());\n\n this.router.events\n .pipe(\n startWith(new NavigationEnd(0, this.router.url, this.router.url)),\n filter(event => event instanceof NavigationEnd),\n map(e => e as NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(e => this.findAndSetActiveMenuItem((e as NavigationEnd).urlAfterRedirects));\n }\n\n private appendListenersToLazyChildren(menuItems: InternalCommonsMenuItem[]) {\n menuItems.forEach(item => {\n if (item.lazyChildren()) {\n this.listenToMenuItemLazyChildrenLoad(item);\n } else if (item.items()) {\n this.appendListenersToLazyChildren(item.items());\n }\n });\n }\n\n private findAndSetActiveMenuItem(url: string) {\n const matches = this.findActiveRouteMatches(this.menuItems(), url);\n if (matches.length === 0) {\n this.reset();\n } else {\n const matchKey = matches[0][matches[0].length - 1].key;\n if (matchKey) {\n this.menuChangeSubject.next({\n key: matchKey,\n eventType: 'routeChange'\n });\n } else {\n this.logger.warn(`Found active menu item for url ${url}, but item key is not present`, matches);\n this.reset();\n }\n\n if (matches.length > 1) {\n this.logger.warn(`Multiple active menu items found for url ${url}`, matches);\n }\n }\n }\n\n private listenToMenuItemLazyChildrenLoad(menuItem: InternalCommonsMenuItem) {\n this.routeLoadedChildrenSubscriptions.push(\n this.commonsRouter\n .getRouteLoadedChildren$(menuItem.routerLink ?? '/')\n .pipe(take(1))\n .subscribe({\n next: routes => {\n const menuItemsFromRoutes = routes\n .filter(r => Array.isArray((r.data as CommonsRouteData | undefined)?.menuItems))\n .flatMap(r => (r.data as CommonsRouteData).menuItems!);\n const menuItems = adjustRouteMenuLazyChildrenRouterLinks(menuItem, menuItemsFromRoutes);\n\n menuItem.items.set(prepareMenuItemsToInternal(menuItems, menuItem.key));\n this.appendListenersToLazyChildren(menuItem.items());\n menuItem.itemsVisibility.set(menuItem.items()?.map(() => signal(true)));\n menuItem.lazyChildren.set(false);\n\n this.findAndSetActiveMenuItem(this.router.url);\n }\n })\n );\n }\n\n private findActiveRouteMatches(menuItems: Array<InternalCommonsMenuItem>, url: string): InternalCommonsMenuItem[][] {\n const matches: InternalCommonsMenuItem[][] = [];\n for (const menuItem of menuItems) {\n const children = menuItem.items();\n if (menuItem.routerLink) {\n const isActive = doesUrlMatchRouterLink(menuItem.routerLink, url);\n if (isActive) {\n if (Array.isArray(children)) {\n const itemsMatches = this.findActiveRouteMatches(children, url);\n if (itemsMatches.length > 0) {\n matches.push(...itemsMatches.map(c => [menuItem, ...c]));\n } else {\n matches.push([menuItem]);\n }\n } else {\n matches.push([menuItem]);\n }\n }\n } else if (Array.isArray(children)) {\n const itemsMatches = this.findActiveRouteMatches(children, url);\n if (itemsMatches.length > 0) {\n matches.push(...itemsMatches.map(c => [menuItem, ...c]));\n }\n }\n }\n return matches;\n }\n\n reset() {\n this.menuChangeSubject.next({\n eventType: 'reset'\n });\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable, inject} from '@angular/core';\n\nimport {Observable, ReplaySubject} from 'rxjs';\n\nimport {CommonsConfigurationService, LoggerService} from '@mediusinc/mng-commons/core';\n\n@Injectable()\nexport class VersionService {\n private readonly logger = inject(LoggerService).create('VersionService');\n private cache: {[key: string]: ReplaySubject<unknown>} = {};\n\n constructor(\n private http: HttpClient,\n private configurationService: CommonsConfigurationService\n ) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public loadVersion(path: string, baseConfigKey?: string, jsonPath = '$'): Observable<unknown> {\n const urlSegments = [];\n if (baseConfigKey) {\n const baseUrl = this.configurationService.getConfigValue(baseConfigKey);\n urlSegments.push(baseUrl.endsWith('/') ? baseUrl.substring(0, baseUrl.length - 1) : baseUrl);\n }\n if (path) {\n urlSegments.push(!path.startsWith('/') ? `/${path}` : path);\n }\n const url = urlSegments.join('');\n if (!this.cache[url]) {\n this.cache[url] = new ReplaySubject<unknown>(1);\n\n this.http.get(urlSegments.join('')).subscribe({\n next: res => {\n this.cache[url].next(res);\n },\n error: err => {\n this.logger.error('Version could not be retreived', err);\n }\n });\n }\n\n return this.cache[url].asObservable();\n }\n}\n","import {CommonsFeature, CommonsFeatureTypeEnum} from '@mediusinc/mng-commons/core';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutFeatureConfig} from './services/layout-feature-config.token';\nimport {LayoutService} from './services/layout.service';\nimport {MenuService} from './services/menu.service';\nimport {VersionService} from './services/version.service';\n\n/**\n * Prepares providers for usage of the layout functionalities.\n *\n * @returns {CommonsFeature} The `CommonsFeature` object with the layout configuration.\n */\nexport function withLayout(config?: LayoutFeatureConfig): CommonsFeature {\n return {\n type: CommonsFeatureTypeEnum.Layout,\n providers: [\n MenuService,\n VersionService,\n LayoutService,\n {\n provide: COMMONS_LAYOUT_FEATURE_CONFIG_IT,\n useValue: config\n }\n ]\n };\n}\n","// helpers\nexport * from './lib/helpers/menu-items';\n\n// models\nexport * from './lib/models/layout-state.model';\nexport * from './lib/models/menu.model';\n\n// services\nexport * from './lib/services/layout-feature-config.token';\nexport * from './lib/services/layout.service';\nexport * from './lib/services/menu.service';\nexport * from './lib/services/version.service';\n\n// provide\nexport * from './lib/provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-layout.mjs","sources":["../../src/lib/helpers/menu-items.ts","../../src/lib/services/layout-feature-config.token.ts","../../src/lib/services/layout.service.ts","../../src/lib/services/menu.service.ts","../../src/lib/services/version.service.ts","../../src/lib/provide.ts","../../src/index.ts","../../src/mediusinc-mng-commons-layout.ts"],"sourcesContent":["import {computed, signal} from '@angular/core';\n\nimport {CommonsMenuItem, InternalCommonsMenuItem} from '@mediusinc/mng-commons/core';\n\n/**\n * @internal\n */\nexport function prepareMenuItemsToInternal(menuItems: CommonsMenuItem[], parentKey = ''): InternalCommonsMenuItem[] {\n const newItems = menuItems.map((item, idx) => {\n const itemsProp = signal<InternalCommonsMenuItem[]>([]);\n const lazyChildrenProp = signal(item.lazyChildren ?? false);\n const hasItemsProp = computed(() => itemsProp().length > 0);\n const newItem: InternalCommonsMenuItem = {\n ...item,\n isVisible: item.isVisible,\n key: parentKey ? parentKey + '-' + idx : idx.toString(),\n config: item,\n items: itemsProp,\n lazyChildren: lazyChildrenProp,\n itemsVisibility: signal([]),\n hasItems: hasItemsProp,\n hasItemsOrLazyChildren: computed(() => lazyChildrenProp() || hasItemsProp())\n };\n\n if (Array.isArray(item.items) && item.items.length > 0) {\n newItem.items.set(prepareMenuItemsToInternal(item.items, newItem.key));\n newItem.itemsVisibility.set(newItem.items()?.map(() => signal(true)));\n }\n\n return newItem;\n });\n\n return newItems;\n}\n","import {InjectionToken, Type} from '@angular/core';\n\nimport {MenuItem} from 'primeng/api';\n\nexport type LayoutMenuMode = 'static' | 'overlay' | 'reveal' | 'drawer' | 'slim' | 'slim-plus';\n\nexport type ColorScheme = 'light' | 'dark' | 'auto';\n\n/**\n * Set of configurations for layout customization.\n */\nexport interface LayoutFeatureConfig {\n /**\n * Choose default menu mode.\n */\n menuMode?: LayoutMenuMode;\n /**\n * Sets available menu modes.\n */\n menuModes?: LayoutMenuMode[];\n /**\n * Predefines menu modes (instead of taking them from route data config).\n */\n menuItems?: MenuItem[];\n /**\n * Logo path (usually icon part only).\n */\n logoPath?: string | false;\n /**\n * Logo path for light color mode (usually icon part only).\n */\n logoPathLight?: string;\n /**\n * Logo path for dark color mode (usually icon part only).\n */\n logoPathDark?: string;\n /**\n * Logo path (usually name part only).\n */\n logoNamePath?: string | false;\n /**\n * Logo path for light color mode (usually name part only).\n */\n logoNamePathLight?: string;\n /**\n * Logo path for dark color mode (usually name part only).\n */\n logoNamePathDark?: string;\n /**\n * Default color scheme (defaults to 'auto').\n */\n colorScheme?: ColorScheme;\n /**\n * Enable ripple effect.\n */\n ripple?: boolean;\n /**\n * Disables wrapping layout in notification wrapper.\n */\n disableNotificationWrapper?: boolean;\n /**\n * Set custom components instead of default layout's one. If false provided for component, then it will not be displayed.\n */\n components?: {\n /**\n * Specify custom topbar component or disable (if false).\n */\n topbar?: Type<any> | false;\n /**\n * Specify custom menu component or disable (if false).\n */\n menu?: Type<any> | false;\n /**\n * Specify custom footer component or disable (if false).\n */\n footer?: Type<any> | false;\n /**\n * Specify custom breadcrumb component or disable (if false).\n */\n breadcrumb?: Type<any> | false;\n /**\n * Specify custom topbarUser component or disable (if false).\n */\n topbarUser?: Type<any> | false;\n /**\n * Specify custom version component or disable (if false).\n */\n version?: Type<any> | false;\n /**\n * Specify custom settings component or disable (if false).\n */\n settings?: Type<any> | false;\n };\n}\n\nexport const COMMONS_LAYOUT_FEATURE_CONFIG_IT = new InjectionToken<LayoutFeatureConfig>('COMMONS_LAYOUT_FEATURE_CONFIG');\n","import {DOCUMENT} from '@angular/common';\nimport {Injectable, PLATFORM_ID, afterNextRender, computed, effect, inject, signal} from '@angular/core';\n\nimport {Subject} from 'rxjs';\n\nimport {COMMONS_MODULE_CONFIG_IT, CommonsStorageService} from '@mediusinc/mng-commons/core';\n\nimport {LayoutState} from '../models/layout-state.model';\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, ColorScheme, LayoutMenuMode} from './layout-feature-config.token';\n\n@Injectable()\nexport class LayoutService {\n private readonly typeName = 'MainLayoutComponentService';\n private readonly storageMenuModeKey = 'menuMode';\n private readonly storageColorSchemeKey = 'colorScheme';\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly document = inject(DOCUMENT);\n private readonly commonsConfig = inject(COMMONS_MODULE_CONFIG_IT, {optional: true});\n private readonly config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, {optional: true});\n private readonly storageService = inject(CommonsStorageService);\n\n public state = signal<LayoutState>({\n staticMenuDesktopInactive: false,\n overlayMenuActive: false,\n rightMenuActive: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false,\n sidebarActive: false,\n anchored: false\n });\n\n private overlayOpen = new Subject<any>();\n public overlayOpen$ = this.overlayOpen.asObservable();\n\n // color scheme\n private _colorSchemeSetting = signal(this.getInitColorScheme());\n public colorSchemeSetting = this._colorSchemeSetting.asReadonly();\n private _colorScheme = signal<Exclude<ColorScheme, 'system'>>(this.getInitActualColorScheme(this.colorSchemeSetting()));\n public colorScheme = this._colorScheme.asReadonly();\n public colorSchemeIsLight = computed(() => this._colorScheme() === 'light');\n\n private getInitColorScheme(): ColorScheme {\n let colorScheme = this.storageService.getItem<ColorScheme>(this.typeName, this.storageColorSchemeKey);\n if (colorScheme == null || !(['dark', 'light', 'auto'] as ColorScheme[]).includes(colorScheme)) {\n colorScheme = this.getDefaultColorScheme();\n }\n return colorScheme;\n }\n\n private getInitActualColorScheme(colorScheme: ColorScheme): Exclude<ColorScheme, 'system'> {\n if (colorScheme === 'auto') {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n } else {\n return colorScheme;\n }\n }\n\n private getDefaultColorScheme(): ColorScheme {\n return this.config?.colorScheme ?? 'auto';\n }\n\n public setColorScheme(scheme: ColorScheme) {\n const defaultColorScheme = this.getDefaultColorScheme();\n if (scheme === defaultColorScheme) {\n this.storageService.removeItem(this.typeName, this.storageColorSchemeKey);\n } else {\n this.storageService.setItem(this.typeName, this.storageColorSchemeKey, scheme);\n }\n this._colorSchemeSetting.set(scheme);\n this._colorScheme.set(this.getInitActualColorScheme(scheme));\n }\n\n // menu mode\n public readonly menuModes: LayoutMenuMode[] = this.config?.menuModes ?? ['static', 'overlay', 'reveal', 'drawer', 'slim', 'slim-plus'];\n private _menuMode = signal(this.initMenuMode());\n public menuMode = this._menuMode.asReadonly();\n\n // logos\n private appLogoLight = signal(this.config?.logoPathLight ?? this.config?.logoPath ?? 'assets/layout/images/logo.png');\n private appLogoDark = signal(this.config?.logoPathLight ?? this.config?.logoPath ?? 'assets/layout/images/logo.png');\n public appLogo = computed(() => (this.colorSchemeIsLight() ? this.appLogoLight() : this.appLogoDark()));\n\n private appLogoNameLight = signal(this.config?.logoNamePathLight ?? this.config?.logoNamePath ?? 'assets/layout/images/logo-appname.png');\n private appLogoNameDark = signal(this.config?.logoNamePathDark ?? this.config?.logoNamePath ?? 'assets/layout/images/logo-appname.png');\n public appLogoName = computed(() => (this.colorSchemeIsLight() ? this.appLogoNameLight() : this.appLogoNameDark()));\n\n // overlays\n public isOverlay = computed(() => this.menuMode() === 'overlay');\n public isSlim = computed(() => this.menuMode() === 'slim');\n public isSlimPlus = computed(() => this.menuMode() === 'slim-plus');\n\n // used for managing the submenu dropdown overlay in slim and slim+ layouts\n public submenuOverlayKey = signal<string | undefined>(undefined);\n\n constructor() {\n afterNextRender(() => {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {\n if (this.colorSchemeSetting() === 'auto') {\n const newColorScheme = event.matches ? 'dark' : 'light';\n this._colorScheme.set(newColorScheme);\n }\n });\n });\n\n effect(() => {\n const colorScheme = this._colorScheme();\n const themeEl = document.documentElement;\n if (colorScheme === 'dark' && !themeEl.classList.contains('app-dark')) {\n themeEl.classList.add('app-dark');\n } else if (colorScheme === 'light' && themeEl.classList.contains('app-dark')) {\n themeEl.classList.remove('app-dark');\n }\n // TODO: check\n // const linkElement = this.document.getElementById('app-theme') as HTMLLinkElement | undefined;\n // if (colorScheme === 'dark' && linkElement?.href.includes('light')) {\n // linkElement.href = 'theme-dark.css';\n // } else if (colorScheme === 'light' && linkElement?.href.includes('dark')) {\n // linkElement.href = 'theme-light.css';\n // }\n });\n }\n\n onMenuModeChange(mode: LayoutMenuMode) {\n if (!this.menuModes.includes(mode)) {\n return;\n }\n if (mode === this.config?.menuMode) {\n this.storageService.removeItem(this.typeName, this.storageMenuModeKey);\n } else {\n this.storageService.setItem(this.typeName, this.storageMenuModeKey, mode);\n }\n this._menuMode.set(mode);\n }\n\n onMenuToggle() {\n if (this.isOverlay()) {\n this.state.update(state => ({\n ...state,\n overlayMenuActive: !state.overlayMenuActive\n }));\n\n if (this.state().overlayMenuActive) {\n this.overlayOpen.next(null);\n }\n }\n\n if (this.isDesktop()) {\n this.state.update(state => ({\n ...state,\n staticMenuDesktopInactive: !state.staticMenuDesktopInactive\n }));\n } else {\n this.state.update(state => ({\n ...state,\n staticMenuMobileActive: !state.staticMenuMobileActive\n }));\n\n if (this.state().staticMenuMobileActive) {\n this.overlayOpen.next(null);\n }\n }\n }\n\n onOverlaySubmenuOpen(key: string) {\n if (this.submenuOverlayKey() === key) {\n return;\n }\n\n this.submenuOverlayKey.set(key);\n this.overlayOpen.next(null);\n }\n\n onOverlaySubmenuClose() {\n this.submenuOverlayKey.set(undefined);\n }\n\n isDesktop() {\n return window.innerWidth > 991;\n }\n\n isMobile() {\n return !this.isDesktop();\n }\n\n private initMenuMode(): LayoutMenuMode {\n const lsMode = this.storageService.getItem<LayoutMenuMode>(this.typeName, this.storageMenuModeKey);\n if (lsMode && this.menuModes.includes(lsMode)) {\n return lsMode;\n }\n return this.config?.menuMode ?? 'static';\n }\n}\n","import {DestroyRef, Injectable, inject, signal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NavigationEnd, Router} from '@angular/router';\n\nimport {ReplaySubject, Subscription, startWith, take} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\n\nimport {\n CommonsMenuItem,\n CommonsRouteData,\n CommonsRouterService,\n InternalCommonsMenuItem,\n LoggerService,\n adjustRouteMenuLazyChildrenRouterLinks,\n doesUrlMatchRouterLink\n} from '@mediusinc/mng-commons/core';\n\nimport {prepareMenuItemsToInternal} from '../helpers/menu-items';\nimport {MenuChangeEvent} from '../models/menu.model';\n\n@Injectable()\nexport class MenuService {\n private readonly destroyRef = inject(DestroyRef);\n private readonly logger = LoggerService.create('MenuService');\n private readonly router = inject(Router);\n private readonly commonsRouter = inject(CommonsRouterService);\n\n private readonly _menuItems = signal<InternalCommonsMenuItem[]>([]);\n public menuItems = this._menuItems.asReadonly();\n\n private readonly menuChangeSubject = new ReplaySubject<MenuChangeEvent>(1);\n menuChange$ = this.menuChangeSubject.asObservable();\n\n private routeLoadedChildrenSubscriptions: Subscription[] = [];\n\n setItems(menuItems: Array<CommonsMenuItem>) {\n this.routeLoadedChildrenSubscriptions.forEach(s => s.unsubscribe());\n this.routeLoadedChildrenSubscriptions = [];\n\n this._menuItems.set(prepareMenuItemsToInternal(menuItems));\n this.appendListenersToLazyChildren(this._menuItems());\n\n this.router.events\n .pipe(\n startWith(new NavigationEnd(0, this.router.url, this.router.url)),\n filter(event => event instanceof NavigationEnd),\n map(e => e as NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(e => this.findAndSetActiveMenuItem((e as NavigationEnd).urlAfterRedirects));\n }\n\n private appendListenersToLazyChildren(menuItems: InternalCommonsMenuItem[]) {\n menuItems.forEach(item => {\n if (item.lazyChildren()) {\n this.listenToMenuItemLazyChildrenLoad(item);\n } else if (item.items()) {\n this.appendListenersToLazyChildren(item.items());\n }\n });\n }\n\n private findAndSetActiveMenuItem(url: string) {\n const matches = this.findActiveRouteMatches(this.menuItems(), url);\n if (matches.length === 0) {\n this.reset();\n } else {\n const matchKey = matches[0][matches[0].length - 1].key;\n if (matchKey) {\n this.menuChangeSubject.next({\n key: matchKey,\n eventType: 'routeChange'\n });\n } else {\n this.logger.warn(`Found active menu item for url ${url}, but item key is not present`, matches);\n this.reset();\n }\n\n if (matches.length > 1) {\n this.logger.warn(`Multiple active menu items found for url ${url}`, matches);\n }\n }\n }\n\n private listenToMenuItemLazyChildrenLoad(menuItem: InternalCommonsMenuItem) {\n this.routeLoadedChildrenSubscriptions.push(\n this.commonsRouter\n .getRouteLoadedChildren$(menuItem.routerLink ?? '/')\n .pipe(take(1))\n .subscribe({\n next: routes => {\n const menuItemsFromRoutes = routes\n .filter(r => Array.isArray((r.data as CommonsRouteData | undefined)?.menuItems))\n .flatMap(r => (r.data as CommonsRouteData).menuItems!);\n const menuItems = adjustRouteMenuLazyChildrenRouterLinks(menuItem, menuItemsFromRoutes);\n\n menuItem.items.set(prepareMenuItemsToInternal(menuItems, menuItem.key));\n this.appendListenersToLazyChildren(menuItem.items());\n menuItem.itemsVisibility.set(menuItem.items()?.map(() => signal(true)));\n menuItem.lazyChildren.set(false);\n\n this.findAndSetActiveMenuItem(this.router.url);\n }\n })\n );\n }\n\n private findActiveRouteMatches(menuItems: Array<InternalCommonsMenuItem>, url: string): InternalCommonsMenuItem[][] {\n const matches: InternalCommonsMenuItem[][] = [];\n for (const menuItem of menuItems) {\n const children = menuItem.items();\n if (menuItem.routerLink) {\n const isActive = doesUrlMatchRouterLink(menuItem.routerLink, url);\n if (isActive) {\n if (Array.isArray(children)) {\n const itemsMatches = this.findActiveRouteMatches(children, url);\n if (itemsMatches.length > 0) {\n matches.push(...itemsMatches.map(c => [menuItem, ...c]));\n } else {\n matches.push([menuItem]);\n }\n } else {\n matches.push([menuItem]);\n }\n }\n } else if (Array.isArray(children)) {\n const itemsMatches = this.findActiveRouteMatches(children, url);\n if (itemsMatches.length > 0) {\n matches.push(...itemsMatches.map(c => [menuItem, ...c]));\n }\n }\n }\n return matches;\n }\n\n reset() {\n this.menuChangeSubject.next({\n eventType: 'reset'\n });\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable, inject} from '@angular/core';\n\nimport {Observable, ReplaySubject} from 'rxjs';\n\nimport {CommonsConfigurationService, LoggerService} from '@mediusinc/mng-commons/core';\n\n@Injectable()\nexport class VersionService {\n private readonly logger = inject(LoggerService).create('VersionService');\n private cache: {[key: string]: ReplaySubject<unknown>} = {};\n\n constructor(\n private http: HttpClient,\n private configurationService: CommonsConfigurationService\n ) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public loadVersion(path: string, baseConfigKey?: string, jsonPath = '$'): Observable<unknown> {\n const urlSegments = [];\n if (baseConfigKey) {\n const baseUrl = this.configurationService.getConfigValue(baseConfigKey);\n urlSegments.push(baseUrl.endsWith('/') ? baseUrl.substring(0, baseUrl.length - 1) : baseUrl);\n }\n if (path) {\n urlSegments.push(!path.startsWith('/') ? `/${path}` : path);\n }\n const url = urlSegments.join('');\n if (!this.cache[url]) {\n this.cache[url] = new ReplaySubject<unknown>(1);\n\n this.http.get(urlSegments.join('')).subscribe({\n next: res => {\n this.cache[url].next(res);\n },\n error: err => {\n this.logger.error('Version could not be retreived', err);\n }\n });\n }\n\n return this.cache[url].asObservable();\n }\n}\n","import {CommonsFeature, CommonsFeatureTypeEnum} from '@mediusinc/mng-commons/core';\n\nimport {COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutFeatureConfig} from './services/layout-feature-config.token';\nimport {LayoutService} from './services/layout.service';\nimport {MenuService} from './services/menu.service';\nimport {VersionService} from './services/version.service';\n\n/**\n * Prepares providers for usage of the layout functionalities.\n *\n * @returns {CommonsFeature} The `CommonsFeature` object with the layout configuration.\n */\nexport function withLayout(config?: LayoutFeatureConfig): CommonsFeature {\n return {\n type: CommonsFeatureTypeEnum.Layout,\n providers: [\n MenuService,\n VersionService,\n LayoutService,\n {\n provide: COMMONS_LAYOUT_FEATURE_CONFIG_IT,\n useValue: config\n }\n ]\n };\n}\n","// helpers\nexport * from './lib/helpers/menu-items';\n\n// models\nexport * from './lib/models/layout-state.model';\nexport * from './lib/models/menu.model';\n\n// services\nexport * from './lib/services/layout-feature-config.token';\nexport * from './lib/services/layout.service';\nexport * from './lib/services/menu.service';\nexport * from './lib/services/version.service';\n\n// provide\nexport * from './lib/provide';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons-layout",
|
|
3
|
-
"version": "6.0.0-rc.
|
|
3
|
+
"version": "6.0.0-rc.7",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/animations": "^
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
8
|
-
"@angular/forms": "^
|
|
9
|
-
"@angular/platform-browser": "^
|
|
10
|
-
"@angular/router": "^
|
|
11
|
-
"@ngx-translate/core": "^
|
|
12
|
-
"primeng": "
|
|
13
|
-
"
|
|
5
|
+
"@angular/animations": "^19.0.0",
|
|
6
|
+
"@angular/common": "^19.0.0",
|
|
7
|
+
"@angular/core": "^19.0.0",
|
|
8
|
+
"@angular/forms": "^19.0.0",
|
|
9
|
+
"@angular/platform-browser": "^19.0.0",
|
|
10
|
+
"@angular/router": "^19.0.0",
|
|
11
|
+
"@ngx-translate/core": "^16.0.4",
|
|
12
|
+
"primeng": "~19.0.9",
|
|
13
|
+
"tailwindcss": "^3.4.0",
|
|
14
|
+
"@primeng/themes": "~19.0.9",
|
|
15
|
+
"@mediusinc/mng-commons": "~6.0.0-rc.7"
|
|
14
16
|
},
|
|
15
17
|
"dependencies": {
|
|
16
18
|
"tslib": "^2.8.1"
|
|
@@ -27,38 +29,26 @@
|
|
|
27
29
|
},
|
|
28
30
|
".": {
|
|
29
31
|
"types": "./index.d.ts",
|
|
30
|
-
"esm2022": "./esm2022/mediusinc-mng-commons-layout.mjs",
|
|
31
|
-
"esm": "./esm2022/mediusinc-mng-commons-layout.mjs",
|
|
32
32
|
"default": "./fesm2022/mediusinc-mng-commons-layout.mjs"
|
|
33
33
|
},
|
|
34
34
|
"./components": {
|
|
35
35
|
"types": "./components/index.d.ts",
|
|
36
|
-
"esm2022": "./esm2022/components/mediusinc-mng-commons-layout-components.mjs",
|
|
37
|
-
"esm": "./esm2022/components/mediusinc-mng-commons-layout-components.mjs",
|
|
38
36
|
"default": "./fesm2022/mediusinc-mng-commons-layout-components.mjs"
|
|
39
37
|
},
|
|
40
38
|
"./components/pages/error": {
|
|
41
39
|
"types": "./components/pages/error/index.d.ts",
|
|
42
|
-
"esm2022": "./esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs",
|
|
43
|
-
"esm": "./esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs",
|
|
44
40
|
"default": "./fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs"
|
|
45
41
|
},
|
|
46
42
|
"./components/pages/main": {
|
|
47
43
|
"types": "./components/pages/main/index.d.ts",
|
|
48
|
-
"esm2022": "./esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs",
|
|
49
|
-
"esm": "./esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs",
|
|
50
44
|
"default": "./fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs"
|
|
51
45
|
},
|
|
52
46
|
"./components/pages/not-found": {
|
|
53
47
|
"types": "./components/pages/not-found/index.d.ts",
|
|
54
|
-
"esm2022": "./esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs",
|
|
55
|
-
"esm": "./esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs",
|
|
56
48
|
"default": "./fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs"
|
|
57
49
|
},
|
|
58
50
|
"./components/pages/main/lazy": {
|
|
59
51
|
"types": "./components/pages/main/lazy/index.d.ts",
|
|
60
|
-
"esm2022": "./esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs",
|
|
61
|
-
"esm": "./esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs",
|
|
62
52
|
"default": "./fesm2022/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs"
|
|
63
53
|
}
|
|
64
54
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@use './layout/layout';
|
|
@@ -13,17 +13,18 @@
|
|
|
13
13
|
font-weight: 600;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
|
|
16
17
|
.breadcrumb-menu {
|
|
17
18
|
margin: 0;
|
|
18
19
|
padding: 0 1.15rem 0 0.85rem;
|
|
19
20
|
padding-right: 0;
|
|
20
21
|
list-style: none;
|
|
21
22
|
flex-grow: 1;
|
|
22
|
-
color: var(--topbar-item-text-color);
|
|
23
23
|
margin-right: -2rem;
|
|
24
24
|
|
|
25
25
|
li {
|
|
26
26
|
margin-left: 1.5rem;
|
|
27
|
+
|
|
27
28
|
.breadcrumb-search {
|
|
28
29
|
display: flex;
|
|
29
30
|
align-items: center;
|
|
@@ -41,9 +42,9 @@
|
|
|
41
42
|
width: 0;
|
|
42
43
|
opacity: 0;
|
|
43
44
|
visibility: hidden;
|
|
44
|
-
transition:
|
|
45
|
+
transition: var(--layout-section-transition-duration);
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
> div {
|
|
47
48
|
width: 100%;
|
|
48
49
|
|
|
49
50
|
.p-inputtext {
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
padding: 9px;
|
|
54
55
|
}
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
span {
|
|
57
58
|
font-size: 18px;
|
|
58
59
|
margin-top: -9px;
|
|
59
60
|
margin-right: 9px;
|
|
@@ -74,15 +75,17 @@
|
|
|
74
75
|
opacity: 1;
|
|
75
76
|
visibility: visible;
|
|
76
77
|
border-radius: var(--border-radius);
|
|
77
|
-
|
|
78
|
+
transition: var(--layout-section-transition-duration);
|
|
79
|
+
|
|
80
|
+
span {
|
|
78
81
|
display: block;
|
|
82
|
+
z-index: 2;
|
|
79
83
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
84
|
+
|
|
85
|
+
.p-inputtext {
|
|
86
|
+
border-radius: var(--border-radius);
|
|
87
|
+
width: 100%;
|
|
88
|
+
background: var(--surface-ground);
|
|
86
89
|
}
|
|
87
90
|
}
|
|
88
91
|
}
|
package/scss/layout/_config.scss
CHANGED
|
@@ -20,6 +20,17 @@
|
|
|
20
20
|
z-index: 999;
|
|
21
21
|
box-shadow: -0.25rem 0 1rem rgba(0, 0, 0, 0.15);
|
|
22
22
|
|
|
23
|
+
&.config-link {
|
|
24
|
+
font-size: 1rem;
|
|
25
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
26
|
+
border: none;
|
|
27
|
+
}
|
|
28
|
+
.config-link:focus {
|
|
29
|
+
outline: 0 none;
|
|
30
|
+
outline-offset: 0;
|
|
31
|
+
box-shadow: 0 0 0 1px var(--focus-ring--shadow);
|
|
32
|
+
}
|
|
33
|
+
|
|
23
34
|
i {
|
|
24
35
|
font-size: 2rem;
|
|
25
36
|
line-height: inherit;
|
|
@@ -28,15 +39,72 @@
|
|
|
28
39
|
}
|
|
29
40
|
|
|
30
41
|
&:hover {
|
|
31
|
-
background: var(--primary-400);
|
|
42
|
+
background: var(--p-primary-400);
|
|
32
43
|
}
|
|
33
44
|
}
|
|
34
45
|
|
|
35
|
-
.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
.app-config-mobile-button {
|
|
47
|
+
display: none;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.app-config-button {
|
|
51
|
+
border: 1px solid var(--border-color);
|
|
52
|
+
background-color: var(--card-background);
|
|
53
|
+
position: relative;
|
|
54
|
+
z-index: 0;
|
|
55
|
+
border-radius: 50%;
|
|
56
|
+
width: 2.5rem;
|
|
57
|
+
height: 2.5rem;
|
|
58
|
+
line-height: 2.5rem;
|
|
59
|
+
text-align: center;
|
|
60
|
+
|
|
61
|
+
i {
|
|
62
|
+
line-height: inherit;
|
|
63
|
+
font-size: 1.125rem;
|
|
64
|
+
}
|
|
65
|
+
&::before,
|
|
66
|
+
&::after {
|
|
67
|
+
content: '';
|
|
68
|
+
position: absolute;
|
|
69
|
+
inset: 0;
|
|
70
|
+
border: 1px solid var(--topbar-item-text-color);
|
|
71
|
+
transition: all 0.5s;
|
|
72
|
+
animation: clippath 10s infinite linear;
|
|
73
|
+
border-radius: 50%;
|
|
74
|
+
opacity: 1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&::after {
|
|
78
|
+
animation: clippath 10s infinite -5s linear;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@keyframes clippath {
|
|
83
|
+
0% {
|
|
84
|
+
clip-path: inset(0 0 98% 0);
|
|
85
|
+
}
|
|
86
|
+
12.5% {
|
|
87
|
+
clip-path: inset(0 0 60% 0);
|
|
88
|
+
}
|
|
89
|
+
25% {
|
|
90
|
+
clip-path: inset(0 98% 0 0);
|
|
91
|
+
}
|
|
92
|
+
37.5% {
|
|
93
|
+
clip-path: inset(0 60% 0 0);
|
|
94
|
+
}
|
|
95
|
+
50% {
|
|
96
|
+
clip-path: inset(98% 0 0 0);
|
|
97
|
+
}
|
|
98
|
+
62.5% {
|
|
99
|
+
clip-path: inset(60% 0 0 0);
|
|
100
|
+
}
|
|
101
|
+
75% {
|
|
102
|
+
clip-path: inset(0 0 0 98%);
|
|
103
|
+
}
|
|
104
|
+
87.5% {
|
|
105
|
+
clip-path: inset(0 0 0 60%);
|
|
106
|
+
}
|
|
107
|
+
100% {
|
|
108
|
+
clip-path: inset(0 0 98% 0);
|
|
41
109
|
}
|
|
42
110
|
}
|
package/scss/layout/_main.scss
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
html {
|
|
6
6
|
height: 100%;
|
|
7
|
-
font-size:
|
|
7
|
+
font-size: 14px;
|
|
8
|
+
line-height: 1.5;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
body {
|
|
@@ -13,7 +14,10 @@ body {
|
|
|
13
14
|
margin: 0;
|
|
14
15
|
min-height: 100%;
|
|
15
16
|
color: var(--text-color);
|
|
16
|
-
font-family: var
|
|
17
|
+
font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
18
|
+
font-feature-settings: "cv02","cv03","cv04","cv11";
|
|
19
|
+
line-height: 1.4;
|
|
20
|
+
font-variation-settings: normal;
|
|
17
21
|
-webkit-font-smoothing: antialiased;
|
|
18
22
|
-moz-osx-font-smoothing: grayscale;
|
|
19
23
|
}
|
|
@@ -37,18 +41,12 @@ a {
|
|
|
37
41
|
left: 0;
|
|
38
42
|
background-image: var(--body-image);
|
|
39
43
|
background-repeat: no-repeat;
|
|
44
|
+
z-index: 0;
|
|
40
45
|
}
|
|
41
46
|
|
|
42
47
|
.layout-content-wrapper {
|
|
43
|
-
display: flex;
|
|
44
|
-
flex-direction: column;
|
|
45
48
|
position: relative;
|
|
46
|
-
min-height: 100vh;
|
|
47
49
|
z-index: 1;
|
|
48
50
|
overflow-x: hidden;
|
|
49
|
-
|
|
50
|
-
.layout-content {
|
|
51
|
-
flex-grow: 1;
|
|
52
|
-
}
|
|
53
51
|
}
|
|
54
52
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use './_sass_variables' as *;
|
|
2
|
+
|
|
1
3
|
@media screen and (min-width: $breakpoint) {
|
|
2
4
|
.layout-container {
|
|
3
5
|
&.layout-static {
|
|
@@ -53,7 +55,7 @@
|
|
|
53
55
|
|
|
54
56
|
.layout-topbar {
|
|
55
57
|
.topbar-menu {
|
|
56
|
-
margin-right:
|
|
58
|
+
margin-right: 0rem !important;
|
|
57
59
|
}
|
|
58
60
|
.right-panel-button {
|
|
59
61
|
position: absolute !important;
|
|
@@ -120,7 +122,7 @@
|
|
|
120
122
|
margin-left: auto !important;
|
|
121
123
|
margin-right: auto !important;
|
|
122
124
|
.topbar-menu {
|
|
123
|
-
margin-right:
|
|
125
|
+
margin-right: 0rem !important;
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
.right-panel-button {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
$breakpoint: 992px !default;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use './_sass_variables' as *;
|
|
2
|
+
|
|
1
3
|
@media screen and (min-width: $breakpoint) {
|
|
2
4
|
.layout-container {
|
|
3
5
|
&.layout-drawer {
|
|
@@ -51,14 +53,13 @@
|
|
|
51
53
|
|
|
52
54
|
.layout-sidebar-anchor {
|
|
53
55
|
display: none;
|
|
56
|
+
flex-shrink: 0;
|
|
54
57
|
width: 1.25rem;
|
|
55
58
|
height: 1.25rem;
|
|
56
59
|
border-radius: 50%;
|
|
57
60
|
border: 2px solid var(--primary-color);
|
|
58
61
|
background-color: transparent;
|
|
59
|
-
transition:
|
|
60
|
-
background-color var(--transition-duration),
|
|
61
|
-
transform 0.3s;
|
|
62
|
+
transition: background-color var(--layout-section-transition-duration), transform 0.3s;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
|
|
@@ -141,11 +142,11 @@
|
|
|
141
142
|
width: 100%;
|
|
142
143
|
max-width: none;
|
|
143
144
|
img {
|
|
144
|
-
&:first-child
|
|
145
|
+
&:first-child{
|
|
145
146
|
width: 32px;
|
|
146
147
|
max-width: none;
|
|
147
148
|
}
|
|
148
|
-
&:last-child
|
|
149
|
+
&:last-child{
|
|
149
150
|
width: 142px;
|
|
150
151
|
max-width: none;
|
|
151
152
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use './_sass_variables' as *;
|
|
2
|
+
|
|
1
3
|
@media screen and (min-width: $breakpoint) {
|
|
2
4
|
.layout-container {
|
|
3
5
|
&.layout-horizontal {
|
|
@@ -5,10 +7,10 @@
|
|
|
5
7
|
.topbar-menubutton {
|
|
6
8
|
display: none;
|
|
7
9
|
}
|
|
8
|
-
.layout-topbar-menu-section
|
|
10
|
+
.layout-topbar-menu-section{
|
|
9
11
|
width: calc(100% - 320px);
|
|
10
12
|
}
|
|
11
|
-
.topbar-breadcrumb
|
|
13
|
+
.topbar-breadcrumb{
|
|
12
14
|
display: none;
|
|
13
15
|
}
|
|
14
16
|
}
|
|
@@ -30,7 +32,7 @@
|
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
.sidebar-header
|
|
35
|
+
.sidebar-header{
|
|
34
36
|
padding: 0;
|
|
35
37
|
.app-logo {
|
|
36
38
|
.app-logo-normal {
|
|
@@ -42,6 +44,7 @@
|
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
}
|
|
47
|
+
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
.layout-menu {
|
|
@@ -52,9 +55,9 @@
|
|
|
52
55
|
height: 100%;
|
|
53
56
|
padding: 0 1rem;
|
|
54
57
|
> li {
|
|
55
|
-
margin-bottom:
|
|
58
|
+
margin-bottom: 0rem;
|
|
56
59
|
&:first-child {
|
|
57
|
-
margin-top:
|
|
60
|
+
margin-top: 0rem;
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
ul {
|
|
@@ -71,13 +74,13 @@
|
|
|
71
74
|
> a {
|
|
72
75
|
display: flex;
|
|
73
76
|
align-items: center;
|
|
74
|
-
padding:
|
|
77
|
+
padding: .75rem;
|
|
75
78
|
border-radius: 6px;
|
|
76
79
|
border: none;
|
|
77
80
|
cursor: pointer;
|
|
78
81
|
outline: none;
|
|
79
82
|
color: var(--text-color);
|
|
80
|
-
transition: background-color var(--transition-duration);
|
|
83
|
+
transition: background-color var(--layout-section-transition-duration);
|
|
81
84
|
|
|
82
85
|
.layout-submenu-toggler {
|
|
83
86
|
display: block;
|
|
@@ -92,8 +95,8 @@
|
|
|
92
95
|
.layout-menuitem-text {
|
|
93
96
|
font-size: 0.875rem;
|
|
94
97
|
display: block;
|
|
95
|
-
margin-left:
|
|
96
|
-
margin-right:
|
|
98
|
+
margin-left: .75rem;
|
|
99
|
+
margin-right: .75rem;
|
|
97
100
|
white-space: nowrap;
|
|
98
101
|
}
|
|
99
102
|
|
|
@@ -109,17 +112,18 @@
|
|
|
109
112
|
min-width: 15rem;
|
|
110
113
|
background: var(--surface-overlay);
|
|
111
114
|
box-shadow: var(--sidebar-shadow);
|
|
112
|
-
padding:
|
|
115
|
+
padding: .8rem;
|
|
113
116
|
border-radius: var(--border-radius);
|
|
114
117
|
max-height: 20rem;
|
|
115
118
|
overflow: auto;
|
|
116
119
|
z-index: 999;
|
|
117
120
|
|
|
118
121
|
a {
|
|
119
|
-
padding-right:
|
|
122
|
+
padding-right: .5rem;
|
|
120
123
|
color: var(--text-color);
|
|
121
124
|
border-radius: var(--border-radius);
|
|
122
125
|
|
|
126
|
+
|
|
123
127
|
&:hover {
|
|
124
128
|
background-color: var(--root-menu-item-hover-bg);
|
|
125
129
|
}
|