@mediusinc/mng-commons-layout 5.2.0 → 5.3.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/components/main-layout.component.mjs +3 -4
- package/esm2022/lib/components/menu-item.component.mjs +54 -134
- package/esm2022/lib/components/menu.component.mjs +7 -10
- package/esm2022/lib/components/settings.component.mjs +51 -0
- package/esm2022/lib/components/topbar-user.component.mjs +17 -4
- package/esm2022/lib/helpers/menu-items.mjs +26 -0
- package/esm2022/lib/models/menu.model.mjs +1 -1
- package/esm2022/lib/services/layout-feature-config.token.mjs +1 -1
- package/esm2022/lib/services/main-layout.component.service.mjs +31 -11
- package/esm2022/lib/services/menu.service.mjs +37 -37
- package/fesm2022/mediusinc-mng-commons-layout.mjs +204 -195
- package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/components/main-layout.component.d.ts +0 -1
- package/lib/components/menu-item.component.d.ts +14 -26
- package/lib/components/menu.component.d.ts +2 -3
- package/lib/components/settings.component.d.ts +22 -0
- package/lib/components/topbar-user.component.d.ts +3 -0
- package/lib/helpers/menu-items.d.ts +2 -0
- package/lib/models/menu.model.d.ts +2 -2
- package/lib/services/layout-feature-config.token.d.ts +1 -0
- package/lib/services/main-layout.component.service.d.ts +13 -4
- package/lib/services/menu.service.d.ts +7 -8
- package/package.json +2 -2
- package/scss/layout/mng/_mng_layout_styles.scss +1 -0
- package/scss/layout/mng/_mng_sidebar_vertical.scss +8 -0
- package/version-info.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, inject, untracked } from '@angular/core';
|
|
2
2
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { ActivatedRoute } from '@angular/router';
|
|
4
4
|
import { COMMONS_LAYOUT_FEATURE_CONFIG_IT } from '../services/layout-feature-config.token';
|
|
@@ -9,11 +9,11 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
export class MenuComponent {
|
|
10
10
|
constructor() {
|
|
11
11
|
this.route = inject(ActivatedRoute);
|
|
12
|
-
this.menuService = inject(MenuService);
|
|
13
12
|
this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
|
|
14
13
|
this.layoutService = inject(MainLayoutComponentService);
|
|
14
|
+
this.menuService = inject(MenuService);
|
|
15
15
|
this.routeData = toSignal(this.route.data);
|
|
16
|
-
|
|
16
|
+
effect(() => {
|
|
17
17
|
let items = [];
|
|
18
18
|
if (this.config?.menuItems && Array.isArray(this.config.menuItems)) {
|
|
19
19
|
items = this.config.menuItems;
|
|
@@ -25,17 +25,14 @@ export class MenuComponent {
|
|
|
25
25
|
if (!(this.layoutService.isSlim() || this.layoutService.isSlimPlus())) {
|
|
26
26
|
items = [{ items }];
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
});
|
|
30
|
-
effect(() => {
|
|
31
|
-
this.menuService.initialize(this.menuItems());
|
|
28
|
+
untracked(() => this.menuService.setItems(items));
|
|
32
29
|
});
|
|
33
30
|
}
|
|
34
31
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MenuComponent, isStandalone: true, selector: "mng-menu", ngImport: i0, template: "<ul class=\"layout-menu\">\n @for (item of menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: MenuComponent, isStandalone: true, selector: "mng-menu", ngImport: i0, template: "<ul class=\"layout-menu\">\n @for (item of menuService.menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
33
|
}
|
|
37
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MenuComponent, decorators: [{
|
|
38
35
|
type: Component,
|
|
39
|
-
args: [{ standalone: true, selector: 'mng-menu', imports: [MenuItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"layout-menu\">\n @for (item of 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" }]
|
|
36
|
+
args: [{ standalone: true, selector: 'mng-menu', imports: [MenuItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"layout-menu\">\n @for (item of menuService.menuItems(); track item) {\n @if (!item.separator) {\n <li mng-menuitem [item]=\"item\" [root]=\"true\"></li>\n }\n @if (item.separator) {\n <li class=\"menu-separator\"></li>\n }\n }\n</ul>\n" }]
|
|
40
37
|
}], ctorParameters: () => [] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDekYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDckYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQVN4RCxNQUFNLE9BQU8sYUFBYTtJQVF0QjtRQVBpQixVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNwRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3BELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLGNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUd6QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNqRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUUsSUFBSSxDQUFDLFNBQVMsRUFBbUMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN0RixLQUFLLEdBQUksSUFBSSxDQUFDLFNBQVMsRUFBdUIsQ0FBQyxTQUFVLENBQUM7WUFDOUQsQ0FBQztZQUNELG1CQUFtQjtZQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxLQUFLLEdBQUcsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7WUFDdEIsQ0FBQztZQUVELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F2QlEsYUFBYTtrR0FBYixhQUFhLG9FQ2xCMUIsaVRBVUEsNENESWMsaUJBQWlCOzsyRkFJbEIsYUFBYTtrQkFQekIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sVUFBVSxXQUNYLENBQUMsaUJBQWlCLENBQUMsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIHVudHJhY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0NvbW1vbnNNZW51SXRlbSwgQ29tbW9uc1JvdXRlRGF0YX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVH0gZnJvbSAnLi4vc2VydmljZXMvbGF5b3V0LWZlYXR1cmUtY29uZmlnLnRva2VuJztcbmltcG9ydCB7TWFpbkxheW91dENvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7TWVudVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XG5pbXBvcnQge01lbnVJdGVtQ29tcG9uZW50fSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLW1lbnUnLFxuICAgIGltcG9ydHM6IFtNZW51SXRlbUNvbXBvbmVudF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG5cbiAgICBwdWJsaWMgcm91dGVEYXRhID0gdG9TaWduYWwodGhpcy5yb3V0ZS5kYXRhKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW1zOiBDb21tb25zTWVudUl0ZW1bXSA9IFtdO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnPy5tZW51SXRlbXMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmNvbmZpZy5tZW51SXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgaXRlbXMgPSB0aGlzLmNvbmZpZy5tZW51SXRlbXM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoKHRoaXMucm91dGVEYXRhKCkgYXMgQ29tbW9uc1JvdXRlRGF0YSB8IHVuZGVmaW5lZCk/Lm1lbnVJdGVtcykpIHtcbiAgICAgICAgICAgICAgICBpdGVtcyA9ICh0aGlzLnJvdXRlRGF0YSgpIGFzIENvbW1vbnNSb3V0ZURhdGEpLm1lbnVJdGVtcyE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXcmFwcyBtZW51IGl0ZW1zXG4gICAgICAgICAgICBpZiAoISh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICBpdGVtcyA9IFt7aXRlbXN9XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMubWVudVNlcnZpY2Uuc2V0SXRlbXMoaXRlbXMpKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHVsIGNsYXNzPVwibGF5b3V0LW1lbnVcIj5cbiAgICBAZm9yIChpdGVtIG9mIG1lbnVTZXJ2aWNlLm1lbnVJdGVtcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoIWl0ZW0uc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICA8bGkgbW5nLW1lbnVpdGVtIFtpdGVtXT1cIml0ZW1cIiBbcm9vdF09XCJ0cnVlXCI+PC9saT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGl0ZW0uc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJtZW51LXNlcGFyYXRvclwiPjwvbGk+XG4gICAgICAgIH1cbiAgICB9XG48L3VsPlxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import { Button } from 'primeng/button';
|
|
6
|
+
import { DropdownModule } from 'primeng/dropdown';
|
|
7
|
+
import { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';
|
|
8
|
+
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
9
|
+
import { CommonsService } from '@mediusinc/mng-commons/core';
|
|
10
|
+
import { MainLayoutComponentService } from '../services/main-layout.component.service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@ngx-translate/core";
|
|
13
|
+
import * as i2 from "primeng/radiobutton";
|
|
14
|
+
import * as i3 from "@angular/forms";
|
|
15
|
+
import * as i4 from "primeng/dropdown";
|
|
16
|
+
export class SettingsComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.dynamicDialogConfig = inject(DynamicDialogConfig);
|
|
19
|
+
this.dynamicDialogRef = inject(DynamicDialogRef);
|
|
20
|
+
this.injector = this.dynamicDialogConfig.data.injector;
|
|
21
|
+
this.translate = this.injector.get(TranslateService);
|
|
22
|
+
this.commons = this.injector.get(CommonsService);
|
|
23
|
+
this.layoutService = this.injector.get(MainLayoutComponentService);
|
|
24
|
+
this.menuModes = this.layoutService.menuModes;
|
|
25
|
+
this.translate
|
|
26
|
+
.stream('mngSettings.title')
|
|
27
|
+
.pipe(takeUntilDestroyed())
|
|
28
|
+
.subscribe(t => {
|
|
29
|
+
setTimeout(() => (this.dynamicDialogConfig.header = t));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
switchLocale(language) {
|
|
33
|
+
this.commons.setAppLocale(language);
|
|
34
|
+
}
|
|
35
|
+
switchDataLocale(language) {
|
|
36
|
+
this.commons.setAppDataLocale(language);
|
|
37
|
+
}
|
|
38
|
+
onMenuModeChange(mode) {
|
|
39
|
+
this.layoutService.onMenuModeChange(mode);
|
|
40
|
+
}
|
|
41
|
+
closeDialog() {
|
|
42
|
+
this.dynamicDialogRef.close();
|
|
43
|
+
}
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: SettingsComponent, isStandalone: true, selector: "mng-settings", ngImport: i0, template: "<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 @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]=\"layoutService.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", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i2.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ standalone: true, selector: 'mng-settings', imports: [TranslateModule, RadioButtonModule, FormsModule, Button, DropdownModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 @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]=\"layoutService.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" }]
|
|
50
|
+
}], ctorParameters: () => [] });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3NldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFZLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGdCQUFnQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRzNELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7QUFTckYsTUFBTSxPQUFPLGlCQUFpQjtJQVUxQjtRQVRpQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRTlDLElBQUksQ0FBQyxTQUFTO2FBQ1QsTUFBTSxDQUFDLG1CQUFtQixDQUFDO2FBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQWdCO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQW9CO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs4R0F2Q1EsaUJBQWlCO2tHQUFqQixpQkFBaUIsd0VDdEI5Qiw4bUVBMENBLDJDRHhCYyxlQUFlLDJGQUFFLGlCQUFpQiw0VUFBRSxXQUFXLCtWQUFFLE1BQU0scVZBQUUsY0FBYzs7MkZBSXhFLGlCQUFpQjtrQkFQN0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLG1CQUVqRSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QnV0dG9ufSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7RHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7UmFkaW9CdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0xheW91dE1lbnVNb2RlfSBmcm9tICcuLi9zZXJ2aWNlcy9sYXlvdXQtZmVhdHVyZS1jb25maWcudG9rZW4nO1xuaW1wb3J0IHtNYWluTGF5b3V0Q29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvbWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXNldHRpbmdzJyxcbiAgICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEJ1dHRvbiwgRHJvcGRvd25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZHluYW1pY0RpYWxvZ0NvbmZpZyA9IGluamVjdChEeW5hbWljRGlhbG9nQ29uZmlnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGR5bmFtaWNEaWFsb2dSZWYgPSBpbmplY3QoRHluYW1pY0RpYWxvZ1JlZik7XG4gICAgcHVibGljIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNsYXRlO1xuICAgIHB1YmxpYyByZWFkb25seSBjb21tb25zO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXRTZXJ2aWNlO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG1lbnVNb2RlcztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluamVjdG9yID0gdGhpcy5keW5hbWljRGlhbG9nQ29uZmlnLmRhdGEuaW5qZWN0b3I7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgICAgIHRoaXMuY29tbW9ucyA9IHRoaXMuaW5qZWN0b3IuZ2V0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UpO1xuICAgICAgICB0aGlzLm1lbnVNb2RlcyA9IHRoaXMubGF5b3V0U2VydmljZS5tZW51TW9kZXM7XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGVcbiAgICAgICAgICAgIC5zdHJlYW0oJ21uZ1NldHRpbmdzLnRpdGxlJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0ID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmR5bmFtaWNEaWFsb2dDb25maWcuaGVhZGVyID0gdCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3dpdGNoTG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb21tb25zLnNldEFwcExvY2FsZShsYW5ndWFnZSk7XG4gICAgfVxuXG4gICAgc3dpdGNoRGF0YUxvY2FsZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29tbW9ucy5zZXRBcHBEYXRhTG9jYWxlKGxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBvbk1lbnVNb2RlQ2hhbmdlKG1vZGU6IExheW91dE1lbnVNb2RlKSB7XG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5vbk1lbnVNb2RlQ2hhbmdlKG1vZGUpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmR5bmFtaWNEaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2x1bW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgbW5nLWFjdGlvbi1lZGl0b3ItZm9ybS1jb250YWluZXJcIj5cbiAgICAgICAgQGlmIChjb21tb25zLmFwcExvY2FsZXMoKS5sZW5ndGggPiAxIHx8IGNvbW1vbnMuYXBwRGF0YUxvY2FsZXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICA8aDU+e3sgJ21uZ1NldHRpbmdzLmxvY2FsZXMnIHwgdHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgICAgQGlmIChjb21tb25zLmFwcExvY2FsZXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwci00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWdsb2JlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW25nTW9kZWxdPVwiY29tbW9ucy5hcHBMb2NhbGUoKVwiIFtvcHRpb25zXT1cImNvbW1vbnMuYXBwTG9jYWxlcygpXCIgKG9uQ2hhbmdlKT1cInN3aXRjaExvY2FsZSgkZXZlbnQudmFsdWUpXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChjb21tb25zLmFwcERhdGFMb2NhbGVzKCkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgcHItNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1kYXRhYmFzZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtuZ01vZGVsXT1cImNvbW1vbnMuYXBwRGF0YUxvY2FsZSgpXCIgW29wdGlvbnNdPVwiY29tbW9ucy5hcHBEYXRhTG9jYWxlcygpXCIgKG9uQ2hhbmdlKT1cInN3aXRjaERhdGFMb2NhbGUoJGV2ZW50LnZhbHVlKVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKG1lbnVNb2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICA8aDU+e3sgJ21uZ1NldHRpbmdzLm1lbnVNb2RlLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKG1vZGUgb2YgbWVudU1vZGVzOyB0cmFjayBtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvbiBjb2wtNiBtZDpjb2wtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b24gbmFtZT1cImNhdGVnb3J5XCIgW3ZhbHVlXT1cIm1vZGVcIiBbbmdNb2RlbF09XCJsYXlvdXRTZXJ2aWNlLm1lbnVNb2RlKClcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1lbnVNb2RlQ2hhbmdlKG1vZGUpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIm1vZGVcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnbW5nU2V0dGluZ3MubWVudU1vZGUuJyArIG1vZGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gbW5nLWFjdGlvbi1lZGl0b3ItZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHAtYnV0dG9uIChvbkNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBbbGFiZWxdPVwiJ2dlbmVyYWwuY2xvc2UnIHwgdHJhbnNsYXRlXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXByaW1hcnkgcC1idXR0b24tdGV4dFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { AsyncPipe } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Injector, computed, inject } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
4
|
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
+
import { DialogService } from 'primeng/dynamicdialog';
|
|
5
6
|
import { RippleModule } from 'primeng/ripple';
|
|
6
7
|
import { StyleClassModule } from 'primeng/styleclass';
|
|
7
8
|
import { CommonsService, EnumerateAsyncPipe } from '@mediusinc/mng-commons/core';
|
|
9
|
+
import { SettingsComponent } from './settings.component';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
11
|
import * as i1 from "@ngx-translate/core";
|
|
10
12
|
import * as i2 from "primeng/ripple";
|
|
11
13
|
import * as i3 from "primeng/styleclass";
|
|
12
14
|
export class TopbarUserComponent {
|
|
13
15
|
constructor() {
|
|
16
|
+
this.injector = inject(Injector);
|
|
17
|
+
this.dialogService = inject(DialogService);
|
|
14
18
|
this.commons = inject(CommonsService);
|
|
15
19
|
this.hrefJsVoid = inject(DomSanitizer).bypassSecurityTrustUrl('javascript:void(0)');
|
|
16
20
|
this.user = computed(() => this.commons.user());
|
|
@@ -23,11 +27,20 @@ export class TopbarUserComponent {
|
|
|
23
27
|
user.logout();
|
|
24
28
|
}
|
|
25
29
|
}
|
|
30
|
+
openSettings() {
|
|
31
|
+
this.dialogService.open(SettingsComponent, {
|
|
32
|
+
modal: true,
|
|
33
|
+
styleClass: 'mng-dialog mng-action-editor-dialog mng-dialog-xs',
|
|
34
|
+
data: {
|
|
35
|
+
injector: this.injector
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
26
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TopbarUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: TopbarUserComponent, isStandalone: true, selector: "mng-topbar-user-component", ngImport: i0, template: "<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\"> {{ 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 (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", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i3.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.5", type: TopbarUserComponent, isStandalone: true, selector: "mng-topbar-user-component", ngImport: i0, template: "<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\"> {{ 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 <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 @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", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i3.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
41
|
}
|
|
29
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: TopbarUserComponent, decorators: [{
|
|
30
43
|
type: Component,
|
|
31
|
-
args: [{ standalone: true, selector: 'mng-topbar-user-component', imports: [AsyncPipe, EnumerateAsyncPipe, TranslateModule, RippleModule, StyleClassModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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\"> {{ 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 (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" }]
|
|
44
|
+
args: [{ standalone: true, selector: 'mng-topbar-user-component', imports: [AsyncPipe, EnumerateAsyncPipe, TranslateModule, RippleModule, StyleClassModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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\"> {{ 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 <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 @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" }]
|
|
32
45
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL3RvcGJhci11c2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90b3BiYXItdXNlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBUSxNQUFNLDZCQUE2QixDQUFDO0FBRXRGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7OztBQVN2RCxNQUFNLE9BQU8sbUJBQW1CO0lBUGhDO1FBUXFCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFL0UsU0FBSSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlELGNBQVMsR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0tBbUJ6RTtJQWpCVSxNQUFNLENBQUMsSUFBdUIsRUFBRSxLQUFZO1FBQy9DLElBQUksT0FBTyxJQUFJLEVBQUUsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZDLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLG1EQUFtRDtZQUMvRCxJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F6QlEsbUJBQW1CO2tHQUFuQixtQkFBbUIscUZDcEJoQyxxOEVBZ0VBLDJDRGhENkMsZUFBZSwyRkFBRSxZQUFZLDZGQUFFLGdCQUFnQjs7MkZBSS9FLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sMkJBQTJCLFdBQzVCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsbUJBRXhFLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXJ9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5pbXBvcnQge1JpcHBsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9yaXBwbGUnO1xuaW1wb3J0IHtTdHlsZUNsYXNzTW9kdWxlfSBmcm9tICdwcmltZW5nL3N0eWxlY2xhc3MnO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBFbnVtZXJhdGVBc3luY1BpcGUsIElVc2VyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge1NldHRpbmdzQ29tcG9uZW50fSBmcm9tICcuL3NldHRpbmdzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctdG9wYmFyLXVzZXItY29tcG9uZW50JyxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBFbnVtZXJhdGVBc3luY1BpcGUsIFRyYW5zbGF0ZU1vZHVsZSwgUmlwcGxlTW9kdWxlLCBTdHlsZUNsYXNzTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9wYmFyLXVzZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRvcGJhclVzZXJDb21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZSA9IGluamVjdChEaWFsb2dTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnMgPSBpbmplY3QoQ29tbW9uc1NlcnZpY2UpO1xuICAgIHB1YmxpYyBocmVmSnNWb2lkID0gaW5qZWN0KERvbVNhbml0aXplcikuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCgnamF2YXNjcmlwdDp2b2lkKDApJyk7XG5cbiAgICBwdWJsaWMgdXNlciA9IGNvbXB1dGVkPElVc2VyIHwgdW5kZWZpbmVkPigoKSA9PiB0aGlzLmNvbW1vbnMudXNlcigpKTtcbiAgICBwdWJsaWMgdXNlclJvbGVzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHRoaXMuY29tbW9ucy51c2VyUm9sZXMoKSk7XG5cbiAgICBwdWJsaWMgbG9nb3V0KHVzZXI6IElVc2VyIHwgdW5kZWZpbmVkLCBldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1c2VyPy5sb2dvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHVzZXIubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblNldHRpbmdzKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihTZXR0aW5nc0NvbXBvbmVudCwge1xuICAgICAgICAgICAgbW9kYWw6IHRydWUsXG4gICAgICAgICAgICBzdHlsZUNsYXNzOiAnbW5nLWRpYWxvZyBtbmctYWN0aW9uLWVkaXRvci1kaWFsb2cgbW5nLWRpYWxvZy14cycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGxnOnByLTRcIlxuICAgIHBTdHlsZUNsYXNzPVwiQG5leHRcIlxuICAgIGVudGVyRnJvbUNsYXNzPVwibmctaGlkZGVuXCJcbiAgICBlbnRlckFjdGl2ZUNsYXNzPVwicHgtc2NhbGVpblwiXG4gICAgbGVhdmVUb0NsYXNzPVwibmctaGlkZGVuXCJcbiAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwicHgtZmFkZW91dFwiXG4gICAgW2hpZGVPbk91dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgICBwUmlwcGxlPlxuICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktdXNlciB0ZXh0LTJ4bFwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImhpZGRlbiBzbTppbmxpbmUtYmxvY2tcIj4mbmJzcDsge3sgdXNlcigpPy5kaXNwbGF5TmFtZSA/PyB1c2VyKCk/LnVzZXJuYW1lIH19PC9zcGFuPlxuPC9hPlxuPHVsIGNsYXNzPVwidG9wYmFyLW1lbnUgYWN0aXZlLXRvcGJhci1tZW51IHctMTVyZW0gei01IG5nLWhpZGRlbiBib3JkZXItcm91bmRcIj5cbiAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIHRyYW5zaXRpb24tZHVyYXRpb24tMjAwXCJcbiAgICAgICAgICAgIHBTdHlsZUNsYXNzPVwiQGdyYW5kcGFyZW50XCJcbiAgICAgICAgICAgIGVudGVyRnJvbUNsYXNzPVwibmctaGlkZGVuXCJcbiAgICAgICAgICAgIGVudGVyQWN0aXZlQ2xhc3M9XCJweC1zY2FsZWluXCJcbiAgICAgICAgICAgIGxlYXZlVG9DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICBsZWF2ZUFjdGl2ZUNsYXNzPVwicHgtZmFkZW91dFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS11c2VyIHRleHQtYmFzZSBtci0yXCI+PC9pPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHVzZXIoKT8uZGlzcGxheU5hbWUgPz8gdXNlcigpPy51c2VybmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIEBpZiAodXNlclJvbGVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXJSb2xlcygpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSByb2xlPVwibWVudWl0ZW1cIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIFtocmVmXT1cImhyZWZKc1ZvaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZXR0aW5ncygpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdHJhbnNpdGlvbi1kdXJhdGlvbi0yMDBcIlxuICAgICAgICAgICAgcFN0eWxlQ2xhc3M9XCJAZ3JhbmRwYXJlbnRcIlxuICAgICAgICAgICAgZW50ZXJGcm9tQ2xhc3M9XCJuZy1oaWRkZW5cIlxuICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInB4LXNjYWxlaW5cIlxuICAgICAgICAgICAgbGVhdmVUb0NsYXNzPVwibmctaGlkZGVuXCJcbiAgICAgICAgICAgIGxlYXZlQWN0aXZlQ2xhc3M9XCJweC1mYWRlb3V0XCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWNvZyB0ZXh0LWJhc2UgbXItMlwiPjwvaT5cbiAgICAgICAgICAgIHt7ICdtbmdTZXR0aW5ncy50aXRsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgQGlmICh1c2VyKCk/LmxvZ291dCB8fCB1c2VyKCk/LmxvZ291dFVybCkge1xuICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cInVzZXIoKT8ubG9nb3V0VXJsID8/IGhyZWZKc1ZvaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJsb2dvdXQodXNlcigpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGhvdmVyOnRleHQtcHJpbWFyeS01MDAgdHJhbnNpdGlvbi1kdXJhdGlvbi0yMDBcIlxuICAgICAgICAgICAgICAgIHBTdHlsZUNsYXNzPVwiQGdyYW5kcGFyZW50XCJcbiAgICAgICAgICAgICAgICBlbnRlckZyb21DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInB4LXNjYWxlaW5cIlxuICAgICAgICAgICAgICAgIGxlYXZlVG9DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgbGVhdmVBY3RpdmVDbGFzcz1cInB4LWZhZGVvdXRcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLXNpZ24tb3V0IHRleHQtYmFzZSBtci0yXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdtbmdUb3BiYXIubG9nb3V0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICB9XG48L3VsPlxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { computed, signal } from '@angular/core';
|
|
2
|
+
export function prepareMenuItemsToInternal(menuItems, parentKey = '') {
|
|
3
|
+
const newItems = menuItems.map((item, idx) => {
|
|
4
|
+
const itemsProp = signal([]);
|
|
5
|
+
const lazyChildrenProp = signal(item.lazyChildren ?? false);
|
|
6
|
+
const hasItemsProp = computed(() => itemsProp().length > 0);
|
|
7
|
+
const newItem = {
|
|
8
|
+
...item,
|
|
9
|
+
isVisible: typeof item.isVisible !== 'undefined' ? item.isVisible : item.visible,
|
|
10
|
+
key: parentKey ? parentKey + '-' + idx : idx.toString(),
|
|
11
|
+
config: item,
|
|
12
|
+
items: itemsProp,
|
|
13
|
+
lazyChildren: lazyChildrenProp,
|
|
14
|
+
itemsVisibility: signal([]),
|
|
15
|
+
hasItems: hasItemsProp,
|
|
16
|
+
hasItemsOrLazyChildren: computed(() => lazyChildrenProp() || hasItemsProp())
|
|
17
|
+
};
|
|
18
|
+
if (Array.isArray(item.items) && item.items.length > 0) {
|
|
19
|
+
newItem.items.set(prepareMenuItemsToInternal(item.items, newItem.key));
|
|
20
|
+
newItem.itemsVisibility.set(newItem.items()?.map(i => signal(true)));
|
|
21
|
+
}
|
|
22
|
+
return newItem;
|
|
23
|
+
});
|
|
24
|
+
return newItems;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9tZW51LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUE0QixFQUFFLFNBQVMsR0FBRyxFQUFFO0lBQ25GLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDekMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUN4RCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzVELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQTRCO1lBQ3JDLEdBQUcsSUFBSTtZQUNQLFNBQVMsRUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNoRixHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUN2RCxNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsUUFBUSxFQUFFLFlBQVk7WUFDdEIsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksWUFBWSxFQUFFLENBQUM7U0FDL0UsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21wdXRlZCwgc2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtDb21tb25zTWVudUl0ZW0sIEludGVybmFsQ29tbW9uc01lbnVJdGVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZU1lbnVJdGVtc1RvSW50ZXJuYWwobWVudUl0ZW1zOiBDb21tb25zTWVudUl0ZW1bXSwgcGFyZW50S2V5ID0gJycpOiBJbnRlcm5hbENvbW1vbnNNZW51SXRlbVtdIHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IG1lbnVJdGVtcy5tYXAoKGl0ZW0sIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtc1Byb3AgPSBzaWduYWw8SW50ZXJuYWxDb21tb25zTWVudUl0ZW1bXT4oW10pO1xuICAgICAgICBjb25zdCBsYXp5Q2hpbGRyZW5Qcm9wID0gc2lnbmFsKGl0ZW0ubGF6eUNoaWxkcmVuID8/IGZhbHNlKTtcbiAgICAgICAgY29uc3QgaGFzSXRlbXNQcm9wID0gY29tcHV0ZWQoKCkgPT4gaXRlbXNQcm9wKCkubGVuZ3RoID4gMCk7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW06IEludGVybmFsQ29tbW9uc01lbnVJdGVtID0ge1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIGlzVmlzaWJsZTogdHlwZW9mIGl0ZW0uaXNWaXNpYmxlICE9PSAndW5kZWZpbmVkJyA/IGl0ZW0uaXNWaXNpYmxlIDogaXRlbS52aXNpYmxlLFxuICAgICAgICAgICAga2V5OiBwYXJlbnRLZXkgPyBwYXJlbnRLZXkgKyAnLScgKyBpZHggOiBpZHgudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbmZpZzogaXRlbSxcbiAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1Byb3AsXG4gICAgICAgICAgICBsYXp5Q2hpbGRyZW46IGxhenlDaGlsZHJlblByb3AsXG4gICAgICAgICAgICBpdGVtc1Zpc2liaWxpdHk6IHNpZ25hbChbXSksXG4gICAgICAgICAgICBoYXNJdGVtczogaGFzSXRlbXNQcm9wLFxuICAgICAgICAgICAgaGFzSXRlbXNPckxhenlDaGlsZHJlbjogY29tcHV0ZWQoKCkgPT4gbGF6eUNoaWxkcmVuUHJvcCgpIHx8IGhhc0l0ZW1zUHJvcCgpKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uaXRlbXMpICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbmV3SXRlbS5pdGVtcy5zZXQocHJlcGFyZU1lbnVJdGVtc1RvSW50ZXJuYWwoaXRlbS5pdGVtcywgbmV3SXRlbS5rZXkpKTtcbiAgICAgICAgICAgIG5ld0l0ZW0uaXRlbXNWaXNpYmlsaXR5LnNldChuZXdJdGVtLml0ZW1zKCk/Lm1hcChpID0+IHNpZ25hbCh0cnVlKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld0l0ZW07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3SXRlbXM7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL21lbnUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWVudUNoYW5nZUV2ZW50IHtcbiAgICBrZXk/OiBzdHJpbmc7XG4gICAgZXZlbnRUeXBlPzogJ3JvdXRlQ2hhbmdlJyB8ICdyZXNldCc7XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const COMMONS_LAYOUT_FEATURE_CONFIG_IT = new InjectionToken('COMMONS_LAYOUT_FEATURE_CONFIG');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZlYXR1cmUtY29uZmlnLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtZmVhdHVyZS1jb25maWcudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBTyxNQUFNLGVBQWUsQ0FBQztBQXNCbkQsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQXNCLCtCQUErQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VuLCBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtNZW51SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5leHBvcnQgdHlwZSBMYXlvdXRNZW51TW9kZSA9ICdzdGF0aWMnIHwgJ292ZXJsYXknIHwgJ3JldmVhbCcgfCAnZHJhd2VyJyB8ICdzbGltJyB8ICdzbGltLXBsdXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dEZlYXR1cmVDb25maWcge1xuICAgIG1lbnVNb2RlPzogTGF5b3V0TWVudU1vZGU7XG4gICAgbWVudU1vZGVzPzogTGF5b3V0TWVudU1vZGVbXTtcbiAgICBtZW51SXRlbXM/OiBNZW51SXRlbVtdO1xuICAgIHJpcHBsZT86IGJvb2xlYW47XG4gICAgZGlzYWJsZU5vdGlmaWNhdGlvbldyYXBwZXI/OiBib29sZWFuO1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAgIHRvcGJhcj86IFR5cGU8YW55PiB8IGZhbHNlO1xuICAgICAgICBtZW51PzogVHlwZTxhbnk+IHwgZmFsc2U7XG4gICAgICAgIGZvb3Rlcj86IFR5cGU8YW55PiB8IGZhbHNlO1xuICAgICAgICBicmVhZGNydW1iPzogVHlwZTxhbnk+IHwgZmFsc2U7XG4gICAgICAgIHRvcGJhclVzZXI/OiBUeXBlPGFueT4gfCBmYWxzZTtcbiAgICAgICAgdmVyc2lvbj86IFR5cGU8YW55PiB8IGZhbHNlO1xuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMYXlvdXRGZWF0dXJlQ29uZmlnPignQ09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUcnKTtcbiJdfQ==
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { Injectable, inject, signal } from '@angular/core';
|
|
1
|
+
import { Injectable, computed, inject, signal } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
+
import { LocalStorageService } from '@mediusinc/mng-commons/core';
|
|
3
4
|
import { COMMONS_LAYOUT_FEATURE_CONFIG_IT } from './layout-feature-config.token';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class MainLayoutComponentService {
|
|
6
7
|
constructor() {
|
|
8
|
+
this.typeName = 'MainLayoutComponentService';
|
|
9
|
+
this.storageMenuModeKey = 'menuMode';
|
|
7
10
|
this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
|
|
11
|
+
this.storageService = inject(LocalStorageService);
|
|
8
12
|
this.state = signal({
|
|
9
13
|
staticMenuDesktopInactive: false,
|
|
10
14
|
overlayMenuActive: false,
|
|
@@ -17,6 +21,24 @@ export class MainLayoutComponentService {
|
|
|
17
21
|
});
|
|
18
22
|
this.overlayOpen = new Subject();
|
|
19
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);
|
|
20
42
|
}
|
|
21
43
|
onMenuToggle() {
|
|
22
44
|
if (this.isOverlay()) {
|
|
@@ -47,25 +69,23 @@ export class MainLayoutComponentService {
|
|
|
47
69
|
onOverlaySubmenuOpen() {
|
|
48
70
|
this.overlayOpen.next(null);
|
|
49
71
|
}
|
|
50
|
-
isOverlay() {
|
|
51
|
-
return this.config?.menuMode === 'overlay';
|
|
52
|
-
}
|
|
53
|
-
isSlim() {
|
|
54
|
-
return this.config?.menuMode === 'slim';
|
|
55
|
-
}
|
|
56
|
-
isSlimPlus() {
|
|
57
|
-
return this.config?.menuMode === 'slim-plus';
|
|
58
|
-
}
|
|
59
72
|
isDesktop() {
|
|
60
73
|
return window.innerWidth > 991;
|
|
61
74
|
}
|
|
62
75
|
isMobile() {
|
|
63
76
|
return !this.isDesktop();
|
|
64
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
|
+
}
|
|
65
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
66
86
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService }); }
|
|
67
87
|
}
|
|
68
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: MainLayoutComponentService, decorators: [{
|
|
69
89
|
type: Injectable
|
|
70
90
|
}] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1sYXlvdXQuY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL21haW4tbGF5b3V0LmNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUdoRSxPQUFPLEVBQUMsZ0NBQWdDLEVBQWlCLE1BQU0sK0JBQStCLENBQUM7O0FBRy9GLE1BQU0sT0FBTywwQkFBMEI7SUFEdkM7UUFFcUIsYUFBUSxHQUFHLDRCQUE0QixDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLFVBQVUsQ0FBQztRQUVoQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDcEUsbUJBQWMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV2RCxVQUFLLEdBQUcsTUFBTSxDQUFjO1lBQy9CLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixlQUFlLEVBQUUsS0FBSztZQUN0QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUssZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0QyxjQUFTLEdBQXFCLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvSCxjQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXZDLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzFELFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFdBQVcsQ0FBQyxDQUFDO0tBOER2RTtJQTVERyxnQkFBZ0IsQ0FBQyxJQUFvQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixHQUFHLEtBQUs7Z0JBQ1IsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2FBQzlDLENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDeEIsR0FBRyxLQUFLO2dCQUNSLHlCQUF5QixFQUFFLENBQUMsS0FBSyxDQUFDLHlCQUF5QjthQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixHQUFHLEtBQUs7Z0JBQ1Isc0JBQXNCLEVBQUUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO2FBQ3hELENBQUMsQ0FBQyxDQUFDO1lBRUosSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxNQUFNLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLFlBQVk7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkcsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxRQUFRLENBQUM7SUFDN0MsQ0FBQzs4R0F4RlEsMEJBQTBCO2tIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7TG9jYWxTdG9yYWdlU2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtMYXlvdXRTdGF0ZX0gZnJvbSAnLi4vbW9kZWxzL2xheW91dC1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQge0NPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCBMYXlvdXRNZW51TW9kZX0gZnJvbSAnLi9sYXlvdXQtZmVhdHVyZS1jb25maWcudG9rZW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZU5hbWUgPSAnTWFpbkxheW91dENvbXBvbmVudFNlcnZpY2UnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZU1lbnVNb2RlS2V5ID0gJ21lbnVNb2RlJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENPTU1PTlNfTEFZT1VUX0ZFQVRVUkVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgcHVibGljIHN0YXRlID0gc2lnbmFsPExheW91dFN0YXRlPih7XG4gICAgICAgIHN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU6IGZhbHNlLFxuICAgICAgICBvdmVybGF5TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIHJpZ2h0TWVudUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ1NpZGViYXJWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgc3RhdGljTWVudU1vYmlsZUFjdGl2ZTogZmFsc2UsXG4gICAgICAgIG1lbnVIb3ZlckFjdGl2ZTogZmFsc2UsXG4gICAgICAgIHNpZGViYXJBY3RpdmU6IGZhbHNlLFxuICAgICAgICBhbmNob3JlZDogZmFsc2VcbiAgICB9KTtcblxuICAgIHByaXZhdGUgb3ZlcmxheU9wZW4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgcHVibGljIG92ZXJsYXlPcGVuJCA9IHRoaXMub3ZlcmxheU9wZW4uYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWVudU1vZGVzOiBMYXlvdXRNZW51TW9kZVtdID0gdGhpcy5jb25maWc/Lm1lbnVNb2RlcyA/PyBbJ3N0YXRpYycsICdvdmVybGF5JywgJ3JldmVhbCcsICdkcmF3ZXInLCAnc2xpbScsICdzbGltLXBsdXMnXTtcbiAgICBwcml2YXRlIF9tZW51TW9kZSA9IHNpZ25hbCh0aGlzLmluaXRNZW51TW9kZSgpKTtcbiAgICBwdWJsaWMgbWVudU1vZGUgPSB0aGlzLl9tZW51TW9kZS5hc1JlYWRvbmx5KCk7XG5cbiAgICBwdWJsaWMgaXNPdmVybGF5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51TW9kZSgpID09PSAnb3ZlcmxheScpO1xuICAgIHB1YmxpYyBpc1NsaW0gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdzbGltJyk7XG4gICAgcHVibGljIGlzU2xpbVBsdXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdzbGltLXBsdXMnKTtcblxuICAgIG9uTWVudU1vZGVDaGFuZ2UobW9kZTogTGF5b3V0TWVudU1vZGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1lbnVNb2Rlcy5pbmNsdWRlcyhtb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlID09PSB0aGlzLmNvbmZpZz8ubWVudU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSh0aGlzLnR5cGVOYW1lLCB0aGlzLnN0b3JhZ2VNZW51TW9kZUtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy50eXBlTmFtZSwgdGhpcy5zdG9yYWdlTWVudU1vZGVLZXksIG1vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lbnVNb2RlLnNldChtb2RlKTtcbiAgICB9XG5cbiAgICBvbk1lbnVUb2dnbGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3ZlcmxheSgpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlNZW51QWN0aXZlOiAhc3RhdGUub3ZlcmxheU1lbnVBY3RpdmVcbiAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUoKS5vdmVybGF5TWVudUFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4ubmV4dChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRGVza3RvcCgpKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIHN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmU6ICFzdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIHN0YXRpY01lbnVNb2JpbGVBY3RpdmU6ICFzdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlKCkuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4ubmV4dChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uT3ZlcmxheVN1Ym1lbnVPcGVuKCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlPcGVuLm5leHQobnVsbCk7XG4gICAgfVxuXG4gICAgaXNEZXNrdG9wKCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPiA5OTE7XG4gICAgfVxuXG4gICAgaXNNb2JpbGUoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2t0b3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRNZW51TW9kZSgpOiBMYXlvdXRNZW51TW9kZSB7XG4gICAgICAgIGNvbnN0IGxzTW9kZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbTxMYXlvdXRNZW51TW9kZT4odGhpcy50eXBlTmFtZSwgdGhpcy5zdG9yYWdlTWVudU1vZGVLZXkpO1xuICAgICAgICBpZiAobHNNb2RlICYmIHRoaXMubWVudU1vZGVzLmluY2x1ZGVzKGxzTW9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBsc01vZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnPy5tZW51TW9kZSA/PyAnc3RhdGljJztcbiAgICB9XG59XG4iXX0=
|