@delon/theme 14.2.0 → 14.3.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.
Files changed (67) hide show
  1. package/compact.css +147 -10
  2. package/compact.min.css +1 -1
  3. package/dark.css +147 -10
  4. package/dark.min.css +1 -1
  5. package/default.css +147 -10
  6. package/default.min.css +1 -1
  7. package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +3 -3
  8. package/esm2020/layout-default/layout-header-item.component.mjs +3 -3
  9. package/esm2020/layout-default/layout-header.component.mjs +33 -33
  10. package/esm2020/layout-default/layout-nav.component.mjs +6 -5
  11. package/esm2020/layout-default/layout.component.mjs +66 -35
  12. package/esm2020/layout-default/layout.module.mjs +4 -4
  13. package/esm2020/layout-default/layout.service.mjs +65 -0
  14. package/esm2020/layout-default/public_api.mjs +2 -1
  15. package/esm2020/layout-default/types.mjs +1 -1
  16. package/esm2020/setting-drawer/setting-drawer-item.component.mjs +3 -3
  17. package/esm2020/setting-drawer/setting-drawer.component.mjs +3 -3
  18. package/esm2020/setting-drawer/setting-drawer.module.mjs +4 -4
  19. package/esm2020/src/locale/locale.module.mjs +4 -4
  20. package/esm2020/src/locale/locale.service.mjs +3 -3
  21. package/esm2020/src/pipes/date/date.pipe.mjs +3 -3
  22. package/esm2020/src/pipes/keys/keys.pipe.mjs +3 -3
  23. package/esm2020/src/pipes/safe/html.pipe.mjs +3 -3
  24. package/esm2020/src/pipes/safe/url.pipe.mjs +3 -3
  25. package/esm2020/src/pipes/yn/yn.pipe.mjs +3 -3
  26. package/esm2020/src/services/drawer/drawer.helper.mjs +3 -3
  27. package/esm2020/src/services/http/http.client.mjs +3 -3
  28. package/esm2020/src/services/http/http.decorator.mjs +3 -3
  29. package/esm2020/src/services/i18n/i18n-url.guard.mjs +3 -3
  30. package/esm2020/src/services/i18n/i18n.mjs +6 -6
  31. package/esm2020/src/services/i18n/i18n.pipe.mjs +3 -3
  32. package/esm2020/src/services/menu/menu.service.mjs +3 -3
  33. package/esm2020/src/services/modal/modal.helper.mjs +3 -3
  34. package/esm2020/src/services/responsive/responsive.mjs +3 -3
  35. package/esm2020/src/services/rtl/rtl.service.mjs +3 -3
  36. package/esm2020/src/services/settings/settings.service.mjs +3 -3
  37. package/esm2020/src/services/title/title.service.mjs +3 -3
  38. package/esm2020/src/theme.module.mjs +4 -4
  39. package/esm2020/src/version.mjs +1 -1
  40. package/esm2020/theme-btn/theme-btn.component.mjs +3 -3
  41. package/esm2020/theme-btn/theme-btn.module.mjs +4 -4
  42. package/fesm2015/layout-default.mjs +164 -71
  43. package/fesm2015/layout-default.mjs.map +1 -1
  44. package/fesm2015/setting-drawer.mjs +10 -10
  45. package/fesm2015/setting-drawer.mjs.map +1 -1
  46. package/fesm2015/theme-btn.mjs +7 -7
  47. package/fesm2015/theme.mjs +66 -66
  48. package/fesm2015/theme.mjs.map +1 -1
  49. package/fesm2020/layout-default.mjs +167 -77
  50. package/fesm2020/layout-default.mjs.map +1 -1
  51. package/fesm2020/setting-drawer.mjs +10 -10
  52. package/fesm2020/setting-drawer.mjs.map +1 -1
  53. package/fesm2020/theme-btn.mjs +7 -7
  54. package/fesm2020/theme.mjs +66 -66
  55. package/fesm2020/theme.mjs.map +1 -1
  56. package/layout-default/layout-header.component.d.ts +5 -3
  57. package/layout-default/layout.component.d.ts +12 -6
  58. package/layout-default/layout.service.d.ts +28 -0
  59. package/layout-default/public_api.d.ts +1 -0
  60. package/layout-default/style/_aside.less +18 -1
  61. package/layout-default/style/_fixed.less +4 -0
  62. package/layout-default/style/_layout.less +6 -0
  63. package/layout-default/style/fix/_reuse-tab.less +6 -0
  64. package/layout-default/style/fix/_sidebar-nav.less +1 -1
  65. package/layout-default/style/theme-default.less +1 -0
  66. package/layout-default/types.d.ts +18 -0
  67. package/package.json +3 -3
@@ -1,14 +1,16 @@
1
1
  import * as i5 from '@angular/common';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, ViewChild, Input, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, Inject, Optional, Output, ContentChildren, Directive, NgModule } from '@angular/core';
4
+ import { Component, ViewChild, Input, Injectable, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, Inject, Optional, Output, ContentChildren, Directive, NgModule } from '@angular/core';
5
5
  import * as i2 from '@angular/router';
6
6
  import { NavigationEnd, RouteConfigLoadStart, NavigationError, NavigationCancel, RouteConfigLoadEnd, RouterModule } from '@angular/router';
7
- import { Subject, takeUntil, filter } from 'rxjs';
7
+ import { BehaviorSubject, Subject, takeUntil, filter } from 'rxjs';
8
8
  import { updateHostClass } from '@delon/util/browser';
9
9
  import * as i2$1 from 'ng-zorro-antd/message';
10
10
  import { NzMessageModule } from 'ng-zorro-antd/message';
11
11
  import * as i1 from '@delon/theme';
12
+ import * as i7 from 'ng-zorro-antd/icon';
13
+ import { NzIconModule } from 'ng-zorro-antd/icon';
12
14
  import { __decorate } from 'tslib';
13
15
  import { InputBoolean, InputNumber, ZoneOutside } from '@delon/util/decorator';
14
16
  import { WINDOW } from '@delon/util/token';
@@ -16,8 +18,6 @@ import * as i3 from '@angular/platform-browser';
16
18
  import * as i4 from '@angular/cdk/bidi';
17
19
  import * as i6 from 'ng-zorro-antd/tooltip';
18
20
  import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
19
- import * as i7 from 'ng-zorro-antd/icon';
20
- import { NzIconModule } from 'ng-zorro-antd/icon';
21
21
  import * as i8 from 'ng-zorro-antd/badge';
22
22
  import { NzBadgeModule } from 'ng-zorro-antd/badge';
23
23
  import { NzAvatarModule } from 'ng-zorro-antd/avatar';
@@ -29,13 +29,13 @@ class LayoutDefaultHeaderItemComponent {
29
29
  this.direction = 'right';
30
30
  }
31
31
  }
32
- LayoutDefaultHeaderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- LayoutDefaultHeaderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", 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: `
32
+ LayoutDefaultHeaderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ LayoutDefaultHeaderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", 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: `
34
34
  <ng-template #host>
35
35
  <ng-content></ng-content>
36
36
  </ng-template>
37
37
  `, isInline: true });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderItemComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderItemComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{
41
41
  selector: 'layout-default-header-item',
@@ -54,6 +54,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
54
54
  type: Input
55
55
  }] } });
56
56
 
57
+ const DEFAULT = {
58
+ logoExpanded: `./assets/logo-full.svg`,
59
+ logoCollapsed: `./assets/logo.svg`,
60
+ logoLink: `/`,
61
+ showHeaderCollapse: true,
62
+ showSiderCollapse: false,
63
+ hideAside: false,
64
+ hideHeader: false
65
+ };
66
+ class LayoutDefaultService {
67
+ constructor(settings) {
68
+ this.settings = settings;
69
+ this._options$ = new BehaviorSubject(DEFAULT);
70
+ this._options = DEFAULT;
71
+ }
72
+ get options() {
73
+ return this._options;
74
+ }
75
+ get options$() {
76
+ return this._options$.asObservable();
77
+ }
78
+ get collapsedIcon() {
79
+ const collapsed = this.settings.layout.collapsed;
80
+ let type = collapsed ? 'unfold' : 'fold';
81
+ if (this.settings.layout.direction === 'rtl') {
82
+ type = collapsed ? 'fold' : 'unfold';
83
+ }
84
+ return `menu-${type}`;
85
+ }
86
+ notify() {
87
+ this._options$.next(this._options);
88
+ }
89
+ /**
90
+ * Set layout configuration
91
+ *
92
+ * 设置布局配置
93
+ */
94
+ setOptions(options) {
95
+ this._options = Object.assign(Object.assign({}, DEFAULT), options);
96
+ this.notify();
97
+ }
98
+ /**
99
+ * Toggle the collapsed state of the sidebar menu bar
100
+ *
101
+ * 切换侧边栏菜单栏折叠状态
102
+ */
103
+ toggleCollapsed(status) {
104
+ this.settings.setLayout('collapsed', status != null ? status : !this.settings.layout.collapsed);
105
+ this.notify();
106
+ }
107
+ }
108
+ LayoutDefaultService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultService, deps: [{ token: i1.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable });
109
+ LayoutDefaultService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultService, providedIn: 'root' });
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultService, decorators: [{
111
+ type: Injectable,
112
+ args: [{ providedIn: 'root' }]
113
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }]; } });
114
+
57
115
  const SHOWCLS = 'sidebar-nav__floating-show';
58
116
  const FLOATINGCLS = 'sidebar-nav__floating';
59
117
  class LayoutDefaultNavComponent {
@@ -284,8 +342,8 @@ class LayoutDefaultNavComponent {
284
342
  this.settings.setLayout('collapsed', status);
285
343
  }
286
344
  }
287
- LayoutDefaultNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", 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 });
288
- LayoutDefaultNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", 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()" } }, 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 });
345
+ LayoutDefaultNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", 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 });
346
+ LayoutDefaultNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", 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 });
289
347
  __decorate([
290
348
  InputBoolean()
291
349
  ], LayoutDefaultNavComponent.prototype, "disabledAcl", void 0);
@@ -304,11 +362,12 @@ __decorate([
304
362
  __decorate([
305
363
  ZoneOutside()
306
364
  ], LayoutDefaultNavComponent.prototype, "showSubMenu", null);
307
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultNavComponent, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultNavComponent, decorators: [{
308
366
  type: Component,
309
367
  args: [{ selector: 'layout-default-nav', host: {
310
368
  '(click)': '_click()',
311
- '(document:click)': 'closeSubMenu()'
369
+ '(document:click)': 'closeSubMenu()',
370
+ '[class.d-block]': `true`
312
371
  }, 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" }]
313
372
  }], ctorParameters: function () {
314
373
  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: [{
@@ -335,7 +394,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
335
394
  }], showSubMenu: [] } });
336
395
 
337
396
  class LayoutDefaultHeaderComponent {
338
- constructor(settings, cdr) {
397
+ constructor(srv, settings, cdr) {
398
+ this.srv = srv;
339
399
  this.settings = settings;
340
400
  this.cdr = cdr;
341
401
  this.destroy$ = new Subject();
@@ -343,6 +403,9 @@ class LayoutDefaultHeaderComponent {
343
403
  this.middle = [];
344
404
  this.right = [];
345
405
  }
406
+ get opt() {
407
+ return this.srv.options;
408
+ }
346
409
  get app() {
347
410
  return this.settings.app;
348
411
  }
@@ -350,11 +413,7 @@ class LayoutDefaultHeaderComponent {
350
413
  return this.settings.layout.collapsed;
351
414
  }
352
415
  get collapsedIcon() {
353
- let type = this.collapsed ? 'unfold' : 'fold';
354
- if (this.settings.layout.direction === 'rtl') {
355
- type = this.collapsed ? 'fold' : 'unfold';
356
- }
357
- return `menu-${type}`;
416
+ return this.srv.collapsedIcon;
358
417
  }
359
418
  refresh() {
360
419
  const arr = this.items.toArray();
@@ -365,36 +424,37 @@ class LayoutDefaultHeaderComponent {
365
424
  }
366
425
  ngAfterViewInit() {
367
426
  this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this.refresh());
427
+ this.srv.options$.pipe(takeUntil(this.destroy$)).subscribe(() => this.cdr.detectChanges());
368
428
  this.refresh();
369
429
  }
370
430
  toggleCollapsed() {
371
- this.settings.setLayout('collapsed', !this.settings.layout.collapsed);
431
+ this.srv.toggleCollapsed();
372
432
  }
373
433
  ngOnDestroy() {
374
434
  this.destroy$.next();
375
435
  this.destroy$.complete();
376
436
  }
377
437
  }
378
- LayoutDefaultHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderComponent, deps: [{ token: i1.SettingsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
379
- LayoutDefaultHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: { items: "items", options: "options" }, host: { properties: { "class.alain-default__header": "true" } }, ngImport: i0, template: `
438
+ LayoutDefaultHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderComponent, deps: [{ token: LayoutDefaultService }, { token: i1.SettingsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
439
+ LayoutDefaultHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: { items: "items" }, host: { properties: { "class.alain-default__header": "true" } }, ngImport: i0, template: `
380
440
  <ng-template #render let-ls>
381
441
  <li *ngFor="let i of ls" [class.hidden-mobile]="i.hidden === 'mobile'" [class.hidden-pc]="i.hidden === 'pc'">
382
442
  <ng-container *ngTemplateOutlet="i.host"></ng-container>
383
443
  </li>
384
444
  </ng-template>
385
- <div class="alain-default__header-logo" [style.width.px]="options.logoFixWidth">
386
- <ng-container *ngIf="!options.logo; else options.logo!">
387
- <a [routerLink]="options.logoLink" class="alain-default__header-logo-link">
388
- <img class="alain-default__header-logo-expanded" [attr.src]="options.logoExpanded" [attr.alt]="app.name" />
389
- <img class="alain-default__header-logo-collapsed" [attr.src]="options.logoCollapsed" [attr.alt]="app.name" />
445
+ <div class="alain-default__header-logo" [style.width.px]="opt.logoFixWidth">
446
+ <ng-container *ngIf="!opt.logo; else opt.logo!">
447
+ <a [routerLink]="opt.logoLink" class="alain-default__header-logo-link">
448
+ <img class="alain-default__header-logo-expanded" [attr.src]="opt.logoExpanded" [attr.alt]="app.name" />
449
+ <img class="alain-default__header-logo-collapsed" [attr.src]="opt.logoCollapsed" [attr.alt]="app.name" />
390
450
  </a>
391
451
  </ng-container>
392
452
  </div>
393
453
  <div class="alain-default__nav-wrap">
394
454
  <ul class="alain-default__nav">
395
- <li *ngIf="!options.hideAside">
455
+ <li *ngIf="!opt.hideAside && opt.showHeaderCollapse">
396
456
  <div class="alain-default__nav-item alain-default__nav-item--collapse" (click)="toggleCollapsed()">
397
- <i nz-icon [nzType]="collapsedIcon"></i>
457
+ <span nz-icon [nzType]="collapsedIcon"></span>
398
458
  </div>
399
459
  </li>
400
460
  <ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: left }"></ng-template>
@@ -407,7 +467,7 @@ LayoutDefaultHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
407
467
  </ul>
408
468
  </div>
409
469
  `, isInline: true, dependencies: [{ 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: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderComponent, decorators: [{
470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderComponent, decorators: [{
411
471
  type: Component,
412
472
  args: [{
413
473
  selector: 'layout-default-header',
@@ -417,19 +477,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
417
477
  <ng-container *ngTemplateOutlet="i.host"></ng-container>
418
478
  </li>
419
479
  </ng-template>
420
- <div class="alain-default__header-logo" [style.width.px]="options.logoFixWidth">
421
- <ng-container *ngIf="!options.logo; else options.logo!">
422
- <a [routerLink]="options.logoLink" class="alain-default__header-logo-link">
423
- <img class="alain-default__header-logo-expanded" [attr.src]="options.logoExpanded" [attr.alt]="app.name" />
424
- <img class="alain-default__header-logo-collapsed" [attr.src]="options.logoCollapsed" [attr.alt]="app.name" />
480
+ <div class="alain-default__header-logo" [style.width.px]="opt.logoFixWidth">
481
+ <ng-container *ngIf="!opt.logo; else opt.logo!">
482
+ <a [routerLink]="opt.logoLink" class="alain-default__header-logo-link">
483
+ <img class="alain-default__header-logo-expanded" [attr.src]="opt.logoExpanded" [attr.alt]="app.name" />
484
+ <img class="alain-default__header-logo-collapsed" [attr.src]="opt.logoCollapsed" [attr.alt]="app.name" />
425
485
  </a>
426
486
  </ng-container>
427
487
  </div>
428
488
  <div class="alain-default__nav-wrap">
429
489
  <ul class="alain-default__nav">
430
- <li *ngIf="!options.hideAside">
490
+ <li *ngIf="!opt.hideAside && opt.showHeaderCollapse">
431
491
  <div class="alain-default__nav-item alain-default__nav-item--collapse" (click)="toggleCollapsed()">
432
- <i nz-icon [nzType]="collapsedIcon"></i>
492
+ <span nz-icon [nzType]="collapsedIcon"></span>
433
493
  </div>
434
494
  </li>
435
495
  <ng-template [ngTemplateOutlet]="render" [ngTemplateOutletContext]="{ $implicit: left }"></ng-template>
@@ -447,25 +507,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
447
507
  },
448
508
  changeDetection: ChangeDetectionStrategy.OnPush
449
509
  }]
450
- }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
451
- type: Input
452
- }], options: [{
510
+ }], ctorParameters: function () { return [{ type: LayoutDefaultService }, { type: i1.SettingsService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
453
511
  type: Input
454
512
  }] } });
455
513
 
456
514
  class LayoutDefaultComponent {
457
- constructor(router, msgSrv, settings, el, renderer, doc) {
515
+ constructor(router, msgSrv, settings, el, renderer, doc, srv) {
458
516
  this.msgSrv = msgSrv;
459
517
  this.settings = settings;
460
518
  this.el = el;
461
519
  this.renderer = renderer;
462
520
  this.doc = doc;
521
+ this.srv = srv;
463
522
  this.asideUser = null;
523
+ this.asideBottom = null;
464
524
  this.nav = null;
465
525
  this.content = null;
466
526
  this.destroy$ = new Subject();
467
527
  this.isFetching = false;
468
528
  router.events.pipe(takeUntil(this.destroy$)).subscribe(ev => this.processEv(ev));
529
+ const { destroy$ } = this;
530
+ this.srv.options$.pipe(takeUntil(destroy$)).subscribe(() => this.setClass());
531
+ this.settings.notify.pipe(takeUntil(destroy$)).subscribe(() => this.setClass());
532
+ }
533
+ get opt() {
534
+ return this.srv.options;
535
+ }
536
+ set options(value) {
537
+ this.srv.setOptions(value);
538
+ }
539
+ get collapsed() {
540
+ return this.settings.layout.collapsed;
541
+ }
542
+ get collapsedIcon() {
543
+ return this.srv.collapsedIcon;
544
+ }
545
+ toggleCollapsed() {
546
+ this.srv.toggleCollapsed();
469
547
  }
470
548
  processEv(ev) {
471
549
  var _a;
@@ -496,50 +574,63 @@ class LayoutDefaultComponent {
496
574
  ['alain-default']: true,
497
575
  [`alain-default__fixed`]: layout.fixed,
498
576
  [`alain-default__collapsed`]: layout.collapsed,
499
- [`alain-default__hide-aside`]: this.options.hideAside
577
+ [`alain-default__hide-aside`]: this.opt.hideAside,
578
+ [`alain-default__hide-header`]: this.opt.hideHeader
500
579
  });
501
580
  doc.body.classList[layout.colorWeak ? 'add' : 'remove']('color-weak');
502
581
  }
503
- ngOnInit() {
504
- this.options = Object.assign({ logoExpanded: `./assets/logo-full.svg`, logoCollapsed: `./assets/logo.svg`, logoLink: `/`, hideAside: false }, this.options);
505
- const { settings, destroy$ } = this;
506
- settings.notify.pipe(takeUntil(destroy$)).subscribe(() => this.setClass());
507
- this.setClass();
508
- }
509
582
  ngOnDestroy() {
510
583
  this.destroy$.next();
511
584
  this.destroy$.complete();
512
585
  }
513
586
  }
514
- LayoutDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultComponent, deps: [{ token: i2.Router }, { token: i2$1.NzMessageService }, { token: i1.SettingsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
515
- LayoutDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: LayoutDefaultComponent, selector: "layout-default", inputs: { options: "options", asideUser: "asideUser", nav: "nav", content: "content", customError: "customError" }, queries: [{ propertyName: "headerItems", predicate: LayoutDefaultHeaderItemComponent }], exportAs: ["layoutDefault"], ngImport: i0, template: `
587
+ LayoutDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultComponent, deps: [{ token: i2.Router }, { token: i2$1.NzMessageService }, { token: i1.SettingsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: LayoutDefaultService }], target: i0.ɵɵFactoryTarget.Component });
588
+ LayoutDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: LayoutDefaultComponent, selector: "layout-default", inputs: { options: "options", asideUser: "asideUser", asideBottom: "asideBottom", nav: "nav", content: "content", customError: "customError" }, queries: [{ propertyName: "headerItems", predicate: LayoutDefaultHeaderItemComponent }], exportAs: ["layoutDefault"], ngImport: i0, template: `
516
589
  <div class="alain-default__progress-bar" *ngIf="isFetching"></div>
517
- <layout-default-header [options]="options" [items]="headerItems"></layout-default-header>
518
- <div *ngIf="!options.hideAside" class="alain-default__aside">
519
- <div class="alain-default__aside-inner">
520
- <ng-container *ngTemplateOutlet="asideUser"></ng-container>
521
- <ng-container *ngTemplateOutlet="nav"></ng-container>
522
- <layout-default-nav *ngIf="!nav" class="d-block py-lg"></layout-default-nav>
590
+ <layout-default-header *ngIf="!opt.hideHeader" [items]="headerItems"></layout-default-header>
591
+ <div *ngIf="!opt.hideAside" class="alain-default__aside">
592
+ <div class="alain-default__aside-wrap">
593
+ <div class="alain-default__aside-inner">
594
+ <ng-container *ngTemplateOutlet="asideUser"></ng-container>
595
+ <ng-container *ngTemplateOutlet="nav"></ng-container>
596
+ <layout-default-nav *ngIf="!nav"></layout-default-nav>
597
+ </div>
598
+ <div *ngIf="opt.showSiderCollapse" class="alain-default__aside-link">
599
+ <ng-container *ngIf="asideBottom === null; else asideBottom">
600
+ <div class="alain-default__aside-link-collapsed" (click)="toggleCollapsed()">
601
+ <span nz-icon [nzType]="collapsedIcon"></span>
602
+ </div>
603
+ </ng-container>
604
+ </div>
523
605
  </div>
524
606
  </div>
525
607
  <section class="alain-default__content">
526
608
  <ng-container *ngTemplateOutlet="content"></ng-container>
527
609
  <ng-content></ng-content>
528
610
  </section>
529
- `, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LayoutDefaultNavComponent, selector: "layout-default-nav", inputs: ["disabledAcl", "autoCloseUnderPad", "recursivePath", "openStrictly", "maxLevelIcon"], outputs: ["select"] }, { kind: "component", type: LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: ["items", "options"] }] });
530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultComponent, decorators: [{
611
+ `, isInline: true, dependencies: [{ 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: i7.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: LayoutDefaultNavComponent, selector: "layout-default-nav", inputs: ["disabledAcl", "autoCloseUnderPad", "recursivePath", "openStrictly", "maxLevelIcon"], outputs: ["select"] }, { kind: "component", type: LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: ["items"] }] });
612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultComponent, decorators: [{
531
613
  type: Component,
532
614
  args: [{
533
615
  selector: 'layout-default',
534
616
  exportAs: 'layoutDefault',
535
617
  template: `
536
618
  <div class="alain-default__progress-bar" *ngIf="isFetching"></div>
537
- <layout-default-header [options]="options" [items]="headerItems"></layout-default-header>
538
- <div *ngIf="!options.hideAside" class="alain-default__aside">
539
- <div class="alain-default__aside-inner">
540
- <ng-container *ngTemplateOutlet="asideUser"></ng-container>
541
- <ng-container *ngTemplateOutlet="nav"></ng-container>
542
- <layout-default-nav *ngIf="!nav" class="d-block py-lg"></layout-default-nav>
619
+ <layout-default-header *ngIf="!opt.hideHeader" [items]="headerItems"></layout-default-header>
620
+ <div *ngIf="!opt.hideAside" class="alain-default__aside">
621
+ <div class="alain-default__aside-wrap">
622
+ <div class="alain-default__aside-inner">
623
+ <ng-container *ngTemplateOutlet="asideUser"></ng-container>
624
+ <ng-container *ngTemplateOutlet="nav"></ng-container>
625
+ <layout-default-nav *ngIf="!nav"></layout-default-nav>
626
+ </div>
627
+ <div *ngIf="opt.showSiderCollapse" class="alain-default__aside-link">
628
+ <ng-container *ngIf="asideBottom === null; else asideBottom">
629
+ <div class="alain-default__aside-link-collapsed" (click)="toggleCollapsed()">
630
+ <span nz-icon [nzType]="collapsedIcon"></span>
631
+ </div>
632
+ </ng-container>
633
+ </div>
543
634
  </div>
544
635
  </div>
545
636
  <section class="alain-default__content">
@@ -552,7 +643,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
552
643
  return [{ type: i2.Router }, { type: i2$1.NzMessageService }, { type: i1.SettingsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
553
644
  type: Inject,
554
645
  args: [DOCUMENT]
555
- }] }];
646
+ }] }, { type: LayoutDefaultService }];
556
647
  }, propDecorators: { headerItems: [{
557
648
  type: ContentChildren,
558
649
  args: [LayoutDefaultHeaderItemComponent, { descendants: false }]
@@ -560,6 +651,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
560
651
  type: Input
561
652
  }], asideUser: [{
562
653
  type: Input
654
+ }], asideBottom: [{
655
+ type: Input
563
656
  }], nav: [{
564
657
  type: Input
565
658
  }], content: [{
@@ -570,9 +663,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
570
663
 
571
664
  class LayoutDefaultHeaderItemTriggerDirective {
572
665
  }
573
- LayoutDefaultHeaderItemTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
574
- LayoutDefaultHeaderItemTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.10", type: LayoutDefaultHeaderItemTriggerDirective, selector: "[layout-default-header-item-trigger]", host: { properties: { "class.alain-default__nav-item": "true" } }, ngImport: i0 });
575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, decorators: [{
666
+ LayoutDefaultHeaderItemTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
667
+ LayoutDefaultHeaderItemTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: LayoutDefaultHeaderItemTriggerDirective, selector: "[layout-default-header-item-trigger]", host: { properties: { "class.alain-default__nav-item": "true" } }, ngImport: i0 });
668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultHeaderItemTriggerDirective, decorators: [{
576
669
  type: Directive,
577
670
  args: [{
578
671
  selector: '[layout-default-header-item-trigger]',
@@ -591,8 +684,8 @@ const COMPONENTS = [
591
684
  ];
592
685
  class LayoutDefaultModule {
593
686
  }
594
- LayoutDefaultModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
595
- LayoutDefaultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultModule, declarations: [LayoutDefaultComponent,
687
+ LayoutDefaultModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
688
+ LayoutDefaultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultModule, declarations: [LayoutDefaultComponent,
596
689
  LayoutDefaultNavComponent,
597
690
  LayoutDefaultHeaderComponent,
598
691
  LayoutDefaultHeaderItemComponent,
@@ -608,7 +701,7 @@ LayoutDefaultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
608
701
  LayoutDefaultHeaderComponent,
609
702
  LayoutDefaultHeaderItemComponent,
610
703
  LayoutDefaultHeaderItemTriggerDirective] });
611
- LayoutDefaultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultModule, imports: [CommonModule,
704
+ LayoutDefaultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultModule, imports: [CommonModule,
612
705
  RouterModule,
613
706
  NzToolTipModule,
614
707
  NzIconModule,
@@ -616,7 +709,7 @@ LayoutDefaultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
616
709
  NzDropDownModule,
617
710
  NzMessageModule,
618
711
  NzBadgeModule] });
619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: LayoutDefaultModule, decorators: [{
712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutDefaultModule, decorators: [{
620
713
  type: NgModule,
621
714
  args: [{
622
715
  imports: [
@@ -638,5 +731,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
638
731
  * Generated bundle index. Do not edit.
639
732
  */
640
733
 
641
- export { LayoutDefaultComponent, LayoutDefaultHeaderComponent, LayoutDefaultHeaderItemComponent, LayoutDefaultHeaderItemTriggerDirective, LayoutDefaultModule, LayoutDefaultNavComponent };
734
+ export { LayoutDefaultComponent, LayoutDefaultHeaderComponent, LayoutDefaultHeaderItemComponent, LayoutDefaultHeaderItemTriggerDirective, LayoutDefaultModule, LayoutDefaultNavComponent, LayoutDefaultService };
642
735
  //# sourceMappingURL=layout-default.mjs.map