@delon/abc 20.1.0 → 21.0.0-next.1
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/fesm2022/auto-focus.mjs +10 -10
- package/fesm2022/auto-focus.mjs.map +1 -1
- package/fesm2022/cell.mjs +23 -25
- package/fesm2022/cell.mjs.map +1 -1
- package/fesm2022/chart-observer-size.mjs +21 -34
- package/fesm2022/chart-observer-size.mjs.map +1 -1
- package/fesm2022/count-down.mjs +24 -31
- package/fesm2022/count-down.mjs.map +1 -1
- package/fesm2022/date-picker.mjs +89 -85
- package/fesm2022/date-picker.mjs.map +1 -1
- package/fesm2022/down-file.mjs +24 -44
- package/fesm2022/down-file.mjs.map +1 -1
- package/fesm2022/ellipsis.mjs +165 -106
- package/fesm2022/ellipsis.mjs.map +1 -1
- package/fesm2022/error-collect.mjs +12 -14
- package/fesm2022/error-collect.mjs.map +1 -1
- package/fesm2022/exception.mjs +9 -9
- package/fesm2022/exception.mjs.map +1 -1
- package/fesm2022/footer-toolbar.mjs +9 -9
- package/fesm2022/footer-toolbar.mjs.map +1 -1
- package/fesm2022/full-content.mjs +50 -58
- package/fesm2022/full-content.mjs.map +1 -1
- package/fesm2022/global-footer.mjs +14 -15
- package/fesm2022/global-footer.mjs.map +1 -1
- package/fesm2022/hotkey.mjs +7 -7
- package/fesm2022/hotkey.mjs.map +1 -1
- package/fesm2022/loading.mjs +62 -15
- package/fesm2022/loading.mjs.map +1 -1
- package/fesm2022/lodop.mjs +8 -8
- package/fesm2022/lodop.mjs.map +1 -1
- package/fesm2022/media.mjs +37 -61
- package/fesm2022/media.mjs.map +1 -1
- package/fesm2022/notice-icon.mjs +220 -25
- package/fesm2022/notice-icon.mjs.map +1 -1
- package/fesm2022/onboarding.mjs +163 -65
- package/fesm2022/onboarding.mjs.map +1 -1
- package/fesm2022/page-header.mjs +252 -155
- package/fesm2022/page-header.mjs.map +1 -1
- package/fesm2022/pdf.mjs +9 -9
- package/fesm2022/pdf.mjs.map +1 -1
- package/fesm2022/quick-menu.mjs +79 -71
- package/fesm2022/quick-menu.mjs.map +1 -1
- package/fesm2022/reuse-tab.mjs +262 -165
- package/fesm2022/reuse-tab.mjs.map +1 -1
- package/fesm2022/se.mjs +290 -310
- package/fesm2022/se.mjs.map +1 -1
- package/fesm2022/sg.mjs +32 -69
- package/fesm2022/sg.mjs.map +1 -1
- package/fesm2022/st.mjs +124 -115
- package/fesm2022/st.mjs.map +1 -1
- package/fesm2022/sv.mjs +185 -174
- package/fesm2022/sv.mjs.map +1 -1
- package/fesm2022/tag-select.mjs +44 -25
- package/fesm2022/tag-select.mjs.map +1 -1
- package/fesm2022/xlsx.mjs +16 -19
- package/fesm2022/xlsx.mjs.map +1 -1
- package/fesm2022/zip.mjs +4 -4
- package/fesm2022/zip.mjs.map +1 -1
- package/package.json +40 -40
- package/{auto-focus/index.d.ts → types/auto-focus.d.ts} +2 -2
- package/{cell/index.d.ts → types/cell.d.ts} +12 -13
- package/{observers/index.d.ts → types/chart-observer-size.d.ts} +5 -9
- package/{count-down/index.d.ts → types/count-down.d.ts} +6 -10
- package/{date-picker/index.d.ts → types/date-picker.d.ts} +6 -10
- package/types/down-file.d.ts +32 -0
- package/types/ellipsis.d.ts +46 -0
- package/types/error-collect.d.ts +34 -0
- package/{exception/index.d.ts → types/exception.d.ts} +13 -13
- package/{footer-toolbar/index.d.ts → types/footer-toolbar.d.ts} +2 -2
- package/{full-content/index.d.ts → types/full-content.d.ts} +8 -13
- package/{global-footer/index.d.ts → types/global-footer.d.ts} +7 -7
- package/{loading/index.d.ts → types/loading.d.ts} +1 -0
- package/{media/index.d.ts → types/media.d.ts} +10 -16
- package/{notice-icon/index.d.ts → types/notice-icon.d.ts} +15 -15
- package/{onboarding/index.d.ts → types/onboarding.d.ts} +12 -14
- package/types/page-header.d.ts +67 -0
- package/types/quick-menu.d.ts +31 -0
- package/{reuse-tab/index.d.ts → types/reuse-tab.d.ts} +46 -55
- package/types/se.d.ts +101 -0
- package/types/sg.d.ts +31 -0
- package/{st/index.d.ts → types/st.d.ts} +10 -2
- package/types/sv.d.ts +81 -0
- package/types/tag-select.d.ts +25 -0
- package/{xlsx/index.d.ts → types/xlsx.d.ts} +3 -3
- package/down-file/index.d.ts +0 -34
- package/ellipsis/index.d.ts +0 -55
- package/error-collect/index.d.ts +0 -35
- package/page-header/index.d.ts +0 -83
- package/quick-menu/index.d.ts +0 -38
- package/se/index.d.ts +0 -129
- package/sg/index.d.ts +0 -44
- package/sv/index.d.ts +0 -96
- package/tag-select/index.d.ts +0 -27
- /package/{index.d.ts → types/abc.d.ts} +0 -0
- /package/{hotkey/index.d.ts → types/hotkey.d.ts} +0 -0
- /package/{lodop/index.d.ts → types/lodop.d.ts} +0 -0
- /package/{pdf/index.d.ts → types/pdf.d.ts} +0 -0
- /package/{zip/index.d.ts → types/zip.d.ts} +0 -0
package/fesm2022/page-header.mjs
CHANGED
|
@@ -3,12 +3,12 @@ import { CdkObserveContent, ObserversModule } from '@angular/cdk/observers';
|
|
|
3
3
|
import { Platform } from '@angular/cdk/platform';
|
|
4
4
|
import { NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { inject, Renderer2,
|
|
6
|
+
import { inject, Renderer2, viewChild, signal, computed, TemplateRef, input, booleanAttribute, numberAttribute, effect, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
7
7
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
8
|
import { Router, NavigationEnd, RouterLink, RouterModule } from '@angular/router';
|
|
9
9
|
import { filter, merge } from 'rxjs';
|
|
10
10
|
import { ReuseTabService } from '@delon/abc/reuse-tab';
|
|
11
|
-
import { MenuService, ALAIN_I18N_TOKEN, TitleService, SettingsService } from '@delon/theme';
|
|
11
|
+
import { MenuService, ALAIN_I18N_TOKEN, TitleService, SettingsService, DelonLocaleService } from '@delon/theme';
|
|
12
12
|
import { isEmpty } from '@delon/util/browser';
|
|
13
13
|
import { AlainConfigService } from '@delon/util/config';
|
|
14
14
|
import { NzAffixComponent, NzAffixModule } from 'ng-zorro-antd/affix';
|
|
@@ -19,87 +19,87 @@ import { NzSkeletonComponent, NzSkeletonModule } from 'ng-zorro-antd/skeleton';
|
|
|
19
19
|
class PageHeaderComponent {
|
|
20
20
|
renderer = inject(Renderer2);
|
|
21
21
|
router = inject(Router);
|
|
22
|
-
cdr = inject(ChangeDetectorRef);
|
|
23
22
|
menuSrv = inject(MenuService);
|
|
24
23
|
i18nSrv = inject(ALAIN_I18N_TOKEN);
|
|
25
24
|
titleSrv = inject(TitleService);
|
|
26
25
|
reuseSrv = inject(ReuseTabService, { optional: true });
|
|
27
26
|
settings = inject(SettingsService);
|
|
28
|
-
platform = inject(Platform);
|
|
29
27
|
cogSrv = inject(AlainConfigService);
|
|
30
|
-
conTpl;
|
|
31
|
-
affix;
|
|
32
|
-
|
|
33
|
-
isBrowser = true;
|
|
28
|
+
conTpl = viewChild.required('conTpl');
|
|
29
|
+
affix = viewChild(NzAffixComponent, ...(ngDevMode ? [{ debugName: "affix" }] : []));
|
|
30
|
+
isBrowser = inject(Platform).isBrowser;
|
|
34
31
|
dir = inject(Directionality).valueSignal;
|
|
35
32
|
get menus() {
|
|
36
|
-
return this.menuSrv.getPathByUrl(this.router.url, this.recursiveBreadcrumb);
|
|
33
|
+
return this.menuSrv.getPathByUrl(this.router.url, this.recursiveBreadcrumb());
|
|
37
34
|
}
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
paths = signal([], ...(ngDevMode ? [{ debugName: "paths" }] : []));
|
|
36
|
+
titleIsTpl = computed(() => this.title() instanceof TemplateRef, ...(ngDevMode ? [{ debugName: "titleIsTpl" }] : []));
|
|
37
|
+
titleText = signal(null, ...(ngDevMode ? [{ debugName: "titleText" }] : []));
|
|
38
|
+
titleSub = input(...(ngDevMode ? [undefined, { debugName: "titleSub" }] : []));
|
|
40
39
|
// #region fields
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
homeI18n;
|
|
60
|
-
autoBreadcrumb;
|
|
61
|
-
autoTitle;
|
|
62
|
-
syncTitle;
|
|
63
|
-
fixed;
|
|
64
|
-
fixedOffsetTop;
|
|
65
|
-
breadcrumb = null;
|
|
66
|
-
recursiveBreadcrumb;
|
|
67
|
-
logo = null;
|
|
68
|
-
action = null;
|
|
69
|
-
content = null;
|
|
70
|
-
extra = null;
|
|
71
|
-
tab = null;
|
|
40
|
+
title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
|
|
41
|
+
loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : {}), transform: booleanAttribute });
|
|
42
|
+
wide = input(false, { ...(ngDevMode ? { debugName: "wide" } : {}), transform: booleanAttribute });
|
|
43
|
+
home = input(...(ngDevMode ? [undefined, { debugName: "home" }] : []));
|
|
44
|
+
homeLink = input('/', ...(ngDevMode ? [{ debugName: "homeLink" }] : []));
|
|
45
|
+
homeI18n = input(...(ngDevMode ? [undefined, { debugName: "homeI18n" }] : []));
|
|
46
|
+
autoBreadcrumb = input(true, { ...(ngDevMode ? { debugName: "autoBreadcrumb" } : {}), transform: booleanAttribute });
|
|
47
|
+
autoTitle = input(true, { ...(ngDevMode ? { debugName: "autoTitle" } : {}), transform: booleanAttribute });
|
|
48
|
+
syncTitle = input(true, { ...(ngDevMode ? { debugName: "syncTitle" } : {}), transform: booleanAttribute });
|
|
49
|
+
fixed = input(false, { ...(ngDevMode ? { debugName: "fixed" } : {}), transform: booleanAttribute });
|
|
50
|
+
fixedOffsetTop = input(64, { ...(ngDevMode ? { debugName: "fixedOffsetTop" } : {}), transform: numberAttribute });
|
|
51
|
+
breadcrumb = input(null, ...(ngDevMode ? [{ debugName: "breadcrumb" }] : []));
|
|
52
|
+
recursiveBreadcrumb = input(false, { ...(ngDevMode ? { debugName: "recursiveBreadcrumb" } : {}), transform: booleanAttribute });
|
|
53
|
+
logo = input(null, ...(ngDevMode ? [{ debugName: "logo" }] : []));
|
|
54
|
+
action = input(null, ...(ngDevMode ? [{ debugName: "action" }] : []));
|
|
55
|
+
content = input(null, ...(ngDevMode ? [{ debugName: "content" }] : []));
|
|
56
|
+
extra = input(null, ...(ngDevMode ? [{ debugName: "extra" }] : []));
|
|
57
|
+
tab = input(null, ...(ngDevMode ? [{ debugName: "tab" }] : []));
|
|
72
58
|
// #endregion
|
|
59
|
+
locale = inject(DelonLocaleService).getData('pageHeader');
|
|
73
60
|
constructor() {
|
|
74
|
-
this.isBrowser = this.platform.isBrowser;
|
|
75
61
|
this.cogSrv.attach(this, 'pageHeader', {
|
|
76
|
-
home:
|
|
77
|
-
homeLink: '/',
|
|
78
|
-
autoBreadcrumb: true,
|
|
79
|
-
recursiveBreadcrumb: false,
|
|
80
|
-
autoTitle: true,
|
|
81
|
-
syncTitle: true,
|
|
82
|
-
fixed: false,
|
|
83
|
-
fixedOffsetTop: 64
|
|
62
|
+
home: this.locale.home
|
|
84
63
|
});
|
|
85
64
|
this.settings.notify
|
|
86
|
-
.pipe(takeUntilDestroyed(), filter(w => this.affix && w.type === 'layout' && w.name === 'collapsed'))
|
|
87
|
-
.subscribe(() => this.affix
|
|
65
|
+
.pipe(takeUntilDestroyed(), filter(w => this.affix() != null && w.type === 'layout' && w.name === 'collapsed'))
|
|
66
|
+
.subscribe(() => this.affix()?.updatePosition({}));
|
|
88
67
|
const obsList = [this.router.events.pipe(filter(ev => ev instanceof NavigationEnd))];
|
|
89
68
|
if (this.menuSrv != null)
|
|
90
69
|
obsList.push(this.menuSrv.change);
|
|
91
70
|
obsList.push(this.i18nSrv.change);
|
|
92
71
|
merge(...obsList)
|
|
93
|
-
.pipe(takeUntilDestroyed()
|
|
72
|
+
.pipe(takeUntilDestroyed())
|
|
94
73
|
.subscribe(() => this.refresh());
|
|
74
|
+
effect(() => this.refresh());
|
|
75
|
+
afterNextRender(() => this.checkContent());
|
|
95
76
|
}
|
|
96
77
|
refresh() {
|
|
97
|
-
|
|
98
|
-
this.
|
|
78
|
+
let title;
|
|
79
|
+
if (this.title() == null && this.autoTitle() && this.menus.length > 0) {
|
|
80
|
+
const item = this.menus[this.menus.length - 1];
|
|
81
|
+
title = item.text;
|
|
82
|
+
if (item.i18n) {
|
|
83
|
+
title = this.i18nSrv.fanyi(item.i18n);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
title = this.titleIsTpl() ? '' : this.title();
|
|
88
|
+
}
|
|
89
|
+
this.titleText.set(title);
|
|
90
|
+
// sync title to title & reuse service
|
|
91
|
+
if (title && this.syncTitle()) {
|
|
92
|
+
this.titleSrv.setTitle(title);
|
|
93
|
+
if (this.reuseSrv) {
|
|
94
|
+
this.reuseSrv.title = title;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// build breadcrumb
|
|
98
|
+
this.genBreadcrumb();
|
|
99
99
|
}
|
|
100
100
|
genBreadcrumb() {
|
|
101
|
-
if (this.breadcrumb || !this.autoBreadcrumb || this.menus.length <= 0) {
|
|
102
|
-
this.paths
|
|
101
|
+
if (this.breadcrumb() || !this.autoBreadcrumb() || this.menus.length <= 0) {
|
|
102
|
+
this.paths.set([]);
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
const paths = [];
|
|
@@ -112,57 +112,205 @@ class PageHeaderComponent {
|
|
|
112
112
|
paths.push({ title, link: (item.link && [item.link]) });
|
|
113
113
|
});
|
|
114
114
|
// add home
|
|
115
|
-
|
|
115
|
+
const home = this.home();
|
|
116
|
+
if (home) {
|
|
117
|
+
const homeI18n = this.homeI18n();
|
|
116
118
|
paths.splice(0, 0, {
|
|
117
|
-
title: (
|
|
118
|
-
link: [this.homeLink]
|
|
119
|
+
title: (homeI18n && this.i18nSrv.fanyi(homeI18n)) ?? home,
|
|
120
|
+
link: [this.homeLink()]
|
|
119
121
|
});
|
|
120
122
|
}
|
|
121
|
-
this.paths
|
|
122
|
-
}
|
|
123
|
-
setTitle() {
|
|
124
|
-
if (this._title == null && this._titleTpl == null && this.autoTitle && this.menus.length > 0) {
|
|
125
|
-
const item = this.menus[this.menus.length - 1];
|
|
126
|
-
let title = item.text;
|
|
127
|
-
if (item.i18n) {
|
|
128
|
-
title = this.i18nSrv.fanyi(item.i18n);
|
|
129
|
-
}
|
|
130
|
-
this._titleVal = title;
|
|
131
|
-
}
|
|
132
|
-
if (this._titleVal && this.syncTitle) {
|
|
133
|
-
this.titleSrv.setTitle(this._titleVal);
|
|
134
|
-
if (!this.inited && this.reuseSrv) {
|
|
135
|
-
this.reuseSrv.title = this._titleVal;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return this;
|
|
123
|
+
this.paths.set(paths);
|
|
139
124
|
}
|
|
140
125
|
checkContent() {
|
|
141
|
-
|
|
142
|
-
|
|
126
|
+
const el = this.conTpl().nativeElement;
|
|
127
|
+
if (isEmpty(el)) {
|
|
128
|
+
this.renderer.setAttribute(el, 'hidden', '');
|
|
143
129
|
}
|
|
144
130
|
else {
|
|
145
|
-
this.renderer.removeAttribute(
|
|
131
|
+
this.renderer.removeAttribute(el, 'hidden');
|
|
146
132
|
}
|
|
147
133
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
134
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: PageHeaderComponent, isStandalone: true, selector: "page-header", inputs: { titleSub: { classPropertyName: "titleSub", publicName: "titleSub", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, wide: { classPropertyName: "wide", publicName: "wide", isSignal: true, isRequired: false, transformFunction: null }, home: { classPropertyName: "home", publicName: "home", isSignal: true, isRequired: false, transformFunction: null }, homeLink: { classPropertyName: "homeLink", publicName: "homeLink", isSignal: true, isRequired: false, transformFunction: null }, homeI18n: { classPropertyName: "homeI18n", publicName: "homeI18n", isSignal: true, isRequired: false, transformFunction: null }, autoBreadcrumb: { classPropertyName: "autoBreadcrumb", publicName: "autoBreadcrumb", isSignal: true, isRequired: false, transformFunction: null }, autoTitle: { classPropertyName: "autoTitle", publicName: "autoTitle", isSignal: true, isRequired: false, transformFunction: null }, syncTitle: { classPropertyName: "syncTitle", publicName: "syncTitle", isSignal: true, isRequired: false, transformFunction: null }, fixed: { classPropertyName: "fixed", publicName: "fixed", isSignal: true, isRequired: false, transformFunction: null }, fixedOffsetTop: { classPropertyName: "fixedOffsetTop", publicName: "fixedOffsetTop", isSignal: true, isRequired: false, transformFunction: null }, breadcrumb: { classPropertyName: "breadcrumb", publicName: "breadcrumb", isSignal: true, isRequired: false, transformFunction: null }, recursiveBreadcrumb: { classPropertyName: "recursiveBreadcrumb", publicName: "recursiveBreadcrumb", isSignal: true, isRequired: false, transformFunction: null }, logo: { classPropertyName: "logo", publicName: "logo", isSignal: true, isRequired: false, transformFunction: null }, action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, extra: { classPropertyName: "extra", publicName: "extra", isSignal: true, isRequired: false, transformFunction: null }, tab: { classPropertyName: "tab", publicName: "tab", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "conTpl", first: true, predicate: ["conTpl"], descendants: true, isSignal: true }, { propertyName: "affix", first: true, predicate: NzAffixComponent, descendants: true, isSignal: true }], exportAs: ["pageHeader"], ngImport: i0, template: `
|
|
136
|
+
@if (isBrowser && fixed()) {
|
|
137
|
+
<nz-affix #affix [nzOffsetTop]="fixedOffsetTop()">
|
|
138
|
+
<ng-template [ngTemplateOutlet]="phTpl" />
|
|
139
|
+
</nz-affix>
|
|
140
|
+
} @else {
|
|
141
|
+
<ng-template [ngTemplateOutlet]="phTpl" />
|
|
151
142
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
143
|
+
<ng-template #phTpl>
|
|
144
|
+
<div class="page-header" [class.page-header-rtl]="dir() === 'rtl'">
|
|
145
|
+
<div [class.page-header__wide]="wide()">
|
|
146
|
+
<nz-skeleton
|
|
147
|
+
[nzLoading]="loading()"
|
|
148
|
+
[nzTitle]="false"
|
|
149
|
+
[nzActive]="true"
|
|
150
|
+
[nzParagraph]="{ rows: 3 }"
|
|
151
|
+
[nzAvatar]="{ size: 'large', shape: 'circle' }"
|
|
152
|
+
class="d-block"
|
|
153
|
+
>
|
|
154
|
+
@if (breadcrumb()) {
|
|
155
|
+
<ng-template [ngTemplateOutlet]="breadcrumb()" />
|
|
156
|
+
} @else {
|
|
157
|
+
@let list = paths();
|
|
158
|
+
@if (list && list.length > 0) {
|
|
159
|
+
<nz-breadcrumb>
|
|
160
|
+
@for (i of list; track $index) {
|
|
161
|
+
<nz-breadcrumb-item>
|
|
162
|
+
@if (i.link) {
|
|
163
|
+
<a [routerLink]="i.link">{{ i.title }}</a>
|
|
164
|
+
} @else {
|
|
165
|
+
{{ i.title }}
|
|
166
|
+
}
|
|
167
|
+
</nz-breadcrumb-item>
|
|
168
|
+
}
|
|
169
|
+
</nz-breadcrumb>
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
<div class="page-header__detail">
|
|
173
|
+
@if (logo()) {
|
|
174
|
+
<div class="page-header__logo">
|
|
175
|
+
<ng-template [ngTemplateOutlet]="logo()" />
|
|
176
|
+
</div>
|
|
177
|
+
}
|
|
178
|
+
<div class="page-header__main">
|
|
179
|
+
<div class="page-header__row">
|
|
180
|
+
@if (title() || titleText()) {
|
|
181
|
+
<h1 class="page-header__title">
|
|
182
|
+
@if (titleIsTpl()) {
|
|
183
|
+
<ng-template [ngTemplateOutlet]="$any(title())" />
|
|
184
|
+
} @else {
|
|
185
|
+
{{ titleText() }}
|
|
186
|
+
@let sub = titleSub();
|
|
187
|
+
@if (sub) {
|
|
188
|
+
<small>
|
|
189
|
+
<ng-container *nzStringTemplateOutlet="sub">{{ sub }}</ng-container>
|
|
190
|
+
</small>
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
</h1>
|
|
194
|
+
}
|
|
195
|
+
@if (action()) {
|
|
196
|
+
<div class="page-header__action">
|
|
197
|
+
<ng-template [ngTemplateOutlet]="action()" />
|
|
198
|
+
</div>
|
|
199
|
+
}
|
|
200
|
+
</div>
|
|
201
|
+
<div class="page-header__row">
|
|
202
|
+
<div class="page-header__desc" (cdkObserveContent)="checkContent()" #conTpl>
|
|
203
|
+
<ng-content />
|
|
204
|
+
<ng-template [ngTemplateOutlet]="content()" />
|
|
205
|
+
</div>
|
|
206
|
+
@if (extra()) {
|
|
207
|
+
<div class="page-header__extra">
|
|
208
|
+
<ng-template [ngTemplateOutlet]="extra()" />
|
|
209
|
+
</div>
|
|
210
|
+
}
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<ng-template [ngTemplateOutlet]="tab()" />
|
|
215
|
+
</nz-skeleton>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
</ng-template>
|
|
219
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NzAffixComponent, selector: "nz-affix", inputs: ["nzTarget", "nzOffsetTop", "nzOffsetBottom"], outputs: ["nzChange"], exportAs: ["nzAffix"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }, { kind: "component", type: NzBreadCrumbComponent, selector: "nz-breadcrumb", inputs: ["nzAutoGenerate", "nzSeparator", "nzRouteLabel", "nzRouteLabelFn", "nzRouteFn"], exportAs: ["nzBreadcrumb"] }, { kind: "component", type: NzBreadCrumbItemComponent, selector: "nz-breadcrumb-item", inputs: ["nzOverlay"], exportAs: ["nzBreadcrumbItem"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { kind: "directive", type: CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
162
220
|
}
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderComponent, decorators: [{
|
|
164
222
|
type: Component,
|
|
165
|
-
args: [{
|
|
223
|
+
args: [{
|
|
224
|
+
selector: 'page-header',
|
|
225
|
+
exportAs: 'pageHeader',
|
|
226
|
+
template: `
|
|
227
|
+
@if (isBrowser && fixed()) {
|
|
228
|
+
<nz-affix #affix [nzOffsetTop]="fixedOffsetTop()">
|
|
229
|
+
<ng-template [ngTemplateOutlet]="phTpl" />
|
|
230
|
+
</nz-affix>
|
|
231
|
+
} @else {
|
|
232
|
+
<ng-template [ngTemplateOutlet]="phTpl" />
|
|
233
|
+
}
|
|
234
|
+
<ng-template #phTpl>
|
|
235
|
+
<div class="page-header" [class.page-header-rtl]="dir() === 'rtl'">
|
|
236
|
+
<div [class.page-header__wide]="wide()">
|
|
237
|
+
<nz-skeleton
|
|
238
|
+
[nzLoading]="loading()"
|
|
239
|
+
[nzTitle]="false"
|
|
240
|
+
[nzActive]="true"
|
|
241
|
+
[nzParagraph]="{ rows: 3 }"
|
|
242
|
+
[nzAvatar]="{ size: 'large', shape: 'circle' }"
|
|
243
|
+
class="d-block"
|
|
244
|
+
>
|
|
245
|
+
@if (breadcrumb()) {
|
|
246
|
+
<ng-template [ngTemplateOutlet]="breadcrumb()" />
|
|
247
|
+
} @else {
|
|
248
|
+
@let list = paths();
|
|
249
|
+
@if (list && list.length > 0) {
|
|
250
|
+
<nz-breadcrumb>
|
|
251
|
+
@for (i of list; track $index) {
|
|
252
|
+
<nz-breadcrumb-item>
|
|
253
|
+
@if (i.link) {
|
|
254
|
+
<a [routerLink]="i.link">{{ i.title }}</a>
|
|
255
|
+
} @else {
|
|
256
|
+
{{ i.title }}
|
|
257
|
+
}
|
|
258
|
+
</nz-breadcrumb-item>
|
|
259
|
+
}
|
|
260
|
+
</nz-breadcrumb>
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
<div class="page-header__detail">
|
|
264
|
+
@if (logo()) {
|
|
265
|
+
<div class="page-header__logo">
|
|
266
|
+
<ng-template [ngTemplateOutlet]="logo()" />
|
|
267
|
+
</div>
|
|
268
|
+
}
|
|
269
|
+
<div class="page-header__main">
|
|
270
|
+
<div class="page-header__row">
|
|
271
|
+
@if (title() || titleText()) {
|
|
272
|
+
<h1 class="page-header__title">
|
|
273
|
+
@if (titleIsTpl()) {
|
|
274
|
+
<ng-template [ngTemplateOutlet]="$any(title())" />
|
|
275
|
+
} @else {
|
|
276
|
+
{{ titleText() }}
|
|
277
|
+
@let sub = titleSub();
|
|
278
|
+
@if (sub) {
|
|
279
|
+
<small>
|
|
280
|
+
<ng-container *nzStringTemplateOutlet="sub">{{ sub }}</ng-container>
|
|
281
|
+
</small>
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
</h1>
|
|
285
|
+
}
|
|
286
|
+
@if (action()) {
|
|
287
|
+
<div class="page-header__action">
|
|
288
|
+
<ng-template [ngTemplateOutlet]="action()" />
|
|
289
|
+
</div>
|
|
290
|
+
}
|
|
291
|
+
</div>
|
|
292
|
+
<div class="page-header__row">
|
|
293
|
+
<div class="page-header__desc" (cdkObserveContent)="checkContent()" #conTpl>
|
|
294
|
+
<ng-content />
|
|
295
|
+
<ng-template [ngTemplateOutlet]="content()" />
|
|
296
|
+
</div>
|
|
297
|
+
@if (extra()) {
|
|
298
|
+
<div class="page-header__extra">
|
|
299
|
+
<ng-template [ngTemplateOutlet]="extra()" />
|
|
300
|
+
</div>
|
|
301
|
+
}
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
<ng-template [ngTemplateOutlet]="tab()" />
|
|
306
|
+
</nz-skeleton>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
</ng-template>
|
|
310
|
+
`,
|
|
311
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
312
|
+
encapsulation: ViewEncapsulation.None,
|
|
313
|
+
imports: [
|
|
166
314
|
NzAffixComponent,
|
|
167
315
|
NgTemplateOutlet,
|
|
168
316
|
NzSkeletonComponent,
|
|
@@ -171,72 +319,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
|
171
319
|
RouterLink,
|
|
172
320
|
NzStringTemplateOutletDirective,
|
|
173
321
|
CdkObserveContent
|
|
174
|
-
]
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
args: ['conTpl', { static: false }]
|
|
178
|
-
}], affix: [{
|
|
179
|
-
type: ViewChild,
|
|
180
|
-
args: ['affix', { static: false }]
|
|
181
|
-
}], title: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], titleSub: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], loading: [{
|
|
186
|
-
type: Input,
|
|
187
|
-
args: [{ transform: booleanAttribute }]
|
|
188
|
-
}], wide: [{
|
|
189
|
-
type: Input,
|
|
190
|
-
args: [{ transform: booleanAttribute }]
|
|
191
|
-
}], home: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], homeLink: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], homeI18n: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], autoBreadcrumb: [{
|
|
198
|
-
type: Input,
|
|
199
|
-
args: [{ transform: booleanAttribute }]
|
|
200
|
-
}], autoTitle: [{
|
|
201
|
-
type: Input,
|
|
202
|
-
args: [{ transform: booleanAttribute }]
|
|
203
|
-
}], syncTitle: [{
|
|
204
|
-
type: Input,
|
|
205
|
-
args: [{ transform: booleanAttribute }]
|
|
206
|
-
}], fixed: [{
|
|
207
|
-
type: Input,
|
|
208
|
-
args: [{ transform: booleanAttribute }]
|
|
209
|
-
}], fixedOffsetTop: [{
|
|
210
|
-
type: Input,
|
|
211
|
-
args: [{ transform: numberAttribute }]
|
|
212
|
-
}], breadcrumb: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], recursiveBreadcrumb: [{
|
|
215
|
-
type: Input,
|
|
216
|
-
args: [{ transform: booleanAttribute }]
|
|
217
|
-
}], logo: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], action: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], content: [{
|
|
222
|
-
type: Input
|
|
223
|
-
}], extra: [{
|
|
224
|
-
type: Input
|
|
225
|
-
}], tab: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}] } });
|
|
322
|
+
]
|
|
323
|
+
}]
|
|
324
|
+
}], ctorParameters: () => [], propDecorators: { conTpl: [{ type: i0.ViewChild, args: ['conTpl', { isSignal: true }] }], affix: [{ type: i0.ViewChild, args: [i0.forwardRef(() => NzAffixComponent), { isSignal: true }] }], titleSub: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleSub", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], wide: [{ type: i0.Input, args: [{ isSignal: true, alias: "wide", required: false }] }], home: [{ type: i0.Input, args: [{ isSignal: true, alias: "home", required: false }] }], homeLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "homeLink", required: false }] }], homeI18n: [{ type: i0.Input, args: [{ isSignal: true, alias: "homeI18n", required: false }] }], autoBreadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoBreadcrumb", required: false }] }], autoTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoTitle", required: false }] }], syncTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "syncTitle", required: false }] }], fixed: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixed", required: false }] }], fixedOffsetTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedOffsetTop", required: false }] }], breadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "breadcrumb", required: false }] }], recursiveBreadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "recursiveBreadcrumb", required: false }] }], logo: [{ type: i0.Input, args: [{ isSignal: true, alias: "logo", required: false }] }], action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: false }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], extra: [{ type: i0.Input, args: [{ isSignal: true, alias: "extra", required: false }] }], tab: [{ type: i0.Input, args: [{ isSignal: true, alias: "tab", required: false }] }] } });
|
|
228
325
|
|
|
229
326
|
const COMPONENTS = [PageHeaderComponent];
|
|
230
327
|
class PageHeaderModule {
|
|
231
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
232
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
328
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
329
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderModule, imports: [CommonModule,
|
|
233
330
|
RouterModule,
|
|
234
331
|
ObserversModule,
|
|
235
332
|
NzAffixModule,
|
|
236
333
|
NzSkeletonModule,
|
|
237
334
|
NzBreadCrumbModule,
|
|
238
335
|
NzOutletModule, PageHeaderComponent], exports: [PageHeaderComponent] });
|
|
239
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
336
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderModule, imports: [CommonModule,
|
|
240
337
|
RouterModule,
|
|
241
338
|
ObserversModule,
|
|
242
339
|
NzAffixModule,
|
|
@@ -244,7 +341,7 @@ class PageHeaderModule {
|
|
|
244
341
|
NzBreadCrumbModule,
|
|
245
342
|
NzOutletModule, COMPONENTS] });
|
|
246
343
|
}
|
|
247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PageHeaderModule, decorators: [{
|
|
248
345
|
type: NgModule,
|
|
249
346
|
args: [{
|
|
250
347
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header.mjs","sources":["../../../../packages/abc/page-header/page-header.component.ts","../../../../packages/abc/page-header/page-header.component.html","../../../../packages/abc/page-header/page-header.module.ts","../../../../packages/abc/page-header/page-header.ts"],"sourcesContent":["import { Directionality } from '@angular/cdk/bidi';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { Platform } from '@angular/cdk/platform';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\nimport { merge, filter, Observable } from 'rxjs';\n\nimport { ReuseTabService } from '@delon/abc/reuse-tab';\nimport { ALAIN_I18N_TOKEN, Menu, MenuService, SettingsService, TitleService } from '@delon/theme';\nimport { isEmpty } from '@delon/util/browser';\nimport { AlainConfigService } from '@delon/util/config';\nimport { NzAffixComponent } from 'ng-zorro-antd/affix';\nimport { NzBreadCrumbComponent, NzBreadCrumbItemComponent } from 'ng-zorro-antd/breadcrumb';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzSkeletonComponent } from 'ng-zorro-antd/skeleton';\n\ninterface PageHeaderPath {\n title?: string;\n link?: string[];\n}\n\n@Component({\n selector: 'page-header',\n exportAs: 'pageHeader',\n templateUrl: './page-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NzAffixComponent,\n NgTemplateOutlet,\n NzSkeletonComponent,\n NzBreadCrumbComponent,\n NzBreadCrumbItemComponent,\n RouterLink,\n NzStringTemplateOutletDirective,\n CdkObserveContent\n ]\n})\nexport class PageHeaderComponent implements OnInit, OnChanges, AfterViewInit {\n private readonly renderer = inject(Renderer2);\n private readonly router = inject(Router);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly menuSrv = inject(MenuService);\n private readonly i18nSrv = inject(ALAIN_I18N_TOKEN);\n private readonly titleSrv = inject(TitleService);\n private readonly reuseSrv = inject(ReuseTabService, { optional: true });\n private readonly settings = inject(SettingsService);\n private readonly platform = inject(Platform);\n private readonly cogSrv = inject(AlainConfigService);\n\n @ViewChild('conTpl', { static: false }) private conTpl!: ElementRef;\n @ViewChild('affix', { static: false }) private affix!: NzAffixComponent;\n inited = false;\n isBrowser = true;\n dir = inject(Directionality).valueSignal;\n\n private get menus(): Menu[] {\n return this.menuSrv.getPathByUrl(this.router.url, this.recursiveBreadcrumb);\n }\n\n _titleVal: string | null = '';\n paths: PageHeaderPath[] = [];\n\n // #region fields\n\n _title: string | null = null;\n _titleTpl: TemplateRef<NzSafeAny> | null = null;\n @Input()\n set title(value: string | TemplateRef<void> | null) {\n if (value instanceof TemplateRef) {\n this._title = null;\n this._titleTpl = value;\n this._titleVal = '';\n } else {\n this._title = value;\n this._titleVal = this._title;\n }\n }\n @Input() titleSub?: string | TemplateRef<void> | null;\n\n @Input({ transform: booleanAttribute }) loading = false;\n @Input({ transform: booleanAttribute }) wide = false;\n @Input() home?: string;\n @Input() homeLink?: string;\n @Input() homeI18n?: string;\n @Input({ transform: booleanAttribute }) autoBreadcrumb!: boolean;\n @Input({ transform: booleanAttribute }) autoTitle!: boolean;\n @Input({ transform: booleanAttribute }) syncTitle!: boolean;\n @Input({ transform: booleanAttribute }) fixed!: boolean;\n @Input({ transform: numberAttribute }) fixedOffsetTop!: number;\n @Input() breadcrumb?: TemplateRef<NzSafeAny> | null = null;\n @Input({ transform: booleanAttribute }) recursiveBreadcrumb!: boolean;\n @Input() logo?: TemplateRef<void> | null = null;\n @Input() action?: TemplateRef<void> | null = null;\n @Input() content?: TemplateRef<void> | null = null;\n @Input() extra?: TemplateRef<void> | null = null;\n @Input() tab?: TemplateRef<void> | null = null;\n\n // #endregion\n\n constructor() {\n this.isBrowser = this.platform.isBrowser;\n this.cogSrv.attach(this, 'pageHeader', {\n home: '首页',\n homeLink: '/',\n autoBreadcrumb: true,\n recursiveBreadcrumb: false,\n autoTitle: true,\n syncTitle: true,\n fixed: false,\n fixedOffsetTop: 64\n });\n this.settings.notify\n .pipe(\n takeUntilDestroyed(),\n filter(w => this.affix && w.type === 'layout' && w.name === 'collapsed')\n )\n .subscribe(() => this.affix.updatePosition({} as NzSafeAny));\n\n const obsList: Array<Observable<NzSafeAny>> = [this.router.events.pipe(filter(ev => ev instanceof NavigationEnd))];\n if (this.menuSrv != null) obsList.push(this.menuSrv.change);\n obsList.push(this.i18nSrv.change);\n merge(...obsList)\n .pipe(\n takeUntilDestroyed(),\n filter(() => this.inited)\n )\n .subscribe(() => this.refresh());\n }\n\n refresh(): void {\n this.setTitle().genBreadcrumb();\n this.cdr.detectChanges();\n }\n\n private genBreadcrumb(): void {\n if (this.breadcrumb || !this.autoBreadcrumb || this.menus.length <= 0) {\n this.paths = [];\n return;\n }\n const paths: PageHeaderPath[] = [];\n this.menus.forEach(item => {\n if (typeof item.hideInBreadcrumb !== 'undefined' && item.hideInBreadcrumb) return;\n let title = item.text;\n if (item.i18n) title = this.i18nSrv.fanyi(item.i18n);\n paths.push({ title, link: (item.link && [item.link]) as string[] });\n });\n // add home\n if (this.home) {\n paths.splice(0, 0, {\n title: (this.homeI18n && this.i18nSrv.fanyi(this.homeI18n)) || this.home,\n link: [this.homeLink!]\n });\n }\n this.paths = paths;\n }\n\n private setTitle(): this {\n if (this._title == null && this._titleTpl == null && this.autoTitle && this.menus.length > 0) {\n const item = this.menus[this.menus.length - 1];\n let title = item.text;\n if (item.i18n) {\n title = this.i18nSrv.fanyi(item.i18n);\n }\n this._titleVal = title!;\n }\n\n if (this._titleVal && this.syncTitle) {\n this.titleSrv.setTitle(this._titleVal);\n if (!this.inited && this.reuseSrv) {\n this.reuseSrv.title = this._titleVal;\n }\n }\n\n return this;\n }\n\n checkContent(): void {\n if (isEmpty(this.conTpl.nativeElement)) {\n this.renderer.setAttribute(this.conTpl.nativeElement, 'hidden', '');\n } else {\n this.renderer.removeAttribute(this.conTpl.nativeElement, 'hidden');\n }\n }\n\n ngOnInit(): void {\n this.refresh();\n this.inited = true;\n }\n\n ngAfterViewInit(): void {\n this.checkContent();\n }\n\n ngOnChanges(): void {\n if (this.inited) {\n this.refresh();\n }\n }\n}\n","@if (isBrowser && fixed) {\n <nz-affix #affix [nzOffsetTop]=\"fixedOffsetTop\">\n <ng-template [ngTemplateOutlet]=\"phTpl\" />\n </nz-affix>\n} @else {\n <ng-template [ngTemplateOutlet]=\"phTpl\" />\n}\n<ng-template #phTpl>\n <div class=\"page-header\" [class.page-header-rtl]=\"dir() === 'rtl'\">\n <div [class.page-header__wide]=\"wide\">\n <nz-skeleton\n [nzLoading]=\"loading\"\n [nzTitle]=\"false\"\n [nzActive]=\"true\"\n [nzParagraph]=\"{ rows: 3 }\"\n [nzAvatar]=\"{ size: 'large', shape: 'circle' }\"\n class=\"d-block\"\n >\n @if (breadcrumb) {\n <ng-template [ngTemplateOutlet]=\"breadcrumb\" />\n } @else {\n @if (paths && paths.length > 0) {\n <nz-breadcrumb>\n @for (i of paths; track $index) {\n <nz-breadcrumb-item>\n @if (i.link) {\n <a [routerLink]=\"i.link\">{{ i.title }}</a>\n } @else {\n {{ i.title }}\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n }\n }\n <div class=\"page-header__detail\">\n @if (logo) {\n <div class=\"page-header__logo\">\n <ng-template [ngTemplateOutlet]=\"logo\" />\n </div>\n }\n <div class=\"page-header__main\">\n <div class=\"page-header__row\">\n @if (_titleVal || _titleTpl) {\n <h1 class=\"page-header__title\">\n @if (_titleTpl) {\n <ng-template [ngTemplateOutlet]=\"_titleTpl\" />\n } @else {\n {{ _titleVal }}\n @if (titleSub) {\n <small>\n <ng-container *nzStringTemplateOutlet=\"titleSub\">{{ titleSub }}</ng-container>\n </small>\n }\n }\n </h1>\n }\n @if (action) {\n <div class=\"page-header__action\">\n <ng-template [ngTemplateOutlet]=\"action\" />\n </div>\n }\n </div>\n <div class=\"page-header__row\">\n <div class=\"page-header__desc\" (cdkObserveContent)=\"checkContent()\" #conTpl>\n <ng-content />\n <ng-template [ngTemplateOutlet]=\"content!\" />\n </div>\n @if (extra) {\n <div class=\"page-header__extra\">\n <ng-template [ngTemplateOutlet]=\"extra\" />\n </div>\n }\n </div>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"tab!\" />\n </nz-skeleton>\n </div>\n </div>\n</ng-template>\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { PageHeaderComponent } from './page-header.component';\n\nconst COMPONENTS = [PageHeaderComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n ObserversModule,\n NzAffixModule,\n NzSkeletonModule,\n NzBreadCrumbModule,\n NzOutletModule,\n ...COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class PageHeaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-header.mjs","sources":["../../../../packages/abc/page-header/page-header.component.ts","../../../../packages/abc/page-header/page-header.module.ts","../../../../packages/abc/page-header/page-header.ts"],"sourcesContent":["import { Directionality } from '@angular/cdk/bidi';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { Platform } from '@angular/cdk/platform';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Renderer2,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n numberAttribute,\n signal,\n viewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\nimport { merge, filter, Observable } from 'rxjs';\n\nimport { ReuseTabService } from '@delon/abc/reuse-tab';\nimport { ALAIN_I18N_TOKEN, DelonLocaleService, Menu, MenuService, SettingsService, TitleService } from '@delon/theme';\nimport { isEmpty } from '@delon/util/browser';\nimport { AlainConfigService } from '@delon/util/config';\nimport { NzAffixComponent } from 'ng-zorro-antd/affix';\nimport { NzBreadCrumbComponent, NzBreadCrumbItemComponent } from 'ng-zorro-antd/breadcrumb';\nimport { NzStringTemplateOutletDirective } from 'ng-zorro-antd/core/outlet';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzSkeletonComponent } from 'ng-zorro-antd/skeleton';\n\ninterface PageHeaderPath {\n title?: string;\n link?: string[];\n}\n\n@Component({\n selector: 'page-header',\n exportAs: 'pageHeader',\n template: `\n @if (isBrowser && fixed()) {\n <nz-affix #affix [nzOffsetTop]=\"fixedOffsetTop()\">\n <ng-template [ngTemplateOutlet]=\"phTpl\" />\n </nz-affix>\n } @else {\n <ng-template [ngTemplateOutlet]=\"phTpl\" />\n }\n <ng-template #phTpl>\n <div class=\"page-header\" [class.page-header-rtl]=\"dir() === 'rtl'\">\n <div [class.page-header__wide]=\"wide()\">\n <nz-skeleton\n [nzLoading]=\"loading()\"\n [nzTitle]=\"false\"\n [nzActive]=\"true\"\n [nzParagraph]=\"{ rows: 3 }\"\n [nzAvatar]=\"{ size: 'large', shape: 'circle' }\"\n class=\"d-block\"\n >\n @if (breadcrumb()) {\n <ng-template [ngTemplateOutlet]=\"breadcrumb()\" />\n } @else {\n @let list = paths();\n @if (list && list.length > 0) {\n <nz-breadcrumb>\n @for (i of list; track $index) {\n <nz-breadcrumb-item>\n @if (i.link) {\n <a [routerLink]=\"i.link\">{{ i.title }}</a>\n } @else {\n {{ i.title }}\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n }\n }\n <div class=\"page-header__detail\">\n @if (logo()) {\n <div class=\"page-header__logo\">\n <ng-template [ngTemplateOutlet]=\"logo()\" />\n </div>\n }\n <div class=\"page-header__main\">\n <div class=\"page-header__row\">\n @if (title() || titleText()) {\n <h1 class=\"page-header__title\">\n @if (titleIsTpl()) {\n <ng-template [ngTemplateOutlet]=\"$any(title())\" />\n } @else {\n {{ titleText() }}\n @let sub = titleSub();\n @if (sub) {\n <small>\n <ng-container *nzStringTemplateOutlet=\"sub\">{{ sub }}</ng-container>\n </small>\n }\n }\n </h1>\n }\n @if (action()) {\n <div class=\"page-header__action\">\n <ng-template [ngTemplateOutlet]=\"action()\" />\n </div>\n }\n </div>\n <div class=\"page-header__row\">\n <div class=\"page-header__desc\" (cdkObserveContent)=\"checkContent()\" #conTpl>\n <ng-content />\n <ng-template [ngTemplateOutlet]=\"content()\" />\n </div>\n @if (extra()) {\n <div class=\"page-header__extra\">\n <ng-template [ngTemplateOutlet]=\"extra()\" />\n </div>\n }\n </div>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"tab()\" />\n </nz-skeleton>\n </div>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NzAffixComponent,\n NgTemplateOutlet,\n NzSkeletonComponent,\n NzBreadCrumbComponent,\n NzBreadCrumbItemComponent,\n RouterLink,\n NzStringTemplateOutletDirective,\n CdkObserveContent\n ]\n})\nexport class PageHeaderComponent {\n private readonly renderer = inject(Renderer2);\n private readonly router = inject(Router);\n private readonly menuSrv = inject(MenuService);\n private readonly i18nSrv = inject(ALAIN_I18N_TOKEN);\n private readonly titleSrv = inject(TitleService);\n private readonly reuseSrv = inject(ReuseTabService, { optional: true });\n private readonly settings = inject(SettingsService);\n private readonly cogSrv = inject(AlainConfigService);\n\n private readonly conTpl = viewChild.required<ElementRef<HTMLElement>>('conTpl');\n private readonly affix = viewChild(NzAffixComponent);\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly dir = inject(Directionality).valueSignal;\n\n private get menus(): Menu[] {\n return this.menuSrv.getPathByUrl(this.router.url, this.recursiveBreadcrumb());\n }\n\n protected paths = signal<PageHeaderPath[]>([]);\n protected titleIsTpl = computed(() => this.title() instanceof TemplateRef);\n protected titleText = signal<string | undefined | null>(null);\n readonly titleSub = input<string | TemplateRef<void> | null>();\n\n // #region fields\n\n readonly title = input<string | TemplateRef<void> | null>();\n readonly loading = input(false, { transform: booleanAttribute });\n readonly wide = input(false, { transform: booleanAttribute });\n readonly home = input<string>();\n readonly homeLink = input('/');\n readonly homeI18n = input<string>();\n readonly autoBreadcrumb = input(true, { transform: booleanAttribute });\n readonly autoTitle = input(true, { transform: booleanAttribute });\n readonly syncTitle = input(true, { transform: booleanAttribute });\n readonly fixed = input(false, { transform: booleanAttribute });\n readonly fixedOffsetTop = input(64, { transform: numberAttribute });\n readonly breadcrumb = input<TemplateRef<NzSafeAny> | null>(null);\n readonly recursiveBreadcrumb = input(false, { transform: booleanAttribute });\n readonly logo = input<TemplateRef<void> | null>(null);\n readonly action = input<TemplateRef<void> | null>(null);\n readonly content = input<TemplateRef<void> | null>(null);\n readonly extra = input<TemplateRef<void> | null>(null);\n readonly tab = input<TemplateRef<void> | null>(null);\n\n // #endregion\n\n private locale = inject(DelonLocaleService).getData('pageHeader');\n\n constructor() {\n this.cogSrv.attach(this, 'pageHeader', {\n home: this.locale.home\n });\n this.settings.notify\n .pipe(\n takeUntilDestroyed(),\n filter(w => this.affix() != null && w.type === 'layout' && w.name === 'collapsed')\n )\n .subscribe(() => this.affix()?.updatePosition({} as NzSafeAny));\n\n const obsList: Array<Observable<NzSafeAny>> = [this.router.events.pipe(filter(ev => ev instanceof NavigationEnd))];\n if (this.menuSrv != null) obsList.push(this.menuSrv.change);\n obsList.push(this.i18nSrv.change);\n merge(...obsList)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.refresh());\n\n effect(() => this.refresh());\n\n afterNextRender(() => this.checkContent());\n }\n\n refresh(): void {\n let title: string | undefined | null;\n if (this.title() == null && this.autoTitle() && this.menus.length > 0) {\n const item = this.menus[this.menus.length - 1];\n title = item.text;\n if (item.i18n) {\n title = this.i18nSrv.fanyi(item.i18n);\n }\n } else {\n title = this.titleIsTpl() ? '' : (this.title() as string);\n }\n this.titleText.set(title);\n // sync title to title & reuse service\n if (title && this.syncTitle()) {\n this.titleSrv.setTitle(title);\n if (this.reuseSrv) {\n this.reuseSrv.title = title;\n }\n }\n // build breadcrumb\n this.genBreadcrumb();\n }\n\n private genBreadcrumb(): void {\n if (this.breadcrumb() || !this.autoBreadcrumb() || this.menus.length <= 0) {\n this.paths.set([]);\n return;\n }\n const paths: PageHeaderPath[] = [];\n this.menus.forEach(item => {\n if (typeof item.hideInBreadcrumb !== 'undefined' && item.hideInBreadcrumb) return;\n let title = item.text;\n if (item.i18n) title = this.i18nSrv.fanyi(item.i18n);\n paths.push({ title, link: (item.link && [item.link]) as string[] });\n });\n // add home\n const home = this.home();\n if (home) {\n const homeI18n = this.homeI18n();\n paths.splice(0, 0, {\n title: (homeI18n && this.i18nSrv.fanyi(homeI18n)) ?? home,\n link: [this.homeLink()!]\n });\n }\n this.paths.set(paths);\n }\n\n protected checkContent(): void {\n const el = this.conTpl().nativeElement;\n if (isEmpty(el)) {\n this.renderer.setAttribute(el, 'hidden', '');\n } else {\n this.renderer.removeAttribute(el, 'hidden');\n }\n }\n}\n","import { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NzAffixModule } from 'ng-zorro-antd/affix';\nimport { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { PageHeaderComponent } from './page-header.component';\n\nconst COMPONENTS = [PageHeaderComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n ObserversModule,\n NzAffixModule,\n NzSkeletonModule,\n NzBreadCrumbModule,\n NzOutletModule,\n ...COMPONENTS\n ],\n exports: COMPONENTS\n})\nexport class PageHeaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|