@delon/theme 15.2.1 → 16.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/compact.css +5 -14
- package/compact.min.css +1 -1
- package/dark.css +5 -14
- package/dark.min.css +1 -1
- package/default.css +5 -14
- package/default.min.css +1 -1
- package/esm2022/layout-default/layout-header-item-trigger.directive.mjs +17 -0
- package/esm2022/layout-default/layout-header-item.component.mjs +34 -0
- package/esm2022/layout-default/layout-header.component.mjs +127 -0
- package/esm2022/layout-default/layout-nav.component.mjs +295 -0
- package/esm2022/layout-default/layout-top-menu-item.mjs +40 -0
- package/esm2022/layout-default/layout.component.mjs +163 -0
- package/esm2022/layout-default/layout.module.mjs +72 -0
- package/esm2022/layout-default/layout.service.mjs +66 -0
- package/esm2022/setting-drawer/setting-drawer-item.component.mjs +36 -0
- package/esm2022/setting-drawer/setting-drawer.component.mjs +195 -0
- package/esm2022/setting-drawer/setting-drawer.module.mjs +67 -0
- package/esm2022/src/locale/locale.module.mjs +18 -0
- package/esm2022/src/locale/locale.service.mjs +46 -0
- package/esm2022/src/pipes/date/date.pipe.mjs +25 -0
- package/esm2022/src/pipes/keys/keys.pipe.mjs +22 -0
- package/esm2022/src/pipes/safe/html.pipe.mjs +19 -0
- package/esm2022/src/pipes/safe/url.pipe.mjs +19 -0
- package/esm2022/src/pipes/yn/yn.pipe.mjs +39 -0
- package/esm2022/src/services/drawer/drawer.helper.mjs +92 -0
- package/esm2022/src/services/http/http.client.mjs +154 -0
- package/esm2022/src/services/http/http.decorator.mjs +216 -0
- package/esm2022/src/services/i18n/i18n-url.guard.mjs +37 -0
- package/esm2022/src/services/i18n/i18n.mjs +98 -0
- package/esm2022/src/services/i18n/i18n.pipe.mjs +22 -0
- package/esm2022/src/services/menu/menu.service.mjs +302 -0
- package/esm2022/src/services/modal/modal.helper.mjs +107 -0
- package/esm2022/src/services/responsive/responsive.mjs +47 -0
- package/esm2022/src/services/rtl/rtl.service.mjs +102 -0
- package/esm2022/src/services/settings/settings.service.mjs +101 -0
- package/esm2022/src/services/title/title.service.mjs +147 -0
- package/esm2022/src/theme.module.mjs +77 -0
- package/{esm2020 → esm2022}/src/version.mjs +1 -1
- package/esm2022/theme-btn/theme-btn.component.mjs +110 -0
- package/esm2022/theme-btn/theme-btn.module.mjs +33 -0
- package/{fesm2020 → fesm2022}/layout-default.mjs +55 -55
- package/{fesm2015 → fesm2022}/layout-default.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/setting-drawer.mjs +32 -32
- package/{fesm2015 → fesm2022}/setting-drawer.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/theme-btn.mjs +12 -12
- package/fesm2022/theme-btn.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/theme.mjs +75 -75
- package/{fesm2020 → fesm2022}/theme.mjs.map +1 -1
- package/layout-default/layout-header-item.component.d.ts +1 -1
- package/layout-default/layout-header.component.d.ts +1 -1
- package/layout-default/layout-nav.component.d.ts +1 -1
- package/layout-default/layout-top-menu-item.d.ts +1 -1
- package/layout-default/layout.component.d.ts +1 -1
- package/package.json +20 -34
- package/setting-drawer/setting-drawer-item.component.d.ts +1 -1
- package/setting-drawer/setting-drawer.component.d.ts +1 -1
- package/system/utils/_other.less +1 -4
- package/system/widgets/_abs.less +1 -4
- package/theme-btn/theme-btn.component.d.ts +1 -1
- package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +0 -16
- package/esm2020/layout-default/layout-header-item.component.mjs +0 -33
- package/esm2020/layout-default/layout-header.component.mjs +0 -126
- package/esm2020/layout-default/layout-nav.component.mjs +0 -294
- package/esm2020/layout-default/layout-top-menu-item.mjs +0 -39
- package/esm2020/layout-default/layout.component.mjs +0 -162
- package/esm2020/layout-default/layout.module.mjs +0 -71
- package/esm2020/layout-default/layout.service.mjs +0 -65
- package/esm2020/setting-drawer/setting-drawer-item.component.mjs +0 -35
- package/esm2020/setting-drawer/setting-drawer.component.mjs +0 -194
- package/esm2020/setting-drawer/setting-drawer.module.mjs +0 -66
- package/esm2020/src/locale/locale.module.mjs +0 -17
- package/esm2020/src/locale/locale.service.mjs +0 -45
- package/esm2020/src/pipes/date/date.pipe.mjs +0 -24
- package/esm2020/src/pipes/keys/keys.pipe.mjs +0 -21
- package/esm2020/src/pipes/safe/html.pipe.mjs +0 -18
- package/esm2020/src/pipes/safe/url.pipe.mjs +0 -18
- package/esm2020/src/pipes/yn/yn.pipe.mjs +0 -38
- package/esm2020/src/services/drawer/drawer.helper.mjs +0 -91
- package/esm2020/src/services/http/http.client.mjs +0 -153
- package/esm2020/src/services/http/http.decorator.mjs +0 -215
- package/esm2020/src/services/i18n/i18n-url.guard.mjs +0 -36
- package/esm2020/src/services/i18n/i18n.mjs +0 -96
- package/esm2020/src/services/i18n/i18n.pipe.mjs +0 -21
- package/esm2020/src/services/menu/menu.service.mjs +0 -301
- package/esm2020/src/services/modal/modal.helper.mjs +0 -106
- package/esm2020/src/services/responsive/responsive.mjs +0 -46
- package/esm2020/src/services/rtl/rtl.service.mjs +0 -101
- package/esm2020/src/services/settings/settings.service.mjs +0 -100
- package/esm2020/src/services/title/title.service.mjs +0 -146
- package/esm2020/src/theme.module.mjs +0 -76
- package/esm2020/theme-btn/theme-btn.component.mjs +0 -109
- package/esm2020/theme-btn/theme-btn.module.mjs +0 -32
- package/fesm2015/layout-default.mjs +0 -773
- package/fesm2015/setting-drawer.mjs +0 -487
- package/fesm2015/theme-btn.mjs +0 -147
- package/fesm2015/theme-btn.mjs.map +0 -1
- package/fesm2015/theme.mjs +0 -2696
- package/fesm2015/theme.mjs.map +0 -1
- package/fesm2020/layout-blank.mjs +0 -7
- package/fesm2020/layout-blank.mjs.map +0 -1
- package/fesm2020/layout-default.mjs.map +0 -1
- package/fesm2020/setting-drawer.mjs.map +0 -1
- package/fesm2020/theme-btn.mjs.map +0 -1
- /package/{esm2020 → esm2022}/layout-blank/layout-blank.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-blank/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/layout-default.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/layout-default/types.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/setting-drawer.mjs +0 -0
- /package/{esm2020 → esm2022}/setting-drawer/setting-drawer.types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/config.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/el-GR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/en-US.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/es-ES.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/fr-FR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/hr-HR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/it-IT.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/ja-JP.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/ko-KR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/pl-PL.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/sl-SI.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/tr-TR.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/zh-CN.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/languages/zh-TW.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/locale.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/locale.types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/locale/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/router/optional-preloader.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/http/http.token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/i18n/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/menu/interface.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/preloader/preloader.mjs +0 -0
- /package/{esm2020 → esm2022}/src/services/settings/types.mjs +0 -0
- /package/{esm2020 → esm2022}/theme-btn/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/theme-btn/theme-btn.mjs +0 -0
- /package/{esm2020 → esm2022}/theme.mjs +0 -0
- /package/{fesm2015 → fesm2022}/layout-blank.mjs +0 -0
- /package/{fesm2015 → fesm2022}/layout-blank.mjs.map +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class LayoutDefaultHeaderItemTriggerDirective {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.4", type: LayoutDefaultHeaderItemTriggerDirective, selector: "[layout-default-header-item-trigger]", host: { properties: { "class.alain-default__nav-item": "true" } }, ngImport: i0 }); }
|
|
6
|
+
}
|
|
7
|
+
export { LayoutDefaultHeaderItemTriggerDirective };
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, decorators: [{
|
|
9
|
+
type: Directive,
|
|
10
|
+
args: [{
|
|
11
|
+
selector: '[layout-default-header-item-trigger]',
|
|
12
|
+
host: {
|
|
13
|
+
'[class.alain-default__nav-item]': `true`
|
|
14
|
+
}
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci1pdGVtLXRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvbGF5b3V0LWRlZmF1bHQvbGF5b3V0LWhlYWRlci1pdGVtLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLE1BTWEsdUNBQXVDOzhHQUF2Qyx1Q0FBdUM7a0dBQXZDLHVDQUF1Qzs7U0FBdkMsdUNBQXVDOzJGQUF2Qyx1Q0FBdUM7a0JBTm5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsSUFBSSxFQUFFO3dCQUNKLGlDQUFpQyxFQUFFLE1BQU07cUJBQzFDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsYXlvdXQtZGVmYXVsdC1oZWFkZXItaXRlbS10cmlnZ2VyXScsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFsYWluLWRlZmF1bHRfX25hdi1pdGVtXSc6IGB0cnVlYFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIExheW91dERlZmF1bHRIZWFkZXJJdGVtVHJpZ2dlckRpcmVjdGl2ZSB7fVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class LayoutDefaultHeaderItemComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.hidden = 'none';
|
|
6
|
+
this.direction = 'right';
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: LayoutDefaultHeaderItemComponent, selector: "layout-default-header-item", inputs: { hidden: "hidden", direction: "direction" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, static: true }], ngImport: i0, template: `
|
|
10
|
+
<ng-template #host>
|
|
11
|
+
<ng-content></ng-content>
|
|
12
|
+
</ng-template>
|
|
13
|
+
`, isInline: true }); }
|
|
14
|
+
}
|
|
15
|
+
export { LayoutDefaultHeaderItemComponent };
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderItemComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: 'layout-default-header-item',
|
|
20
|
+
template: `
|
|
21
|
+
<ng-template #host>
|
|
22
|
+
<ng-content></ng-content>
|
|
23
|
+
</ng-template>
|
|
24
|
+
`
|
|
25
|
+
}]
|
|
26
|
+
}], propDecorators: { host: [{
|
|
27
|
+
type: ViewChild,
|
|
28
|
+
args: ['host', { static: true }]
|
|
29
|
+
}], hidden: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], direction: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL2xheW91dC1kZWZhdWx0L2xheW91dC1oZWFkZXItaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUl6RSxNQVFhLGdDQUFnQztJQVI3QztRQVdXLFdBQU0sR0FBa0MsTUFBTSxDQUFDO1FBQy9DLGNBQVMsR0FBcUMsT0FBTyxDQUFDO0tBQ2hFOzhHQUxZLGdDQUFnQztrR0FBaEMsZ0NBQWdDLG9PQU5qQzs7OztHQUlUOztTQUVVLGdDQUFnQzsyRkFBaEMsZ0NBQWdDO2tCQVI1QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7OztHQUlUO2lCQUNGOzhCQUVzQyxJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRTFCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0SGVhZGVySXRlbURpcmVjdGlvbiwgTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1IaWRkZW4gfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGF5b3V0LWRlZmF1bHQtaGVhZGVyLWl0ZW0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjaG9zdD5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIExheW91dERlZmF1bHRIZWFkZXJJdGVtQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnaG9zdCcsIHsgc3RhdGljOiB0cnVlIH0pIGhvc3QhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBASW5wdXQoKSBoaWRkZW46IExheW91dERlZmF1bHRIZWFkZXJJdGVtSGlkZGVuID0gJ25vbmUnO1xuICBASW5wdXQoKSBkaXJlY3Rpb246IExheW91dERlZmF1bHRIZWFkZXJJdGVtRGlyZWN0aW9uID0gJ3JpZ2h0Jztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./layout.service";
|
|
5
|
+
import * as i2 from "@delon/theme";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/router";
|
|
8
|
+
import * as i5 from "ng-zorro-antd/icon";
|
|
9
|
+
class LayoutDefaultHeaderComponent {
|
|
10
|
+
get opt() {
|
|
11
|
+
return this.srv.options;
|
|
12
|
+
}
|
|
13
|
+
get app() {
|
|
14
|
+
return this.settings.app;
|
|
15
|
+
}
|
|
16
|
+
get collapsed() {
|
|
17
|
+
return this.settings.layout.collapsed;
|
|
18
|
+
}
|
|
19
|
+
get collapsedIcon() {
|
|
20
|
+
return this.srv.collapsedIcon;
|
|
21
|
+
}
|
|
22
|
+
constructor(srv, settings, cdr) {
|
|
23
|
+
this.srv = srv;
|
|
24
|
+
this.settings = settings;
|
|
25
|
+
this.cdr = cdr;
|
|
26
|
+
this.destroy$ = new Subject();
|
|
27
|
+
this.left = [];
|
|
28
|
+
this.middle = [];
|
|
29
|
+
this.right = [];
|
|
30
|
+
}
|
|
31
|
+
refresh() {
|
|
32
|
+
const arr = this.items.toArray();
|
|
33
|
+
this.left = arr.filter(i => i.direction === 'left');
|
|
34
|
+
this.middle = arr.filter(i => i.direction === 'middle');
|
|
35
|
+
this.right = arr.filter(i => i.direction === 'right');
|
|
36
|
+
this.cdr.detectChanges();
|
|
37
|
+
}
|
|
38
|
+
ngAfterViewInit() {
|
|
39
|
+
this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this.refresh());
|
|
40
|
+
this.srv.options$.pipe(takeUntil(this.destroy$)).subscribe(() => this.cdr.detectChanges());
|
|
41
|
+
this.refresh();
|
|
42
|
+
}
|
|
43
|
+
toggleCollapsed() {
|
|
44
|
+
this.srv.toggleCollapsed();
|
|
45
|
+
}
|
|
46
|
+
ngOnDestroy() {
|
|
47
|
+
this.destroy$.next();
|
|
48
|
+
this.destroy$.complete();
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderComponent, deps: [{ token: i1.LayoutDefaultService }, { token: i2.SettingsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: { items: "items" }, host: { properties: { "class.alain-default__header": "true" } }, ngImport: i0, template: `
|
|
52
|
+
<ng-template #render let-ls>
|
|
53
|
+
<li *ngFor="let i of ls" [class.hidden-mobile]="i.hidden === 'mobile'" [class.hidden-pc]="i.hidden === 'pc'">
|
|
54
|
+
<ng-container *ngTemplateOutlet="i.host"></ng-container>
|
|
55
|
+
</li>
|
|
56
|
+
</ng-template>
|
|
57
|
+
<div class="alain-default__header-logo" [style.width.px]="opt.logoFixWidth">
|
|
58
|
+
<ng-container *ngIf="!opt.logo; else opt.logo!">
|
|
59
|
+
<a [routerLink]="opt.logoLink" class="alain-default__header-logo-link">
|
|
60
|
+
<img class="alain-default__header-logo-expanded" [attr.src]="opt.logoExpanded" [attr.alt]="app.name" />
|
|
61
|
+
<img class="alain-default__header-logo-collapsed" [attr.src]="opt.logoCollapsed" [attr.alt]="app.name" />
|
|
62
|
+
</a>
|
|
63
|
+
</ng-container>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="alain-default__nav-wrap">
|
|
66
|
+
<ul class="alain-default__nav">
|
|
67
|
+
<li *ngIf="!opt.hideAside && opt.showHeaderCollapse">
|
|
68
|
+
<div class="alain-default__nav-item alain-default__nav-item--collapse" (click)="toggleCollapsed()">
|
|
69
|
+
<span nz-icon [nzType]="collapsedIcon"></span>
|
|
70
|
+
</div>
|
|
71
|
+
</li>
|
|
72
|
+
<ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: left }"></ng-template>
|
|
73
|
+
</ul>
|
|
74
|
+
<div *ngIf="middle.length > 0" class="alain-default__nav alain-default__nav-middle">
|
|
75
|
+
<ng-container *ngTemplateOutlet="middle[0].host"></ng-container>
|
|
76
|
+
</div>
|
|
77
|
+
<ul class="alain-default__nav">
|
|
78
|
+
<ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: right }"></ng-template>
|
|
79
|
+
</ul>
|
|
80
|
+
</div>
|
|
81
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
82
|
+
}
|
|
83
|
+
export { LayoutDefaultHeaderComponent };
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultHeaderComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{
|
|
87
|
+
selector: 'layout-default-header',
|
|
88
|
+
template: `
|
|
89
|
+
<ng-template #render let-ls>
|
|
90
|
+
<li *ngFor="let i of ls" [class.hidden-mobile]="i.hidden === 'mobile'" [class.hidden-pc]="i.hidden === 'pc'">
|
|
91
|
+
<ng-container *ngTemplateOutlet="i.host"></ng-container>
|
|
92
|
+
</li>
|
|
93
|
+
</ng-template>
|
|
94
|
+
<div class="alain-default__header-logo" [style.width.px]="opt.logoFixWidth">
|
|
95
|
+
<ng-container *ngIf="!opt.logo; else opt.logo!">
|
|
96
|
+
<a [routerLink]="opt.logoLink" class="alain-default__header-logo-link">
|
|
97
|
+
<img class="alain-default__header-logo-expanded" [attr.src]="opt.logoExpanded" [attr.alt]="app.name" />
|
|
98
|
+
<img class="alain-default__header-logo-collapsed" [attr.src]="opt.logoCollapsed" [attr.alt]="app.name" />
|
|
99
|
+
</a>
|
|
100
|
+
</ng-container>
|
|
101
|
+
</div>
|
|
102
|
+
<div class="alain-default__nav-wrap">
|
|
103
|
+
<ul class="alain-default__nav">
|
|
104
|
+
<li *ngIf="!opt.hideAside && opt.showHeaderCollapse">
|
|
105
|
+
<div class="alain-default__nav-item alain-default__nav-item--collapse" (click)="toggleCollapsed()">
|
|
106
|
+
<span nz-icon [nzType]="collapsedIcon"></span>
|
|
107
|
+
</div>
|
|
108
|
+
</li>
|
|
109
|
+
<ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: left }"></ng-template>
|
|
110
|
+
</ul>
|
|
111
|
+
<div *ngIf="middle.length > 0" class="alain-default__nav alain-default__nav-middle">
|
|
112
|
+
<ng-container *ngTemplateOutlet="middle[0].host"></ng-container>
|
|
113
|
+
</div>
|
|
114
|
+
<ul class="alain-default__nav">
|
|
115
|
+
<ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: right }"></ng-template>
|
|
116
|
+
</ul>
|
|
117
|
+
</div>
|
|
118
|
+
`,
|
|
119
|
+
host: {
|
|
120
|
+
'[class.alain-default__header]': `true`
|
|
121
|
+
},
|
|
122
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
123
|
+
}]
|
|
124
|
+
}], ctorParameters: function () { return [{ type: i1.LayoutDefaultService }, { type: i2.SettingsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}] } });
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS9sYXlvdXQtZGVmYXVsdC9sYXlvdXQtaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFlMUMsTUFzQ2EsNEJBQTRCO0lBU3ZDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFvQixHQUF5QixFQUFVLFFBQXlCLEVBQVUsR0FBc0I7UUFBNUYsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBeEJ4RyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUl2QyxTQUFJLEdBQThCLEVBQUUsQ0FBQztRQUNyQyxXQUFNLEdBQThCLEVBQUUsQ0FBQztRQUN2QyxVQUFLLEdBQThCLEVBQUUsQ0FBQztJQWtCNkUsQ0FBQztJQUU1RyxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0FoRFUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMEpBcEM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJUOztTQU1VLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQXRDeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osK0JBQStCLEVBQUUsTUFBTTtxQkFDeEM7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO3lLQUlVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcCwgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3RoZW1lJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xheW91dC1oZWFkZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0RGVmYXVsdFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dERlZmF1bHRIZWFkZXJJdGVtRGlyZWN0aW9uLCBMYXlvdXREZWZhdWx0SGVhZGVySXRlbUhpZGRlbiwgTGF5b3V0RGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIExheW91dERlZmF1bHRIZWFkZXJJdGVtIHtcbiAgaG9zdDogVGVtcGxhdGVSZWY8TnpTYWZlQW55PjtcbiAgaGlkZGVuPzogTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1IaWRkZW47XG4gIGRpcmVjdGlvbj86IExheW91dERlZmF1bHRIZWFkZXJJdGVtRGlyZWN0aW9uO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsYXlvdXQtZGVmYXVsdC1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyIGxldC1scz5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaSBvZiBsc1wiIFtjbGFzcy5oaWRkZW4tbW9iaWxlXT1cImkuaGlkZGVuID09PSAnbW9iaWxlJ1wiIFtjbGFzcy5oaWRkZW4tcGNdPVwiaS5oaWRkZW4gPT09ICdwYydcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImkuaG9zdFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9saT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19oZWFkZXItbG9nb1wiIFtzdHlsZS53aWR0aC5weF09XCJvcHQubG9nb0ZpeFdpZHRoXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdC5sb2dvOyBlbHNlIG9wdC5sb2dvIVwiPlxuICAgICAgICA8YSBbcm91dGVyTGlua109XCJvcHQubG9nb0xpbmtcIiBjbGFzcz1cImFsYWluLWRlZmF1bHRfX2hlYWRlci1sb2dvLWxpbmtcIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwiYWxhaW4tZGVmYXVsdF9faGVhZGVyLWxvZ28tZXhwYW5kZWRcIiBbYXR0ci5zcmNdPVwib3B0LmxvZ29FeHBhbmRlZFwiIFthdHRyLmFsdF09XCJhcHAubmFtZVwiIC8+XG4gICAgICAgICAgPGltZyBjbGFzcz1cImFsYWluLWRlZmF1bHRfX2hlYWRlci1sb2dvLWNvbGxhcHNlZFwiIFthdHRyLnNyY109XCJvcHQubG9nb0NvbGxhcHNlZFwiIFthdHRyLmFsdF09XCJhcHAubmFtZVwiIC8+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19uYXYtd3JhcFwiPlxuICAgICAgPHVsIGNsYXNzPVwiYWxhaW4tZGVmYXVsdF9fbmF2XCI+XG4gICAgICAgIDxsaSAqbmdJZj1cIiFvcHQuaGlkZUFzaWRlICYmIG9wdC5zaG93SGVhZGVyQ29sbGFwc2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxhaW4tZGVmYXVsdF9fbmF2LWl0ZW0gYWxhaW4tZGVmYXVsdF9fbmF2LWl0ZW0tLWNvbGxhcHNlXCIgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlZCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBuei1pY29uIFtuelR5cGVdPVwiY29sbGFwc2VkSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlclwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbGVmdCB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvdWw+XG4gICAgICA8ZGl2ICpuZ0lmPVwibWlkZGxlLmxlbmd0aCA+IDBcIiBjbGFzcz1cImFsYWluLWRlZmF1bHRfX25hdiBhbGFpbi1kZWZhdWx0X19uYXYtbWlkZGxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtaWRkbGVbMF0uaG9zdFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19uYXZcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlbmRlclwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmlnaHQgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5hbGFpbi1kZWZhdWx0X19oZWFkZXJdJzogYHRydWVgXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExheW91dERlZmF1bHRIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBASW5wdXQoKSBpdGVtcyE6IFF1ZXJ5TGlzdDxMYXlvdXREZWZhdWx0SGVhZGVySXRlbUNvbXBvbmVudD47XG5cbiAgbGVmdDogTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1bXSA9IFtdO1xuICBtaWRkbGU6IExheW91dERlZmF1bHRIZWFkZXJJdGVtW10gPSBbXTtcbiAgcmlnaHQ6IExheW91dERlZmF1bHRIZWFkZXJJdGVtW10gPSBbXTtcblxuICBnZXQgb3B0KCk6IExheW91dERlZmF1bHRPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5zcnYub3B0aW9ucztcbiAgfVxuXG4gIGdldCBhcHAoKTogQXBwIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5hcHA7XG4gIH1cblxuICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmxheW91dC5jb2xsYXBzZWQ7XG4gIH1cblxuICBnZXQgY29sbGFwc2VkSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNydi5jb2xsYXBzZWRJY29uO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzcnY6IExheW91dERlZmF1bHRTZXJ2aWNlLCBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBwcml2YXRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgY29uc3QgYXJyID0gdGhpcy5pdGVtcy50b0FycmF5KCk7XG4gICAgdGhpcy5sZWZ0ID0gYXJyLmZpbHRlcihpID0+IGkuZGlyZWN0aW9uID09PSAnbGVmdCcpO1xuICAgIHRoaXMubWlkZGxlID0gYXJyLmZpbHRlcihpID0+IGkuZGlyZWN0aW9uID09PSAnbWlkZGxlJyk7XG4gICAgdGhpcy5yaWdodCA9IGFyci5maWx0ZXIoaSA9PiBpLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0Jyk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcbiAgICB0aGlzLnNydi5vcHRpb25zJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICB0b2dnbGVDb2xsYXBzZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zcnYudG9nZ2xlQ29sbGFwc2VkKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { NavigationEnd } from '@angular/router';
|
|
5
|
+
import { Subject, filter, takeUntil } from 'rxjs';
|
|
6
|
+
import { InputBoolean, InputNumber, ZoneOutside } from '@delon/util/decorator';
|
|
7
|
+
import { WINDOW } from '@delon/util/token';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@delon/theme";
|
|
10
|
+
import * as i2 from "@angular/router";
|
|
11
|
+
import * as i3 from "@angular/platform-browser";
|
|
12
|
+
import * as i4 from "@angular/cdk/bidi";
|
|
13
|
+
import * as i5 from "@angular/common";
|
|
14
|
+
import * as i6 from "ng-zorro-antd/tooltip";
|
|
15
|
+
import * as i7 from "ng-zorro-antd/icon";
|
|
16
|
+
import * as i8 from "ng-zorro-antd/badge";
|
|
17
|
+
const SHOWCLS = 'sidebar-nav__floating-show';
|
|
18
|
+
const FLOATINGCLS = 'sidebar-nav__floating';
|
|
19
|
+
class LayoutDefaultNavComponent {
|
|
20
|
+
set openStrictly(value) {
|
|
21
|
+
this.menuSrv.openStrictly = value;
|
|
22
|
+
}
|
|
23
|
+
get collapsed() {
|
|
24
|
+
return this.settings.layout.collapsed;
|
|
25
|
+
}
|
|
26
|
+
constructor(menuSrv, settings, router, render, cdr, ngZone, sanitizer, doc, win, directionality) {
|
|
27
|
+
this.menuSrv = menuSrv;
|
|
28
|
+
this.settings = settings;
|
|
29
|
+
this.router = router;
|
|
30
|
+
this.render = render;
|
|
31
|
+
this.cdr = cdr;
|
|
32
|
+
this.ngZone = ngZone;
|
|
33
|
+
this.sanitizer = sanitizer;
|
|
34
|
+
this.doc = doc;
|
|
35
|
+
this.win = win;
|
|
36
|
+
this.directionality = directionality;
|
|
37
|
+
this.destroy$ = new Subject();
|
|
38
|
+
this.dir = 'ltr';
|
|
39
|
+
this.list = [];
|
|
40
|
+
this.disabledAcl = false;
|
|
41
|
+
this.autoCloseUnderPad = true;
|
|
42
|
+
this.recursivePath = true;
|
|
43
|
+
this.maxLevelIcon = 3;
|
|
44
|
+
this.select = new EventEmitter();
|
|
45
|
+
}
|
|
46
|
+
getLinkNode(node) {
|
|
47
|
+
node = node.nodeName === 'A' ? node : node.parentNode;
|
|
48
|
+
return node.nodeName !== 'A' ? null : node;
|
|
49
|
+
}
|
|
50
|
+
floatingClickHandle(e) {
|
|
51
|
+
e.stopPropagation();
|
|
52
|
+
const linkNode = this.getLinkNode(e.target);
|
|
53
|
+
if (linkNode == null) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const id = +linkNode.dataset.id;
|
|
57
|
+
// Should be ingore children title trigger event
|
|
58
|
+
if (isNaN(id)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
let item;
|
|
62
|
+
this.menuSrv.visit(this.list, (i) => {
|
|
63
|
+
if (!item && i._id === id) {
|
|
64
|
+
item = i;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
this.to(item);
|
|
68
|
+
this.hideAll();
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
clearFloating() {
|
|
73
|
+
if (!this.floatingEl)
|
|
74
|
+
return;
|
|
75
|
+
this.floatingEl.removeEventListener('click', this.floatingClickHandle.bind(this));
|
|
76
|
+
// fix ie: https://github.com/ng-alain/delon/issues/52
|
|
77
|
+
if (this.floatingEl.hasOwnProperty('remove')) {
|
|
78
|
+
this.floatingEl.remove();
|
|
79
|
+
}
|
|
80
|
+
else if (this.floatingEl.parentNode) {
|
|
81
|
+
this.floatingEl.parentNode.removeChild(this.floatingEl);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
genFloating() {
|
|
85
|
+
this.clearFloating();
|
|
86
|
+
this.floatingEl = this.render.createElement('div');
|
|
87
|
+
this.floatingEl.classList.add(`${FLOATINGCLS}-container`);
|
|
88
|
+
this.floatingEl.addEventListener('click', this.floatingClickHandle.bind(this), false);
|
|
89
|
+
this.bodyEl.appendChild(this.floatingEl);
|
|
90
|
+
}
|
|
91
|
+
genSubNode(linkNode, item) {
|
|
92
|
+
const id = `_sidebar-nav-${item._id}`;
|
|
93
|
+
const childNode = item.badge ? linkNode.nextElementSibling.nextElementSibling : linkNode.nextElementSibling;
|
|
94
|
+
const node = childNode.cloneNode(true);
|
|
95
|
+
node.id = id;
|
|
96
|
+
node.classList.add(FLOATINGCLS);
|
|
97
|
+
node.addEventListener('mouseleave', () => {
|
|
98
|
+
node.classList.remove(SHOWCLS);
|
|
99
|
+
}, false);
|
|
100
|
+
this.floatingEl.appendChild(node);
|
|
101
|
+
return node;
|
|
102
|
+
}
|
|
103
|
+
hideAll() {
|
|
104
|
+
const allNode = this.floatingEl.querySelectorAll(`.${FLOATINGCLS}`);
|
|
105
|
+
for (let i = 0; i < allNode.length; i++) {
|
|
106
|
+
allNode[i].classList.remove(SHOWCLS);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// calculate the node position values.
|
|
110
|
+
calPos(linkNode, node) {
|
|
111
|
+
const rect = linkNode.getBoundingClientRect();
|
|
112
|
+
// bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14721015/
|
|
113
|
+
const scrollTop = Math.max(this.doc.documentElement.scrollTop, this.bodyEl.scrollTop);
|
|
114
|
+
const docHeight = Math.max(this.doc.documentElement.clientHeight, this.bodyEl.clientHeight);
|
|
115
|
+
const spacing = 5;
|
|
116
|
+
let offsetHeight = -spacing;
|
|
117
|
+
if (docHeight < rect.top + node.clientHeight) {
|
|
118
|
+
offsetHeight = rect.top + node.clientHeight - docHeight + spacing;
|
|
119
|
+
}
|
|
120
|
+
node.style.top = `${rect.top + scrollTop - offsetHeight}px`;
|
|
121
|
+
if (this.dir === 'rtl') {
|
|
122
|
+
node.style.right = `${rect.width + spacing}px`;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
node.style.left = `${rect.right + spacing}px`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
showSubMenu(e, item) {
|
|
129
|
+
if (this.collapsed !== true) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
e.preventDefault();
|
|
133
|
+
const linkNode = e.target;
|
|
134
|
+
this.genFloating();
|
|
135
|
+
const subNode = this.genSubNode(linkNode, item);
|
|
136
|
+
this.hideAll();
|
|
137
|
+
subNode.classList.add(SHOWCLS);
|
|
138
|
+
this.calPos(linkNode, subNode);
|
|
139
|
+
}
|
|
140
|
+
to(item) {
|
|
141
|
+
this.select.emit(item);
|
|
142
|
+
if (item.disabled)
|
|
143
|
+
return;
|
|
144
|
+
if (item.externalLink) {
|
|
145
|
+
if (item.target === '_blank') {
|
|
146
|
+
this.win.open(item.externalLink);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
this.win.location.href = item.externalLink;
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this.ngZone.run(() => this.router.navigateByUrl(item.link));
|
|
154
|
+
}
|
|
155
|
+
toggleOpen(item) {
|
|
156
|
+
this.menuSrv.toggleOpen(item);
|
|
157
|
+
}
|
|
158
|
+
_click() {
|
|
159
|
+
if (this.isPad && this.collapsed) {
|
|
160
|
+
this.openAside(false);
|
|
161
|
+
this.hideAll();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
closeSubMenu() {
|
|
165
|
+
if (this.collapsed) {
|
|
166
|
+
this.hideAll();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
openByUrl(url) {
|
|
170
|
+
const { menuSrv, recursivePath } = this;
|
|
171
|
+
this.menuSrv.open(menuSrv.find({ url, recursive: recursivePath }));
|
|
172
|
+
}
|
|
173
|
+
ngOnInit() {
|
|
174
|
+
const { doc, router, destroy$, menuSrv, settings, cdr } = this;
|
|
175
|
+
this.bodyEl = doc.querySelector('body');
|
|
176
|
+
menuSrv.change.pipe(takeUntil(destroy$)).subscribe(data => {
|
|
177
|
+
menuSrv.visit(data, (i, _p, depth) => {
|
|
178
|
+
i._text = this.sanitizer.bypassSecurityTrustHtml(i.text);
|
|
179
|
+
i._needIcon = depth <= this.maxLevelIcon && !!i.icon;
|
|
180
|
+
if (!i._aclResult) {
|
|
181
|
+
if (this.disabledAcl) {
|
|
182
|
+
i.disabled = true;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
i._hidden = true;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const icon = i.icon;
|
|
189
|
+
if (icon && icon.type === 'svg' && typeof icon.value === 'string') {
|
|
190
|
+
icon.value = this.sanitizer.bypassSecurityTrustHtml(icon.value);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
this.fixHide(data);
|
|
194
|
+
this.list = data.filter((w) => w._hidden !== true);
|
|
195
|
+
cdr.detectChanges();
|
|
196
|
+
});
|
|
197
|
+
router.events.pipe(takeUntil(destroy$)).subscribe(e => {
|
|
198
|
+
if (e instanceof NavigationEnd) {
|
|
199
|
+
this.openByUrl(e.urlAfterRedirects);
|
|
200
|
+
this.underPad();
|
|
201
|
+
this.cdr.detectChanges();
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
settings.notify
|
|
205
|
+
.pipe(takeUntil(destroy$), filter(t => t.type === 'layout' && t.name === 'collapsed'))
|
|
206
|
+
.subscribe(() => this.clearFloating());
|
|
207
|
+
this.underPad();
|
|
208
|
+
this.dir = this.directionality.value;
|
|
209
|
+
this.directionality.change?.pipe(takeUntil(destroy$)).subscribe((direction) => {
|
|
210
|
+
this.dir = direction;
|
|
211
|
+
});
|
|
212
|
+
this.openByUrl(router.url);
|
|
213
|
+
this.ngZone.runOutsideAngular(() => this.genFloating());
|
|
214
|
+
}
|
|
215
|
+
fixHide(ls) {
|
|
216
|
+
const inFn = (list) => {
|
|
217
|
+
for (const item of list) {
|
|
218
|
+
if (item.children && item.children.length > 0) {
|
|
219
|
+
inFn(item.children);
|
|
220
|
+
if (!item._hidden) {
|
|
221
|
+
item._hidden = item.children.every((v) => v._hidden);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
inFn(ls);
|
|
227
|
+
}
|
|
228
|
+
ngOnDestroy() {
|
|
229
|
+
this.destroy$.next();
|
|
230
|
+
this.destroy$.complete();
|
|
231
|
+
this.clearFloating();
|
|
232
|
+
}
|
|
233
|
+
// #region Under pad
|
|
234
|
+
get isPad() {
|
|
235
|
+
return this.doc.defaultView.innerWidth < 768;
|
|
236
|
+
}
|
|
237
|
+
underPad() {
|
|
238
|
+
if (this.autoCloseUnderPad && this.isPad && !this.collapsed) {
|
|
239
|
+
setTimeout(() => this.openAside(true));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
openAside(status) {
|
|
243
|
+
this.settings.setLayout('collapsed', status);
|
|
244
|
+
}
|
|
245
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultNavComponent, deps: [{ token: i1.MenuService }, { token: i1.SettingsService }, { token: i2.Router }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.DomSanitizer }, { token: DOCUMENT }, { token: WINDOW }, { token: i4.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
246
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: LayoutDefaultNavComponent, selector: "layout-default-nav", inputs: { disabledAcl: "disabledAcl", autoCloseUnderPad: "autoCloseUnderPad", recursivePath: "recursivePath", openStrictly: "openStrictly", maxLevelIcon: "maxLevelIcon" }, outputs: { select: "select" }, host: { listeners: { "click": "_click()", "document:click": "closeSubMenu()" }, properties: { "class.d-block": "true" } }, ngImport: i0, template: "<ng-template #icon let-i>\n <ng-container *ngIf=\"i\" [ngSwitch]=\"i.type\">\n <i\n *ngSwitchCase=\"'icon'\"\n class=\"sidebar-nav__item-icon\"\n nz-icon\n [nzType]=\"i.value\"\n [nzTheme]=\"i.theme\"\n [nzSpin]=\"i.spin\"\n [nzTwotoneColor]=\"i.twoToneColor\"\n [nzIconfont]=\"i.iconfont\"\n [nzRotate]=\"i.rotate\"\n ></i>\n <i *ngSwitchCase=\"'iconfont'\" class=\"sidebar-nav__item-icon\" nz-icon [nzIconfont]=\"i.iconfont\"></i>\n <img *ngSwitchCase=\"'img'\" [src]=\"i.value\" class=\"sidebar-nav__item-icon sidebar-nav__item-img\" />\n <span *ngSwitchCase=\"'svg'\" class=\"sidebar-nav__item-icon sidebar-nav__item-svg\" [innerHTML]=\"i.value\"></span>\n <i *ngSwitchDefault class=\"sidebar-nav__item-icon {{ i.value }}\"></i>\n </ng-container>\n</ng-template>\n<ng-template #tree let-ls>\n <ng-container *ngFor=\"let i of ls\">\n <li\n *ngIf=\"i._hidden !== true\"\n class=\"sidebar-nav__item\"\n [class.sidebar-nav__selected]=\"i._selected\"\n [class.sidebar-nav__open]=\"i.open\"\n >\n <!-- link -->\n <a\n *ngIf=\"i.children.length === 0\"\n (click)=\"to(i)\"\n [attr.data-id]=\"i._id\"\n class=\"sidebar-nav__item-link\"\n [ngClass]=\"{ 'sidebar-nav__item-disabled': i.disabled }\"\n (mouseenter)=\"closeSubMenu()\"\n >\n <ng-container *ngIf=\"i._needIcon\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n </ng-container>\n <span *ngIf=\"collapsed\" nz-tooltip nzTooltipPlacement=\"right\" [nzTooltipTitle]=\"i.text\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n </span>\n </ng-container>\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n </a>\n <!-- has children link -->\n <a\n *ngIf=\"i.children.length > 0\"\n (click)=\"toggleOpen(i)\"\n (mouseenter)=\"showSubMenu($event, i)\"\n class=\"sidebar-nav__item-link\"\n >\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n <i class=\"sidebar-nav__sub-arrow\"></i>\n </a>\n <!-- badge -->\n <nz-badge *ngIf=\"i.badge\" [nzCount]=\"i.badge\" [nzDot]=\"i.badgeDot\" nzStandalone [nzOverflowCount]=\"9\"></nz-badge>\n <ul *ngIf=\"i.children.length > 0\" class=\"sidebar-nav sidebar-nav__sub sidebar-nav__depth{{ i._depth }}\">\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: i.children }\"></ng-template>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n<ul class=\"sidebar-nav\">\n <ng-container *ngFor=\"let group of list\">\n <li class=\"sidebar-nav__item sidebar-nav__group-title\" *ngIf=\"group.group\">\n <span [innerHTML]=\"group._text\"></span>\n </li>\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: group.children }\"></ng-template>\n </ng-container>\n</ul>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i6.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: i7.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i8.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
247
|
+
}
|
|
248
|
+
__decorate([
|
|
249
|
+
InputBoolean()
|
|
250
|
+
], LayoutDefaultNavComponent.prototype, "disabledAcl", void 0);
|
|
251
|
+
__decorate([
|
|
252
|
+
InputBoolean()
|
|
253
|
+
], LayoutDefaultNavComponent.prototype, "autoCloseUnderPad", void 0);
|
|
254
|
+
__decorate([
|
|
255
|
+
InputBoolean()
|
|
256
|
+
], LayoutDefaultNavComponent.prototype, "recursivePath", void 0);
|
|
257
|
+
__decorate([
|
|
258
|
+
InputBoolean()
|
|
259
|
+
], LayoutDefaultNavComponent.prototype, "openStrictly", null);
|
|
260
|
+
__decorate([
|
|
261
|
+
InputNumber()
|
|
262
|
+
], LayoutDefaultNavComponent.prototype, "maxLevelIcon", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
ZoneOutside()
|
|
265
|
+
], LayoutDefaultNavComponent.prototype, "showSubMenu", null);
|
|
266
|
+
export { LayoutDefaultNavComponent };
|
|
267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultNavComponent, decorators: [{
|
|
268
|
+
type: Component,
|
|
269
|
+
args: [{ selector: 'layout-default-nav', host: {
|
|
270
|
+
'(click)': '_click()',
|
|
271
|
+
'(document:click)': 'closeSubMenu()',
|
|
272
|
+
'[class.d-block]': `true`
|
|
273
|
+
}, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template #icon let-i>\n <ng-container *ngIf=\"i\" [ngSwitch]=\"i.type\">\n <i\n *ngSwitchCase=\"'icon'\"\n class=\"sidebar-nav__item-icon\"\n nz-icon\n [nzType]=\"i.value\"\n [nzTheme]=\"i.theme\"\n [nzSpin]=\"i.spin\"\n [nzTwotoneColor]=\"i.twoToneColor\"\n [nzIconfont]=\"i.iconfont\"\n [nzRotate]=\"i.rotate\"\n ></i>\n <i *ngSwitchCase=\"'iconfont'\" class=\"sidebar-nav__item-icon\" nz-icon [nzIconfont]=\"i.iconfont\"></i>\n <img *ngSwitchCase=\"'img'\" [src]=\"i.value\" class=\"sidebar-nav__item-icon sidebar-nav__item-img\" />\n <span *ngSwitchCase=\"'svg'\" class=\"sidebar-nav__item-icon sidebar-nav__item-svg\" [innerHTML]=\"i.value\"></span>\n <i *ngSwitchDefault class=\"sidebar-nav__item-icon {{ i.value }}\"></i>\n </ng-container>\n</ng-template>\n<ng-template #tree let-ls>\n <ng-container *ngFor=\"let i of ls\">\n <li\n *ngIf=\"i._hidden !== true\"\n class=\"sidebar-nav__item\"\n [class.sidebar-nav__selected]=\"i._selected\"\n [class.sidebar-nav__open]=\"i.open\"\n >\n <!-- link -->\n <a\n *ngIf=\"i.children.length === 0\"\n (click)=\"to(i)\"\n [attr.data-id]=\"i._id\"\n class=\"sidebar-nav__item-link\"\n [ngClass]=\"{ 'sidebar-nav__item-disabled': i.disabled }\"\n (mouseenter)=\"closeSubMenu()\"\n >\n <ng-container *ngIf=\"i._needIcon\">\n <ng-container *ngIf=\"!collapsed\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n </ng-container>\n <span *ngIf=\"collapsed\" nz-tooltip nzTooltipPlacement=\"right\" [nzTooltipTitle]=\"i.text\">\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n </span>\n </ng-container>\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n </a>\n <!-- has children link -->\n <a\n *ngIf=\"i.children.length > 0\"\n (click)=\"toggleOpen(i)\"\n (mouseenter)=\"showSubMenu($event, i)\"\n class=\"sidebar-nav__item-link\"\n >\n <ng-template [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ $implicit: i.icon }\"></ng-template>\n <span class=\"sidebar-nav__item-text\" [innerHTML]=\"i._text\" [attr.title]=\"i.text\"></span>\n <i class=\"sidebar-nav__sub-arrow\"></i>\n </a>\n <!-- badge -->\n <nz-badge *ngIf=\"i.badge\" [nzCount]=\"i.badge\" [nzDot]=\"i.badgeDot\" nzStandalone [nzOverflowCount]=\"9\"></nz-badge>\n <ul *ngIf=\"i.children.length > 0\" class=\"sidebar-nav sidebar-nav__sub sidebar-nav__depth{{ i._depth }}\">\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: i.children }\"></ng-template>\n </ul>\n </li>\n </ng-container>\n</ng-template>\n<ul class=\"sidebar-nav\">\n <ng-container *ngFor=\"let group of list\">\n <li class=\"sidebar-nav__item sidebar-nav__group-title\" *ngIf=\"group.group\">\n <span [innerHTML]=\"group._text\"></span>\n </li>\n <ng-template [ngTemplateOutlet]=\"tree\" [ngTemplateOutletContext]=\"{ $implicit: group.children }\"></ng-template>\n </ng-container>\n</ul>\n" }]
|
|
274
|
+
}], ctorParameters: function () { return [{ type: i1.MenuService }, { type: i1.SettingsService }, { type: i2.Router }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i3.DomSanitizer }, { type: undefined, decorators: [{
|
|
275
|
+
type: Inject,
|
|
276
|
+
args: [DOCUMENT]
|
|
277
|
+
}] }, { type: undefined, decorators: [{
|
|
278
|
+
type: Inject,
|
|
279
|
+
args: [WINDOW]
|
|
280
|
+
}] }, { type: i4.Directionality, decorators: [{
|
|
281
|
+
type: Optional
|
|
282
|
+
}] }]; }, propDecorators: { disabledAcl: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}], autoCloseUnderPad: [{
|
|
285
|
+
type: Input
|
|
286
|
+
}], recursivePath: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], openStrictly: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], maxLevelIcon: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], select: [{
|
|
293
|
+
type: Output
|
|
294
|
+
}], showSubMenu: [] } });
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS9sYXlvdXQtZGVmYXVsdC9sYXlvdXQtbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL2xheW91dC1kZWZhdWx0L2xheW91dC1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFdBQVcsRUFBZSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLEdBQUcsNEJBQTRCLENBQUM7QUFDN0MsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFFNUMsTUFZYSx5QkFBeUI7SUFrQnBDLElBQUksWUFBWSxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFJRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsWUFDVSxPQUFvQixFQUNwQixRQUF5QixFQUN6QixN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QUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBeFFVLHlCQUF5Qiw4TUFvQzFCLFFBQVEsYUFDUixNQUFNO2tHQXJDTCx5QkFBeUIsZ1lDOUN0Qyxnd0dBeUVBOztBRGQyQjtJQUFmLFlBQVksRUFBRTs4REFBcUI7QUFDcEI7SUFBZixZQUFZLEVBQUU7b0VBQTBCO0FBQ3pCO0lBQWYsWUFBWSxFQUFFO2dFQUFzQjtBQUc5QztJQURDLFlBQVksRUFBRTs2REFHZDtBQUN1QjtJQUFkLFdBQVcsRUFBRTsrREFBa0I7QUFnSHpDO0lBREMsV0FBVyxFQUFFOzREQVliO1NBaEpVLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQVpyQyxTQUFTOytCQUNFLG9CQUFvQixRQUV4Qjt3QkFDSixTQUFTLEVBQUUsVUFBVTt3QkFDckIsa0JBQWtCLEVBQUUsZ0JBQWdCO3dCQUNwQyxpQkFBaUIsRUFBRSxNQUFNO3FCQUMxQix1QkFDb0IsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFzQ2xDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxNQUFNOzswQkFDYixRQUFROzRDQXpCYyxXQUFXO3NCQUFuQyxLQUFLO2dCQUNtQixpQkFBaUI7c0JBQXpDLEtBQUs7Z0JBQ21CLGFBQWE7c0JBQXJDLEtBQUs7Z0JBR0YsWUFBWTtzQkFGZixLQUFLO2dCQUtrQixZQUFZO3NCQUFuQyxLQUFLO2dCQUNhLE1BQU07c0JBQXhCLE1BQU07Z0JBK0dQLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24sIERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNZW51LCBNZW51SWNvbiwgTWVudUlubmVyLCBNZW51U2VydmljZSwgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3RoZW1lJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciwgTnVtYmVySW5wdXQsIFpvbmVPdXRzaWRlIH0gZnJvbSAnQGRlbG9uL3V0aWwvZGVjb3JhdG9yJztcbmltcG9ydCB7IFdJTkRPVyB9IGZyb20gJ0BkZWxvbi91dGlsL3Rva2VuJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBOYXYgZXh0ZW5kcyBNZW51SW5uZXIge1xuICBfbmVlZEljb24/OiBib29sZWFuO1xuICBfdGV4dD86IFNhZmVIdG1sO1xufVxuXG5jb25zdCBTSE9XQ0xTID0gJ3NpZGViYXItbmF2X19mbG9hdGluZy1zaG93JztcbmNvbnN0IEZMT0FUSU5HQ0xTID0gJ3NpZGViYXItbmF2X19mbG9hdGluZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xheW91dC1kZWZhdWx0LW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgICcoY2xpY2spJzogJ19jbGljaygpJyxcbiAgICAnKGRvY3VtZW50OmNsaWNrKSc6ICdjbG9zZVN1Yk1lbnUoKScsXG4gICAgJ1tjbGFzcy5kLWJsb2NrXSc6IGB0cnVlYFxuICB9LFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0RGVmYXVsdE5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkQWNsOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9hdXRvQ2xvc2VVbmRlclBhZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVjdXJzaXZlUGF0aDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfb3BlblN0cmljdGx5OiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tYXhMZXZlbEljb246IE51bWJlcklucHV0O1xuXG4gIHByaXZhdGUgYm9keUVsITogSFRNTEJvZHlFbGVtZW50O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBmbG9hdGluZ0VsITogSFRNTERpdkVsZW1lbnQ7XG4gIGRpcjogRGlyZWN0aW9uID0gJ2x0cic7XG4gIGxpc3Q6IE5hdltdID0gW107XG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGRpc2FibGVkQWNsID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhdXRvQ2xvc2VVbmRlclBhZCA9IHRydWU7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZWN1cnNpdmVQYXRoID0gdHJ1ZTtcbiAgQElucHV0KClcbiAgQElucHV0Qm9vbGVhbigpXG4gIHNldCBvcGVuU3RyaWN0bHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnVTcnYub3BlblN0cmljdGx5ID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgbWF4TGV2ZWxJY29uID0gMztcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudT4oKTtcblxuICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmxheW91dC5jb2xsYXBzZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1lbnVTcnY6IE1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVuZGVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogTnpTYWZlQW55LFxuICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHdpbjogTnpTYWZlQW55LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5XG4gICkge31cblxuICBwcml2YXRlIGdldExpbmtOb2RlKG5vZGU6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBub2RlID0gbm9kZS5ub2RlTmFtZSA9PT0gJ0EnID8gbm9kZSA6IChub2RlLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpO1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lICE9PSAnQScgPyBudWxsIDogbm9kZTtcbiAgfVxuXG4gIHByaXZhdGUgZmxvYXRpbmdDbGlja0hhbmRsZShlOiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBsaW5rTm9kZSA9IHRoaXMuZ2V0TGlua05vZGUoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIGlmIChsaW5rTm9kZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGlkID0gK2xpbmtOb2RlLmRhdGFzZXQhLmlkITtcbiAgICAvLyBTaG91bGQgYmUgaW5nb3JlIGNoaWxkcmVuIHRpdGxlIHRyaWdnZXIgZXZlbnRcbiAgICBpZiAoaXNOYU4oaWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW06IE5hdjtcbiAgICB0aGlzLm1lbnVTcnYudmlzaXQodGhpcy5saXN0LCAoaTogTmF2KSA9PiB7XG4gICAgICBpZiAoIWl0ZW0gJiYgaS5faWQgPT09IGlkKSB7XG4gICAgICAgIGl0ZW0gPSBpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudG8oaXRlbSEpO1xuICAgIHRoaXMuaGlkZUFsbCgpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRmxvYXRpbmcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZsb2F0aW5nRWwpIHJldHVybjtcbiAgICB0aGlzLmZsb2F0aW5nRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmZsb2F0aW5nQ2xpY2tIYW5kbGUuYmluZCh0aGlzKSk7XG4gICAgLy8gZml4IGllOiBodHRwczovL2dpdGh1Yi5jb20vbmctYWxhaW4vZGVsb24vaXNzdWVzLzUyXG4gICAgaWYgKHRoaXMuZmxvYXRpbmdFbC5oYXNPd25Qcm9wZXJ0eSgncmVtb3ZlJykpIHtcbiAgICAgIHRoaXMuZmxvYXRpbmdFbC5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmxvYXRpbmdFbC5wYXJlbnROb2RlKSB7XG4gICAgICB0aGlzLmZsb2F0aW5nRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmZsb2F0aW5nRWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2VuRmxvYXRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckZsb2F0aW5nKCk7XG4gICAgdGhpcy5mbG9hdGluZ0VsID0gdGhpcy5yZW5kZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5mbG9hdGluZ0VsLmNsYXNzTGlzdC5hZGQoYCR7RkxPQVRJTkdDTFN9LWNvbnRhaW5lcmApO1xuICAgIHRoaXMuZmxvYXRpbmdFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZmxvYXRpbmdDbGlja0hhbmRsZS5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgdGhpcy5ib2R5RWwuYXBwZW5kQ2hpbGQodGhpcy5mbG9hdGluZ0VsKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuU3ViTm9kZShsaW5rTm9kZTogSFRNTExpbmtFbGVtZW50LCBpdGVtOiBOYXYpOiBIVE1MVUxpc3RFbGVtZW50IHtcbiAgICBjb25zdCBpZCA9IGBfc2lkZWJhci1uYXYtJHtpdGVtLl9pZH1gO1xuICAgIGNvbnN0IGNoaWxkTm9kZSA9IGl0ZW0uYmFkZ2UgPyBsaW5rTm9kZS5uZXh0RWxlbWVudFNpYmxpbmchLm5leHRFbGVtZW50U2libGluZyEgOiBsaW5rTm9kZS5uZXh0RWxlbWVudFNpYmxpbmchO1xuICAgIGNvbnN0IG5vZGUgPSBjaGlsZE5vZGUuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxVTGlzdEVsZW1lbnQ7XG4gICAgbm9kZS5pZCA9IGlkO1xuICAgIG5vZGUuY2xhc3NMaXN0LmFkZChGTE9BVElOR0NMUyk7XG4gICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ21vdXNlbGVhdmUnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoU0hPV0NMUyk7XG4gICAgICB9LFxuICAgICAgZmFsc2VcbiAgICApO1xuICAgIHRoaXMuZmxvYXRpbmdFbC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZUFsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxOb2RlID0gdGhpcy5mbG9hdGluZ0VsLnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke0ZMT0FUSU5HQ0xTfWApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgYWxsTm9kZVtpXS5jbGFzc0xpc3QucmVtb3ZlKFNIT1dDTFMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNhbGN1bGF0ZSB0aGUgbm9kZSBwb3NpdGlvbiB2YWx1ZXMuXG4gIHByaXZhdGUgY2FsUG9zKGxpbmtOb2RlOiBIVE1MTGlua0VsZW1lbnQsIG5vZGU6IEhUTUxVTGlzdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWN0ID0gbGlua05vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgLy8gYnVnOiBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xNDcyMTAxNS9cbiAgICBjb25zdCBzY3JvbGxUb3AgPSBNYXRoLm1heCh0aGlzLmRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLCB0aGlzLmJvZHlFbC5zY3JvbGxUb3ApO1xuICAgIGNvbnN0IGRvY0hlaWdodCA9IE1hdGgubWF4KHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsIHRoaXMuYm9keUVsLmNsaWVudEhlaWdodCk7XG4gICAgY29uc3Qgc3BhY2luZyA9IDU7XG4gICAgbGV0IG9mZnNldEhlaWdodCA9IC1zcGFjaW5nO1xuICAgIGlmIChkb2NIZWlnaHQgPCByZWN0LnRvcCArIG5vZGUuY2xpZW50SGVpZ2h0KSB7XG4gICAgICBvZmZzZXRIZWlnaHQgPSByZWN0LnRvcCArIG5vZGUuY2xpZW50SGVpZ2h0IC0gZG9jSGVpZ2h0ICsgc3BhY2luZztcbiAgICB9XG4gICAgbm9kZS5zdHlsZS50b3AgPSBgJHtyZWN0LnRvcCArIHNjcm9sbFRvcCAtIG9mZnNldEhlaWdodH1weGA7XG4gICAgaWYgKHRoaXMuZGlyID09PSAncnRsJykge1xuICAgICAgbm9kZS5zdHlsZS5yaWdodCA9IGAke3JlY3Qud2lkdGggKyBzcGFjaW5nfXB4YDtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5zdHlsZS5sZWZ0ID0gYCR7cmVjdC5yaWdodCArIHNwYWNpbmd9cHhgO1xuICAgIH1cbiAgfVxuXG4gIEBab25lT3V0c2lkZSgpXG4gIHNob3dTdWJNZW51KGU6IE1vdXNlRXZlbnQsIGl0ZW06IE5hdik6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCAhPT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgbGlua05vZGUgPSBlLnRhcmdldCBhcyBFbGVtZW50O1xuICAgIHRoaXMuZ2VuRmxvYXRpbmcoKTtcbiAgICBjb25zdCBzdWJOb2RlID0gdGhpcy5nZW5TdWJOb2RlKGxpbmtOb2RlIGFzIEhUTUxMaW5rRWxlbWVudCwgaXRlbSk7XG4gICAgdGhpcy5oaWRlQWxsKCk7XG4gICAgc3ViTm9kZS5jbGFzc0xpc3QuYWRkKFNIT1dDTFMpO1xuICAgIHRoaXMuY2FsUG9zKGxpbmtOb2RlIGFzIEhUTUxMaW5rRWxlbWVudCwgc3ViTm9kZSk7XG4gIH1cblxuICB0byhpdGVtOiBNZW51KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3QuZW1pdChpdGVtKTtcbiAgICBpZiAoaXRlbS5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgaWYgKGl0ZW0uZXh0ZXJuYWxMaW5rKSB7XG4gICAgICBpZiAoaXRlbS50YXJnZXQgPT09ICdfYmxhbmsnKSB7XG4gICAgICAgIHRoaXMud2luLm9wZW4oaXRlbS5leHRlcm5hbExpbmspO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IGl0ZW0uZXh0ZXJuYWxMaW5rO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChpdGVtLmxpbmshKSk7XG4gIH1cblxuICB0b2dnbGVPcGVuKGl0ZW06IE5hdik6IHZvaWQge1xuICAgIHRoaXMubWVudVNydi50b2dnbGVPcGVuKGl0ZW0pO1xuICB9XG5cbiAgX2NsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUGFkICYmIHRoaXMuY29sbGFwc2VkKSB7XG4gICAgICB0aGlzLm9wZW5Bc2lkZShmYWxzZSk7XG4gICAgICB0aGlzLmhpZGVBbGwoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZVN1Yk1lbnUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VkKSB7XG4gICAgICB0aGlzLmhpZGVBbGwoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5CeVVybCh1cmw6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCB7IG1lbnVTcnYsIHJlY3Vyc2l2ZVBhdGggfSA9IHRoaXM7XG4gICAgdGhpcy5tZW51U3J2Lm9wZW4obWVudVNydi5maW5kKHsgdXJsLCByZWN1cnNpdmU6IHJlY3Vyc2l2ZVBhdGggfSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgeyBkb2MsIHJvdXRlciwgZGVzdHJveSQsIG1lbnVTcnYsIHNldHRpbmdzLCBjZHIgfSA9IHRoaXM7XG4gICAgdGhpcy5ib2R5RWwgPSBkb2MucXVlcnlTZWxlY3RvcignYm9keScpO1xuICAgIG1lbnVTcnYuY2hhbmdlLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgbWVudVNydi52aXNpdChkYXRhLCAoaTogTmF2LCBfcCwgZGVwdGgpID0+IHtcbiAgICAgICAgaS5fdGV4dCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGkudGV4dCEpO1xuICAgICAgICBpLl9uZWVkSWNvbiA9IGRlcHRoISA8PSB0aGlzLm1heExldmVsSWNvbiAmJiAhIWkuaWNvbjtcbiAgICAgICAgaWYgKCFpLl9hY2xSZXN1bHQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlZEFjbCkge1xuICAgICAgICAgICAgaS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGkuX2hpZGRlbiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGljb24gPSBpLmljb24gYXMgTWVudUljb247XG4gICAgICAgIGlmIChpY29uICYmIGljb24udHlwZSA9PT0gJ3N2ZycgJiYgdHlwZW9mIGljb24udmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaWNvbi52YWx1ZSA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb24udmFsdWUhISk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5maXhIaWRlKGRhdGEpO1xuICAgICAgdGhpcy5saXN0ID0gZGF0YS5maWx0ZXIoKHc6IE5hdikgPT4gdy5faGlkZGVuICE9PSB0cnVlKTtcbiAgICAgIGNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gICAgcm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZShlID0+IHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICB0aGlzLm9wZW5CeVVybChlLnVybEFmdGVyUmVkaXJlY3RzKTtcbiAgICAgICAgdGhpcy51bmRlclBhZCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc2V0dGluZ3Mubm90aWZ5XG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKGRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKHQgPT4gdC50eXBlID09PSAnbGF5b3V0JyAmJiB0Lm5hbWUgPT09ICdjb2xsYXBzZWQnKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyRmxvYXRpbmcoKSk7XG4gICAgdGhpcy51bmRlclBhZCgpO1xuXG4gICAgdGhpcy5kaXIgPSB0aGlzLmRpcmVjdGlvbmFsaXR5LnZhbHVlO1xuICAgIHRoaXMuZGlyZWN0aW9uYWxpdHkuY2hhbmdlPy5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZSgoZGlyZWN0aW9uOiBEaXJlY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuZGlyID0gZGlyZWN0aW9uO1xuICAgIH0pO1xuICAgIHRoaXMub3BlbkJ5VXJsKHJvdXRlci51cmwpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuZ2VuRmxvYXRpbmcoKSk7XG4gIH1cblxuICBwcml2YXRlIGZpeEhpZGUobHM6IE5hdltdKTogdm9pZCB7XG4gICAgY29uc3QgaW5GbiA9IChsaXN0OiBOYXZbXSk6IHZvaWQgPT4ge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGxpc3QpIHtcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaW5GbihpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICBpZiAoIWl0ZW0uX2hpZGRlbikge1xuICAgICAgICAgICAgaXRlbS5faGlkZGVuID0gaXRlbS5jaGlsZHJlbi5ldmVyeSgodjogTmF2KSA9PiB2Ll9oaWRkZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpbkZuKGxzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmNsZWFyRmxvYXRpbmcoKTtcbiAgfVxuXG4gIC8vICNyZWdpb24gVW5kZXIgcGFkXG5cbiAgcHJpdmF0ZSBnZXQgaXNQYWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jLmRlZmF1bHRWaWV3IS5pbm5lcldpZHRoIDwgNzY4O1xuICB9XG5cbiAgcHJpdmF0ZSB1bmRlclBhZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvQ2xvc2VVbmRlclBhZCAmJiB0aGlzLmlzUGFkICYmICF0aGlzLmNvbGxhcHNlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW5Bc2lkZSh0cnVlKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQXNpZGUoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5ncy5zZXRMYXlvdXQoJ2NvbGxhcHNlZCcsIHN0YXR1cyk7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uXG59XG4iLCI8bmctdGVtcGxhdGUgI2ljb24gbGV0LWk+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpXCIgW25nU3dpdGNoXT1cImkudHlwZVwiPlxuICAgIDxpXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ljb24nXCJcbiAgICAgIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW0taWNvblwiXG4gICAgICBuei1pY29uXG4gICAgICBbbnpUeXBlXT1cImkudmFsdWVcIlxuICAgICAgW256VGhlbWVdPVwiaS50aGVtZVwiXG4gICAgICBbbnpTcGluXT1cImkuc3BpblwiXG4gICAgICBbbnpUd290b25lQ29sb3JdPVwiaS50d29Ub25lQ29sb3JcIlxuICAgICAgW256SWNvbmZvbnRdPVwiaS5pY29uZm9udFwiXG4gICAgICBbbnpSb3RhdGVdPVwiaS5yb3RhdGVcIlxuICAgID48L2k+XG4gICAgPGkgKm5nU3dpdGNoQ2FzZT1cIidpY29uZm9udCdcIiBjbGFzcz1cInNpZGViYXItbmF2X19pdGVtLWljb25cIiBuei1pY29uIFtuekljb25mb250XT1cImkuaWNvbmZvbnRcIj48L2k+XG4gICAgPGltZyAqbmdTd2l0Y2hDYXNlPVwiJ2ltZydcIiBbc3JjXT1cImkudmFsdWVcIiBjbGFzcz1cInNpZGViYXItbmF2X19pdGVtLWljb24gc2lkZWJhci1uYXZfX2l0ZW0taW1nXCIgLz5cbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3N2ZydcIiBjbGFzcz1cInNpZGViYXItbmF2X19pdGVtLWljb24gc2lkZWJhci1uYXZfX2l0ZW0tc3ZnXCIgW2lubmVySFRNTF09XCJpLnZhbHVlXCI+PC9zcGFuPlxuICAgIDxpICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJzaWRlYmFyLW5hdl9faXRlbS1pY29uIHt7IGkudmFsdWUgfX1cIj48L2k+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdHJlZSBsZXQtbHM+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGkgb2YgbHNcIj5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwiaS5faGlkZGVuICE9PSB0cnVlXCJcbiAgICAgIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW1cIlxuICAgICAgW2NsYXNzLnNpZGViYXItbmF2X19zZWxlY3RlZF09XCJpLl9zZWxlY3RlZFwiXG4gICAgICBbY2xhc3Muc2lkZWJhci1uYXZfX29wZW5dPVwiaS5vcGVuXCJcbiAgICA+XG4gICAgICA8IS0tIGxpbmsgLS0+XG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cImkuY2hpbGRyZW4ubGVuZ3RoID09PSAwXCJcbiAgICAgICAgKGNsaWNrKT1cInRvKGkpXCJcbiAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJpLl9pZFwiXG4gICAgICAgIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW0tbGlua1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NpZGViYXItbmF2X19pdGVtLWRpc2FibGVkJzogaS5kaXNhYmxlZCB9XCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2xvc2VTdWJNZW51KClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaS5fbmVlZEljb25cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImljb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGkuaWNvbiB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbGxhcHNlZFwiIG56LXRvb2x0aXAgbnpUb29sdGlwUGxhY2VtZW50PVwicmlnaHRcIiBbbnpUb29sdGlwVGl0bGVdPVwiaS50ZXh0XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaS5pY29uIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW0tdGV4dFwiIFtpbm5lckhUTUxdPVwiaS5fdGV4dFwiIFthdHRyLnRpdGxlXT1cImkudGV4dFwiPjwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICAgIDwhLS0gaGFzIGNoaWxkcmVuIGxpbmsgLS0+XG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cImkuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVPcGVuKGkpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1N1Yk1lbnUoJGV2ZW50LCBpKVwiXG4gICAgICAgIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW0tbGlua1wiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpLmljb24gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2lkZWJhci1uYXZfX2l0ZW0tdGV4dFwiIFtpbm5lckhUTUxdPVwiaS5fdGV4dFwiIFthdHRyLnRpdGxlXT1cImkudGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgPGkgY2xhc3M9XCJzaWRlYmFyLW5hdl9fc3ViLWFycm93XCI+PC9pPlxuICAgICAgPC9hPlxuICAgICAgPCEtLSBiYWRnZSAtLT5cbiAgICAgIDxuei1iYWRnZSAqbmdJZj1cImkuYmFkZ2VcIiBbbnpDb3VudF09XCJpLmJhZGdlXCIgW256RG90XT1cImkuYmFkZ2VEb3RcIiBuelN0YW5kYWxvbmUgW256T3ZlcmZsb3dDb3VudF09XCI5XCI+PC9uei1iYWRnZT5cbiAgICAgIDx1bCAqbmdJZj1cImkuY2hpbGRyZW4ubGVuZ3RoID4gMFwiIGNsYXNzPVwic2lkZWJhci1uYXYgc2lkZWJhci1uYXZfX3N1YiBzaWRlYmFyLW5hdl9fZGVwdGh7eyBpLl9kZXB0aCB9fVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJlZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaS5jaGlsZHJlbiB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPHVsIGNsYXNzPVwic2lkZWJhci1uYXZcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbGlzdFwiPlxuICAgIDxsaSBjbGFzcz1cInNpZGViYXItbmF2X19pdGVtIHNpZGViYXItbmF2X19ncm91cC10aXRsZVwiICpuZ0lmPVwiZ3JvdXAuZ3JvdXBcIj5cbiAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZ3JvdXAuX3RleHRcIj48L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJlZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZ3JvdXAuY2hpbGRyZW4gfVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC91bD5cbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { InputBoolean } from '@delon/util/decorator';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class LayoutDefaultTopMenuItemComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.selected = false;
|
|
8
|
+
this.disabled = false;
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultTopMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: LayoutDefaultTopMenuItemComponent, selector: "layout-default-top-menu-item", inputs: { selected: "selected", disabled: "disabled" }, host: { properties: { "class.alain-default__nav-item": "true", "class.alain-default__top-menu-item": "true", "class.alain-default__top-menu-item-selected": "selected", "class.alain-default__top-menu-item-disabled": "disabled" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
12
|
+
}
|
|
13
|
+
__decorate([
|
|
14
|
+
InputBoolean()
|
|
15
|
+
], LayoutDefaultTopMenuItemComponent.prototype, "selected", void 0);
|
|
16
|
+
__decorate([
|
|
17
|
+
InputBoolean()
|
|
18
|
+
], LayoutDefaultTopMenuItemComponent.prototype, "disabled", void 0);
|
|
19
|
+
export { LayoutDefaultTopMenuItemComponent };
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: LayoutDefaultTopMenuItemComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'layout-default-top-menu-item',
|
|
24
|
+
template: `<ng-content></ng-content>`,
|
|
25
|
+
host: {
|
|
26
|
+
'[class.alain-default__nav-item]': `true`,
|
|
27
|
+
'[class.alain-default__top-menu-item]': `true`,
|
|
28
|
+
'[class.alain-default__top-menu-item-selected]': `selected`,
|
|
29
|
+
'[class.alain-default__top-menu-item-disabled]': `disabled`
|
|
30
|
+
},
|
|
31
|
+
preserveWhitespaces: false,
|
|
32
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
33
|
+
encapsulation: ViewEncapsulation.None
|
|
34
|
+
}]
|
|
35
|
+
}], propDecorators: { selected: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], disabled: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXRvcC1tZW51LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS9sYXlvdXQtZGVmYXVsdC9sYXlvdXQtdG9wLW1lbnUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFbkUsTUFhYSxpQ0FBaUM7SUFiOUM7UUFpQjJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQUMzQzs4R0FOWSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxtV0FYbEMsMkJBQTJCOztBQWVaO0lBQWYsWUFBWSxFQUFFO21FQUFrQjtBQUNqQjtJQUFmLFlBQVksRUFBRTttRUFBa0I7U0FML0IsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBYjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFO3dCQUNKLGlDQUFpQyxFQUFFLE1BQU07d0JBQ3pDLHNDQUFzQyxFQUFFLE1BQU07d0JBQzlDLCtDQUErQyxFQUFFLFVBQVU7d0JBQzNELCtDQUErQyxFQUFFLFVBQVU7cUJBQzVEO29CQUNELG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OEJBSzBCLFFBQVE7c0JBQWhDLEtBQUs7Z0JBQ21CLFFBQVE7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBJbnB1dEJvb2xlYW4gfSBmcm9tICdAZGVsb24vdXRpbC9kZWNvcmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsYXlvdXQtZGVmYXVsdC10b3AtbWVudS1pdGVtJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuYWxhaW4tZGVmYXVsdF9fbmF2LWl0ZW1dJzogYHRydWVgLFxuICAgICdbY2xhc3MuYWxhaW4tZGVmYXVsdF9fdG9wLW1lbnUtaXRlbV0nOiBgdHJ1ZWAsXG4gICAgJ1tjbGFzcy5hbGFpbi1kZWZhdWx0X190b3AtbWVudS1pdGVtLXNlbGVjdGVkXSc6IGBzZWxlY3RlZGAsXG4gICAgJ1tjbGFzcy5hbGFpbi1kZWZhdWx0X190b3AtbWVudS1pdGVtLWRpc2FibGVkXSc6IGBkaXNhYmxlZGBcbiAgfSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIExheW91dERlZmF1bHRUb3BNZW51SXRlbUNvbXBvbmVudCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWxlY3RlZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGRpc2FibGVkID0gZmFsc2U7XG59XG4iXX0=
|