@mediusinc/mng-commons-layout 5.3.0-rc.0 → 5.3.0-rc.2

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 (41) hide show
  1. package/esm2022/index.mjs +4 -2
  2. package/esm2022/lib/components/footer.component.mjs +5 -3
  3. package/esm2022/lib/components/main-layout.component.mjs +11 -12
  4. package/esm2022/lib/components/menu-item.component.mjs +13 -13
  5. package/esm2022/lib/components/menu.component.mjs +4 -4
  6. package/esm2022/lib/components/pages/error/error.page.component.mjs +20 -0
  7. package/esm2022/lib/components/pages/not-found/not-found.page.component.mjs +20 -0
  8. package/esm2022/lib/components/settings.component.mjs +46 -8
  9. package/esm2022/lib/components/sidebar.component.mjs +11 -12
  10. package/esm2022/lib/components/topbar-user.component.mjs +11 -5
  11. package/esm2022/lib/components/topbar.component.mjs +4 -4
  12. package/esm2022/lib/helpers/menu-items.mjs +2 -2
  13. package/esm2022/lib/provide.mjs +3 -1
  14. package/esm2022/lib/services/layout-feature-config.token.mjs +1 -1
  15. package/esm2022/lib/services/layout.service.mjs +166 -0
  16. package/esm2022/lib/services/menu.service.mjs +2 -2
  17. package/fesm2022/mediusinc-mng-commons-layout.mjs +284 -143
  18. package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
  19. package/index.d.ts +3 -1
  20. package/lib/components/footer.component.d.ts +2 -0
  21. package/lib/components/main-layout.component.d.ts +2 -4
  22. package/lib/components/menu-item.component.d.ts +1 -1
  23. package/lib/components/menu.component.d.ts +1 -1
  24. package/lib/components/pages/error/error.page.component.d.ts +7 -0
  25. package/lib/components/pages/not-found/not-found.page.component.d.ts +7 -0
  26. package/lib/components/settings.component.d.ts +11 -3
  27. package/lib/components/sidebar.component.d.ts +2 -4
  28. package/lib/components/topbar-user.component.d.ts +2 -0
  29. package/lib/components/topbar.component.d.ts +2 -2
  30. package/lib/services/layout-feature-config.token.d.ts +72 -0
  31. package/lib/services/layout.service.d.ts +46 -0
  32. package/package.json +2 -2
  33. package/scss/theme/theme-base/_components.scss +2 -2
  34. package/scss/theme/theme-base/mng/_mng_theme_datatable.scss +4 -0
  35. package/scss/theme/theme-base/mng/_mng_theme_input.scss +5 -0
  36. package/scss/theme/theme-base/mng/_mng_theme_styles.scss +1 -0
  37. package/scss/theme/theme-base/mng/_mng_theme_tableview.scss +4 -0
  38. package/scss/theme/theme-base/mng/_mng_theme_tag.scss +11 -0
  39. package/version-info.json +5 -5
  40. package/esm2022/lib/services/main-layout.component.service.mjs +0 -91
  41. package/lib/services/main-layout.component.service.d.ts +0 -26
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class MenuItemComponent {
5
5
  private readonly menuService;
6
6
  private readonly permissionService;
7
- private readonly layoutService;
7
+ private readonly layout;
8
8
  item: import("@angular/core").InputSignal<InternalCommonsMenuItem>;
9
9
  root: import("@angular/core").InputSignal<boolean>;
10
10
  visibleChange: import("@angular/core").OutputEmitterRef<boolean>;
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  export declare class MenuComponent {
4
4
  private readonly route;
5
5
  private readonly config;
6
- private readonly layoutService;
6
+ private readonly layout;
7
7
  readonly menuService: MenuService;
8
8
  routeData: import("@angular/core").Signal<import("@angular/router").Data | undefined>;
9
9
  constructor();
@@ -0,0 +1,7 @@
1
+ import { LayoutService } from '../../../services/layout.service';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ErrorPageComponent {
4
+ readonly layout: LayoutService;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ErrorPageComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ErrorPageComponent, "mng-error-page", never, {}, {}, never, never, true, never>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { LayoutService } from '../../../services/layout.service';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NotFoundPageComponent {
4
+ readonly layout: LayoutService;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NotFoundPageComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<NotFoundPageComponent, "mng-not-found-page", never, {}, {}, never, never, true, never>;
7
+ }
@@ -1,22 +1,30 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import { TranslateService } from '@ngx-translate/core';
3
- import { CommonsService } from '@mediusinc/mng-commons/core';
3
+ import { ColorScheme, CommonsService } from '@mediusinc/mng-commons/core';
4
4
  import { LayoutMenuMode } from '../services/layout-feature-config.token';
5
- import { MainLayoutComponentService } from '../services/main-layout.component.service';
5
+ import { LayoutService } from '../services/layout.service';
6
6
  import * as i0 from "@angular/core";
7
+ interface ColorSchemeOption {
8
+ value: ColorScheme;
9
+ label: string;
10
+ }
7
11
  export declare class SettingsComponent {
12
+ private readonly document;
8
13
  private readonly dynamicDialogConfig;
9
14
  private readonly dynamicDialogRef;
10
15
  readonly injector: Injector;
11
16
  readonly translate: TranslateService;
12
17
  readonly commons: CommonsService;
13
- readonly layoutService: MainLayoutComponentService;
18
+ readonly layout: LayoutService;
14
19
  readonly menuModes: LayoutMenuMode[];
20
+ colorSchemeOptions: import("@angular/core").WritableSignal<ColorSchemeOption[]>;
15
21
  constructor();
16
22
  switchLocale(language: string): void;
17
23
  switchDataLocale(language: string): void;
18
24
  onMenuModeChange(mode: LayoutMenuMode): void;
25
+ onColorSchemeChange(scheme: ColorScheme): void;
19
26
  closeDialog(): void;
20
27
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
21
28
  static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "mng-settings", never, {}, {}, never, never, true, never>;
22
29
  }
30
+ export {};
@@ -1,11 +1,9 @@
1
1
  import { ElementRef, Type } from '@angular/core';
2
- import { CommonsService } from '@mediusinc/mng-commons/core';
3
- import { MainLayoutComponentService } from '../services/main-layout.component.service';
2
+ import { LayoutService } from '../services/layout.service';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class SidebarComponent {
6
5
  private readonly config;
7
- readonly commons: CommonsService;
8
- readonly layoutService: MainLayoutComponentService;
6
+ readonly layout: LayoutService;
9
7
  readonly el: ElementRef<any>;
10
8
  menuComponent: import("@angular/core").WritableSignal<Type<any> | undefined>;
11
9
  private timeout;
@@ -5,8 +5,10 @@ export declare class TopbarUserComponent {
5
5
  private readonly dialogService;
6
6
  private readonly commons;
7
7
  hrefJsVoid: import("@angular/platform-browser").SafeUrl;
8
+ private readonly config;
8
9
  user: import("@angular/core").Signal<IUser | undefined>;
9
10
  userRoles: import("@angular/core").Signal<string[]>;
11
+ settingsDisabled: import("@angular/core").WritableSignal<boolean>;
10
12
  logout(user: IUser | undefined, event: Event): void;
11
13
  openSettings(): void;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<TopbarUserComponent, never>;
@@ -1,11 +1,11 @@
1
1
  import { ElementRef, Type } from '@angular/core';
2
2
  import { CommonsService } from '@mediusinc/mng-commons/core';
3
- import { MainLayoutComponentService } from '../services/main-layout.component.service';
3
+ import { LayoutService } from '../services/layout.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class TopbarComponent {
6
6
  readonly el: ElementRef<any>;
7
7
  readonly commons: CommonsService;
8
- readonly mainLayoutService: MainLayoutComponentService;
8
+ readonly layout: LayoutService;
9
9
  private readonly config;
10
10
  topbarUserComponent: import("@angular/core").WritableSignal<Type<any> | undefined>;
11
11
  breadcrumbComponent: import("@angular/core").WritableSignal<Type<any> | undefined>;
@@ -1,19 +1,91 @@
1
1
  import { InjectionToken, Type } from '@angular/core';
2
2
  import { MenuItem } from 'primeng/api';
3
3
  export type LayoutMenuMode = 'static' | 'overlay' | 'reveal' | 'drawer' | 'slim' | 'slim-plus';
4
+ export type ColorScheme = 'light' | 'dark' | 'auto';
5
+ /**
6
+ * Set of configurations for layout customization.
7
+ */
4
8
  export interface LayoutFeatureConfig {
9
+ /**
10
+ * Choose default menu mode.
11
+ */
5
12
  menuMode?: LayoutMenuMode;
13
+ /**
14
+ * Sets available menu modes.
15
+ */
6
16
  menuModes?: LayoutMenuMode[];
17
+ /**
18
+ * Predefines menu modes (instead of taking them from route data config).
19
+ */
7
20
  menuItems?: MenuItem[];
21
+ /**
22
+ * Logo path (usually icon part only).
23
+ */
24
+ logoPath?: string;
25
+ /**
26
+ * Logo path for light color mode (usually icon part only).
27
+ */
28
+ logoPathLight?: string;
29
+ /**
30
+ * Logo path for dark color mode (usually icon part only).
31
+ */
32
+ logoPathDark?: string;
33
+ /**
34
+ * Logo path (usually name part only).
35
+ */
36
+ logoNamePath?: string;
37
+ /**
38
+ * Logo path for light color mode (usually name part only).
39
+ */
40
+ logoNamePathLight?: string;
41
+ /**
42
+ * Logo path for dark color mode (usually name part only).
43
+ */
44
+ logoNamePathDark?: string;
45
+ /**
46
+ * Default color scheme (defaults to 'auto').
47
+ */
48
+ colorScheme?: ColorScheme;
49
+ /**
50
+ * Enable ripple effect.
51
+ */
8
52
  ripple?: boolean;
53
+ /**
54
+ * Disables wrapping layout in notification wrapper.
55
+ */
9
56
  disableNotificationWrapper?: boolean;
57
+ /**
58
+ * Set custom components instead of default layout's one. If false provided for component, then it will not be displayed.
59
+ */
10
60
  components?: {
61
+ /**
62
+ * Specify custom topbar component or disable (if false).
63
+ */
11
64
  topbar?: Type<any> | false;
65
+ /**
66
+ * Specify custom menu component or disable (if false).
67
+ */
12
68
  menu?: Type<any> | false;
69
+ /**
70
+ * Specify custom footer component or disable (if false).
71
+ */
13
72
  footer?: Type<any> | false;
73
+ /**
74
+ * Specify custom breadcrumb component or disable (if false).
75
+ */
14
76
  breadcrumb?: Type<any> | false;
77
+ /**
78
+ * Specify custom topbarUser component or disable (if false).
79
+ */
15
80
  topbarUser?: Type<any> | false;
81
+ /**
82
+ * Specify custom version component or disable (if false).
83
+ */
16
84
  version?: Type<any> | false;
85
+ /**
86
+ * Specify custom settings component or disable (if false).
87
+ */
88
+ settings?: Type<any> | false;
17
89
  };
18
90
  }
19
91
  export declare const COMMONS_LAYOUT_FEATURE_CONFIG_IT: InjectionToken<LayoutFeatureConfig>;
@@ -0,0 +1,46 @@
1
+ import { LayoutState } from '../models/layout-state.model';
2
+ import { ColorScheme, LayoutMenuMode } from './layout-feature-config.token';
3
+ import * as i0 from "@angular/core";
4
+ export declare class LayoutService {
5
+ private readonly typeName;
6
+ private readonly storageMenuModeKey;
7
+ private readonly storageColorSchemeKey;
8
+ private readonly platformId;
9
+ private readonly document;
10
+ private readonly commonsConfig;
11
+ private readonly config;
12
+ private readonly storageService;
13
+ state: import("@angular/core").WritableSignal<LayoutState>;
14
+ private overlayOpen;
15
+ overlayOpen$: import("rxjs").Observable<any>;
16
+ private _colorSchemeSetting;
17
+ colorSchemeSetting: import("@angular/core").Signal<ColorScheme>;
18
+ private _colorScheme;
19
+ colorScheme: import("@angular/core").Signal<ColorScheme>;
20
+ colorSchemeIsLight: import("@angular/core").Signal<boolean>;
21
+ private getInitColorScheme;
22
+ private getInitActualColorScheme;
23
+ private getDefaultColorScheme;
24
+ setColorScheme(scheme: ColorScheme): void;
25
+ readonly menuModes: LayoutMenuMode[];
26
+ private _menuMode;
27
+ menuMode: import("@angular/core").Signal<LayoutMenuMode>;
28
+ private appLogoLight;
29
+ private appLogoDark;
30
+ appLogo: import("@angular/core").Signal<string>;
31
+ private appLogoNameLight;
32
+ private appLogoNameDark;
33
+ appLogoName: import("@angular/core").Signal<string>;
34
+ isOverlay: import("@angular/core").Signal<boolean>;
35
+ isSlim: import("@angular/core").Signal<boolean>;
36
+ isSlimPlus: import("@angular/core").Signal<boolean>;
37
+ constructor();
38
+ onMenuModeChange(mode: LayoutMenuMode): void;
39
+ onMenuToggle(): void;
40
+ onOverlaySubmenuOpen(): void;
41
+ isDesktop(): boolean;
42
+ isMobile(): boolean;
43
+ private initMenuMode;
44
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutService, never>;
45
+ static ɵprov: i0.ɵɵInjectableDeclaration<LayoutService>;
46
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-layout",
3
- "version": "5.3.0-rc.0",
3
+ "version": "5.3.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^17.3.0 || ^18.0.0",
6
6
  "@angular/common": "^17.3.0 || ^18.0.0",
@@ -10,7 +10,7 @@
10
10
  "@angular/router": "^17.3.0 || ^18.0.0",
11
11
  "@ngx-translate/core": "^15.0.0",
12
12
  "primeng": "^17.18.0",
13
- "@mediusinc/mng-commons": "~5.3.0-rc.0"
13
+ "@mediusinc/mng-commons": "~5.3.0-rc.2"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0"
@@ -63,7 +63,7 @@
63
63
  //Overlay
64
64
  @import './components/overlay/_confirmpopup';
65
65
  @import './components/overlay/_dialog';
66
- //@import './components/overlay/_overlaypanel';
66
+ @import './components/overlay/_overlaypanel';
67
67
  //@import './components/overlay/_sidebar';
68
68
  @import './components/overlay/_tooltip';
69
69
 
@@ -101,7 +101,7 @@
101
101
  //@import './components/misc/_progressbar';
102
102
  //@import './components/misc/_scrolltop';
103
103
  @import './components/misc/_skeleton';
104
- //@import './components/misc/_tag';
104
+ @import './components/misc/_tag';
105
105
  //@import './components/misc/_terminal';
106
106
  }
107
107
 
@@ -7,6 +7,10 @@
7
7
  }
8
8
  }
9
9
 
10
+ &.datatable-no-header .p-datatable-header {
11
+ display: none;
12
+ }
13
+
10
14
  .p-datatable-thead > tr > th,
11
15
  .p-datatable-tbody > tr > td {
12
16
  // string
@@ -29,3 +29,8 @@ p-columnfilterformelement .p-inputnumber-input {
29
29
  .mng-radio-button-label {
30
30
  margin-left: 0.5rem;
31
31
  }
32
+
33
+ mng-number-range.ng-dirty.ng-invalid > div > p-inputnumber .p-inputtext,
34
+ mng-date-range.ng-dirty.ng-invalid p-calendar > .p-calendar > .p-inputtext {
35
+ @include invalid-input();
36
+ }
@@ -14,4 +14,5 @@
14
14
  @import 'mng_theme_input';
15
15
  @import 'mng_theme_multiselect';
16
16
  @import 'mng_theme_tabview';
17
+ @import 'mng_theme_tag';
17
18
  @import 'mng_theme_fileupload';
@@ -61,6 +61,10 @@
61
61
  }
62
62
 
63
63
  .p-datatable {
64
+ .p-datatable-header {
65
+ border-top: 0;
66
+ }
67
+
64
68
  .p-paginator {
65
69
  .p-dropdown {
66
70
  .p-dropdown-label {
@@ -0,0 +1,11 @@
1
+ .p-tag {
2
+ &.p-tag-secondary {
3
+ background-color: $secondaryButtonBg;
4
+ color: $secondaryButtonTextColor;
5
+
6
+ &.p-tag-outlined {
7
+ background-color: unset;
8
+ border: 1px solid $secondaryButtonActiveBg;
9
+ }
10
+ }
11
+ }
package/version-info.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons-layout",
3
- "version": "5.3.0-rc.0",
3
+ "version": "5.3.0-rc.2",
4
4
  "tag": "v5.2.0-rc.2",
5
- "distance": 15,
6
- "hash": "9b56542d",
5
+ "distance": 26,
6
+ "hash": "e02f975a",
7
7
  "dirty": true,
8
- "semver": "5.2.0-rc.2+15.g9b56542d.dirty",
8
+ "semver": "5.2.0-rc.2+26.ge02f975a.dirty",
9
9
  "buildTimestamp": null,
10
- "raw": "v5.2.0-rc.2-15-9b56542d-dirty"
10
+ "raw": "v5.2.0-rc.2-26-e02f975a-dirty"
11
11
  }
@@ -1,91 +0,0 @@
1
- import { Injectable, computed, inject, signal } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { LocalStorageService } from '@mediusinc/mng-commons/core';
4
- import { COMMONS_LAYOUT_FEATURE_CONFIG_IT } from './layout-feature-config.token';
5
- import * as i0 from "@angular/core";
6
- export class MainLayoutComponentService {
7
- constructor() {
8
- this.typeName = 'MainLayoutComponentService';
9
- this.storageMenuModeKey = 'menuMode';
10
- this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
11
- this.storageService = inject(LocalStorageService);
12
- this.state = signal({
13
- staticMenuDesktopInactive: false,
14
- overlayMenuActive: false,
15
- rightMenuActive: false,
16
- configSidebarVisible: false,
17
- staticMenuMobileActive: false,
18
- menuHoverActive: false,
19
- sidebarActive: false,
20
- anchored: false
21
- });
22
- this.overlayOpen = new Subject();
23
- this.overlayOpen$ = this.overlayOpen.asObservable();
24
- this.menuModes = this.config?.menuModes ?? ['static', 'overlay', 'reveal', 'drawer', 'slim', 'slim-plus'];
25
- this._menuMode = signal(this.initMenuMode());
26
- this.menuMode = this._menuMode.asReadonly();
27
- this.isOverlay = computed(() => this.menuMode() === 'overlay');
28
- this.isSlim = computed(() => this.menuMode() === 'slim');
29
- this.isSlimPlus = computed(() => this.menuMode() === 'slim-plus');
30
- }
31
- onMenuModeChange(mode) {
32
- if (!this.menuModes.includes(mode)) {
33
- return;
34
- }
35
- if (mode === this.config?.menuMode) {
36
- this.storageService.removeItem(this.typeName, this.storageMenuModeKey);
37
- }
38
- else {
39
- this.storageService.setItem(this.typeName, this.storageMenuModeKey, mode);
40
- }
41
- this._menuMode.set(mode);
42
- }
43
- onMenuToggle() {
44
- if (this.isOverlay()) {
45
- this.state.update(state => ({
46
- ...state,
47
- overlayMenuActive: !state.overlayMenuActive
48
- }));
49
- if (this.state().overlayMenuActive) {
50
- this.overlayOpen.next(null);
51
- }
52
- }
53
- if (this.isDesktop()) {
54
- this.state.update(state => ({
55
- ...state,
56
- staticMenuDesktopInactive: !state.staticMenuDesktopInactive
57
- }));
58
- }
59
- else {
60
- this.state.update(state => ({
61
- ...state,
62
- staticMenuMobileActive: !state.staticMenuMobileActive
63
- }));
64
- if (this.state().staticMenuMobileActive) {
65
- this.overlayOpen.next(null);
66
- }
67
- }
68
- }
69
- onOverlaySubmenuOpen() {
70
- this.overlayOpen.next(null);
71
- }
72
- isDesktop() {
73
- return window.innerWidth > 991;
74
- }
75
- isMobile() {
76
- return !this.isDesktop();
77
- }
78
- initMenuMode() {
79
- const lsMode = this.storageService.getItem(this.typeName, this.storageMenuModeKey);
80
- if (lsMode && this.menuModes.includes(lsMode)) {
81
- return lsMode;
82
- }
83
- return this.config?.menuMode ?? 'static';
84
- }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService }); }
87
- }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService, decorators: [{
89
- type: Injectable
90
- }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUdoRSxPQUFPLEVBQUMsZ0NBQWdDLEVBQWlCLE1BQU0sK0JBQStCLENBQUM7O0FBRy9GLE1BQU0sT0FBTywwQkFBMEI7SUFEdkM7UUFFcUIsYUFBUSxHQUFHLDRCQUE0QixDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLFVBQVUsQ0FBQztRQUVoQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDcEUsbUJBQWMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV2RCxVQUFLLEdBQUcsTUFBTSxDQUFjO1lBQy9CLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixlQUFlLEVBQUUsS0FBSztZQUN0QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUssZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0QyxjQUFTLEdBQXFCLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvSCxjQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXZDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzFELFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDO0tBOER2RTtJQTVERyxnQkFBZ0IsQ0FBQyxJQUFvQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixHQUFHLEtBQUs7Z0JBQ1IsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2FBQzlDLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDeEIsR0FBRyxLQUFLO2dCQUNSLHlCQUF5QixFQUFFLENBQUMsS0FBSyxDQUFDLHlCQUF5QjthQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixHQUFHLEtBQUs7Z0JBQ1Isc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO2FBQ3hELENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLFlBQVk7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkcsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUM7SUFDN0MsQ0FBQzs4R0F4RlEsMEJBQTBCO2tIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtMYXlvdXRTdGF0ZX0gZnJvbSAnLi4vbW9kZWxzL2xheW91dC1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQge0NPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCBMYXlvdXRNZW51TW9kZX0gZnJvbSAnLi9sYXlvdXQtZmVhdHVyZS1jb25maWcudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZU5hbWUgPSAnTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZU1lbnVNb2RlS2V5ID0gJ21lbnVNb2RlJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHN0YXRlID0gc2lnbmFsPExheW91dFN0YXRlPih7XG4gICAgICAgIHN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU6IGZhbHNlLFxuICAgICAgICBvdmVybGF5TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIHJpZ2h0TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ1NpZGViYXJWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgc3RhdGljTWVudU1vYmlsZUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXG4gICAgICAgIHNpZGViYXJBY3RpdmU6IGZhbHNlLFxuICAgICAgICBhbmNob3JlZDogZmFsc2VcbiAgICB9KTtcblxuICAgIHByaXZhdGUgb3ZlcmxheU9wZW4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgcHVibGljIG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWVudU1vZGVzOiBMYXlvdXRNZW51TW9kZVtdID0gdGhpcy5jb25maWc/Lm1lbnVNb2RlcyA/PyBbJ3N0YXRpYycsICdvdmVybGF5JywgJ3JldmVhbCcsICdkcmF3ZXInLCAnc2xpbScsICdzbGltLXBsdXMnXTtcbiAgICBwcml2YXRlIF9tZW51TW9kZSA9IHNpZ25hbCh0aGlzLmluaXRNZW51TW9kZSgpKTtcbiAgICBwdWJsaWMgbWVudU1vZGUgPSB0aGlzLl9tZW51TW9kZS5hc1JlYWRvbmx5KCk7XG5cbiAgICBwdWJsaWMgaXNPdmVybGF5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51TW9kZSgpID09PSAnb3ZlcmxheScpO1xuICAgIHB1YmxpYyBpc1NsaW0gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdzbGltJyk7XG4gICAgcHVibGljIGlzU2xpbVBsdXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdzbGltLXBsdXMnKTtcblxuICAgIG9uTWVudU1vZGVDaGFuZ2UobW9kZTogTGF5b3V0TWVudU1vZGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lbnVNb2Rlcy5pbmNsdWRlcyhtb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlID09PSB0aGlzLmNvbmZpZz8ubWVudU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSh0aGlzLnR5cGVOYW1lLCB0aGlzLnN0b3JhZ2VNZW51TW9kZUtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy50eXBlTmFtZSwgdGhpcy5zdG9yYWdlTWVudU1vZGVLZXksIG1vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lbnVNb2RlLnNldChtb2RlKTtcbiAgICB9XG5cbiAgICBvbk1lbnVUb2dnbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3ZlcmxheSgpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlNZW51QWN0aXZlOiAhc3RhdGUub3ZlcmxheU1lbnVBY3RpdmVcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUoKS5vdmVybGF5TWVudUFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4ubmV4dChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVza3RvcCgpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIHN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU6ICFzdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6ICFzdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlKCkuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4ubmV4dChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XG4gICAgfVxuXG4gICAgaXNEZXNrdG9wKCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XG4gICAgfVxuXG4gICAgaXNNb2JpbGUoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRNZW51TW9kZSgpOiBMYXlvdXRNZW51TW9kZSB7XG4gICAgICAgIGNvbnN0IGxzTW9kZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbTxMYXlvdXRNZW51TW9kZT4odGhpcy50eXBlTmFtZSwgdGhpcy5zdG9yYWdlTWVudU1vZGVLZXkpO1xuICAgICAgICBpZiAobHNNb2RlICYmIHRoaXMubWVudU1vZGVzLmluY2x1ZGVzKGxzTW9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBsc01vZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnPy5tZW51TW9kZSA/PyAnc3RhdGljJztcbiAgICB9XG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { LayoutState } from '../models/layout-state.model';
2
- import { LayoutMenuMode } from './layout-feature-config.token';
3
- import * as i0 from "@angular/core";
4
- export declare class MainLayoutComponentService {
5
- private readonly typeName;
6
- private readonly storageMenuModeKey;
7
- private readonly config;
8
- private readonly storageService;
9
- state: import("@angular/core").WritableSignal<LayoutState>;
10
- private overlayOpen;
11
- overlayOpen$: import("rxjs").Observable<any>;
12
- readonly menuModes: LayoutMenuMode[];
13
- private _menuMode;
14
- menuMode: import("@angular/core").Signal<LayoutMenuMode>;
15
- isOverlay: import("@angular/core").Signal<boolean>;
16
- isSlim: import("@angular/core").Signal<boolean>;
17
- isSlimPlus: import("@angular/core").Signal<boolean>;
18
- onMenuModeChange(mode: LayoutMenuMode): void;
19
- onMenuToggle(): void;
20
- onOverlaySubmenuOpen(): void;
21
- isDesktop(): boolean;
22
- isMobile(): boolean;
23
- private initMenuMode;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<MainLayoutComponentService, never>;
25
- static ɵprov: i0.ɵɵInjectableDeclaration<MainLayoutComponentService>;
26
- }