@mediusinc/mng-commons-layout 6.0.0-rc.4 → 6.0.0-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/pages/error/index.d.ts +1 -3
- package/components/pages/not-found/index.d.ts +1 -3
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs +6 -7
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-error.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs +3 -3
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-main.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs +6 -7
- package/fesm2022/mediusinc-mng-commons-layout-components-pages-not-found.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout-components.mjs +62 -58
- package/fesm2022/mediusinc-mng-commons-layout-components.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-layout.mjs +21 -14
- package/fesm2022/mediusinc-mng-commons-layout.mjs.map +1 -1
- package/package.json +11 -21
- package/scss/commons.scss +1 -0
- package/scss/layout/_breadcrumb.scss +14 -11
- package/scss/layout/_config.scss +75 -7
- package/scss/layout/_content.scss +1 -1
- package/scss/layout/_main.scss +7 -9
- package/scss/layout/_profile.scss +1 -1
- package/scss/layout/_responsive.scss +4 -2
- package/scss/layout/_sass_variables.scss +1 -0
- package/scss/layout/_sidebar_drawer.scss +6 -5
- package/scss/layout/_sidebar_horizontal.scss +15 -11
- package/scss/layout/_sidebar_reveal.scss +16 -10
- package/scss/layout/_sidebar_slim.scss +5 -3
- package/scss/layout/_sidebar_slim_plus.scss +5 -2
- package/scss/layout/_sidebar_vertical.scss +13 -7
- package/scss/layout/_topbar.scss +75 -45
- package/scss/layout/_utils.scss +1 -5
- package/scss/layout/layout.scss +29 -22
- package/scss/layout/mng/{_mng_layout_menu.scss → layout/_mng_layout_menu.scss} +0 -4
- package/scss/layout/mng/{_mng_layout_topbar.scss → layout/_mng_layout_topbar.scss} +2 -2
- package/scss/layout/mng/theme/_mng_theme_button.scss +63 -0
- package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_dialog.scss +44 -46
- package/scss/{theme/theme-base/mng → layout/mng/theme}/_mng_theme_toast.scss +4 -4
- package/scss/layout/mng/theme/_mng_theme_toggleswitch.scss +3 -0
- package/scss/layout/mng/variables/_mng-variables-common.scss +22 -0
- package/scss/layout/variables/_common.scss +15 -0
- package/scss/layout/variables/_dark.scss +10 -0
- package/scss/layout/variables/_light.scss +10 -0
- package/version-info.json +3 -3
- package/esm2022/components/index.mjs +0 -12
- package/esm2022/components/lib/components/breadcrumb.component.mjs +0 -29
- package/esm2022/components/lib/components/footer.component.mjs +0 -23
- package/esm2022/components/lib/components/main-layout.component.mjs +0 -86
- package/esm2022/components/lib/components/menu-item.component.mjs +0 -169
- package/esm2022/components/lib/components/menu.component.mjs +0 -36
- package/esm2022/components/lib/components/settings.component.mjs +0 -87
- package/esm2022/components/lib/components/sidebar.component.mjs +0 -51
- package/esm2022/components/lib/components/topbar-user.component.mjs +0 -51
- package/esm2022/components/lib/components/topbar.component.mjs +0 -37
- package/esm2022/components/lib/components/version.component.mjs +0 -95
- package/esm2022/components/mediusinc-mng-commons-layout-components.mjs +0 -5
- package/esm2022/components/pages/error/index.mjs +0 -4
- package/esm2022/components/pages/error/lib/error.page.component.mjs +0 -20
- package/esm2022/components/pages/error/mediusinc-mng-commons-layout-components-pages-error.mjs +0 -5
- package/esm2022/components/pages/main/index.mjs +0 -3
- package/esm2022/components/pages/main/lazy/index.mjs +0 -2
- package/esm2022/components/pages/main/lazy/lib/route-builder.mjs +0 -11
- package/esm2022/components/pages/main/lazy/mediusinc-mng-commons-layout-components-pages-main-lazy.mjs +0 -5
- package/esm2022/components/pages/main/lib/main-layout.component.mjs +0 -84
- package/esm2022/components/pages/main/lib/route-builder.mjs +0 -12
- package/esm2022/components/pages/main/mediusinc-mng-commons-layout-components-pages-main.mjs +0 -5
- package/esm2022/components/pages/not-found/index.mjs +0 -4
- package/esm2022/components/pages/not-found/lib/not-found.page.component.mjs +0 -20
- package/esm2022/components/pages/not-found/mediusinc-mng-commons-layout-components-pages-not-found.mjs +0 -5
- package/esm2022/index.mjs +0 -13
- package/esm2022/lib/helpers/menu-items.mjs +0 -29
- package/esm2022/lib/models/layout-state.model.mjs +0 -2
- package/esm2022/lib/models/menu.model.mjs +0 -2
- package/esm2022/lib/provide.mjs +0 -25
- package/esm2022/lib/services/layout-feature-config.token.mjs +0 -3
- package/esm2022/lib/services/layout.service.mjs +0 -167
- package/esm2022/lib/services/menu.service.mjs +0 -121
- package/esm2022/lib/services/version.service.mjs +0 -45
- package/esm2022/mediusinc-mng-commons-layout.mjs +0 -5
- package/scss/commons-dark.scss +0 -9
- package/scss/commons-light.scss +0 -9
- package/scss/layout/_animation.scss +0 -53
- package/scss/layout/_fonts.scss +0 -40
- package/scss/layout/_layout_dark.scss +0 -12
- package/scss/layout/_layout_light.scss +0 -12
- package/scss/layout/_typography.scss +0 -67
- package/scss/layout/mng/_mng_layout_styles.scss +0 -4
- package/scss/layout/preloading.scss +0 -84
- package/scss/theme/extensions/_fullcalendar.scss +0 -328
- package/scss/theme/theme-base/_colors.scss +0 -17
- package/scss/theme/theme-base/_common.scss +0 -76
- package/scss/theme/theme-base/_components.scss +0 -110
- package/scss/theme/theme-base/_mixins.scss +0 -337
- package/scss/theme/theme-base/components/button/_button.scss +0 -576
- package/scss/theme/theme-base/components/button/_speeddial.scss +0 -96
- package/scss/theme/theme-base/components/button/_splitbutton.scss +0 -348
- package/scss/theme/theme-base/components/data/_carousel.scss +0 -37
- package/scss/theme/theme-base/components/data/_datatable.scss +0 -338
- package/scss/theme/theme-base/components/data/_dataview.scss +0 -46
- package/scss/theme/theme-base/components/data/_filter.scss +0 -137
- package/scss/theme/theme-base/components/data/_orderlist.scss +0 -114
- package/scss/theme/theme-base/components/data/_organizationchart.scss +0 -50
- package/scss/theme/theme-base/components/data/_paginator.scss +0 -92
- package/scss/theme/theme-base/components/data/_picklist.scss +0 -114
- package/scss/theme/theme-base/components/data/_timeline.scss +0 -35
- package/scss/theme/theme-base/components/data/_tree.scss +0 -150
- package/scss/theme/theme-base/components/data/_treetable.scss +0 -255
- package/scss/theme/theme-base/components/data/_virtualscroller.scss +0 -28
- package/scss/theme/theme-base/components/file/_fileupload.scss +0 -64
- package/scss/theme/theme-base/components/input/_autocomplete.scss +0 -136
- package/scss/theme/theme-base/components/input/_calendar.scss +0 -267
- package/scss/theme/theme-base/components/input/_cascadeselect.scss +0 -135
- package/scss/theme/theme-base/components/input/_checkbox.scss +0 -94
- package/scss/theme/theme-base/components/input/_chips.scss +0 -65
- package/scss/theme/theme-base/components/input/_colorpicker.scss +0 -19
- package/scss/theme/theme-base/components/input/_dropdown.scss +0 -151
- package/scss/theme/theme-base/components/input/_editor.scss +0 -122
- package/scss/theme/theme-base/components/input/_inputgroup.scss +0 -74
- package/scss/theme/theme-base/components/input/_inputmask.scss +0 -16
- package/scss/theme/theme-base/components/input/_inputnumber.scss +0 -28
- package/scss/theme/theme-base/components/input/_inputswitch.scss +0 -60
- package/scss/theme/theme-base/components/input/_inputtext.scss +0 -100
- package/scss/theme/theme-base/components/input/_listbox.scss +0 -97
- package/scss/theme/theme-base/components/input/_multiselect.scss +0 -177
- package/scss/theme/theme-base/components/input/_password.scss +0 -52
- package/scss/theme/theme-base/components/input/_radiobutton.scss +0 -78
- package/scss/theme/theme-base/components/input/_rating.scss +0 -60
- package/scss/theme/theme-base/components/input/_selectbutton.scss +0 -50
- package/scss/theme/theme-base/components/input/_slider.scss +0 -75
- package/scss/theme/theme-base/components/input/_togglebutton.scss +0 -48
- package/scss/theme/theme-base/components/input/_treeselect.scss +0 -139
- package/scss/theme/theme-base/components/menu/_breadcrumb.scss +0 -42
- package/scss/theme/theme-base/components/menu/_contextmenu.scss +0 -39
- package/scss/theme/theme-base/components/menu/_dock.scss +0 -95
- package/scss/theme/theme-base/components/menu/_megamenu.scss +0 -55
- package/scss/theme/theme-base/components/menu/_menu.scss +0 -37
- package/scss/theme/theme-base/components/menu/_menubar.scss +0 -140
- package/scss/theme/theme-base/components/menu/_panelmenu.scss +0 -153
- package/scss/theme/theme-base/components/menu/_slidemenu.scss +0 -59
- package/scss/theme/theme-base/components/menu/_steps.scss +0 -56
- package/scss/theme/theme-base/components/menu/_tabmenu.scss +0 -73
- package/scss/theme/theme-base/components/menu/_tieredmenu.scss +0 -43
- package/scss/theme/theme-base/components/messages/_inlinemessage.scss +0 -69
- package/scss/theme/theme-base/components/messages/_message.scss +0 -107
- package/scss/theme/theme-base/components/messages/_toast.scss +0 -99
- package/scss/theme/theme-base/components/misc/_avatar.scss +0 -30
- package/scss/theme/theme-base/components/misc/_badge.scss +0 -48
- package/scss/theme/theme-base/components/misc/_blockui.scss +0 -0
- package/scss/theme/theme-base/components/misc/_chip.scss +0 -42
- package/scss/theme/theme-base/components/misc/_inplace.scss +0 -16
- package/scss/theme/theme-base/components/misc/_progressbar.scss +0 -17
- package/scss/theme/theme-base/components/misc/_scrolltop.scss +0 -25
- package/scss/theme/theme-base/components/misc/_skeleton.scss +0 -8
- package/scss/theme/theme-base/components/misc/_tag.scss +0 -40
- package/scss/theme/theme-base/components/misc/_terminal.scss +0 -12
- package/scss/theme/theme-base/components/multimedia/_galleria.scss +0 -155
- package/scss/theme/theme-base/components/multimedia/_image.scss +0 -49
- package/scss/theme/theme-base/components/overlay/_confirmpopup.scss +0 -70
- package/scss/theme/theme-base/components/overlay/_dialog.scss +0 -69
- package/scss/theme/theme-base/components/overlay/_overlaypanel.scss +0 -62
- package/scss/theme/theme-base/components/overlay/_sidebar.scss +0 -27
- package/scss/theme/theme-base/components/overlay/_tooltip.scss +0 -33
- package/scss/theme/theme-base/components/panel/_accordion.scss +0 -119
- package/scss/theme/theme-base/components/panel/_card.scss +0 -30
- package/scss/theme/theme-base/components/panel/_divider.scss +0 -31
- package/scss/theme/theme-base/components/panel/_fieldset.scss +0 -47
- package/scss/theme/theme-base/components/panel/_panel.scss +0 -63
- package/scss/theme/theme-base/components/panel/_scrollpanel.scss +0 -6
- package/scss/theme/theme-base/components/panel/_splitter.scss +0 -19
- package/scss/theme/theme-base/components/panel/_tabview.scss +0 -82
- package/scss/theme/theme-base/components/panel/_toolbar.scss +0 -11
- package/scss/theme/theme-base/mng/_mng_mixins.scss +0 -69
- package/scss/theme/theme-base/mng/_mng_theme_autocomplete.scss +0 -34
- package/scss/theme/theme-base/mng/_mng_theme_button.scss +0 -68
- package/scss/theme/theme-base/mng/_mng_theme_datatable.scss +0 -157
- package/scss/theme/theme-base/mng/_mng_theme_datepicker.scss +0 -21
- package/scss/theme/theme-base/mng/_mng_theme_dropdown.scss +0 -32
- package/scss/theme/theme-base/mng/_mng_theme_fileupload.scss +0 -24
- package/scss/theme/theme-base/mng/_mng_theme_forms.scss +0 -66
- package/scss/theme/theme-base/mng/_mng_theme_image.scss +0 -27
- package/scss/theme/theme-base/mng/_mng_theme_input.scss +0 -42
- package/scss/theme/theme-base/mng/_mng_theme_menu.scss +0 -5
- package/scss/theme/theme-base/mng/_mng_theme_multiselect.scss +0 -20
- package/scss/theme/theme-base/mng/_mng_theme_styles.scss +0 -19
- package/scss/theme/theme-base/mng/_mng_theme_table.scss +0 -54
- package/scss/theme/theme-base/mng/_mng_theme_tableview.scss +0 -41
- package/scss/theme/theme-base/mng/_mng_theme_tabview.scss +0 -14
- package/scss/theme/theme-base/mng/_mng_theme_tag.scss +0 -11
- package/scss/theme/theme-base/mng/_mng_theme_toolbar.scss +0 -5
- package/scss/theme/theme-base/mng/_mng_variables.scss +0 -15
- package/scss/theme/theme-dark/_extensions.scss +0 -109
- package/scss/theme/theme-dark/_variables.scss +0 -941
- package/scss/theme/theme-dark/blue/theme.scss +0 -14
- package/scss/theme/theme-light/_extensions.scss +0 -109
- package/scss/theme/theme-light/_variables.scss +0 -937
- package/scss/theme/theme-light/blue/theme.scss +0 -14
- /package/scss/layout/mng/{_mng_layout_footer.scss → layout/_mng_layout_footer.scss} +0 -0
- /package/scss/layout/mng/{_mng_sidebar_vertical.scss → layout/_mng_sidebar_vertical.scss} +0 -0
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { NgClass } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, viewChild } from '@angular/core';
|
|
4
|
-
import { toObservable as ngToObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
7
|
-
import { RippleModule } from 'primeng/ripple';
|
|
8
|
-
import { TooltipModule } from 'primeng/tooltip';
|
|
9
|
-
import { distinctUntilChanged, of, switchMap } from 'rxjs';
|
|
10
|
-
import { LayoutService, MenuService } from '@mediusinc/mng-commons-layout';
|
|
11
|
-
import { PermissionService, toObservable } from '@mediusinc/mng-commons/core';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "primeng/ripple";
|
|
14
|
-
import * as i2 from "@angular/router";
|
|
15
|
-
import * as i3 from "@ngx-translate/core";
|
|
16
|
-
export class MenuItemComponent {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.menuService = inject(MenuService);
|
|
19
|
-
this.permissionService = inject(PermissionService);
|
|
20
|
-
this.layout = inject(LayoutService);
|
|
21
|
-
this.item = input.required();
|
|
22
|
-
this.root = input(false);
|
|
23
|
-
this.visibleChange = output();
|
|
24
|
-
this.submenuElRef = viewChild('submenu');
|
|
25
|
-
this.isPermitted = toSignal(ngToObservable(this.item).pipe(switchMap(i => (i.permissions ? this.permissionService.isMenuItemVisible(i.permissions, i.config) : of(true)))));
|
|
26
|
-
this.isVisibleFromItemSettings = toSignal(ngToObservable(this.item).pipe(switchMap(i => (typeof i.isVisible === 'function' ? toObservable(i.isVisible(i.config)) : of(i.isVisible ?? true)))));
|
|
27
|
-
this.menuChangeEvents = toSignal(this.menuService.menuChange$.pipe(distinctUntilChanged((v1, v2) => v1.key === v2.key)));
|
|
28
|
-
this.active = computed(() => {
|
|
29
|
-
if (!this.isPermitted()) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
const menuChangeEvent = this.menuChangeEvents();
|
|
33
|
-
if (menuChangeEvent) {
|
|
34
|
-
return menuChangeEvent.eventType === 'reset' || !menuChangeEvent.key
|
|
35
|
-
? false
|
|
36
|
-
: this.item().key === menuChangeEvent.key || menuChangeEvent.key.startsWith((this.item().key ?? '') + '-');
|
|
37
|
-
}
|
|
38
|
-
return false;
|
|
39
|
-
});
|
|
40
|
-
this.visible = computed(() => {
|
|
41
|
-
const isPermitted = this.isPermitted();
|
|
42
|
-
if (!isPermitted) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
if (!this.isVisibleFromItemSettings()) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
const items = this.item().items();
|
|
49
|
-
if (Array.isArray(items) &&
|
|
50
|
-
items.length > 0 &&
|
|
51
|
-
this.item()
|
|
52
|
-
.itemsVisibility()
|
|
53
|
-
.every(v => !v())) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
57
|
-
});
|
|
58
|
-
this.submenuAnimation = computed(() => {
|
|
59
|
-
if (this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
|
|
60
|
-
return this.layout.submenuOverlayKey() === this.item().key ? 'visible' : 'hidden';
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
return this.root() ? 'expanded' : this.active() ? 'expanded' : 'collapsed';
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
effect(() => {
|
|
67
|
-
if (this.root() && this.active() && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
|
|
68
|
-
this.calculatePosition(this.submenuElRef()?.nativeElement, this.submenuElRef()?.nativeElement.parentElement);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
itemClick(event) {
|
|
73
|
-
const item = this.item();
|
|
74
|
-
// avoid processing disabled items
|
|
75
|
-
if (item.disabled) {
|
|
76
|
-
event.preventDefault();
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (item.hasItemsOrLazyChildren()) {
|
|
80
|
-
// open submenu in slim/slim+ mode
|
|
81
|
-
if (this.root() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
|
|
82
|
-
this.layout.onOverlaySubmenuOpen(item.key);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
if (this.layout.isMobile()) {
|
|
87
|
-
this.layout.state.update(state => ({
|
|
88
|
-
...state,
|
|
89
|
-
staticMenuMobileActive: false
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
if (this.layout.isSlim() || this.layout.isSlimPlus()) {
|
|
93
|
-
this.layout.state.update(state => ({
|
|
94
|
-
...state,
|
|
95
|
-
menuHoverActive: false
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
if (this.layout.submenuOverlayKey() !== undefined) {
|
|
99
|
-
this.layout.onOverlaySubmenuClose();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
onSubmenuAnimated(event) {
|
|
104
|
-
if (event.toState === 'visible' && this.layout.isDesktop() && (this.layout.isSlim() || this.layout.isSlimPlus())) {
|
|
105
|
-
const el = event.element;
|
|
106
|
-
const elParent = el.parentElement;
|
|
107
|
-
this.calculatePosition(el, elParent);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
onChildVisibleChange(visible, item, idx) {
|
|
111
|
-
this.item().itemsVisibility()[idx]?.set(visible);
|
|
112
|
-
}
|
|
113
|
-
calculatePosition(overlay, target) {
|
|
114
|
-
if (overlay) {
|
|
115
|
-
const top = target.getBoundingClientRect().top;
|
|
116
|
-
const vHeight = window.innerHeight;
|
|
117
|
-
const oHeight = overlay.offsetHeight;
|
|
118
|
-
// reset
|
|
119
|
-
overlay.style.top = '';
|
|
120
|
-
overlay.style.left = '';
|
|
121
|
-
if (this.layout.isSlim() || this.layout.isSlimPlus()) {
|
|
122
|
-
const height = top + oHeight;
|
|
123
|
-
overlay.style.top = vHeight < height ? `${top - (height - vHeight)}px` : `${top}px`;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: MenuItemComponent, isStandalone: true, selector: "[mng-menuitem]", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, root: { classPropertyName: "root", publicName: "root", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { properties: { "class.active-menuitem": "!root() && active()", "class.layout-root-menuitem": "root()" } }, providers: [PermissionService], viewQueries: [{ propertyName: "submenuElRef", first: true, predicate: ["submenu"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n [routerLink]=\"layout.isSlim() || layout.isSlimPlus() ? null : item().routerLink\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\" pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation()\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n", dependencies: [{ kind: "component", type: MenuItemComponent, selector: "[mng-menuitem]", inputs: ["item", "root"], outputs: ["visibleChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i1.Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [
|
|
129
|
-
trigger('children', [
|
|
130
|
-
state('collapsed', style({
|
|
131
|
-
height: '0'
|
|
132
|
-
})),
|
|
133
|
-
state('expanded', style({
|
|
134
|
-
height: '*'
|
|
135
|
-
})),
|
|
136
|
-
state('hidden', style({
|
|
137
|
-
display: 'none'
|
|
138
|
-
})),
|
|
139
|
-
state('visible', style({
|
|
140
|
-
display: 'block'
|
|
141
|
-
})),
|
|
142
|
-
transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))
|
|
143
|
-
])
|
|
144
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
145
|
-
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuItemComponent, decorators: [{
|
|
147
|
-
type: Component,
|
|
148
|
-
args: [{ standalone: true, selector: '[mng-menuitem]', imports: [NgClass, RippleModule, TooltipModule, RouterModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
149
|
-
trigger('children', [
|
|
150
|
-
state('collapsed', style({
|
|
151
|
-
height: '0'
|
|
152
|
-
})),
|
|
153
|
-
state('expanded', style({
|
|
154
|
-
height: '*'
|
|
155
|
-
})),
|
|
156
|
-
state('hidden', style({
|
|
157
|
-
display: 'none'
|
|
158
|
-
})),
|
|
159
|
-
state('visible', style({
|
|
160
|
-
display: 'block'
|
|
161
|
-
})),
|
|
162
|
-
transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))
|
|
163
|
-
])
|
|
164
|
-
], host: {
|
|
165
|
-
'[class.active-menuitem]': '!root() && active()',
|
|
166
|
-
'[class.layout-root-menuitem]': 'root()'
|
|
167
|
-
}, providers: [PermissionService], template: "@if (visible()) {\n @if (root()) {\n <div class=\"layout-menuitem-root-text\">\n {{ item().label! | translate }}\n </div>\n }\n @if (!item().href) {\n @if (!item().routerLink || item().hasItems()) {\n <a\n [attr.href]=\"item().href\"\n [routerLink]=\"layout.isSlim() || layout.isSlimPlus() ? null : item().routerLink\"\n (click)=\"itemClick($event)\"\n (keydown.enter)=\"itemClick($event)\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n } @else if (item().routerLink && !item().hasItems()) {\n <a\n (click)=\"itemClick($event)\"\n [routerLink]=\"item().routerLink\"\n [attr.target]=\"item().target\"\n [attr.tabindex]=\"0\"\n [ngClass]=\"item().className ?? '' + (this.active() ? ' active-route' : '')\"\n [preserveFragment]=\"item().preserveFragment\"\n [skipLocationChange]=\"item().skipLocationChange\"\n [replaceUrl]=\"item().replaceUrl\"\n [queryParams]=\"item().queryParams\"\n pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n } @else {\n @if (!item().hasItems()) {\n <a (click)=\"itemClick($event)\" [attr.href]=\"item().href\" [attr.target]=\"item().target\" [attr.tabindex]=\"0\" [ngClass]=\"item().className ?? ''\" pRipple>\n <i [ngClass]=\"item().icon ?? ''\" class=\"layout-menuitem-icon\"></i>\n <span class=\"layout-menuitem-text\">{{ item().label! | translate }}</span>\n @if (item().hasItemsOrLazyChildren()) {\n <i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\n }\n @if (item().badge) {\n <span class=\"menuitem-badge\">{{ item().badge }}</span>\n }\n </a>\n }\n }\n @if (item().hasItems()) {\n <ul #submenu [@children]=\"submenuAnimation()\" (@children.done)=\"onSubmenuAnimated($event)\">\n @for (child of item().items(); track child; let i = $index) {\n <li mng-menuitem [item]=\"child\" [class]=\"child.badgeClassName\" (visibleChange)=\"onChildVisibleChange($event, child, i)\"></li>\n }\n </ul>\n }\n}\n" }]
|
|
168
|
-
}], ctorParameters: () => [] });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0YsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFDLFlBQVksSUFBSSxjQUFjLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUEwQixpQkFBaUIsRUFBRSxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUE0Q3JHLE1BQU0s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QUFTLEVBQ1QsS0FBSyxDQUFDO29CQUNGLE9BQU8sRUFBRSxPQUFPO2lCQUNuQixDQUFDLENBQ0w7Z0JBQ0QsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2FBQ3hGLENBQUM7U0FDTDs7NEZBT1EsaUJBQWlCO2tCQTFDN0IsU0FBUztpQ0FDTSxJQUFJLFlBRU4sZ0JBQWdCLFdBRWpCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxtQkFDN0QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQzt3QkFDUixPQUFPLENBQUMsVUFBVSxFQUFFOzRCQUNoQixLQUFLLENBQ0QsV0FBVyxFQUNYLEtBQUssQ0FBQztnQ0FDRixNQUFNLEVBQUUsR0FBRzs2QkFDZCxDQUFDLENBQ0w7NEJBQ0QsS0FBSyxDQUNELFVBQVUsRUFDVixLQUFLLENBQUM7Z0NBQ0YsTUFBTSxFQUFFLEdBQUc7NkJBQ2QsQ0FBQyxDQUNMOzRCQUNELEtBQUssQ0FDRCxRQUFRLEVBQ1IsS0FBSyxDQUFDO2dDQUNGLE9BQU8sRUFBRSxNQUFNOzZCQUNsQixDQUFDLENBQ0w7NEJBQ0QsS0FBSyxDQUNELFNBQVMsRUFDVCxLQUFLLENBQUM7Z0NBQ0YsT0FBTyxFQUFFLE9BQU87NkJBQ25CLENBQUMsQ0FDTDs0QkFDRCxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3hGLENBQUM7cUJBQ0wsUUFDSzt3QkFDRix5QkFBeUIsRUFBRSxxQkFBcUI7d0JBQ2hELDhCQUE4QixFQUFFLFFBQVE7cUJBQzNDLGFBQ1UsQ0FBQyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QW5pbWF0aW9uRXZlbnQsIGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge05nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgdmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9PYnNlcnZhYmxlIGFzIG5nVG9PYnNlcnZhYmxlLCB0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlLCBNZW51U2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1sYXlvdXQnO1xuaW1wb3J0IHtJbnRlcm5hbENvbW1vbnNNZW51SXRlbSwgUGVybWlzc2lvblNlcnZpY2UsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW21uZy1tZW51aXRlbV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgUmlwcGxlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdjaGlsZHJlbicsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdjb2xsYXBzZWQnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMCdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdleHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaydcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA8PT4gZXhwYW5kZWQnLCBhbmltYXRlKCc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknKSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5hY3RpdmUtbWVudWl0ZW1dJzogJyFyb290KCkgJiYgYWN0aXZlKCknLFxuICAgICAgICAnW2NsYXNzLmxheW91dC1yb290LW1lbnVpdGVtXSc6ICdyb290KCknXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtQZXJtaXNzaW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUl0ZW1Db21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVudVNlcnZpY2UgPSBpbmplY3QoTWVudVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2UgPSBpbmplY3QoUGVybWlzc2lvblNlcnZpY2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXQgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG5cbiAgICBwdWJsaWMgaXRlbSA9IGlucHV0LnJlcXVpcmVkPEludGVybmFsQ29tbW9uc01lbnVJdGVtPigpO1xuICAgIHB1YmxpYyByb290ID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyB2aXNpYmxlQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIHN1Ym1lbnVFbFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignc3VibWVudScpO1xuXG4gICAgcHVibGljIGlzUGVybWl0dGVkID0gdG9TaWduYWwobmdUb09ic2VydmFibGUodGhpcy5pdGVtKS5waXBlKHN3aXRjaE1hcChpID0+IChpLnBlcm1pc3Npb25zID8gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5pc01lbnVJdGVtVmlzaWJsZShpLnBlcm1pc3Npb25zLCBpLmNvbmZpZykgOiBvZih0cnVlKSkpKSk7XG4gICAgcHVibGljIGlzVmlzaWJsZUZyb21JdGVtU2V0dGluZ3MgPSB0b1NpZ25hbChcbiAgICAgICAgbmdUb09ic2VydmFibGUodGhpcy5pdGVtKS5waXBlKHN3aXRjaE1hcChpID0+ICh0eXBlb2YgaS5pc1Zpc2libGUgPT09ICdmdW5jdGlvbicgPyB0b09ic2VydmFibGUoaS5pc1Zpc2libGUoaS5jb25maWcpKSA6IG9mKGkuaXNWaXNpYmxlID8/IHRydWUpKSkpXG4gICAgKTtcbiAgICBwcml2YXRlIG1lbnVDaGFuZ2VFdmVudHMgPSB0b1NpZ25hbCh0aGlzLm1lbnVTZXJ2aWNlLm1lbnVDaGFuZ2UkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKHYxLCB2MikgPT4gdjEua2V5ID09PSB2Mi5rZXkpKSk7XG4gICAgcHVibGljIGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUGVybWl0dGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZW51Q2hhbmdlRXZlbnQgPSB0aGlzLm1lbnVDaGFuZ2VFdmVudHMoKTtcbiAgICAgICAgaWYgKG1lbnVDaGFuZ2VFdmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG1lbnVDaGFuZ2VFdmVudC5ldmVudFR5cGUgPT09ICdyZXNldCcgfHwgIW1lbnVDaGFuZ2VFdmVudC5rZXlcbiAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgOiB0aGlzLml0ZW0oKS5rZXkgPT09IG1lbnVDaGFuZ2VFdmVudC5rZXkgfHwgbWVudUNoYW5nZUV2ZW50LmtleS5zdGFydHNXaXRoKCh0aGlzLml0ZW0oKS5rZXkgPz8gJycpICsgJy0nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG4gICAgcHVibGljIHZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUGVybWl0dGVkID0gdGhpcy5pc1Blcm1pdHRlZCgpO1xuICAgICAgICBpZiAoIWlzUGVybWl0dGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZUZyb21JdGVtU2V0dGluZ3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtKCkuaXRlbXMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShpdGVtcykgJiZcbiAgICAgICAgICAgIGl0ZW1zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIHRoaXMuaXRlbSgpXG4gICAgICAgICAgICAgICAgLml0ZW1zVmlzaWJpbGl0eSgpXG4gICAgICAgICAgICAgICAgLmV2ZXJ5KHYgPT4gIXYoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgc3VibWVudUFuaW1hdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0LmlzRGVza3RvcCgpICYmICh0aGlzLmxheW91dC5pc1NsaW0oKSB8fCB0aGlzLmxheW91dC5pc1NsaW1QbHVzKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXQuc3VibWVudU92ZXJsYXlLZXkoKSA9PT0gdGhpcy5pdGVtKCkua2V5ID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290KCkgPyAnZXhwYW5kZWQnIDogdGhpcy5hY3RpdmUoKSA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJztcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290KCkgJiYgdGhpcy5hY3RpdmUoKSAmJiB0aGlzLmxheW91dC5pc0Rlc2t0b3AoKSAmJiAodGhpcy5sYXlvdXQuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXQuaXNTbGltUGx1cygpKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24odGhpcy5zdWJtZW51RWxSZWYoKT8ubmF0aXZlRWxlbWVudCwgdGhpcy5zdWJtZW51RWxSZWYoKT8ubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGl0ZW1DbGljayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgICAgICAvLyBhdm9pZCBwcm9jZXNzaW5nIGRpc2FibGVkIGl0ZW1zXG4gICAgICAgIGlmIChpdGVtLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW0uaGFzSXRlbXNPckxhenlDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAvLyBvcGVuIHN1Ym1lbnUgaW4gc2xpbS9zbGltKyBtb2RlXG4gICAgICAgICAgICBpZiAodGhpcy5yb290KCkgJiYgKHRoaXMubGF5b3V0LmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0LmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dC5vbk92ZXJsYXlTdWJtZW51T3BlbihpdGVtLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQuaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0LnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljTWVudU1vYmlsZUFjdGl2ZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXQuaXNTbGltUGx1cygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQuc3RhdGUudXBkYXRlKHN0YXRlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBtZW51SG92ZXJBY3RpdmU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQuc3VibWVudU92ZXJsYXlLZXkoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQub25PdmVybGF5U3VibWVudUNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN1Ym1lbnVBbmltYXRlZChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJyAmJiB0aGlzLmxheW91dC5pc0Rlc2t0b3AoKSAmJiAodGhpcy5sYXlvdXQuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXQuaXNTbGltUGx1cygpKSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSA8SFRNTFVMaXN0RWxlbWVudD5ldmVudC5lbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZWxQYXJlbnQgPSA8SFRNTFVMaXN0RWxlbWVudD5lbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbihlbCwgZWxQYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hpbGRWaXNpYmxlQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4sIGl0ZW06IEludGVybmFsQ29tbW9uc01lbnVJdGVtLCBpZHg6IG51bWJlcikge1xuICAgICAgICB0aGlzLml0ZW0oKS5pdGVtc1Zpc2liaWxpdHkoKVtpZHhdPy5zZXQodmlzaWJsZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbihvdmVybGF5OiBIVE1MRWxlbWVudCwgdGFyZ2V0OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBpZiAob3ZlcmxheSkge1xuICAgICAgICAgICAgY29uc3QgdG9wID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgICAgICAgIGNvbnN0IHZIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBvSGVpZ2h0ID0gb3ZlcmxheS5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgICAgIC8vIHJlc2V0XG4gICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9ICcnO1xuICAgICAgICAgICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gJyc7XG4gICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQuaXNTbGltKCkgfHwgdGhpcy5sYXlvdXQuaXNTbGltUGx1cygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gdG9wICsgb0hlaWdodDtcbiAgICAgICAgICAgICAgICBvdmVybGF5LnN0eWxlLnRvcCA9IHZIZWlnaHQgPCBoZWlnaHQgPyBgJHt0b3AgLSAoaGVpZ2h0IC0gdkhlaWdodCl9cHhgIDogYCR7dG9wfXB4YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAodmlzaWJsZSgpKSB7XG4gICAgQGlmIChyb290KCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1yb290LXRleHRcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0oKS5sYWJlbCEgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoIWl0ZW0oKS5ocmVmKSB7XG4gICAgICAgIEBpZiAoIWl0ZW0oKS5yb3V0ZXJMaW5rIHx8IGl0ZW0oKS5oYXNJdGVtcygpKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiaXRlbSgpLmhyZWZcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxheW91dC5pc1NsaW0oKSB8fCBsYXlvdXQuaXNTbGltUGx1cygpID8gbnVsbCA6IGl0ZW0oKS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIml0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwiaXRlbSgpLnRhcmdldFwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiMFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbSgpLmNsYXNzTmFtZSA/PyAnJyArICh0aGlzLmFjdGl2ZSgpID8gJyBhY3RpdmUtcm91dGUnIDogJycpXCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlPlxuICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0oKS5pY29uID8/ICcnXCIgY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0taWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxheW91dC1tZW51aXRlbS10ZXh0XCI+e3sgaXRlbSgpLmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0oKS5oYXNJdGVtc09yTGF6eUNoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1hbmdsZS1kb3duIGxheW91dC1zdWJtZW51LXRvZ2dsZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbSgpLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudWl0ZW0tYmFkZ2VcIj57eyBpdGVtKCkuYmFkZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIGlmIChpdGVtKCkucm91dGVyTGluayAmJiAhaXRlbSgpLmhhc0l0ZW1zKCkpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtKCkucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFyZ2V0XT1cIml0ZW0oKS50YXJnZXRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIjBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0oKS5jbGFzc05hbWUgPz8gJycgKyAodGhpcy5hY3RpdmUoKSA/ICcgYWN0aXZlLXJvdXRlJyA6ICcnKVwiXG4gICAgICAgICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiaXRlbSgpLnByZXNlcnZlRnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiaXRlbSgpLnNraXBMb2NhdGlvbkNoYW5nZVwiXG4gICAgICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiaXRlbSgpLnJlcGxhY2VVcmxcIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtKCkucXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgIHBSaXBwbGU+XG4gICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbSgpLmljb24gPz8gJydcIiBjbGFzcz1cImxheW91dC1tZW51aXRlbS1pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLXRleHRcIj57eyBpdGVtKCkubGFiZWwhIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbSgpLmhhc0l0ZW1zT3JMYXp5Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWFuZ2xlLWRvd24gbGF5b3V0LXN1Ym1lbnUtdG9nZ2xlclwiPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtKCkuYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51aXRlbS1iYWRnZVwiPnt7IGl0ZW0oKS5iYWRnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGlmICghaXRlbSgpLmhhc0l0ZW1zKCkpIHtcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJpdGVtQ2xpY2soJGV2ZW50KVwiIFthdHRyLmhyZWZdPVwiaXRlbSgpLmhyZWZcIiBbYXR0ci50YXJnZXRdPVwiaXRlbSgpLnRhcmdldFwiIFthdHRyLnRhYmluZGV4XT1cIjBcIiBbbmdDbGFzc109XCJpdGVtKCkuY2xhc3NOYW1lID8/ICcnXCIgcFJpcHBsZT5cbiAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtKCkuaWNvbiA/PyAnJ1wiIGNsYXNzPVwibGF5b3V0LW1lbnVpdGVtLWljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYXlvdXQtbWVudWl0ZW0tdGV4dFwiPnt7IGl0ZW0oKS5sYWJlbCEgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtKCkuaGFzSXRlbXNPckxhenlDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktYW5nbGUtZG93biBsYXlvdXQtc3VibWVudS10b2dnbGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0oKS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnVpdGVtLWJhZGdlXCI+e3sgaXRlbSgpLmJhZGdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaWYgKGl0ZW0oKS5oYXNJdGVtcygpKSB7XG4gICAgICAgIDx1bCAjc3VibWVudSBbQGNoaWxkcmVuXT1cInN1Ym1lbnVBbmltYXRpb24oKVwiIChAY2hpbGRyZW4uZG9uZSk9XCJvblN1Ym1lbnVBbmltYXRlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtKCkuaXRlbXMoKTsgdHJhY2sgY2hpbGQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGxpIG1uZy1tZW51aXRlbSBbaXRlbV09XCJjaGlsZFwiIFtjbGFzc109XCJjaGlsZC5iYWRnZUNsYXNzTmFtZVwiICh2aXNpYmxlQ2hhbmdlKT1cIm9uQ2hpbGRWaXNpYmxlQ2hhbmdlKCRldmVudCwgY2hpbGQsIGkpXCI+PC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, effect, inject, untracked } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService, MenuService } from '@mediusinc/mng-commons-layout';
|
|
5
|
-
import { MenuItemComponent } from './menu-item.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class MenuComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.route = inject(ActivatedRoute);
|
|
10
|
-
this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
|
|
11
|
-
this.layout = inject(LayoutService);
|
|
12
|
-
this.menuService = inject(MenuService);
|
|
13
|
-
this.routeData = toSignal(this.route.data);
|
|
14
|
-
effect(() => {
|
|
15
|
-
let items = [];
|
|
16
|
-
if (this.config?.menuItems && Array.isArray(this.config.menuItems)) {
|
|
17
|
-
items = this.config.menuItems;
|
|
18
|
-
}
|
|
19
|
-
else if (Array.isArray(this.routeData()?.menuItems)) {
|
|
20
|
-
items = this.routeData().menuItems;
|
|
21
|
-
}
|
|
22
|
-
// Wraps menu items
|
|
23
|
-
if (!(this.layout.isSlim() || this.layout.isSlimPlus())) {
|
|
24
|
-
items = [{ items }];
|
|
25
|
-
}
|
|
26
|
-
untracked(() => this.menuService.setItems(items));
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", 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 }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MenuComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
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" }]
|
|
35
|
-
}], ctorParameters: () => [] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFHM0csT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBU3hELE1BQU0sT0FBTyxhQUFhO0lBUXRCO1FBUGlCLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3BFLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0MsY0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3pDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLEtBQUssR0FBc0IsRUFBRSxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBRSxJQUFJLENBQUMsU0FBUyxFQUFtQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RGLEtBQUssR0FBSSxJQUFJLENBQUMsU0FBUyxFQUF1QixDQUFDLFNBQVUsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RELEtBQUssR0FBRyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUN0QixDQUFDO1lBRUQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXZCUSxhQUFhO21HQUFiLGFBQWEsb0VDaEIxQixpVEFVQSw0Q0RFYyxpQkFBaUI7OzRGQUlsQixhQUFhO2tCQVB6QixTQUFTO2lDQUNNLElBQUksWUFDTixVQUFVLFdBQ1gsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgdW50cmFja2VkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7Q09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVQsIExheW91dFNlcnZpY2UsIE1lbnVTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zLWxheW91dCc7XG5pbXBvcnQge0NvbW1vbnNNZW51SXRlbSwgQ29tbW9uc1JvdXRlRGF0YX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtNZW51SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1tZW51JyxcbiAgICBpbXBvcnRzOiBbTWVudUl0ZW1Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXlvdXQgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHVibGljIHJlYWRvbmx5IG1lbnVTZXJ2aWNlID0gaW5qZWN0KE1lbnVTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyByb3V0ZURhdGEgPSB0b1NpZ25hbCh0aGlzLnJvdXRlLmRhdGEpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbXM6IENvbW1vbnNNZW51SXRlbVtdID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWc/Lm1lbnVJdGVtcyAmJiBBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnLm1lbnVJdGVtcykpIHtcbiAgICAgICAgICAgICAgICBpdGVtcyA9IHRoaXMuY29uZmlnLm1lbnVJdGVtcztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSgodGhpcy5yb3V0ZURhdGEoKSBhcyBDb21tb25zUm91dGVEYXRhIHwgdW5kZWZpbmVkKT8ubWVudUl0ZW1zKSkge1xuICAgICAgICAgICAgICAgIGl0ZW1zID0gKHRoaXMucm91dGVEYXRhKCkgYXMgQ29tbW9uc1JvdXRlRGF0YSkubWVudUl0ZW1zITtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdyYXBzIG1lbnUgaXRlbXNcbiAgICAgICAgICAgIGlmICghKHRoaXMubGF5b3V0LmlzU2xpbSgpIHx8IHRoaXMubGF5b3V0LmlzU2xpbVBsdXMoKSkpIHtcbiAgICAgICAgICAgICAgICBpdGVtcyA9IFt7aXRlbXN9XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMubWVudVNlcnZpY2Uuc2V0SXRlbXMoaXRlbXMpKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHVsIGNsYXNzPVwibGF5b3V0LW1lbnVcIj5cbiAgICBAZm9yIChpdGVtIG9mIG1lbnVTZXJ2aWNlLm1lbnVJdGVtcygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoIWl0ZW0uc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICA8bGkgbW5nLW1lbnVpdGVtIFtpdGVtXT1cIml0ZW1cIiBbcm9vdF09XCJ0cnVlXCI+PC9saT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGl0ZW0uc2VwYXJhdG9yKSB7XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJtZW51LXNlcGFyYXRvclwiPjwvbGk+XG4gICAgICAgIH1cbiAgICB9XG48L3VsPlxuIl19
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, signal } 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 { InputSwitchModule } from 'primeng/inputswitch';
|
|
9
|
-
import { RadioButtonModule } from 'primeng/radiobutton';
|
|
10
|
-
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
11
|
-
import { LayoutService } from '@mediusinc/mng-commons-layout';
|
|
12
|
-
import { CommonsService } from '@mediusinc/mng-commons/core';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@ngx-translate/core";
|
|
15
|
-
import * as i2 from "primeng/radiobutton";
|
|
16
|
-
import * as i3 from "@angular/forms";
|
|
17
|
-
import * as i4 from "primeng/dropdown";
|
|
18
|
-
import * as i5 from "primeng/selectbutton";
|
|
19
|
-
const defaultColorSchemeOpts = [
|
|
20
|
-
{
|
|
21
|
-
value: 'auto',
|
|
22
|
-
label: 'system'
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
value: 'light',
|
|
26
|
-
label: 'light'
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
value: 'dark',
|
|
30
|
-
label: 'dark'
|
|
31
|
-
}
|
|
32
|
-
];
|
|
33
|
-
export class SettingsComponent {
|
|
34
|
-
constructor() {
|
|
35
|
-
this.dynamicDialogConfig = inject(DynamicDialogConfig);
|
|
36
|
-
this.dynamicDialogRef = inject(DynamicDialogRef);
|
|
37
|
-
this.colorSchemeOptions = signal(defaultColorSchemeOpts);
|
|
38
|
-
this.injector = this.dynamicDialogConfig.data.injector;
|
|
39
|
-
this.translate = this.injector.get(TranslateService);
|
|
40
|
-
this.commons = this.injector.get(CommonsService);
|
|
41
|
-
this.layout = this.injector.get(LayoutService);
|
|
42
|
-
this.menuModes = this.layout.menuModes;
|
|
43
|
-
this.translate
|
|
44
|
-
.stream('mngSettings.title')
|
|
45
|
-
.pipe(takeUntilDestroyed())
|
|
46
|
-
.subscribe(t => {
|
|
47
|
-
setTimeout(() => (this.dynamicDialogConfig.header = t));
|
|
48
|
-
});
|
|
49
|
-
const translateKey = 'mngSettings.colorScheme.options';
|
|
50
|
-
this.translate
|
|
51
|
-
.stream(translateKey)
|
|
52
|
-
.pipe(takeUntilDestroyed())
|
|
53
|
-
.subscribe(t => {
|
|
54
|
-
if (t === translateKey) {
|
|
55
|
-
this.colorSchemeOptions.set(defaultColorSchemeOpts);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.colorSchemeOptions.update(options => options.map(o => ({
|
|
59
|
-
value: o.value,
|
|
60
|
-
label: `${t[o.value]}`
|
|
61
|
-
})));
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
switchLocale(language) {
|
|
66
|
-
this.commons.setAppLocale(language);
|
|
67
|
-
}
|
|
68
|
-
switchDataLocale(language) {
|
|
69
|
-
this.commons.setAppDataLocale(language);
|
|
70
|
-
}
|
|
71
|
-
onMenuModeChange(mode) {
|
|
72
|
-
this.layout.onMenuModeChange(mode);
|
|
73
|
-
}
|
|
74
|
-
onColorSchemeChange(scheme) {
|
|
75
|
-
this.layout.setColorScheme(scheme);
|
|
76
|
-
}
|
|
77
|
-
closeDialog() {
|
|
78
|
-
this.dynamicDialogRef.close();
|
|
79
|
-
}
|
|
80
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
81
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", 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 <h5>{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"formgrid grid\">\n <p-selectButton\n [options]=\"colorSchemeOptions()\"\n [ngModel]=\"layout.colorSchemeSetting()\"\n (ngModelChange)=\"onColorSchemeChange($event)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n allowEmpty=\"false\" />\n </div>\n\n @if (menuModes.length > 1) {\n <h5>{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"formgrid grid\">\n @for (mode of menuModes; track mode) {\n <div class=\"field-radiobutton col-6 md:col-4\">\n <p-radioButton name=\"category\" [value]=\"mode\" [ngModel]=\"layout.menuMode()\" (ngModelChange)=\"onMenuModeChange(mode)\" />\n <label [for]=\"mode\" class=\"ml-2\">\n {{ 'mngSettings.menuMode.' + mode | translate }}\n </label>\n </div>\n }\n </div>\n }\n\n <div class=\"flex flex-row justify-content-between mng-action-editor-footer-container\">\n <div></div>\n <div>\n <p-button (onClick)=\"closeDialog()\" [label]=\"'general.close' | translate\" icon=\"pi pi-times\" styleClass=\"p-button-primary p-button-text\" />\n </div>\n </div>\n </div>\n</div>\n", 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", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i5.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey", "autofocus"], outputs: ["onOptionClick", "onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
82
|
-
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
84
|
-
type: Component,
|
|
85
|
-
args: [{ standalone: true, selector: 'mng-settings', imports: [TranslateModule, RadioButtonModule, FormsModule, Button, DropdownModule, InputSwitchModule, SelectButtonModule], 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 <h5>{{ 'mngSettings.colorScheme.title' | translate }}</h5>\n <div class=\"formgrid grid\">\n <p-selectButton\n [options]=\"colorSchemeOptions()\"\n [ngModel]=\"layout.colorSchemeSetting()\"\n (ngModelChange)=\"onColorSchemeChange($event)\"\n optionLabel=\"label\"\n optionValue=\"value\"\n allowEmpty=\"false\" />\n </div>\n\n @if (menuModes.length > 1) {\n <h5>{{ 'mngSettings.menuMode.title' | translate }}</h5>\n <div class=\"formgrid grid\">\n @for (mode of menuModes; track mode) {\n <div class=\"field-radiobutton col-6 md:col-4\">\n <p-radioButton name=\"category\" [value]=\"mode\" [ngModel]=\"layout.menuMode()\" (ngModelChange)=\"onMenuModeChange(mode)\" />\n <label [for]=\"mode\" class=\"ml-2\">\n {{ 'mngSettings.menuMode.' + mode | translate }}\n </label>\n </div>\n }\n </div>\n }\n\n <div class=\"flex flex-row justify-content-between mng-action-editor-footer-container\">\n <div></div>\n <div>\n <p-button (onClick)=\"closeDialog()\" [label]=\"'general.close' | translate\" icon=\"pi pi-times\" styleClass=\"p-button-primary p-button-text\" />\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
86
|
-
}], ctorParameters: () => [] });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQWlCLGFBQWEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBYyxjQUFjLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQU94RSxNQUFNLHNCQUFzQixHQUF3QjtJQUNoRDtRQUNJLEtBQUssRUFBRSxNQUFNO1FBQ2IsS0FBSyxFQUFFLFFBQVE7S0FDbEI7SUFD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QUFlLDJGQUFFLGlCQUFpQiw0VUFBRSxXQUFXLCtWQUFFLE1BQU0scVZBQUUsY0FBYyx1dENBQUUsaUJBQWlCLDhCQUFFLGtCQUFrQjs7NEZBSS9HLGlCQUFpQjtrQkFQN0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sY0FBYyxXQUNmLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDLG1CQUV4Ryx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgaW5qZWN0LCBzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b259IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7RHJvcGRvd25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtJbnB1dFN3aXRjaE1vZHVsZX0gZnJvbSAncHJpbWVuZy9pbnB1dHN3aXRjaCc7XG5pbXBvcnQge1JhZGlvQnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7U2VsZWN0QnV0dG9uTW9kdWxlfSBmcm9tICdwcmltZW5nL3NlbGVjdGJ1dHRvbic7XG5cbmltcG9ydCB7TGF5b3V0TWVudU1vZGUsIExheW91dFNlcnZpY2V9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMtbGF5b3V0JztcbmltcG9ydCB7Q29sb3JTY2hlbWUsIENvbW1vbnNTZXJ2aWNlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbnRlcmZhY2UgQ29sb3JTY2hlbWVPcHRpb24ge1xuICAgIHZhbHVlOiBDb2xvclNjaGVtZTtcbiAgICBsYWJlbDogc3RyaW5nO1xufVxuXG5jb25zdCBkZWZhdWx0Q29sb3JTY2hlbWVPcHRzOiBDb2xvclNjaGVtZU9wdGlvbltdID0gW1xuICAgIHtcbiAgICAgICAgdmFsdWU6ICdhdXRvJyxcbiAgICAgICAgbGFiZWw6ICdzeXN0ZW0nXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHZhbHVlOiAnbGlnaHQnLFxuICAgICAgICBsYWJlbDogJ2xpZ2h0J1xuICAgIH0sXG4gICAge1xuICAgICAgICB2YWx1ZTogJ2RhcmsnLFxuICAgICAgICBsYWJlbDogJ2RhcmsnXG4gICAgfVxuXTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1zZXR0aW5ncycsXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBCdXR0b24sIERyb3Bkb3duTW9kdWxlLCBJbnB1dFN3aXRjaE1vZHVsZSwgU2VsZWN0QnV0dG9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNldHRpbmdzQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGR5bmFtaWNEaWFsb2dDb25maWcgPSBpbmplY3QoRHluYW1pY0RpYWxvZ0NvbmZpZyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljRGlhbG9nUmVmID0gaW5qZWN0KER5bmFtaWNEaWFsb2dSZWYpO1xuICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3I7XG4gICAgcHVibGljIHJlYWRvbmx5IHRyYW5zbGF0ZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tbW9ucztcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG1lbnVNb2RlcztcblxuICAgIHB1YmxpYyBjb2xvclNjaGVtZU9wdGlvbnMgPSBzaWduYWwoZGVmYXVsdENvbG9yU2NoZW1lT3B0cyk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbmplY3RvciA9IHRoaXMuZHluYW1pY0RpYWxvZ0NvbmZpZy5kYXRhLmluamVjdG9yO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLmNvbW1vbnMgPSB0aGlzLmluamVjdG9yLmdldChDb21tb25zU2VydmljZSk7XG4gICAgICAgIHRoaXMubGF5b3V0ID0gdGhpcy5pbmplY3Rvci5nZXQoTGF5b3V0U2VydmljZSk7XG4gICAgICAgIHRoaXMubWVudU1vZGVzID0gdGhpcy5sYXlvdXQubWVudU1vZGVzO1xuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuc3RyZWFtKCdtbmdTZXR0aW5ncy50aXRsZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodCA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5keW5hbWljRGlhbG9nQ29uZmlnLmhlYWRlciA9IHQpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZUtleSA9ICdtbmdTZXR0aW5ncy5jb2xvclNjaGVtZS5vcHRpb25zJztcbiAgICAgICAgdGhpcy50cmFuc2xhdGVcbiAgICAgICAgICAgIC5zdHJlYW0odHJhbnNsYXRlS2V5KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0ID09PSB0cmFuc2xhdGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvclNjaGVtZU9wdGlvbnMuc2V0KGRlZmF1bHRDb2xvclNjaGVtZU9wdHMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29sb3JTY2hlbWVPcHRpb25zLnVwZGF0ZShvcHRpb25zID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcChvID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke3Rbby52YWx1ZV19YFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3dpdGNoTG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb21tb25zLnNldEFwcExvY2FsZShsYW5ndWFnZSk7XG4gICAgfVxuXG4gICAgc3dpdGNoRGF0YUxvY2FsZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29tbW9ucy5zZXRBcHBEYXRhTG9jYWxlKGxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBvbk1lbnVNb2RlQ2hhbmdlKG1vZGU6IExheW91dE1lbnVNb2RlKSB7XG4gICAgICAgIHRoaXMubGF5b3V0Lm9uTWVudU1vZGVDaGFuZ2UobW9kZSk7XG4gICAgfVxuXG4gICAgb25Db2xvclNjaGVtZUNoYW5nZShzY2hlbWU6IENvbG9yU2NoZW1lKSB7XG4gICAgICAgIHRoaXMubGF5b3V0LnNldENvbG9yU2NoZW1lKHNjaGVtZSk7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIHRoaXMuZHluYW1pY0RpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtblwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBtbmctYWN0aW9uLWVkaXRvci1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKGNvbW1vbnMuYXBwTG9jYWxlcygpLmxlbmd0aCA+IDEgfHwgY29tbW9ucy5hcHBEYXRhTG9jYWxlcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIDxoNT57eyAnbW5nU2V0dGluZ3MubG9jYWxlcycgfCB0cmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGNvbW1vbnMuYXBwTG9jYWxlcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHByLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktZ2xvYmVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbbmdNb2RlbF09XCJjb21tb25zLmFwcExvY2FsZSgpXCIgW29wdGlvbnNdPVwiY29tbW9ucy5hcHBMb2NhbGVzKClcIiAob25DaGFuZ2UpPVwic3dpdGNoTG9jYWxlKCRldmVudC52YWx1ZSlcIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGNvbW1vbnMuYXBwRGF0YUxvY2FsZXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwci00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWRhdGFiYXNlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW25nTW9kZWxdPVwiY29tbW9ucy5hcHBEYXRhTG9jYWxlKClcIiBbb3B0aW9uc109XCJjb21tb25zLmFwcERhdGFMb2NhbGVzKClcIiAob25DaGFuZ2UpPVwic3dpdGNoRGF0YUxvY2FsZSgkZXZlbnQudmFsdWUpXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxoNT57eyAnbW5nU2V0dGluZ3MuY29sb3JTY2hlbWUudGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvblxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImNvbG9yU2NoZW1lT3B0aW9ucygpXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJsYXlvdXQuY29sb3JTY2hlbWVTZXR0aW5nKClcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ29sb3JTY2hlbWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgYWxsb3dFbXB0eT1cImZhbHNlXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChtZW51TW9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgPGg1Pnt7ICdtbmdTZXR0aW5ncy5tZW51TW9kZS50aXRsZScgfCB0cmFuc2xhdGUgfX08L2g1PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChtb2RlIG9mIG1lbnVNb2RlczsgdHJhY2sgbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtcmFkaW9idXR0b24gY29sLTYgbWQ6Y29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uIG5hbWU9XCJjYXRlZ29yeVwiIFt2YWx1ZV09XCJtb2RlXCIgW25nTW9kZWxdPVwibGF5b3V0Lm1lbnVNb2RlKClcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1lbnVNb2RlQ2hhbmdlKG1vZGUpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIm1vZGVcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnbW5nU2V0dGluZ3MubWVudU1vZGUuJyArIG1vZGUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gbW5nLWFjdGlvbi1lZGl0b3ItZm9vdGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHAtYnV0dG9uIChvbkNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBbbGFiZWxdPVwiJ2dlbmVyYWwuY2xvc2UnIHwgdHJhbnNsYXRlXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXByaW1hcnkgcC1idXR0b24tdGV4dFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, inject, signal } from '@angular/core';
|
|
2
|
-
import { RouterModule } from '@angular/router';
|
|
3
|
-
import { COMMONS_LAYOUT_FEATURE_CONFIG_IT, LayoutService } from '@mediusinc/mng-commons-layout';
|
|
4
|
-
import { ComponentDirective } from '@mediusinc/mng-commons/core';
|
|
5
|
-
import { MenuComponent } from './menu.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
export class SidebarComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
|
|
11
|
-
this.layout = inject(LayoutService);
|
|
12
|
-
this.el = inject(ElementRef);
|
|
13
|
-
this.menuComponent = signal(this.config?.components?.menu === false ? undefined : (this.config?.components?.menu ?? MenuComponent));
|
|
14
|
-
this.timeout = null;
|
|
15
|
-
}
|
|
16
|
-
onMouseEnter() {
|
|
17
|
-
if (!this.layout.state().anchored) {
|
|
18
|
-
if (this.timeout) {
|
|
19
|
-
clearTimeout(this.timeout);
|
|
20
|
-
this.timeout = null;
|
|
21
|
-
}
|
|
22
|
-
this.layout.state.update(state => ({
|
|
23
|
-
...state,
|
|
24
|
-
sidebarActive: true
|
|
25
|
-
}));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
onMouseLeave() {
|
|
29
|
-
if (!this.layout.state().anchored) {
|
|
30
|
-
if (!this.timeout) {
|
|
31
|
-
this.timeout = setTimeout(() => this.layout.state.update(state => ({
|
|
32
|
-
...state,
|
|
33
|
-
sidebarActive: false
|
|
34
|
-
})), 300);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
anchor() {
|
|
39
|
-
this.layout.state.update(state => ({
|
|
40
|
-
...state,
|
|
41
|
-
anchored: !state.anchored
|
|
42
|
-
}));
|
|
43
|
-
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: SidebarComponent, isStandalone: true, selector: "mng-sidebar", ngImport: i0, template: "<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small h-2rem\">\n @if (layout.appLogo()) {\n <img [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"h-2rem mr-3\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"h-2rem\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor p-link z-2\" type=\"button\" (click)=\"anchor()\"></button>\n </div>\n\n @if (menuComponent()) {\n <div #menuContainer class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
46
|
-
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SidebarComponent, decorators: [{
|
|
48
|
-
type: Component,
|
|
49
|
-
args: [{ standalone: true, selector: 'mng-sidebar', imports: [RouterModule, ComponentDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"sidebar-header\">\n <a [routerLink]=\"['/']\" class=\"app-logo\">\n <div class=\"app-logo-small h-2rem\">\n @if (layout.appLogo()) {\n <img [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n </div>\n <div class=\"app-logo-normal\">\n @if (layout.appLogo()) {\n <img class=\"h-2rem mr-3\" [src]=\"layout.appLogo()\" [alt]=\"'App logo'\" />\n }\n @if (layout.appLogoName()) {\n <img class=\"h-2rem\" [src]=\"layout.appLogoName()\" [alt]=\"'App name'\" />\n }\n </div>\n </a>\n <button class=\"layout-sidebar-anchor p-link z-2\" type=\"button\" (click)=\"anchor()\"></button>\n </div>\n\n @if (menuComponent()) {\n <div #menuContainer class=\"layout-menu-container\">\n <div [mngComponent]=\"menuComponent()\" [attachToHost]=\"true\"></div>\n </div>\n }\n</div>\n" }]
|
|
50
|
-
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVEsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGdDQUFnQyxFQUFFLGFBQWEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFRcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVqQyxrQkFBYSxHQUFHLE1BQU0sQ0FBd0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3JKLFlBQU8sR0FBeUMsSUFBSSxDQUFDO0tBb0NoRTtJQWxDRyxZQUFZO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLEdBQUcsS0FBSztnQkFDUixhQUFhLEVBQUUsSUFBSTthQUN0QixDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUNyQixHQUFHLEVBQUUsQ0FDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUMvQixHQUFHLEtBQUs7b0JBQ1IsYUFBYSxFQUFFLEtBQUs7aUJBQ3ZCLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FDTixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0IsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVE7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOytHQXpDUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1RUNmN0IsdW1DQTBCQSwyQ0RmYyxZQUFZLGdSQUFFLGtCQUFrQjs7NEZBSWpDLGdCQUFnQjtrQkFQNUIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sYUFBYSxXQUNkLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLG1CQUUxQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBUeXBlLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVCwgTGF5b3V0U2VydmljZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1sYXlvdXQnO1xuaW1wb3J0IHtDb21wb25lbnREaXJlY3RpdmV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TWVudUNvbXBvbmVudH0gZnJvbSAnLi9tZW51LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctc2lkZWJhcicsXG4gICAgaW1wb3J0czogW1JvdXRlck1vZHVsZSwgQ29tcG9uZW50RGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoQ09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSBsYXlvdXQgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgcHVibGljIG1lbnVDb21wb25lbnQgPSBzaWduYWw8VHlwZTxhbnk+IHwgdW5kZWZpbmVkPih0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8ubWVudSA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiAodGhpcy5jb25maWc/LmNvbXBvbmVudHM/Lm1lbnUgPz8gTWVudUNvbXBvbmVudCkpO1xuICAgIHByaXZhdGUgdGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxheW91dC5zdGF0ZSgpLmFuY2hvcmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubGF5b3V0LnN0YXRlLnVwZGF0ZShzdGF0ZSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIHNpZGViYXJBY3RpdmU6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VMZWF2ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxheW91dC5zdGF0ZSgpLmFuY2hvcmVkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudGltZW91dCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dC5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlYmFyQWN0aXZlOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgICAzMDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYW5jaG9yKCkge1xuICAgICAgICB0aGlzLmxheW91dC5zdGF0ZS51cGRhdGUoc3RhdGUgPT4gKHtcbiAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgYW5jaG9yZWQ6ICFzdGF0ZS5hbmNob3JlZFxuICAgICAgICB9KSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1zaWRlYmFyXCIgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIiAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzaWRlYmFyLWhlYWRlclwiPlxuICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy8nXVwiIGNsYXNzPVwiYXBwLWxvZ29cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbG9nby1zbWFsbCBoLTJyZW1cIj5cbiAgICAgICAgICAgICAgICBAaWYgKGxheW91dC5hcHBMb2dvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImxheW91dC5hcHBMb2dvKClcIiBbYWx0XT1cIidBcHAgbG9nbydcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1sb2dvLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgIEBpZiAobGF5b3V0LmFwcExvZ28oKSkge1xuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaC0ycmVtIG1yLTNcIiBbc3JjXT1cImxheW91dC5hcHBMb2dvKClcIiBbYWx0XT1cIidBcHAgbG9nbydcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGxheW91dC5hcHBMb2dvTmFtZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJoLTJyZW1cIiBbc3JjXT1cImxheW91dC5hcHBMb2dvTmFtZSgpXCIgW2FsdF09XCInQXBwIG5hbWUnXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibGF5b3V0LXNpZGViYXItYW5jaG9yIHAtbGluayB6LTJcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFuY2hvcigpXCI+PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKG1lbnVDb21wb25lbnQoKSkge1xuICAgICAgICA8ZGl2ICNtZW51Q29udGFpbmVyIGNsYXNzPVwibGF5b3V0LW1lbnUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IFttbmdDb21wb25lbnRdPVwibWVudUNvbXBvbmVudCgpXCIgW2F0dGFjaFRvSG9zdF09XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Injector, computed, inject, signal } from '@angular/core';
|
|
2
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
-
import { DialogService } from 'primeng/dynamicdialog';
|
|
5
|
-
import { RippleModule } from 'primeng/ripple';
|
|
6
|
-
import { StyleClassModule } from 'primeng/styleclass';
|
|
7
|
-
import { COMMONS_LAYOUT_FEATURE_CONFIG_IT } from '@mediusinc/mng-commons-layout';
|
|
8
|
-
import { CommonsService } from '@mediusinc/mng-commons/core';
|
|
9
|
-
import { SettingsComponent } from './settings.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@ngx-translate/core";
|
|
12
|
-
import * as i2 from "primeng/ripple";
|
|
13
|
-
import * as i3 from "primeng/styleclass";
|
|
14
|
-
export class TopbarUserComponent {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.injector = inject(Injector);
|
|
17
|
-
this.dialogService = inject(DialogService);
|
|
18
|
-
this.commons = inject(CommonsService);
|
|
19
|
-
this.hrefJsVoid = inject(DomSanitizer).bypassSecurityTrustUrl('javascript:void(0)');
|
|
20
|
-
this.config = inject(COMMONS_LAYOUT_FEATURE_CONFIG_IT, { optional: true });
|
|
21
|
-
this.user = computed(() => this.commons.user());
|
|
22
|
-
this.userRoles = computed(() => this.commons.userRoles());
|
|
23
|
-
this.settingsDisabled = signal(this.config?.components?.settings === false);
|
|
24
|
-
}
|
|
25
|
-
logout(user, event) {
|
|
26
|
-
if (typeof user?.logout === 'function') {
|
|
27
|
-
event.preventDefault();
|
|
28
|
-
event.stopPropagation();
|
|
29
|
-
user.logout();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
openSettings() {
|
|
33
|
-
if (this.config?.components?.settings === false) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
this.dialogService.open(this.config?.components?.settings ?? SettingsComponent, {
|
|
37
|
-
modal: true,
|
|
38
|
-
styleClass: 'mng-dialog mng-action-editor-dialog mng-dialog-xs',
|
|
39
|
-
data: {
|
|
40
|
-
injector: this.injector
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopbarUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", 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 (!settingsDisabled()) {\n <li role=\"menuitem\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex align-items-center transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex align-items-center hover:text-primary-500 transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n", 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 }); }
|
|
46
|
-
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TopbarUserComponent, decorators: [{
|
|
48
|
-
type: Component,
|
|
49
|
-
args: [{ standalone: true, selector: 'mng-topbar-user-component', imports: [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 (!settingsDisabled()) {\n <li role=\"menuitem\">\n <a\n [href]=\"hrefJsVoid\"\n (click)=\"openSettings()\"\n class=\"flex align-items-center transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\">\n <i class=\"pi pi-fw pi-cog text-base mr-2\"></i>\n {{ 'mngSettings.title' | translate }}\n </a>\n </li>\n }\n @if (user()?.logout || user()?.logoutUrl) {\n <li role=\"menuitem\">\n <a\n [href]=\"user()?.logoutUrl ?? hrefJsVoid\"\n (click)=\"logout(user(), $event)\"\n class=\"flex align-items-center hover:text-primary-500 transition-duration-200\"\n pStyleClass=\"@grandparent\"\n enterFromClass=\"ng-hidden\"\n enterActiveClass=\"px-scalein\"\n leaveToClass=\"ng-hidden\"\n leaveActiveClass=\"px-fadeout\">\n <i class=\"pi pi-fw pi-sign-out text-base mr-2\"></i>\n <span>{{ 'mngTopbar.logout' | translate }}</span>\n </a>\n </li>\n }\n</ul>\n" }]
|
|
50
|
-
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLXVzZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdG9wYmFyLXVzZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdG9wYmFyLXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxjQUFjLEVBQVEsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFTdkQsTUFBTSxPQUFPLG1CQUFtQjtJQVBoQztRQVFxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0MsZUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsZ0NBQWdDLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUU5RSxTQUFJLEdBQUcsUUFBUSxDQUFvQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsY0FBUyxHQUFHLFFBQVEsQ0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFL0QscUJBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQztLQXVCakY7SUFyQlUsTUFBTSxDQUFDLElBQXVCLEVBQUUsS0FBWTtRQUMvQyxJQUFJLE9BQU8sSUFBSSxFQUFFLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsSUFBSSxpQkFBaUIsRUFBRTtZQUM1RSxLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxtREFBbUQ7WUFDL0QsSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBaENRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHFGQ3BCaEMscWlGQWtFQSwyQ0RsRGMsZUFBZSwyRkFBRSxZQUFZLDZGQUFFLGdCQUFnQjs7NEZBSWhELG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sMkJBQTJCLFdBQzVCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxtQkFFekMsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1N0eWxlQ2xhc3NNb2R1bGV9IGZyb20gJ3ByaW1lbmcvc3R5bGVjbGFzcyc7XG5cbmltcG9ydCB7Q09NTU9OU19MQVlPVVRfRkVBVFVSRV9DT05GSUdfSVR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMtbGF5b3V0JztcbmltcG9ydCB7Q29tbW9uc1NlcnZpY2UsIElVc2VyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge1NldHRpbmdzQ29tcG9uZW50fSBmcm9tICcuL3NldHRpbmdzLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctdG9wYmFyLXVzZXItY29tcG9uZW50JyxcbiAgICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBSaXBwbGVNb2R1bGUsIFN0eWxlQ2xhc3NNb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90b3BiYXItdXNlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVG9wYmFyVXNlckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbW9ucyA9IGluamVjdChDb21tb25zU2VydmljZSk7XG4gICAgcHVibGljIGhyZWZKc1ZvaWQgPSBpbmplY3QoRG9tU2FuaXRpemVyKS5ieXBhc3NTZWN1cml0eVRydXN0VXJsKCdqYXZhc2NyaXB0OnZvaWQoMCknKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChDT01NT05TX0xBWU9VVF9GRUFUVVJFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgICBwdWJsaWMgdXNlciA9IGNvbXB1dGVkPElVc2VyIHwgdW5kZWZpbmVkPigoKSA9PiB0aGlzLmNvbW1vbnMudXNlcigpKTtcbiAgICBwdWJsaWMgdXNlclJvbGVzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHRoaXMuY29tbW9ucy51c2VyUm9sZXMoKSk7XG5cbiAgICBwdWJsaWMgc2V0dGluZ3NEaXNhYmxlZCA9IHNpZ25hbCh0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uc2V0dGluZ3MgPT09IGZhbHNlKTtcblxuICAgIHB1YmxpYyBsb2dvdXQodXNlcjogSVVzZXIgfCB1bmRlZmluZWQsIGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodHlwZW9mIHVzZXI/LmxvZ291dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdXNlci5sb2dvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuU2V0dGluZ3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uc2V0dGluZ3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmNvbmZpZz8uY29tcG9uZW50cz8uc2V0dGluZ3MgPz8gU2V0dGluZ3NDb21wb25lbnQsIHtcbiAgICAgICAgICAgIG1vZGFsOiB0cnVlLFxuICAgICAgICAgICAgc3R5bGVDbGFzczogJ21uZy1kaWFsb2cgbW5nLWFjdGlvbi1lZGl0b3ItZGlhbG9nIG1uZy1kaWFsb2cteHMnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxhXG4gICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBsZzpwci00XCJcbiAgICBwU3R5bGVDbGFzcz1cIkBuZXh0XCJcbiAgICBlbnRlckZyb21DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgZW50ZXJBY3RpdmVDbGFzcz1cInB4LXNjYWxlaW5cIlxuICAgIGxlYXZlVG9DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgbGVhdmVBY3RpdmVDbGFzcz1cInB4LWZhZGVvdXRcIlxuICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gICAgcFJpcHBsZT5cbiAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLXVzZXIgdGV4dC0yeGxcIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJoaWRkZW4gc206aW5saW5lLWJsb2NrXCI+Jm5ic3A7IHt7IHVzZXIoKT8uZGlzcGxheU5hbWUgPz8gdXNlcigpPy51c2VybmFtZSB9fTwvc3Bhbj5cbjwvYT5cbjx1bCBjbGFzcz1cInRvcGJhci1tZW51IGFjdGl2ZS10b3BiYXItbWVudSB3LTE1cmVtIHotNSBuZy1oaWRkZW4gYm9yZGVyLXJvdW5kXCI+XG4gICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0cmFuc2l0aW9uLWR1cmF0aW9uLTIwMFwiXG4gICAgICAgICAgICBwU3R5bGVDbGFzcz1cIkBncmFuZHBhcmVudFwiXG4gICAgICAgICAgICBlbnRlckZyb21DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICBlbnRlckFjdGl2ZUNsYXNzPVwicHgtc2NhbGVpblwiXG4gICAgICAgICAgICBsZWF2ZVRvQ2xhc3M9XCJuZy1oaWRkZW5cIlxuICAgICAgICAgICAgbGVhdmVBY3RpdmVDbGFzcz1cInB4LWZhZGVvdXRcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZncgcGktdXNlciB0ZXh0LWJhc2UgbXItMlwiPjwvaT5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyB1c2VyKCk/LmRpc3BsYXlOYW1lID8/IHVzZXIoKT8udXNlcm5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICBAaWYgKHVzZXJSb2xlcygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyUm9sZXMoKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICBAaWYgKCFzZXR0aW5nc0Rpc2FibGVkKCkpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJocmVmSnNWb2lkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNldHRpbmdzKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdHJhbnNpdGlvbi1kdXJhdGlvbi0yMDBcIlxuICAgICAgICAgICAgICAgIHBTdHlsZUNsYXNzPVwiQGdyYW5kcGFyZW50XCJcbiAgICAgICAgICAgICAgICBlbnRlckZyb21DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgZW50ZXJBY3RpdmVDbGFzcz1cInB4LXNjYWxlaW5cIlxuICAgICAgICAgICAgICAgIGxlYXZlVG9DbGFzcz1cIm5nLWhpZGRlblwiXG4gICAgICAgICAgICAgICAgbGVhdmVBY3RpdmVDbGFzcz1cInB4LWZhZGVvdXRcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWZ3IHBpLWNvZyB0ZXh0LWJhc2UgbXItMlwiPjwvaT5cbiAgICAgICAgICAgICAgICB7eyAnbW5nU2V0dGluZ3MudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAodXNlcigpPy5sb2dvdXQgfHwgdXNlcigpPy5sb2dvdXRVcmwpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJ1c2VyKCk/LmxvZ291dFVybCA/PyBocmVmSnNWb2lkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nb3V0KHVzZXIoKSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBob3Zlcjp0ZXh0LXByaW1hcnktNTAwIHRyYW5zaXRpb24tZHVyYXRpb24tMjAwXCJcbiAgICAgICAgICAgICAgICBwU3R5bGVDbGFzcz1cIkBncmFuZHBhcmVudFwiXG4gICAgICAgICAgICAgICAgZW50ZXJGcm9tQ2xhc3M9XCJuZy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgIGVudGVyQWN0aXZlQ2xhc3M9XCJweC1zY2FsZWluXCJcbiAgICAgICAgICAgICAgICBsZWF2ZVRvQ2xhc3M9XCJuZy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgIGxlYXZlQWN0aXZlQ2xhc3M9XCJweC1mYWRlb3V0XCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1mdyBwaS1zaWduLW91dCB0ZXh0LWJhc2UgbXItMlwiPjwvaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAnbW5nVG9wYmFyLmxvZ291dCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuPC91bD5cbiJdfQ==
|