@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.
Files changed (109) hide show
  1. package/config/index.d.ts +5 -0
  2. package/config/public_api.d.ts +1 -0
  3. package/esm2022/bis.mjs +2 -2
  4. package/esm2022/{layout → config}/bis.config.mjs +1 -1
  5. package/esm2022/config/config.mjs +5 -0
  6. package/esm2022/config/public_api.mjs +2 -0
  7. package/esm2022/layout/layout-basic.component.mjs +376 -0
  8. package/esm2022/layout/layout-nav-application.component.mjs +368 -0
  9. package/esm2022/layout/layout-nav-group.component.mjs +159 -0
  10. package/esm2022/layout/layout-nav-tile.component.mjs +15 -0
  11. package/esm2022/layout/layout.module.mjs +54 -0
  12. package/esm2022/layout/public_api.mjs +6 -14
  13. package/esm2022/public_api.mjs +9 -2
  14. package/esm2022/src/bis.module.mjs +17 -0
  15. package/esm2022/src/helper.mjs +45 -0
  16. package/esm2022/src/provide.mjs +8 -0
  17. package/esm2022/src/refresh-token.mjs +79 -0
  18. package/esm2022/src/startup.service.mjs +182 -0
  19. package/esm2022/src/yunzai-act.guard.mjs +88 -0
  20. package/esm2022/src/yunzai-analysis-addon.guard.mjs +99 -0
  21. package/esm2022/src/yunzai-default.interceptor.mjs +63 -0
  22. package/esm2022/yunzai-widgets/public_api.mjs +7 -0
  23. package/esm2022/yunzai-widgets/yunzai-clear-storage.component.mjs +47 -0
  24. package/esm2022/yunzai-widgets/yunzai-fullscreen.component.mjs +47 -0
  25. package/esm2022/yunzai-widgets/yunzai-i18n.component.mjs +139 -0
  26. package/esm2022/yunzai-widgets/yunzai-notify.component.mjs +179 -0
  27. package/esm2022/yunzai-widgets/yunzai-user.component.mjs +119 -0
  28. package/esm2022/yunzai-widgets/yunzai-widget.module.mjs +62 -0
  29. package/esm2022/yunzai-widgets/yunzai-widgets.mjs +5 -0
  30. package/fesm2022/bis.mjs +552 -1
  31. package/fesm2022/bis.mjs.map +1 -1
  32. package/fesm2022/config.mjs +21 -0
  33. package/fesm2022/config.mjs.map +1 -0
  34. package/fesm2022/layout.mjs +395 -2781
  35. package/fesm2022/layout.mjs.map +1 -1
  36. package/fesm2022/yunzai-widgets.mjs +561 -0
  37. package/fesm2022/yunzai-widgets.mjs.map +1 -0
  38. package/index.d.ts +4 -0
  39. package/layout/{layout-basic/layout-basic.component.d.ts → layout-basic.component.d.ts} +12 -8
  40. package/layout/layout-nav-application.component.d.ts +26 -0
  41. package/layout/layout-nav-group.component.d.ts +13 -0
  42. package/layout/layout-nav-tile.component.d.ts +5 -0
  43. package/layout/layout.module.d.ts +18 -0
  44. package/layout/public_api.d.ts +5 -13
  45. package/package.json +40 -11
  46. package/public_api.d.ts +8 -2
  47. package/src/bis.module.d.ts +8 -0
  48. package/src/helper.d.ts +16 -0
  49. package/src/provide.d.ts +2 -0
  50. package/src/refresh-token.d.ts +6 -0
  51. package/src/startup.service.d.ts +22 -0
  52. package/src/yunzai-default.interceptor.d.ts +2 -0
  53. package/yunzai-widgets/index.d.ts +5 -0
  54. package/{layout/widgets/index.d.ts → yunzai-widgets/public_api.d.ts} +2 -2
  55. package/yunzai-widgets/yunzai-clear-storage.component.d.ts +8 -0
  56. package/yunzai-widgets/yunzai-fullscreen.component.d.ts +8 -0
  57. package/yunzai-widgets/yunzai-i18n.component.d.ts +19 -0
  58. package/yunzai-widgets/yunzai-notify.component.d.ts +24 -0
  59. package/yunzai-widgets/yunzai-user.component.d.ts +21 -0
  60. package/yunzai-widgets/yunzai-widget.module.d.ts +18 -0
  61. package/README.md +0 -23
  62. package/esm2022/index.mjs +0 -2
  63. package/esm2022/layout/html-names.mjs +0 -33
  64. package/esm2022/layout/icon/style-icons.mjs +0 -796
  65. package/esm2022/layout/layout-basic/index.mjs +0 -3
  66. package/esm2022/layout/layout-basic/interface.mjs +0 -2
  67. package/esm2022/layout/layout-basic/layout-basic.component.mjs +0 -368
  68. package/esm2022/layout/layout-nav/index.mjs +0 -4
  69. package/esm2022/layout/layout-nav/layout-nav-application.component.mjs +0 -382
  70. package/esm2022/layout/layout-nav/layout-nav-group.component.mjs +0 -122
  71. package/esm2022/layout/layout-nav/layout-nav-tile.component.mjs +0 -15
  72. package/esm2022/layout/widgets/index.mjs +0 -7
  73. package/esm2022/layout/widgets/yunzai-clear-storage.component.mjs +0 -44
  74. package/esm2022/layout/widgets/yunzai-fullscreen.component.mjs +0 -44
  75. package/esm2022/layout/widgets/yunzai-i18n.component.mjs +0 -140
  76. package/esm2022/layout/widgets/yunzai-notify.component.mjs +0 -185
  77. package/esm2022/layout/widgets/yunzai-theme-btn.component.mjs +0 -200
  78. package/esm2022/layout/widgets/yunzai-user.component.mjs +0 -129
  79. package/esm2022/layout/yunzai-act.guard.mjs +0 -88
  80. package/esm2022/layout/yunzai-analysis-addon.guard.mjs +0 -100
  81. package/esm2022/layout/yunzai-auth.service.mjs +0 -108
  82. package/esm2022/layout/yunzai-default.interceptor.mjs +0 -201
  83. package/esm2022/layout/yunzai-i18n.service.mjs +0 -107
  84. package/esm2022/layout/yunzai-lang.mjs +0 -114
  85. package/esm2022/layout/yunzai-layout.module.mjs +0 -118
  86. package/esm2022/layout/yunzai-startup.service.mjs +0 -152
  87. package/layout/html-names.d.ts +0 -31
  88. package/layout/icon/style-icons.d.ts +0 -1
  89. package/layout/layout-basic/index.d.ts +0 -2
  90. package/layout/layout-basic/interface.d.ts +0 -8
  91. package/layout/layout-nav/index.d.ts +0 -3
  92. package/layout/layout-nav/layout-nav-application.component.d.ts +0 -32
  93. package/layout/layout-nav/layout-nav-group.component.d.ts +0 -16
  94. package/layout/layout-nav/layout-nav-tile.component.d.ts +0 -6
  95. package/layout/widgets/yunzai-clear-storage.component.d.ts +0 -11
  96. package/layout/widgets/yunzai-fullscreen.component.d.ts +0 -8
  97. package/layout/widgets/yunzai-i18n.component.d.ts +0 -22
  98. package/layout/widgets/yunzai-notify.component.d.ts +0 -30
  99. package/layout/widgets/yunzai-theme-btn.component.d.ts +0 -32
  100. package/layout/widgets/yunzai-user.component.d.ts +0 -26
  101. package/layout/yunzai-auth.service.d.ts +0 -19
  102. package/layout/yunzai-default.interceptor.d.ts +0 -28
  103. package/layout/yunzai-i18n.service.d.ts +0 -27
  104. package/layout/yunzai-lang.d.ts +0 -12
  105. package/layout/yunzai-layout.module.d.ts +0 -30
  106. package/layout/yunzai-startup.service.d.ts +0 -34
  107. /package/{layout → config}/bis.config.d.ts +0 -0
  108. /package/{layout → src}/yunzai-act.guard.d.ts +0 -0
  109. /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