@yelon/bis 17.2.0 → 17.2.2
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/config/index.d.ts +5 -0
- package/config/public_api.d.ts +1 -0
- package/esm2022/bis.mjs +2 -2
- package/esm2022/{layout → config}/bis.config.mjs +1 -1
- package/esm2022/config/config.mjs +5 -0
- package/esm2022/config/public_api.mjs +2 -0
- package/esm2022/layout/layout-basic.component.mjs +376 -0
- package/esm2022/layout/layout-nav-application.component.mjs +368 -0
- package/esm2022/layout/layout-nav-group.component.mjs +159 -0
- package/esm2022/layout/layout-nav-tile.component.mjs +15 -0
- package/esm2022/layout/layout.module.mjs +54 -0
- package/esm2022/layout/public_api.mjs +6 -14
- package/esm2022/public_api.mjs +9 -2
- package/esm2022/src/bis.module.mjs +17 -0
- package/esm2022/src/helper.mjs +45 -0
- package/esm2022/src/provide.mjs +8 -0
- package/esm2022/src/refresh-token.mjs +79 -0
- package/esm2022/src/startup.service.mjs +182 -0
- package/esm2022/src/yunzai-act.guard.mjs +88 -0
- package/esm2022/src/yunzai-analysis-addon.guard.mjs +99 -0
- package/esm2022/src/yunzai-default.interceptor.mjs +63 -0
- package/esm2022/yunzai-widgets/public_api.mjs +7 -0
- package/esm2022/yunzai-widgets/yunzai-clear-storage.component.mjs +47 -0
- package/esm2022/yunzai-widgets/yunzai-fullscreen.component.mjs +47 -0
- package/esm2022/yunzai-widgets/yunzai-i18n.component.mjs +139 -0
- package/esm2022/yunzai-widgets/yunzai-notify.component.mjs +179 -0
- package/esm2022/yunzai-widgets/yunzai-user.component.mjs +119 -0
- package/esm2022/yunzai-widgets/yunzai-widget.module.mjs +62 -0
- package/esm2022/yunzai-widgets/yunzai-widgets.mjs +5 -0
- package/fesm2022/bis.mjs +552 -1
- package/fesm2022/bis.mjs.map +1 -1
- package/fesm2022/config.mjs +21 -0
- package/fesm2022/config.mjs.map +1 -0
- package/fesm2022/layout.mjs +395 -2781
- package/fesm2022/layout.mjs.map +1 -1
- package/fesm2022/yunzai-widgets.mjs +561 -0
- package/fesm2022/yunzai-widgets.mjs.map +1 -0
- package/index.d.ts +4 -0
- package/layout/{layout-basic/layout-basic.component.d.ts → layout-basic.component.d.ts} +12 -8
- package/layout/layout-nav-application.component.d.ts +26 -0
- package/layout/layout-nav-group.component.d.ts +13 -0
- package/layout/layout-nav-tile.component.d.ts +5 -0
- package/layout/layout.module.d.ts +18 -0
- package/layout/public_api.d.ts +5 -13
- package/package.json +40 -11
- package/public_api.d.ts +8 -2
- package/src/bis.module.d.ts +8 -0
- package/src/helper.d.ts +16 -0
- package/src/provide.d.ts +2 -0
- package/src/refresh-token.d.ts +6 -0
- package/src/startup.service.d.ts +22 -0
- package/src/yunzai-default.interceptor.d.ts +2 -0
- package/yunzai-widgets/index.d.ts +5 -0
- package/{layout/widgets/index.d.ts → yunzai-widgets/public_api.d.ts} +2 -2
- package/yunzai-widgets/yunzai-clear-storage.component.d.ts +8 -0
- package/yunzai-widgets/yunzai-fullscreen.component.d.ts +8 -0
- package/yunzai-widgets/yunzai-i18n.component.d.ts +19 -0
- package/yunzai-widgets/yunzai-notify.component.d.ts +24 -0
- package/yunzai-widgets/yunzai-user.component.d.ts +21 -0
- package/yunzai-widgets/yunzai-widget.module.d.ts +18 -0
- package/README.md +0 -23
- package/esm2022/index.mjs +0 -2
- package/esm2022/layout/html-names.mjs +0 -33
- package/esm2022/layout/icon/style-icons.mjs +0 -796
- package/esm2022/layout/layout-basic/index.mjs +0 -3
- package/esm2022/layout/layout-basic/interface.mjs +0 -2
- package/esm2022/layout/layout-basic/layout-basic.component.mjs +0 -368
- package/esm2022/layout/layout-nav/index.mjs +0 -4
- package/esm2022/layout/layout-nav/layout-nav-application.component.mjs +0 -382
- package/esm2022/layout/layout-nav/layout-nav-group.component.mjs +0 -122
- package/esm2022/layout/layout-nav/layout-nav-tile.component.mjs +0 -15
- package/esm2022/layout/widgets/index.mjs +0 -7
- package/esm2022/layout/widgets/yunzai-clear-storage.component.mjs +0 -44
- package/esm2022/layout/widgets/yunzai-fullscreen.component.mjs +0 -44
- package/esm2022/layout/widgets/yunzai-i18n.component.mjs +0 -140
- package/esm2022/layout/widgets/yunzai-notify.component.mjs +0 -185
- package/esm2022/layout/widgets/yunzai-theme-btn.component.mjs +0 -200
- package/esm2022/layout/widgets/yunzai-user.component.mjs +0 -129
- package/esm2022/layout/yunzai-act.guard.mjs +0 -88
- package/esm2022/layout/yunzai-analysis-addon.guard.mjs +0 -100
- package/esm2022/layout/yunzai-auth.service.mjs +0 -108
- package/esm2022/layout/yunzai-default.interceptor.mjs +0 -201
- package/esm2022/layout/yunzai-i18n.service.mjs +0 -107
- package/esm2022/layout/yunzai-lang.mjs +0 -114
- package/esm2022/layout/yunzai-layout.module.mjs +0 -118
- package/esm2022/layout/yunzai-startup.service.mjs +0 -152
- package/layout/html-names.d.ts +0 -31
- package/layout/icon/style-icons.d.ts +0 -1
- package/layout/layout-basic/index.d.ts +0 -2
- package/layout/layout-basic/interface.d.ts +0 -8
- package/layout/layout-nav/index.d.ts +0 -3
- package/layout/layout-nav/layout-nav-application.component.d.ts +0 -32
- package/layout/layout-nav/layout-nav-group.component.d.ts +0 -16
- package/layout/layout-nav/layout-nav-tile.component.d.ts +0 -6
- package/layout/widgets/yunzai-clear-storage.component.d.ts +0 -11
- package/layout/widgets/yunzai-fullscreen.component.d.ts +0 -8
- package/layout/widgets/yunzai-i18n.component.d.ts +0 -22
- package/layout/widgets/yunzai-notify.component.d.ts +0 -30
- package/layout/widgets/yunzai-theme-btn.component.d.ts +0 -32
- package/layout/widgets/yunzai-user.component.d.ts +0 -26
- package/layout/yunzai-auth.service.d.ts +0 -19
- package/layout/yunzai-default.interceptor.d.ts +0 -28
- package/layout/yunzai-i18n.service.d.ts +0 -27
- package/layout/yunzai-lang.d.ts +0 -12
- package/layout/yunzai-layout.module.d.ts +0 -30
- package/layout/yunzai-startup.service.d.ts +0 -34
- /package/{layout → config}/bis.config.d.ts +0 -0
- /package/{layout → src}/yunzai-act.guard.d.ts +0 -0
- /package/{layout → src}/yunzai-analysis-addon.guard.d.ts +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Inject, inject, Injectable } from '@angular/core';
|
|
2
|
+
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
3
|
+
import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';
|
|
4
|
+
import { deepCopy, useLocalStorageUser, WINDOW } from '@yelon/util';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@yelon/util";
|
|
7
|
+
export class YunzaiAnalysisAddonGuardService {
|
|
8
|
+
constructor(configService, pathToRegexp, win, tokenService) {
|
|
9
|
+
this.configService = configService;
|
|
10
|
+
this.pathToRegexp = pathToRegexp;
|
|
11
|
+
this.win = win;
|
|
12
|
+
this.tokenService = tokenService;
|
|
13
|
+
this.bis = BUSINESS_DEFAULT_CONFIG;
|
|
14
|
+
this.menus = [];
|
|
15
|
+
this.links = [];
|
|
16
|
+
this.value = {};
|
|
17
|
+
this.bis = mergeBisConfig(this.configService);
|
|
18
|
+
const [, getUser] = useLocalStorageUser();
|
|
19
|
+
const user = getUser();
|
|
20
|
+
this.menus = deepCopy(user.menu || []).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
|
|
21
|
+
if (user) {
|
|
22
|
+
this.value = {
|
|
23
|
+
systemCode: this.bis.systemCode,
|
|
24
|
+
userid: user.id,
|
|
25
|
+
realname: user.realname,
|
|
26
|
+
usertype: user.userType,
|
|
27
|
+
usercode: user.userCode,
|
|
28
|
+
username: user.username,
|
|
29
|
+
account: user.username,
|
|
30
|
+
deptid: user.deptId,
|
|
31
|
+
deptname: user.deptName,
|
|
32
|
+
token: this.tokenService.get()?.access_token
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (this.menus && this.menus.length > 0) {
|
|
36
|
+
this.value['system'] = this.menus[0].text;
|
|
37
|
+
}
|
|
38
|
+
this.getAllLinks(this.menus, this.links);
|
|
39
|
+
}
|
|
40
|
+
process(url) {
|
|
41
|
+
let flag = false;
|
|
42
|
+
this.links.forEach(link => {
|
|
43
|
+
if (link.link === url.split('?')[0]) {
|
|
44
|
+
flag = true;
|
|
45
|
+
this.value['routename'] = link.title;
|
|
46
|
+
this.value['routeurl'] = link.link;
|
|
47
|
+
if (this.win['yunzai']) {
|
|
48
|
+
this.win['yunzai'].setExtra(this.value);
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const regexp = this.pathToRegexp.stringToRegexp(link, null, null);
|
|
53
|
+
if (regexp.test(url.split('?')[0])) {
|
|
54
|
+
flag = true;
|
|
55
|
+
this.value['routename'] = link.title;
|
|
56
|
+
this.value['routeurl'] = link.link;
|
|
57
|
+
if (this.win['yunzai']) {
|
|
58
|
+
this.win['yunzai'].setExtra(this.value);
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
if (!flag) {
|
|
64
|
+
this.value['routename'] = url;
|
|
65
|
+
this.value['routeurl'] = url;
|
|
66
|
+
if (this.win['yunzai']) {
|
|
67
|
+
this.win['yunzai'].setExtra(this.value);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
getAllLinks(menu, links) {
|
|
73
|
+
menu.forEach((sider) => {
|
|
74
|
+
if (sider.link) {
|
|
75
|
+
links.push({ title: sider.text ? sider.text : sider.link, link: sider.link });
|
|
76
|
+
}
|
|
77
|
+
if (sider.children && sider.children.length > 0) {
|
|
78
|
+
this.getAllLinks(sider.children, links);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiAnalysisAddonGuardService, deps: [{ token: i1.YunzaiConfigService }, { token: i1.PathToRegexpService }, { token: WINDOW }, { token: YA_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
83
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiAnalysisAddonGuardService, providedIn: 'root' }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiAnalysisAddonGuardService, decorators: [{
|
|
86
|
+
type: Injectable,
|
|
87
|
+
args: [{
|
|
88
|
+
providedIn: 'root'
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: () => [{ type: i1.YunzaiConfigService }, { type: i1.PathToRegexpService }, { type: undefined, decorators: [{
|
|
91
|
+
type: Inject,
|
|
92
|
+
args: [WINDOW]
|
|
93
|
+
}] }, { type: undefined, decorators: [{
|
|
94
|
+
type: Inject,
|
|
95
|
+
args: [YA_SERVICE_TOKEN]
|
|
96
|
+
}] }] });
|
|
97
|
+
export const analysisAddonCanActive = (_, state) => inject(YunzaiAnalysisAddonGuardService).process(state.url);
|
|
98
|
+
export const analysisAddonCanActiveChild = (_, state) => inject(YunzaiAnalysisAddonGuardService).process(state.url);
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWFuYWx5c2lzLWFkZG9uLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy95dW56YWktYW5hbHlzaXMtYWRkb24uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNELE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVFLE9BQU8sRUFDTCxRQUFRLEVBRVIsbUJBQW1CLEVBQ25CLE1BQU0sRUFJUCxNQUFNLGFBQWEsQ0FBQzs7O0FBTXJCLE1BQU0sT0FBTywrQkFBK0I7SUFNMUMsWUFDVSxhQUFrQyxFQUNsQyxZQUFpQyxFQUNqQixHQUFjLEVBQ0osWUFBMkI7UUFIckQsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQixRQUFHLEdBQUgsR0FBRyxDQUFXO1FBQ0osaUJBQVksR0FBWixZQUFZLENBQWU7UUFUdkQsUUFBRyxHQUF5Qix1QkFBdUIsQ0FBQztRQUNwRCxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUN4QixVQUFLLEdBQTJDLEVBQUUsQ0FBQztRQUNuRCxVQUFLLEdBQWMsRUFBRSxDQUFDO1FBUTVCLElBQUksQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFlLE9BQU8sRUFBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFFLElBQUksQ0FBQyxJQUFrQixJQUFJLEVBQUUsQ0FB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MEJBVUksTUFBTTsyQkFBQyxNQUFNOzswQkFDYixNQUFNOzJCQUFDLGdCQUFnQjs7QUF5RTVCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNoRSxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUF1QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUMxRSxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlQ2hpbGRGbiwgQ2FuQWN0aXZhdGVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IElUb2tlblNlcnZpY2UsIFlBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICdAeWVsb24vYXV0aCc7XG5pbXBvcnQgeyBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRywgbWVyZ2VCaXNDb25maWcgfSBmcm9tICdAeWVsb24vYmlzL2NvbmZpZyc7XG5pbXBvcnQgeyBNZW51IH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7XG4gIGRlZXBDb3B5LFxuICBQYXRoVG9SZWdleHBTZXJ2aWNlLFxuICB1c2VMb2NhbFN0b3JhZ2VVc2VyLFxuICBXSU5ET1csXG4gIFl1bnphaUJ1c2luZXNzQ29uZmlnLFxuICBZdW56YWlDb25maWdTZXJ2aWNlLFxuICBZdW56YWlVc2VyXG59IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUFuYWx5c2lzQWRkb25HdWFyZFNlcnZpY2Uge1xuICBwcml2YXRlIGJpczogWXVuemFpQnVzaW5lc3NDb25maWcgPSBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRztcbiAgcHJpdmF0ZSBtZW51czogTnpTYWZlQW55W10gPSBbXTtcbiAgcHJpdmF0ZSBsaW5rczogQXJyYXk8eyB0aXRsZTogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfT4gPSBbXTtcbiAgcHJpdmF0ZSB2YWx1ZTogTnpTYWZlQW55ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBZdW56YWlDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGF0aFRvUmVnZXhwOiBQYXRoVG9SZWdleHBTZXJ2aWNlLFxuICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHdpbjogTnpTYWZlQW55LFxuICAgIEBJbmplY3QoWUFfU0VSVklDRV9UT0tFTikgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IElUb2tlblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5iaXMgPSBtZXJnZUJpc0NvbmZpZyh0aGlzLmNvbmZpZ1NlcnZpY2UpO1xuICAgIGNvbnN0IFssIGdldFVzZXJdID0gdXNlTG9jYWxTdG9yYWdlVXNlcigpO1xuICAgIGNvbnN0IHVzZXI6IFl1bnphaVVzZXIgPSBnZXRVc2VyKCkhO1xuICAgIHRoaXMubWVudXMgPSBkZWVwQ29weSgodXNlci5tZW51IGFzIE56U2FmZUFueSkgfHwgW10pLmZpbHRlcihcbiAgICAgIChtOiBNZW51KSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmJpcy5zeXN0ZW1Db2RlXG4gICAgKSBhcyBNZW51W107XG4gICAgaWYgKHVzZXIpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICAgIHN5c3RlbUNvZGU6IHRoaXMuYmlzLnN5c3RlbUNvZGUsXG4gICAgICAgIHVzZXJpZDogdXNlci5pZCxcbiAgICAgICAgcmVhbG5hbWU6IHVzZXIucmVhbG5hbWUsXG4gICAgICAgIHVzZXJ0eXBlOiB1c2VyLnVzZXJUeXBlLFxuICAgICAgICB1c2VyY29kZTogdXNlci51c2VyQ29kZSxcbiAgICAgICAgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUsXG4gICAgICAgIGFjY291bnQ6IHVzZXIudXNlcm5hbWUsXG4gICAgICAgIGRlcHRpZDogdXNlci5kZXB0SWQsXG4gICAgICAgIGRlcHRuYW1lOiB1c2VyLmRlcHROYW1lLFxuICAgICAgICB0b2tlbjogdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk/LmFjY2Vzc190b2tlblxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWVudXMgJiYgdGhpcy5tZW51cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZhbHVlWydzeXN0ZW0nXSA9ICh0aGlzLm1lbnVzWzBdIGFzIE1lbnUpLnRleHQ7XG4gICAgfVxuICAgIHRoaXMuZ2V0QWxsTGlua3ModGhpcy5tZW51cywgdGhpcy5saW5rcyk7XG4gIH1cblxuICBwcm9jZXNzKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGZsYWcgPSBmYWxzZTtcbiAgICB0aGlzLmxpbmtzLmZvckVhY2gobGluayA9PiB7XG4gICAgICBpZiAobGluay5saW5rID09PSB1cmwuc3BsaXQoJz8nKVswXSkge1xuICAgICAgICBmbGFnID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWx1ZVsncm91dGVuYW1lJ10gPSBsaW5rLnRpdGxlO1xuICAgICAgICB0aGlzLnZhbHVlWydyb3V0ZXVybCddID0gbGluay5saW5rO1xuICAgICAgICBpZiAodGhpcy53aW5bJ3l1bnphaSddKSB7XG4gICAgICAgICAgdGhpcy53aW5bJ3l1bnphaSddLnNldEV4dHJhKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlZ2V4cDogUmVnRXhwID0gdGhpcy5wYXRoVG9SZWdleHAuc3RyaW5nVG9SZWdleHAobGluaywgbnVsbCwgbnVsbCk7XG4gICAgICBpZiAocmVnZXhwLnRlc3QodXJsLnNwbGl0KCc/JylbMF0pKSB7XG4gICAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgICB0aGlzLnZhbHVlWydyb3V0ZW5hbWUnXSA9IGxpbmsudGl0bGU7XG4gICAgICAgIHRoaXMudmFsdWVbJ3JvdXRldXJsJ10gPSBsaW5rLmxpbms7XG4gICAgICAgIGlmICh0aGlzLndpblsneXVuemFpJ10pIHtcbiAgICAgICAgICB0aGlzLndpblsneXVuemFpJ10uc2V0RXh0cmEodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghZmxhZykge1xuICAgICAgdGhpcy52YWx1ZVsncm91dGVuYW1lJ10gPSB1cmw7XG4gICAgICB0aGlzLnZhbHVlWydyb3V0ZXVybCddID0gdXJsO1xuICAgICAgaWYgKHRoaXMud2luWyd5dW56YWknXSkge1xuICAgICAgICB0aGlzLndpblsneXVuemFpJ10uc2V0RXh0cmEodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0QWxsTGlua3MobWVudTogTWVudVtdLCBsaW5rczogQXJyYXk8eyB0aXRsZTogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfT4pOiB2b2lkIHtcbiAgICBtZW51LmZvckVhY2goKHNpZGVyOiBNZW51KSA9PiB7XG4gICAgICBpZiAoc2lkZXIubGluaykge1xuICAgICAgICBsaW5rcy5wdXNoKHsgdGl0bGU6IHNpZGVyLnRleHQgPyBzaWRlci50ZXh0IDogc2lkZXIubGluaywgbGluazogc2lkZXIubGluayB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChzaWRlci5jaGlsZHJlbiAmJiBzaWRlci5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuZ2V0QWxsTGlua3Moc2lkZXIuY2hpbGRyZW4sIGxpbmtzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYW5hbHlzaXNBZGRvbkNhbkFjdGl2ZTogQ2FuQWN0aXZhdGVGbiA9IChfLCBzdGF0ZSkgPT5cbiAgaW5qZWN0KFl1bnphaUFuYWx5c2lzQWRkb25HdWFyZFNlcnZpY2UpLnByb2Nlc3Moc3RhdGUudXJsKTtcbmV4cG9ydCBjb25zdCBhbmFseXNpc0FkZG9uQ2FuQWN0aXZlQ2hpbGQ6IENhbkFjdGl2YXRlQ2hpbGRGbiA9IChfLCBzdGF0ZSkgPT5cbiAgaW5qZWN0KFl1bnphaUFuYWx5c2lzQWRkb25HdWFyZFNlcnZpY2UpLnByb2Nlc3Moc3RhdGUudXJsKTtcbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { HttpErrorResponse, HttpResponseBase } from '@angular/common/http';
|
|
2
|
+
import { Injector, inject } from '@angular/core';
|
|
3
|
+
import { of, throwError, mergeMap, catchError } from 'rxjs';
|
|
4
|
+
import { mergeBisConfig } from '@yelon/bis/config';
|
|
5
|
+
import { IGNORE_BASE_URL } from '@yelon/theme';
|
|
6
|
+
import { YUNZAI_CONFIG, YunzaiConfigService } from '@yelon/util';
|
|
7
|
+
import { checkStatus, getAdditionalHeaders, goTo, toLogin } from './helper';
|
|
8
|
+
import { tryRefreshToken } from './refresh-token';
|
|
9
|
+
function handleData(injector, ev, req, next) {
|
|
10
|
+
checkStatus(injector, ev);
|
|
11
|
+
const config = injector.get(YUNZAI_CONFIG).bis;
|
|
12
|
+
switch (ev.status) {
|
|
13
|
+
case 200:
|
|
14
|
+
return of(ev);
|
|
15
|
+
case 401:
|
|
16
|
+
if (config.refreshTokenEnabled && config.refreshTokenType === 're-request') {
|
|
17
|
+
const unAuthorizationReq = req.clone();
|
|
18
|
+
unAuthorizationReq.headers.delete('Authorization');
|
|
19
|
+
return tryRefreshToken(injector, ev, unAuthorizationReq, next);
|
|
20
|
+
}
|
|
21
|
+
toLogin(injector);
|
|
22
|
+
break;
|
|
23
|
+
case 403:
|
|
24
|
+
case 404:
|
|
25
|
+
case 500:
|
|
26
|
+
goTo(injector, `/exception/${ev.status}?url=${req.urlWithParams}`);
|
|
27
|
+
break;
|
|
28
|
+
default:
|
|
29
|
+
if (ev instanceof HttpErrorResponse) {
|
|
30
|
+
console.warn('未可知错误,大部分是由于后端不支持跨域CORS或无效配置引起,请参考 https://ng.yunzainfo.com/docs/server 解决跨域问题', ev);
|
|
31
|
+
}
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
if (ev instanceof HttpErrorResponse) {
|
|
35
|
+
return throwError(() => ev);
|
|
36
|
+
}
|
|
37
|
+
else if (ev._throw) {
|
|
38
|
+
return throwError(() => ev.body);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return of(ev);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const yunzaiDefaultInterceptor = (req, next) => {
|
|
45
|
+
const config = mergeBisConfig(inject(YunzaiConfigService));
|
|
46
|
+
const { baseUrl } = config;
|
|
47
|
+
let url = req.url;
|
|
48
|
+
if (!req.context.get(IGNORE_BASE_URL) && !url.startsWith('https://') && !url.startsWith('http://')) {
|
|
49
|
+
url = baseUrl + (baseUrl.endsWith('/') && url.startsWith('/') ? url.substring(1) : url);
|
|
50
|
+
}
|
|
51
|
+
if (url.includes('.json') && url.includes('assets')) {
|
|
52
|
+
url = req.url;
|
|
53
|
+
}
|
|
54
|
+
const newReq = req.clone({ url, setHeaders: getAdditionalHeaders(req.headers) });
|
|
55
|
+
const injector = inject(Injector);
|
|
56
|
+
return next(newReq).pipe(mergeMap(ev => {
|
|
57
|
+
if (ev instanceof HttpResponseBase) {
|
|
58
|
+
return handleData(injector, ev, newReq, next);
|
|
59
|
+
}
|
|
60
|
+
return of(ev);
|
|
61
|
+
}), catchError((err) => handleData(injector, err, newReq, next)));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWRlZmF1bHQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvc3JjL3l1bnphaS1kZWZhdWx0LmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFJakIsZ0JBQWdCLEVBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFvQixPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELFNBQVMsVUFBVSxDQUNqQixRQUFrQixFQUNsQixFQUFvQixFQUNwQixHQUEyQixFQUMzQixJQUFtQjtJQUVuQixXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBSSxDQUFDO0lBQ2hELFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLEtBQUssR0FBRztZQUNOLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hCLEtBQUssR0FBRztZQUNOLElBQUksTUFBTSxDQUFDLG1CQUFt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LElBQUksQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDaEYsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwSGFuZGxlckZuLFxuICBIdHRwSW50ZXJjZXB0b3JGbixcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBSZXNwb25zZUJhc2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IsIG1lcmdlTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnQHllbG9uL2Jpcy9jb25maWcnO1xuaW1wb3J0IHsgSUdOT1JFX0JBU0VfVVJMIH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7IFlVTlpBSV9DT05GSUcsIFl1bnphaUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAeWVsb24vdXRpbCc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBjaGVja1N0YXR1cywgZ2V0QWRkaXRpb25hbEhlYWRlcnMsIGdvVG8sIFJlVGhyb3dIdHRwRXJyb3IsIHRvTG9naW4gfSBmcm9tICcuL2hlbHBlcic7XG5pbXBvcnQgeyB0cnlSZWZyZXNoVG9rZW4gfSBmcm9tICcuL3JlZnJlc2gtdG9rZW4nO1xuXG5mdW5jdGlvbiBoYW5kbGVEYXRhKFxuICBpbmplY3RvcjogSW5qZWN0b3IsXG4gIGV2OiBIdHRwUmVzcG9uc2VCYXNlLFxuICByZXE6IEh0dHBSZXF1ZXN0PE56U2FmZUFueT4sXG4gIG5leHQ6IEh0dHBIYW5kbGVyRm5cbik6IE9ic2VydmFibGU8TnpTYWZlQW55PiB7XG4gIGNoZWNrU3RhdHVzKGluamVjdG9yLCBldik7XG4gIGNvbnN0IGNvbmZpZyA9IGluamVjdG9yLmdldChZVU5aQUlfQ09ORklHKS5iaXMhO1xuICBzd2l0Y2ggKGV2LnN0YXR1cykge1xuICAgIGNhc2UgMjAwOlxuICAgICAgcmV0dXJuIG9mKGV2KTtcbiAgICBjYXNlIDQwMTpcbiAgICAgIGlmIChjb25maWcucmVmcmVzaFRva2VuRW5hYmxlZCAmJiBjb25maWcucmVmcmVzaFRva2VuVHlwZSA9PT0gJ3JlLXJlcXVlc3QnKSB7XG4gICAgICAgIGNvbnN0IHVuQXV0aG9yaXphdGlvblJlcSA9IHJlcS5jbG9uZSgpO1xuICAgICAgICB1bkF1dGhvcml6YXRpb25SZXEuaGVhZGVycy5kZWxldGUoJ0F1dGhvcml6YXRpb24nKTtcbiAgICAgICAgcmV0dXJuIHRyeVJlZnJlc2hUb2tlbihpbmplY3RvciwgZXYsIHVuQXV0aG9yaXphdGlvblJlcSwgbmV4dCk7XG4gICAgICB9XG4gICAgICB0b0xvZ2luKGluamVjdG9yKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDAzOlxuICAgIGNhc2UgNDA0OlxuICAgIGNhc2UgNTAwOlxuICAgICAgZ29UbyhpbmplY3RvciwgYC9leGNlcHRpb24vJHtldi5zdGF0dXN9P3VybD0ke3JlcS51cmxXaXRoUGFyYW1zfWApO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmIChldiBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAn5pyq5Y+v55+l6ZSZ6K+v77yM5aSn6YOo5YiG5piv55Sx5LqO5ZCO56uv5LiN5pSv5oyB6Leo5Z+fQ09SU+aIluaXoOaViOmFjee9ruW8lei1t++8jOivt+WPguiAgyBodHRwczovL25nLnl1bnphaW5mby5jb20vZG9jcy9zZXJ2ZXIg6Kej5Yaz6Leo5Z+f6Zeu6aKYJyxcbiAgICAgICAgICBldlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbiAgaWYgKGV2IGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBldik7XG4gIH0gZWxzZSBpZiAoKGV2IGFzIHVua25vd24gYXMgUmVUaHJvd0h0dHBFcnJvcikuX3Rocm93KSB7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gKGV2IGFzIHVua25vd24gYXMgUmVUaHJvd0h0dHBFcnJvcikuYm9keSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG9mKGV2KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgeXVuemFpRGVmYXVsdEludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3JGbiA9IChyZXEsIG5leHQpID0+IHtcbiAgY29uc3QgY29uZmlnID0gbWVyZ2VCaXNDb25maWcoaW5qZWN0KFl1bnphaUNvbmZpZ1NlcnZpY2UpKTtcbiAgY29uc3QgeyBiYXNlVXJsIH0gPSBjb25maWc7XG4gIGxldCB1cmwgPSByZXEudXJsO1xuICBpZiAoIXJlcS5jb250ZXh0LmdldChJR05PUkVfQkFTRV9VUkwpICYmICF1cmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSAmJiAhdXJsLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSkge1xuICAgIHVybCA9IGJhc2VVcmwgKyAoYmFzZVVybCEuZW5kc1dpdGgoJy8nKSAmJiB1cmwuc3RhcnRzV2l0aCgnLycpID8gdXJsLnN1YnN0cmluZygxKSA6IHVybCk7XG4gIH1cbiAgaWYgKHVybC5pbmNsdWRlcygnLmpzb24nKSAmJiB1cmwuaW5jbHVkZXMoJ2Fzc2V0cycpKSB7XG4gICAgdXJsID0gcmVxLnVybDtcbiAgfVxuICBjb25zdCBuZXdSZXEgPSByZXEuY2xvbmUoeyB1cmwsIHNldEhlYWRlcnM6IGdldEFkZGl0aW9uYWxIZWFkZXJzKHJlcS5oZWFkZXJzKSB9KTtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZXR1cm4gbmV4dChuZXdSZXEpLnBpcGUoXG4gICAgbWVyZ2VNYXAoZXYgPT4ge1xuICAgICAgaWYgKGV2IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlQmFzZSkge1xuICAgICAgICByZXR1cm4gaGFuZGxlRGF0YShpbmplY3RvciwgZXYsIG5ld1JlcSwgbmV4dCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoZXYpO1xuICAgIH0pLFxuICAgIGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IGhhbmRsZURhdGEoaW5qZWN0b3IsIGVyciwgbmV3UmVxLCBuZXh0KSlcbiAgKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './yunzai-clear-storage.component';
|
|
2
|
+
export * from './yunzai-fullscreen.component';
|
|
3
|
+
export * from './yunzai-notify.component';
|
|
4
|
+
export * from './yunzai-i18n.component';
|
|
5
|
+
export * from './yunzai-user.component';
|
|
6
|
+
export * from './yunzai-widget.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy95dW56YWktd2lkZ2V0cy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi95dW56YWktY2xlYXItc3RvcmFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi95dW56YWktZnVsbHNjcmVlbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi95dW56YWktbm90aWZ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS1pMThuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS11c2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS13aWRnZXQubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';
|
|
2
|
+
import { I18nPipe } from '@yelon/theme';
|
|
3
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
|
+
import { NzMessageService } from 'ng-zorro-antd/message';
|
|
5
|
+
import { NzModalService } from 'ng-zorro-antd/modal';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ng-zorro-antd/icon";
|
|
8
|
+
export class YunzaiHeaderClearStorageComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.modalSrv = inject(NzModalService);
|
|
11
|
+
this.messageSrv = inject(NzMessageService);
|
|
12
|
+
}
|
|
13
|
+
_click() {
|
|
14
|
+
this.modalSrv.confirm({
|
|
15
|
+
nzTitle: 'Make sure clear all local storage?',
|
|
16
|
+
nzOnOk: () => {
|
|
17
|
+
localStorage.clear();
|
|
18
|
+
this.messageSrv.success('Clear Finished!');
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderClearStorageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: YunzaiHeaderClearStorageComponent, isStandalone: true, selector: "yunzai-header-clear-storage", host: { listeners: { "click": "_click()" }, properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
24
|
+
<i nz-icon nzType="tool"></i>
|
|
25
|
+
{{ 'menu.clear.local.storage' | i18n }}
|
|
26
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderClearStorageComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: 'yunzai-header-clear-storage',
|
|
32
|
+
template: `
|
|
33
|
+
<i nz-icon nzType="tool"></i>
|
|
34
|
+
{{ 'menu.clear.local.storage' | i18n }}
|
|
35
|
+
`,
|
|
36
|
+
host: {
|
|
37
|
+
'[class.flex-1]': 'true'
|
|
38
|
+
},
|
|
39
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40
|
+
standalone: true,
|
|
41
|
+
imports: [NzIconModule, I18nPipe]
|
|
42
|
+
}]
|
|
43
|
+
}], propDecorators: { _click: [{
|
|
44
|
+
type: HostListener,
|
|
45
|
+
args: ['click']
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWNsZWFyLXN0b3JhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3l1bnphaS13aWRnZXRzL3l1bnphaS1jbGVhci1zdG9yYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFlckQsTUFBTSxPQUFPLGlDQUFpQztJQWI5QztRQWNtQixhQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQVl4RDtJQVRDLE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNwQixPQUFPLEVBQUUsb0NBQW9DO1lBQzdDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ1gsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzdDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWJVLGlDQUFpQztrR0FBakMsaUNBQWlDLDZLQVhsQzs7O0dBR1QsMkRBTVMsWUFBWSw2TUFBRSxRQUFROzsyRkFFckIsaUNBQWlDO2tCQWI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFFBQVEsRUFBRTs7O0dBR1Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLE1BQU07cUJBQ3pCO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQztpQkFDbEM7OEJBTUMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbWVzc2FnZSc7XG5pbXBvcnQgeyBOek1vZGFsU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbW9kYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dW56YWktaGVhZGVyLWNsZWFyLXN0b3JhZ2UnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpIG56LWljb24gbnpUeXBlPVwidG9vbFwiPjwvaT5cbiAgICB7eyAnbWVudS5jbGVhci5sb2NhbC5zdG9yYWdlJyB8IGkxOG4gfX1cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZmxleC0xXSc6ICd0cnVlJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW056SWNvbk1vZHVsZSwgSTE4blBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUhlYWRlckNsZWFyU3RvcmFnZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTcnYgPSBpbmplY3QoTnpNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTcnYgPSBpbmplY3QoTnpNZXNzYWdlU2VydmljZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBfY2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFNydi5jb25maXJtKHtcbiAgICAgIG56VGl0bGU6ICdNYWtlIHN1cmUgY2xlYXIgYWxsIGxvY2FsIHN0b3JhZ2U/JyxcbiAgICAgIG56T25PazogKCkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU3J2LnN1Y2Nlc3MoJ0NsZWFyIEZpbmlzaGVkIScpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
|
|
2
|
+
import screenfull from 'screenfull';
|
|
3
|
+
import { I18nPipe } from '@yelon/theme';
|
|
4
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "ng-zorro-antd/icon";
|
|
7
|
+
export class YunzaiHeaderFullScreenComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.status = false;
|
|
10
|
+
}
|
|
11
|
+
_resize() {
|
|
12
|
+
this.status = screenfull.isFullscreen;
|
|
13
|
+
}
|
|
14
|
+
_click() {
|
|
15
|
+
if (screenfull.isEnabled) {
|
|
16
|
+
screenfull.toggle();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderFullScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: YunzaiHeaderFullScreenComponent, isStandalone: true, selector: "yunzai-header-fullscreen", host: { listeners: { "window:resize": "_resize()", "click": "_click()" }, properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
21
|
+
<i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
|
|
22
|
+
{{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
|
|
23
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderFullScreenComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{
|
|
28
|
+
selector: 'yunzai-header-fullscreen',
|
|
29
|
+
template: `
|
|
30
|
+
<i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
|
|
31
|
+
{{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
|
|
32
|
+
`,
|
|
33
|
+
host: {
|
|
34
|
+
'[class.flex-1]': 'true'
|
|
35
|
+
},
|
|
36
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
|
+
standalone: true,
|
|
38
|
+
imports: [NzIconModule, I18nPipe]
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { _resize: [{
|
|
41
|
+
type: HostListener,
|
|
42
|
+
args: ['window:resize']
|
|
43
|
+
}], _click: [{
|
|
44
|
+
type: HostListener,
|
|
45
|
+
args: ['click']
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWZ1bGxzY3JlZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3l1bnphaS13aWRnZXRzL3l1bnphaS1mdWxsc2NyZWVuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQWVsRCxNQUFNLE9BQU8sK0JBQStCO0lBYjVDO1FBY0UsV0FBTSxHQUFHLEtBQUssQ0FBQztLQWFoQjtJQVZDLE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUdELE1BQU07UUFDSixJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7OEdBYlUsK0JBQStCO2tHQUEvQiwrQkFBK0Isd01BWGhDOzs7R0FHVCwyREFNUyxZQUFZLDZNQUFFLFFBQVE7OzJGQUVyQiwrQkFBK0I7a0JBYjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7R0FHVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osZ0JBQWdCLEVBQUUsTUFBTTtxQkFDekI7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO2lCQUNsQzs4QkFLQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZUFBZTtnQkFNN0IsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHNjcmVlbmZ1bGwgZnJvbSAnc2NyZWVuZnVsbCc7XG5cbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1bnphaS1oZWFkZXItZnVsbHNjcmVlbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGkgbnotaWNvbiBbbnpUeXBlXT1cInN0YXR1cyA/ICdmdWxsc2NyZWVuLWV4aXQnIDogJ2Z1bGxzY3JlZW4nXCI+PC9pPlxuICAgIHt7IChzdGF0dXMgPyAnbWVudS5mdWxsc2NyZWVuLmV4aXQnIDogJ21lbnUuZnVsbHNjcmVlbicpIHwgaTE4biB9fVxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5mbGV4LTFdJzogJ3RydWUnXG4gIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTnpJY29uTW9kdWxlLCBJMThuUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgWXVuemFpSGVhZGVyRnVsbFNjcmVlbkNvbXBvbmVudCB7XG4gIHN0YXR1cyA9IGZhbHNlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBfcmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzID0gc2NyZWVuZnVsbC5pc0Z1bGxzY3JlZW47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIF9jbGljaygpOiB2b2lkIHtcbiAgICBpZiAoc2NyZWVuZnVsbC5pc0VuYWJsZWQpIHtcbiAgICAgIHNjcmVlbmZ1bGwudG9nZ2xlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import { I18nPipe, SettingsService, YUNZAI_I18N_TOKEN } from '@yelon/theme';
|
|
5
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
6
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ng-zorro-antd/menu";
|
|
9
|
+
import * as i2 from "ng-zorro-antd/dropdown";
|
|
10
|
+
import * as i3 from "ng-zorro-antd/icon";
|
|
11
|
+
export class YunzaiHeaderI18nComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.settings = inject(SettingsService);
|
|
14
|
+
this.i18n = inject(YUNZAI_I18N_TOKEN);
|
|
15
|
+
this.doc = inject(DOCUMENT);
|
|
16
|
+
this.langs = [];
|
|
17
|
+
this.destroy$ = new Subject();
|
|
18
|
+
/** Whether to display language text */
|
|
19
|
+
this.showLangText = true;
|
|
20
|
+
}
|
|
21
|
+
get curLangCode() {
|
|
22
|
+
return this.settings.layout.lang;
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.i18n
|
|
26
|
+
.getLangs()
|
|
27
|
+
.pipe(takeUntil(this.destroy$))
|
|
28
|
+
.subscribe(langs => {
|
|
29
|
+
this.langs = langs;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
change(lang) {
|
|
33
|
+
const spinEl = this.doc.createElement('div');
|
|
34
|
+
spinEl.setAttribute('class', `page-loading ant-spin ant-spin-lg ant-spin-spinning`);
|
|
35
|
+
spinEl.innerHTML = `<span class="ant-spin-dot ant-spin-dot-spin"><i></i><i></i><i></i><i></i></span>`;
|
|
36
|
+
this.doc.body.appendChild(spinEl);
|
|
37
|
+
this.i18n.loadLangData(lang).subscribe(res => {
|
|
38
|
+
this.i18n.use(lang, res);
|
|
39
|
+
this.settings.setLayout('lang', lang);
|
|
40
|
+
setTimeout(() => this.doc.location.reload());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
this.destroy$.complete();
|
|
45
|
+
}
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderI18nComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: YunzaiHeaderI18nComponent, isStandalone: true, selector: "yunzai-header-i18n", inputs: { showLangText: ["showLangText", "showLangText", booleanAttribute] }, host: { properties: { "class.flex-1": "true" } }, ngImport: i0, template: `
|
|
48
|
+
@if (showLangText) {
|
|
49
|
+
<div nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
|
|
50
|
+
<i nz-icon nzType="global"></i>
|
|
51
|
+
{{ 'lang.nav' | i18n }}
|
|
52
|
+
<i nz-icon nzType="down"></i>
|
|
53
|
+
</div>
|
|
54
|
+
} @else {
|
|
55
|
+
<i nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight" nz-icon nzType="global"></i>
|
|
56
|
+
}
|
|
57
|
+
<nz-dropdown-menu data-event-id="_nav_lang" #langMenu="nzDropdownMenu">
|
|
58
|
+
<ul nz-menu>
|
|
59
|
+
@for (item of langs; track item) {
|
|
60
|
+
<li
|
|
61
|
+
data-event-id="_nav_lang"
|
|
62
|
+
[attr.data-text]="item.text"
|
|
63
|
+
nz-menu-item
|
|
64
|
+
[nzSelected]="item.code === curLangCode"
|
|
65
|
+
(click)="change(item.code)"
|
|
66
|
+
>
|
|
67
|
+
@if (!item.icon) {
|
|
68
|
+
<span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
|
|
69
|
+
} @else {
|
|
70
|
+
<img
|
|
71
|
+
style="margin-right:4px"
|
|
72
|
+
width="50px"
|
|
73
|
+
height="30px"
|
|
74
|
+
[src]="'data:image/png;base64,' + item.icon"
|
|
75
|
+
[alt]="item.abbr"
|
|
76
|
+
class="pr-xs"
|
|
77
|
+
/>
|
|
78
|
+
}
|
|
79
|
+
{{ item.text }}
|
|
80
|
+
</li>
|
|
81
|
+
}
|
|
82
|
+
</ul>
|
|
83
|
+
</nz-dropdown-menu>
|
|
84
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiHeaderI18nComponent, decorators: [{
|
|
87
|
+
type: Component,
|
|
88
|
+
args: [{
|
|
89
|
+
selector: `yunzai-header-i18n`,
|
|
90
|
+
template: `
|
|
91
|
+
@if (showLangText) {
|
|
92
|
+
<div nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
|
|
93
|
+
<i nz-icon nzType="global"></i>
|
|
94
|
+
{{ 'lang.nav' | i18n }}
|
|
95
|
+
<i nz-icon nzType="down"></i>
|
|
96
|
+
</div>
|
|
97
|
+
} @else {
|
|
98
|
+
<i nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight" nz-icon nzType="global"></i>
|
|
99
|
+
}
|
|
100
|
+
<nz-dropdown-menu data-event-id="_nav_lang" #langMenu="nzDropdownMenu">
|
|
101
|
+
<ul nz-menu>
|
|
102
|
+
@for (item of langs; track item) {
|
|
103
|
+
<li
|
|
104
|
+
data-event-id="_nav_lang"
|
|
105
|
+
[attr.data-text]="item.text"
|
|
106
|
+
nz-menu-item
|
|
107
|
+
[nzSelected]="item.code === curLangCode"
|
|
108
|
+
(click)="change(item.code)"
|
|
109
|
+
>
|
|
110
|
+
@if (!item.icon) {
|
|
111
|
+
<span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
|
|
112
|
+
} @else {
|
|
113
|
+
<img
|
|
114
|
+
style="margin-right:4px"
|
|
115
|
+
width="50px"
|
|
116
|
+
height="30px"
|
|
117
|
+
[src]="'data:image/png;base64,' + item.icon"
|
|
118
|
+
[alt]="item.abbr"
|
|
119
|
+
class="pr-xs"
|
|
120
|
+
/>
|
|
121
|
+
}
|
|
122
|
+
{{ item.text }}
|
|
123
|
+
</li>
|
|
124
|
+
}
|
|
125
|
+
</ul>
|
|
126
|
+
</nz-dropdown-menu>
|
|
127
|
+
`,
|
|
128
|
+
host: {
|
|
129
|
+
'[class.flex-1]': 'true'
|
|
130
|
+
},
|
|
131
|
+
standalone: true,
|
|
132
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
133
|
+
imports: [NzDropDownModule, NzIconModule, I18nPipe, CommonModule]
|
|
134
|
+
}]
|
|
135
|
+
}], propDecorators: { showLangText: [{
|
|
136
|
+
type: Input,
|
|
137
|
+
args: [{ transform: booleanAttribute }]
|
|
138
|
+
}] } });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWkxOG4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3l1bnphaS13aWRnZXRzL3l1bnphaS1pMThuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sY0FBYyxDQUFDO0FBRW5ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFpRGxELE1BQU0sT0FBTyx5QkFBeUI7SUEvQ3RDO1FBZ0RtQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLFNBQUksR0FBRyxNQUFNLENBQXdCLGlCQUFpQixDQUFDLENBQUM7UUFDeEQsUUFBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUNyQixhQUFRLEdBQXVCLElBQUksT0FBTyxFQUFhLENBQUM7UUFDaEUsdUNBQXVDO1FBQ0MsaUJBQVksR0FBRyxJQUFJLENBQUM7S0E2QjdEO0lBM0JDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUk7YUFDTixRQUFRLEVBQUU7YUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUscURBQXFELENBQUMsQ0FBQztRQUNwRixNQUFNLENBQUMsU0FBUyxHQUFHLGtGQUFrRixDQUFDO1FBQ3RHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQW5DVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrR0FPaEIsZ0JBQWdCLCtFQXBEMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1QsMkRBTVMsZ0JBQWdCLHkyQkFBRSxZQUFZLDZNQUFFLFFBQVEsNENBQUUsWUFBWTs7MkZBRXJELHlCQUF5QjtrQkEvQ3JDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNUO29CQUNELElBQUksRUFBRTt3QkFDSixnQkFBZ0IsRUFBRSxNQUFNO3FCQUN6QjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDO2lCQUNsRTs4QkFReUMsWUFBWTtzQkFBbkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJMThuUGlwZSwgU2V0dGluZ3NTZXJ2aWNlLCBZVU5aQUlfSTE4Tl9UT0tFTiwgWXVuemFpSHR0cEkxOE5TZXJ2aWNlLCBZdW56YWlJMThOVHlwZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgTnpEcm9wRG93bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvZHJvcGRvd24nO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBgeXVuemFpLWhlYWRlci1pMThuYCxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHNob3dMYW5nVGV4dCkge1xuICAgICAgPGRpdiBuei1kcm9wZG93biBbbnpEcm9wZG93bk1lbnVdPVwibGFuZ01lbnVcIiBuelBsYWNlbWVudD1cImJvdHRvbVJpZ2h0XCI+XG4gICAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiZ2xvYmFsXCI+PC9pPlxuICAgICAgICB7eyAnbGFuZy5uYXYnIHwgaTE4biB9fVxuICAgICAgICA8aSBuei1pY29uIG56VHlwZT1cImRvd25cIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxpIG56LWRyb3Bkb3duIFtuekRyb3Bkb3duTWVudV09XCJsYW5nTWVudVwiIG56UGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIiBuei1pY29uIG56VHlwZT1cImdsb2JhbFwiPjwvaT5cbiAgICB9XG4gICAgPG56LWRyb3Bkb3duLW1lbnUgZGF0YS1ldmVudC1pZD1cIl9uYXZfbGFuZ1wiICNsYW5nTWVudT1cIm56RHJvcGRvd25NZW51XCI+XG4gICAgICA8dWwgbnotbWVudT5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsYW5nczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgZGF0YS1ldmVudC1pZD1cIl9uYXZfbGFuZ1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgIG56LW1lbnUtaXRlbVxuICAgICAgICAgICAgW256U2VsZWN0ZWRdPVwiaXRlbS5jb2RlID09PSBjdXJMYW5nQ29kZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlKGl0ZW0uY29kZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoIWl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICA8c3BhbiByb2xlPVwiaW1nXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLnRleHRcIiBjbGFzcz1cInByLXhzXCI+e3sgaXRlbS5hYmJyIH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDo0cHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiNTBweFwiXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiMzBweFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBpdGVtLmljb25cIlxuICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5hYmJyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByLXhzXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgPC9uei1kcm9wZG93bi1tZW51PlxuICBgLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5mbGV4LTFdJzogJ3RydWUnXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTnpEcm9wRG93bk1vZHVsZSwgTnpJY29uTW9kdWxlLCBJMThuUGlwZSwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBZdW56YWlIZWFkZXJJMThuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzID0gaW5qZWN0KFNldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdDxZdW56YWlIdHRwSTE4TlNlcnZpY2U+KFlVTlpBSV9JMThOX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBsYW5nczogWXVuemFpSTE4TlR5cGVbXSA9IFtdO1xuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PE56U2FmZUFueT4gPSBuZXcgU3ViamVjdDxOelNhZmVBbnk+KCk7XG4gIC8qKiBXaGV0aGVyIHRvIGRpc3BsYXkgbGFuZ3VhZ2UgdGV4dCAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0xhbmdUZXh0ID0gdHJ1ZTtcblxuICBnZXQgY3VyTGFuZ0NvZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5sYXlvdXQubGFuZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmkxOG5cbiAgICAgIC5nZXRMYW5ncygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGxhbmdzID0+IHtcbiAgICAgICAgdGhpcy5sYW5ncyA9IGxhbmdzO1xuICAgICAgfSk7XG4gIH1cblxuICBjaGFuZ2UobGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3BpbkVsID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc3BpbkVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBgcGFnZS1sb2FkaW5nIGFudC1zcGluIGFudC1zcGluLWxnIGFudC1zcGluLXNwaW5uaW5nYCk7XG4gICAgc3BpbkVsLmlubmVySFRNTCA9IGA8c3BhbiBjbGFzcz1cImFudC1zcGluLWRvdCBhbnQtc3Bpbi1kb3Qtc3BpblwiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+YDtcbiAgICB0aGlzLmRvYy5ib2R5LmFwcGVuZENoaWxkKHNwaW5FbCk7XG5cbiAgICB0aGlzLmkxOG4ubG9hZExhbmdEYXRhKGxhbmcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5pMThuLnVzZShsYW5nLCByZXMpO1xuICAgICAgdGhpcy5zZXR0aW5ncy5zZXRMYXlvdXQoJ2xhbmcnLCBsYW5nKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kb2MubG9jYXRpb24ucmVsb2FkKCkpO1xuICAgIH0pO1xuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|