@yelon/bis 12.0.19 → 13.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/bis.d.ts +1 -0
  2. package/{esm2015/bis.js → esm2020/bis.mjs} +0 -0
  3. package/esm2020/layout/act.guard.mjs +108 -0
  4. package/{esm2015/layout/bis.config.js → esm2020/layout/bis.config.mjs} +0 -0
  5. package/esm2020/layout/contact/contact.component.mjs +492 -0
  6. package/esm2020/layout/contact/contact.service.mjs +146 -0
  7. package/esm2020/layout/layout.mjs +5 -0
  8. package/esm2020/layout/layout.module.mjs +73 -0
  9. package/{esm2015/layout/path-to-regexp.service.js → esm2020/layout/path-to-regexp.service.mjs} +9 -8
  10. package/{esm2015/layout/public_api.js → esm2020/layout/public_api.mjs} +3 -3
  11. package/esm2020/layout/stomp.config.mjs +18 -0
  12. package/{esm2015/layout/widgets/index.js → esm2020/layout/widgets/index.mjs} +0 -0
  13. package/esm2020/layout/widgets/yz.application.component.mjs +271 -0
  14. package/esm2020/layout/widgets/yz.clear-storage.component.mjs +45 -0
  15. package/esm2020/layout/widgets/yz.fullscreen.component.mjs +45 -0
  16. package/esm2020/layout/widgets/yz.i18n.component.mjs +115 -0
  17. package/esm2020/layout/widgets/yz.notify.component.mjs +184 -0
  18. package/esm2020/layout/widgets/yz.them-btn.component.mjs +196 -0
  19. package/esm2020/layout/widgets/yz.user.component.mjs +112 -0
  20. package/esm2020/layout/yz.auth.service.mjs +156 -0
  21. package/esm2020/layout/yz.basic.component.mjs +207 -0
  22. package/esm2020/layout/yz.default.interceptor.mjs +203 -0
  23. package/esm2020/layout/yz.i18n.service.mjs +93 -0
  24. package/esm2020/layout/yz.startup.service.mjs +137 -0
  25. package/esm2020/layout/yz.stomp.service.mjs +88 -0
  26. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  27. package/{esm2015/shared/public_api.js → esm2020/shared/public_api.mjs} +0 -0
  28. package/{esm2015/shared/shared-yelon.module.js → esm2020/shared/shared-yelon.module.mjs} +0 -0
  29. package/{esm2015/shared/shared-zorro.module.js → esm2020/shared/shared-zorro.module.mjs} +0 -0
  30. package/{esm2015/shared/shared.js → esm2020/shared/shared.mjs} +0 -0
  31. package/esm2020/shared/shared.module.mjs +116 -0
  32. package/{esm2015/shared/style-icons.js → esm2020/shared/style-icons.mjs} +0 -0
  33. package/fesm2015/{bis.js → bis.mjs} +1 -1
  34. package/fesm2015/bis.mjs.map +1 -0
  35. package/fesm2015/{layout.js → layout.mjs} +587 -278
  36. package/fesm2015/layout.mjs.map +1 -0
  37. package/fesm2015/{shared.js → shared.mjs} +101 -7
  38. package/fesm2015/shared.mjs.map +1 -0
  39. package/fesm2020/bis.mjs +6 -0
  40. package/fesm2020/bis.mjs.map +1 -0
  41. package/fesm2020/layout.mjs +2796 -0
  42. package/fesm2020/layout.mjs.map +1 -0
  43. package/fesm2020/shared.mjs +1106 -0
  44. package/fesm2020/shared.mjs.map +1 -0
  45. package/layout/act.guard.d.ts +3 -0
  46. package/layout/contact/contact.component.d.ts +4 -1
  47. package/layout/contact/contact.service.d.ts +4 -1
  48. package/layout/layout.d.ts +1 -3
  49. package/layout/layout.module.d.ts +18 -0
  50. package/layout/package.json +5 -6
  51. package/layout/path-to-regexp.service.d.ts +3 -0
  52. package/layout/public_api.d.ts +2 -0
  53. package/layout/widgets/yz.application.component.d.ts +3 -0
  54. package/layout/widgets/yz.clear-storage.component.d.ts +3 -0
  55. package/layout/widgets/yz.fullscreen.component.d.ts +3 -1
  56. package/layout/widgets/yz.i18n.component.d.ts +3 -0
  57. package/layout/widgets/yz.notify.component.d.ts +3 -0
  58. package/layout/widgets/yz.them-btn.component.d.ts +3 -0
  59. package/layout/widgets/yz.user.component.d.ts +3 -0
  60. package/layout/yz.auth.service.d.ts +3 -0
  61. package/layout/yz.basic.component.d.ts +3 -0
  62. package/layout/yz.default.interceptor.d.ts +3 -0
  63. package/layout/yz.i18n.service.d.ts +3 -0
  64. package/layout/yz.startup.service.d.ts +3 -0
  65. package/layout/yz.stomp.service.d.ts +6 -3
  66. package/package.json +46 -18
  67. package/shared/package.json +5 -6
  68. package/shared/shared-zorro.module.d.ts +2 -2
  69. package/shared/shared.d.ts +1 -0
  70. package/shared/shared.module.d.ts +93 -0
  71. package/bis.metadata.json +0 -1
  72. package/bundles/bis.umd.js +0 -18
  73. package/bundles/bis.umd.js.map +0 -1
  74. package/bundles/layout.umd.js +0 -2694
  75. package/bundles/layout.umd.js.map +0 -1
  76. package/bundles/shared.umd.js +0 -1249
  77. package/bundles/shared.umd.js.map +0 -1
  78. package/esm2015/layout/act.guard.js +0 -115
  79. package/esm2015/layout/contact/contact.component.js +0 -434
  80. package/esm2015/layout/contact/contact.service.js +0 -150
  81. package/esm2015/layout/layout.js +0 -8
  82. package/esm2015/layout/layout.module.js +0 -47
  83. package/esm2015/layout/stomp.config.js +0 -20
  84. package/esm2015/layout/widgets/yz.application.component.js +0 -200
  85. package/esm2015/layout/widgets/yz.clear-storage.component.js +0 -39
  86. package/esm2015/layout/widgets/yz.fullscreen.component.js +0 -36
  87. package/esm2015/layout/widgets/yz.i18n.component.js +0 -78
  88. package/esm2015/layout/widgets/yz.notify.component.js +0 -157
  89. package/esm2015/layout/widgets/yz.them-btn.component.js +0 -146
  90. package/esm2015/layout/widgets/yz.user.component.js +0 -81
  91. package/esm2015/layout/yz.auth.service.js +0 -158
  92. package/esm2015/layout/yz.basic.component.js +0 -123
  93. package/esm2015/layout/yz.default.interceptor.js +0 -204
  94. package/esm2015/layout/yz.i18n.service.js +0 -102
  95. package/esm2015/layout/yz.startup.service.js +0 -138
  96. package/esm2015/layout/yz.stomp.service.js +0 -91
  97. package/esm2015/shared/shared.module.js +0 -22
  98. package/fesm2015/bis.js.map +0 -1
  99. package/fesm2015/layout.js.map +0 -1
  100. package/fesm2015/shared.js.map +0 -1
  101. package/layout/layout.metadata.json +0 -1
  102. package/shared/shared.metadata.json +0 -1
@@ -0,0 +1,271 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { WINDOW } from '@yelon/util';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@yelon/cache";
5
+ import * as i2 from "../yz.i18n.service";
6
+ import * as i3 from "@yelon/theme";
7
+ import * as i4 from "ng-zorro-antd/input";
8
+ import * as i5 from "ng-zorro-antd/grid";
9
+ import * as i6 from "ng-zorro-antd/core/transition-patch";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "ng-zorro-antd/icon";
12
+ import * as i9 from "@angular/common";
13
+ export var TOPIC;
14
+ (function (TOPIC) {
15
+ TOPIC[TOPIC["FULL"] = 0] = "FULL";
16
+ TOPIC[TOPIC["OWN"] = 1] = "OWN";
17
+ TOPIC[TOPIC["EVERY"] = 2] = "EVERY";
18
+ })(TOPIC || (TOPIC = {}));
19
+ export class YzHeaderApplicationComponent {
20
+ constructor(inject, cacheService, i18n, http) {
21
+ this.inject = inject;
22
+ this.cacheService = cacheService;
23
+ this.i18n = i18n;
24
+ this.http = http;
25
+ this.T = TOPIC;
26
+ this.active = false;
27
+ this.topicData = [];
28
+ this.listData = [];
29
+ this.topic = TOPIC.FULL;
30
+ this.searchValue = null;
31
+ this.subs = [];
32
+ }
33
+ ngOnInit() {
34
+ this.topicData = this.cacheService.get('_yz_header', { mode: 'none' });
35
+ this.listData = this.cacheService.get('_yz_header', { mode: 'none' });
36
+ }
37
+ ngOnDestroy() {
38
+ this.subs.forEach(f => f.unsubscribe());
39
+ }
40
+ diffChange(flag) {
41
+ if (flag) {
42
+ this.active = flag;
43
+ }
44
+ else {
45
+ this.active = !this.active;
46
+ }
47
+ }
48
+ initTopic(topic) {
49
+ this.searchValue = null;
50
+ this.listData = this.cacheService.get('_yz_header', { mode: 'none' });
51
+ this.topic = topic;
52
+ }
53
+ full() {
54
+ this.initTopic(TOPIC.FULL);
55
+ }
56
+ own() {
57
+ this.initTopic(TOPIC.OWN);
58
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
59
+ this.listData = temp
60
+ .filter((topic) => {
61
+ topic.children = topic.children.filter((child) => {
62
+ return child.auth;
63
+ });
64
+ return topic;
65
+ })
66
+ .filter((topic) => {
67
+ return topic.children.length > 0;
68
+ });
69
+ }
70
+ every(e) {
71
+ this.initTopic(TOPIC.EVERY);
72
+ this.choosed = e;
73
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
74
+ this.listData = [...temp.filter(t => t.key === e.key)[0].children];
75
+ }
76
+ onSearch() {
77
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
78
+ // 如果搜索输入的有值
79
+ if (this.searchValue) {
80
+ // 过滤菜单过滤出搜索的值
81
+ this.listData = temp
82
+ .filter((topic) => {
83
+ if (this.i18n.fanyi(topic.name).includes(this.searchValue)) {
84
+ return topic;
85
+ }
86
+ else {
87
+ topic.children = topic.children.filter((child) => {
88
+ return this.i18n.fanyi(child.name).includes(this.searchValue);
89
+ });
90
+ return topic;
91
+ }
92
+ })
93
+ .filter((topic) => {
94
+ return topic.children.length > 0;
95
+ });
96
+ }
97
+ else {
98
+ // 如果没有值,取消搜索
99
+ this.listData = this.cacheService.get('_yz_header', { mode: 'none' });
100
+ }
101
+ }
102
+ open(topic) {
103
+ if (topic.key) {
104
+ this.subs.push(this.http
105
+ .post(`/app-manager/web-scan/save`, {
106
+ appId: topic.key,
107
+ createDate: new Date()
108
+ })
109
+ .subscribe());
110
+ }
111
+ switch (topic.target) {
112
+ case 'href':
113
+ this.inject.get(WINDOW).location.href = topic.url;
114
+ break;
115
+ case 'blank':
116
+ this.inject.get(WINDOW).location.href = topic.url;
117
+ break;
118
+ case 'target':
119
+ this.inject.get(WINDOW).location.href = topic.url;
120
+ break;
121
+ default:
122
+ this.inject.get(WINDOW).location.href = topic.url;
123
+ break;
124
+ }
125
+ }
126
+ }
127
+ YzHeaderApplicationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderApplicationComponent, deps: [{ token: i0.Injector }, { token: i1.CacheService }, { token: i2.YzI18NService }, { token: i3._HttpClient }], target: i0.ɵɵFactoryTarget.Component });
128
+ YzHeaderApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: YzHeaderApplicationComponent, selector: "yz-header-application", ngImport: i0, template: `
129
+ <!-- template start-->
130
+ <ng-template #search>
131
+ <div nz-row class="yz-application-list-search">
132
+ <nz-input-group [nzPrefix]="prefixTemplate">
133
+ <input
134
+ type="text"
135
+ nz-input
136
+ placeholder="{{ 'application.search' | i18n }}"
137
+ [(ngModel)]="searchValue"
138
+ (ngModelChange)="onSearch()"
139
+ />
140
+ <ng-template #prefixTemplate>
141
+ <i nz-icon nzType="search" nzTheme="outline"></i>
142
+ </ng-template>
143
+ </nz-input-group>
144
+ </div>
145
+ </ng-template>
146
+ <ng-template #ld>
147
+ <div class="yz-application-list">
148
+ <ul>
149
+ <li *ngFor="let d of listData">
150
+ <h5>{{ d.name }}</h5>
151
+ <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
152
+ </li>
153
+ </ul>
154
+ </div>
155
+ </ng-template>
156
+ <!-- template end-->
157
+
158
+ <!-- button start-->
159
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
160
+ <!-- button end-->
161
+
162
+ <!-- header start-->
163
+ <div class="yz-application" nz-row *ngIf="active">
164
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
165
+ <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
166
+ <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
167
+ <div class="yz-application-text" *ngFor="let d of topicData" (click)="every(d)">
168
+ {{ d.name }}
169
+ </div>
170
+ </div>
171
+ <div nz-col [nzSpan]="21" [ngSwitch]="topic" class="yz-application-container">
172
+ <div *ngSwitchCase="T.FULL">
173
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
174
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
175
+ </div>
176
+ <div *ngSwitchCase="T.OWN">
177
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
178
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
179
+ </div>
180
+ <div *ngSwitchCase="T.EVERY" class="yz-application-list">
181
+ <div class="yz-application-list-item">
182
+ <ul>
183
+ <li *ngFor="let d of listData" (click)="open(d)">
184
+ <a href="javascript:;">
185
+ <h4>{{ d.name }}</h4>
186
+ <p>{{ d.intro }}</p>
187
+ </a>
188
+ </li>
189
+ </ul>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ <!-- header end-->
195
+ `, isInline: true, components: [{ type: i4.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }], directives: [{ type: i5.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i6.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i4.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "i18n": i3.I18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderApplicationComponent, decorators: [{
197
+ type: Component,
198
+ args: [{
199
+ selector: 'yz-header-application',
200
+ template: `
201
+ <!-- template start-->
202
+ <ng-template #search>
203
+ <div nz-row class="yz-application-list-search">
204
+ <nz-input-group [nzPrefix]="prefixTemplate">
205
+ <input
206
+ type="text"
207
+ nz-input
208
+ placeholder="{{ 'application.search' | i18n }}"
209
+ [(ngModel)]="searchValue"
210
+ (ngModelChange)="onSearch()"
211
+ />
212
+ <ng-template #prefixTemplate>
213
+ <i nz-icon nzType="search" nzTheme="outline"></i>
214
+ </ng-template>
215
+ </nz-input-group>
216
+ </div>
217
+ </ng-template>
218
+ <ng-template #ld>
219
+ <div class="yz-application-list">
220
+ <ul>
221
+ <li *ngFor="let d of listData">
222
+ <h5>{{ d.name }}</h5>
223
+ <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
224
+ </li>
225
+ </ul>
226
+ </div>
227
+ </ng-template>
228
+ <!-- template end-->
229
+
230
+ <!-- button start-->
231
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
232
+ <!-- button end-->
233
+
234
+ <!-- header start-->
235
+ <div class="yz-application" nz-row *ngIf="active">
236
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
237
+ <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
238
+ <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
239
+ <div class="yz-application-text" *ngFor="let d of topicData" (click)="every(d)">
240
+ {{ d.name }}
241
+ </div>
242
+ </div>
243
+ <div nz-col [nzSpan]="21" [ngSwitch]="topic" class="yz-application-container">
244
+ <div *ngSwitchCase="T.FULL">
245
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
246
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
247
+ </div>
248
+ <div *ngSwitchCase="T.OWN">
249
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
250
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
251
+ </div>
252
+ <div *ngSwitchCase="T.EVERY" class="yz-application-list">
253
+ <div class="yz-application-list-item">
254
+ <ul>
255
+ <li *ngFor="let d of listData" (click)="open(d)">
256
+ <a href="javascript:;">
257
+ <h4>{{ d.name }}</h4>
258
+ <p>{{ d.intro }}</p>
259
+ </a>
260
+ </li>
261
+ </ul>
262
+ </div>
263
+ </div>
264
+ </div>
265
+ </div>
266
+ <!-- header end-->
267
+ `,
268
+ changeDetection: ChangeDetectionStrategy.OnPush
269
+ }]
270
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.CacheService }, { type: i2.YzI18NService }, { type: i3._HttpClient }]; } });
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouYXBwbGljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC93aWRnZXRzL3l6LmFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUtoRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7OztBQUlyQyxNQUFNLENBQU4sSUFBWSxLQUlYO0FBSkQsV0FBWSxLQUFLO0lBQ2YsaUNBQUksQ0FBQTtJQUNKLCtCQUFHLENBQUE7SUFDSCxtQ0FBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLEtBQUssS0FBTCxLQUFLLFFBSWhCO0FBK0ZELE1BQU0sT0FBTyw0QkFBNEI7SUFVdkMsWUFDVSxNQUFnQixFQUNoQixZQUEwQixFQUMxQixJQUFtQixFQUNuQixJQUFpQjtRQUhqQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQWIzQixNQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ1YsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixjQUFTLEdBQWtCLEVBQUUsQ0FBQztRQUM5QixhQUFRLEdBQWtCLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQVUsS0FBSyxDQUFDLElBQUksQ0FBQztRQUUxQixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsU0FBSSxHQUFtQixFQUFFLENBQUM7SUFPdkIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBYztRQUN2QixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUc7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBa0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJO2FBQ2pCLE1BQU0sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUM3QixLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFO2dCQUM1RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBYztRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBa0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxJQUFJLEdBQWtCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLFlBQVk7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsY0FBYztZQUNkLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSTtpQkFDakIsTUFBTSxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFO2dCQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxFQUFFO29CQUMzRCxPQUFPLEtBQUssQ0FBQztpQkFDZDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFO3dCQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO29CQUNqRSxDQUFDLENBQUMsQ0FBQztvQkFDSCxPQUFPLEtBQUssQ0FBQztpQkFDZDtZQUNILENBQUMsQ0FBQztpQkFDRCxNQUFNLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLGFBQWE7WUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFrQjtRQUNyQixJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsSUFBSTtpQkFDTixJQUFJLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRztnQkFDaEIsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFO2FBQ3ZCLENBQUM7aUJBQ0QsU0FBUyxFQUFFLENBQ2YsQ0FBQztTQUNIO1FBQ0QsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3BCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNsRCxNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDbEQsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDbEQsTUFBTTtTQUNUO0lBQ0gsQ0FBQzs7eUhBcEhVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDZEQXRFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7MkZBR1UsNEJBQTRCO2tCQXhFeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL2NhY2hlJztcbmltcG9ydCB7IF9IdHRwQ2xpZW50IH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7IFdJTkRPVyB9IGZyb20gJ0B5ZWxvbi91dGlsJztcblxuaW1wb3J0IHsgWXpJMThOU2VydmljZSB9IGZyb20gJy4uL3l6LmkxOG4uc2VydmljZSc7XG5cbmV4cG9ydCBlbnVtIFRPUElDIHtcbiAgRlVMTCxcbiAgT1dOLFxuICBFVkVSWVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclRvcGljIHtcbiAgLy8g5b+Y5LqGXG4gIGF0dHJpYnV0ZTogYW55O1xuICAvLyDlrZDoj5zljZVcbiAgY2hpbGRyZW46IEhlYWRlclRvcGljW107XG4gIC8vIOaPj+i/sFxuICBpbnRybzogc3RyaW5nO1xuICAvLyBrZXlcbiAga2V5OiBzdHJpbmc7XG4gIC8vIOWQjeensFxuICBuYW1lOiBzdHJpbmc7XG4gIC8vIOaJk+W8gOaWueW8j1xuICB0YXJnZXQ6IHN0cmluZztcbiAgLy8g5piv5ZCm5pyJ5p2D6ZmQ5omT5byAXG4gIGF1dGg6IGJvb2xlYW47XG4gIC8vIOi3r+W+hFxuICB1cmw6IHN0cmluZztcbiAgLy8g54mI5pysXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXotaGVhZGVyLWFwcGxpY2F0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tICAgICAgdGVtcGxhdGUgc3RhcnQtLT5cbiAgICA8bmctdGVtcGxhdGUgI3NlYXJjaD5cbiAgICAgIDxkaXYgbnotcm93IGNsYXNzPVwieXotYXBwbGljYXRpb24tbGlzdC1zZWFyY2hcIj5cbiAgICAgICAgPG56LWlucHV0LWdyb3VwIFtuelByZWZpeF09XCJwcmVmaXhUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2FwcGxpY2F0aW9uLnNlYXJjaCcgfCBpMThuIH19XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZWZpeFRlbXBsYXRlPlxuICAgICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJzZWFyY2hcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2xkPlxuICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZCBvZiBsaXN0RGF0YVwiPlxuICAgICAgICAgICAgPGg1Pnt7IGQubmFtZSB9fTwvaDU+XG4gICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKm5nRm9yPVwibGV0IGNkIG9mIGQuY2hpbGRyZW5cIiAoY2xpY2spPVwib3BlbihjZClcIj57eyBjZC5uYW1lIH19PC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwhLS0gICAgICB0ZW1wbGF0ZSBlbmQtLT5cblxuICAgIDwhLS0gICAgICBidXR0b24gc3RhcnQtLT5cbiAgICA8ZGl2IGNsYXNzPVwieXVuemFpLWRlZmF1bHRfX25hdi1pdGVtXCIgKGNsaWNrKT1cImRpZmZDaGFuZ2UoKVwiPiB7eyAnYXBwbGljYXRpb24uYnV0dG9uJyB8IGkxOG4gfX08L2Rpdj5cbiAgICA8IS0tICAgICAgYnV0dG9uIGVuZC0tPlxuXG4gICAgPCEtLSAgICAgIGhlYWRlciBzdGFydC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvblwiIG56LXJvdyAqbmdJZj1cImFjdGl2ZVwiPlxuICAgICAgPGRpdiBuei1jb2wgW256U3Bhbl09XCIzXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10b3BpY1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotYXBwbGljYXRpb24tdGV4dFwiIChjbGljayk9XCJmdWxsKClcIj57eyAnYXBwbGljYXRpb24uYWxsJyB8IGkxOG4gfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLXRleHRcIiAoY2xpY2spPVwib3duKClcIj57eyAnYXBwbGljYXRpb24ubWluZScgfCBpMThuIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10ZXh0XCIgKm5nRm9yPVwibGV0IGQgb2YgdG9waWNEYXRhXCIgKGNsaWNrKT1cImV2ZXJ5KGQpXCI+XG4gICAgICAgICAge3sgZC5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IG56LWNvbCBbbnpTcGFuXT1cIjIxXCIgW25nU3dpdGNoXT1cInRvcGljXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiVC5GVUxMXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIlQuT1dOXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIlQuRVZFUllcIiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieXotYXBwbGljYXRpb24tbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZCBvZiBsaXN0RGF0YVwiIChjbGljayk9XCJvcGVuKGQpXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgICAgICAgPGg0Pnt7IGQubmFtZSB9fTwvaDQ+XG4gICAgICAgICAgICAgICAgICA8cD57eyBkLmludHJvIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSAgICAgIGhlYWRlciBlbmQtLT5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgWXpIZWFkZXJBcHBsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgVCA9IFRPUElDO1xuICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG9waWNEYXRhOiBIZWFkZXJUb3BpY1tdID0gW107XG4gIGxpc3REYXRhOiBIZWFkZXJUb3BpY1tdID0gW107XG4gIHRvcGljOiBUT1BJQyA9IFRPUElDLkZVTEw7XG4gIGNob29zZWQ6IEhlYWRlclRvcGljIHwgdW5kZWZpbmVkO1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3Q6IEluamVjdG9yLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpMThuOiBZekkxOE5TZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogX0h0dHBDbGllbnRcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudG9waWNEYXRhID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgdGhpcy5saXN0RGF0YSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzLmZvckVhY2goZiA9PiBmLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZGlmZkNoYW5nZShmbGFnPzogYm9vbGVhbikge1xuICAgIGlmIChmbGFnKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gIXRoaXMuYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIGluaXRUb3BpYyh0b3BpYzogVE9QSUMpIHtcbiAgICB0aGlzLnNlYXJjaFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmxpc3REYXRhID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgdGhpcy50b3BpYyA9IHRvcGljO1xuICB9XG5cbiAgZnVsbCgpIHtcbiAgICB0aGlzLmluaXRUb3BpYyhUT1BJQy5GVUxMKTtcbiAgfVxuXG4gIG93bigpIHtcbiAgICB0aGlzLmluaXRUb3BpYyhUT1BJQy5PV04pO1xuICAgIGNvbnN0IHRlbXA6IEhlYWRlclRvcGljW10gPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICB0aGlzLmxpc3REYXRhID0gdGVtcFxuICAgICAgLmZpbHRlcigodG9waWM6IEhlYWRlclRvcGljKSA9PiB7XG4gICAgICAgIHRvcGljLmNoaWxkcmVuID0gdG9waWMuY2hpbGRyZW4uZmlsdGVyKChjaGlsZDogSGVhZGVyVG9waWMpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hpbGQuYXV0aDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0b3BpYztcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKCh0b3BpYzogSGVhZGVyVG9waWMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRvcGljLmNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgICB9KTtcbiAgfVxuXG4gIGV2ZXJ5KGU6IEhlYWRlclRvcGljKSB7XG4gICAgdGhpcy5pbml0VG9waWMoVE9QSUMuRVZFUlkpO1xuICAgIHRoaXMuY2hvb3NlZCA9IGU7XG4gICAgY29uc3QgdGVtcDogSGVhZGVyVG9waWNbXSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIHRoaXMubGlzdERhdGEgPSBbLi4udGVtcC5maWx0ZXIodCA9PiB0LmtleSA9PT0gZS5rZXkpWzBdLmNoaWxkcmVuXTtcbiAgfVxuXG4gIG9uU2VhcmNoKCkge1xuICAgIGNvbnN0IHRlbXA6IEhlYWRlclRvcGljW10gPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICAvLyDlpoLmnpzmkJzntKLovpPlhaXnmoTmnInlgLxcbiAgICBpZiAodGhpcy5zZWFyY2hWYWx1ZSkge1xuICAgICAgLy8g6L+H5ruk6I+c5Y2V6L+H5ruk5Ye65pCc57Si55qE5YC8XG4gICAgICB0aGlzLmxpc3REYXRhID0gdGVtcFxuICAgICAgICAuZmlsdGVyKCh0b3BpYzogSGVhZGVyVG9waWMpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pMThuLmZhbnlpKHRvcGljLm5hbWUpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUhKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRvcGljO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b3BpYy5jaGlsZHJlbiA9IHRvcGljLmNoaWxkcmVuLmZpbHRlcigoY2hpbGQ6IEhlYWRlclRvcGljKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmkxOG4uZmFueWkoY2hpbGQubmFtZSkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZSEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdG9waWM7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKCh0b3BpYzogSGVhZGVyVG9waWMpID0+IHtcbiAgICAgICAgICByZXR1cm4gdG9waWMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOWmguaenOayoeacieWAvCzlj5bmtojmkJzntKJcbiAgICAgIHRoaXMubGlzdERhdGEgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICB9XG4gIH1cblxuICBvcGVuKHRvcGljOiBIZWFkZXJUb3BpYykge1xuICAgIGlmICh0b3BpYy5rZXkpIHtcbiAgICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAucG9zdChgL2FwcC1tYW5hZ2VyL3dlYi1zY2FuL3NhdmVgLCB7XG4gICAgICAgICAgICBhcHBJZDogdG9waWMua2V5LFxuICAgICAgICAgICAgY3JlYXRlRGF0ZTogbmV3IERhdGUoKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgICApO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRvcGljLnRhcmdldCkge1xuICAgICAgY2FzZSAnaHJlZic6XG4gICAgICAgIHRoaXMuaW5qZWN0LmdldChXSU5ET1cpLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmxhbmsnOlxuICAgICAgICB0aGlzLmluamVjdC5nZXQoV0lORE9XKS5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RhcmdldCc6XG4gICAgICAgIHRoaXMuaW5qZWN0LmdldChXSU5ET1cpLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5pbmplY3QuZ2V0KFdJTkRPVykubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ng-zorro-antd/modal";
4
+ import * as i2 from "ng-zorro-antd/message";
5
+ import * as i3 from "ng-zorro-antd/core/transition-patch";
6
+ import * as i4 from "ng-zorro-antd/icon";
7
+ import * as i5 from "@yelon/theme";
8
+ export class YzHeaderClearStorageComponent {
9
+ constructor(modalSrv, messageSrv) {
10
+ this.modalSrv = modalSrv;
11
+ this.messageSrv = messageSrv;
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
+ }
23
+ YzHeaderClearStorageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderClearStorageComponent, deps: [{ token: i1.NzModalService }, { token: i2.NzMessageService }], target: i0.ɵɵFactoryTarget.Component });
24
+ YzHeaderClearStorageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: YzHeaderClearStorageComponent, selector: "yz-header-clear-storage", host: { listeners: { "click": "_click()" }, properties: { "class.d-block": "true" } }, ngImport: i0, template: `
25
+ <i nz-icon nzType="tool"></i>
26
+ {{ 'menu.clear.local.storage' | i18n }}
27
+ `, isInline: true, directives: [{ type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i4.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], pipes: { "i18n": i5.I18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderClearStorageComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'yz-header-clear-storage',
32
+ template: `
33
+ <i nz-icon nzType="tool"></i>
34
+ {{ 'menu.clear.local.storage' | i18n }}
35
+ `,
36
+ host: {
37
+ '[class.d-block]': 'true'
38
+ },
39
+ changeDetection: ChangeDetectionStrategy.OnPush
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.NzModalService }, { type: i2.NzMessageService }]; }, propDecorators: { _click: [{
42
+ type: HostListener,
43
+ args: ['click']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouY2xlYXItc3RvcmFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3dpZGdldHMveXouY2xlYXItc3RvcmFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFnQmpGLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBb0IsUUFBd0IsRUFBVSxVQUE0QjtRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQWtCO0lBQUcsQ0FBQztJQUd0RixNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDcEIsT0FBTyxFQUFFLG9DQUFvQztZQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNYLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEhBWlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsc0pBVDlCOzs7R0FHVDsyRkFNVSw2QkFBNkI7a0JBWHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFOzs7R0FHVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsTUFBTTtxQkFDMUI7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO29JQUtDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE56TWVzc2FnZVNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL21lc3NhZ2UnO1xuaW1wb3J0IHsgTnpNb2RhbFNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL21vZGFsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXotaGVhZGVyLWNsZWFyLXN0b3JhZ2UnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpIG56LWljb24gbnpUeXBlPVwidG9vbFwiPjwvaT5cbiAgICB7eyAnbWVudS5jbGVhci5sb2NhbC5zdG9yYWdlJyB8IGkxOG4gfX1cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZC1ibG9ja10nOiAndHJ1ZSdcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgWXpIZWFkZXJDbGVhclN0b3JhZ2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU3J2OiBOek1vZGFsU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlU3J2OiBOek1lc3NhZ2VTZXJ2aWNlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgX2NsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxTcnYuY29uZmlybSh7XG4gICAgICBuelRpdGxlOiAnTWFrZSBzdXJlIGNsZWFyIGFsbCBsb2NhbCBzdG9yYWdlPycsXG4gICAgICBuek9uT2s6ICgpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgIHRoaXMubWVzc2FnZVNydi5zdWNjZXNzKCdDbGVhciBGaW5pc2hlZCEnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';
2
+ import screenfull from 'screenfull';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ng-zorro-antd/core/transition-patch";
5
+ import * as i2 from "ng-zorro-antd/icon";
6
+ import * as i3 from "@yelon/theme";
7
+ export class YzHeaderFullScreenComponent {
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
+ }
20
+ YzHeaderFullScreenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderFullScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ YzHeaderFullScreenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: YzHeaderFullScreenComponent, selector: "yz-header-fullscreen", host: { listeners: { "window:resize": "_resize()", "click": "_click()" }, properties: { "class.d-block": "true" } }, ngImport: i0, template: `
22
+ <i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
23
+ {{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
24
+ `, isInline: true, directives: [{ type: i1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], pipes: { "i18n": i3.I18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderFullScreenComponent, decorators: [{
26
+ type: Component,
27
+ args: [{
28
+ selector: 'yz-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.d-block]': 'true'
35
+ },
36
+ changeDetection: ChangeDetectionStrategy.OnPush
37
+ }]
38
+ }], propDecorators: { _resize: [{
39
+ type: HostListener,
40
+ args: ['window:resize']
41
+ }], _click: [{
42
+ type: HostListener,
43
+ args: ['click']
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouZnVsbHNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3dpZGdldHMveXouZnVsbHNjcmVlbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7OztBQWFwQyxNQUFNLE9BQU8sMkJBQTJCO0lBWHhDO1FBWUUsV0FBTSxHQUFHLEtBQUssQ0FBQztLQWFoQjtJQVZDLE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7SUFDeEMsQ0FBQztJQUdELE1BQU07UUFDSixJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDeEIsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7d0hBYlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsaUxBVDVCOzs7R0FHVDsyRkFNVSwyQkFBMkI7a0JBWHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7R0FHVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsTUFBTTtxQkFDMUI7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUtDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxlQUFlO2dCQU03QixNQUFNO3NCQURMLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgc2NyZWVuZnVsbCBmcm9tICdzY3JlZW5mdWxsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXotaGVhZGVyLWZ1bGxzY3JlZW4nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpIG56LWljb24gW256VHlwZV09XCJzdGF0dXMgPyAnZnVsbHNjcmVlbi1leGl0JyA6ICdmdWxsc2NyZWVuJ1wiPjwvaT5cbiAgICB7eyAoc3RhdHVzID8gJ21lbnUuZnVsbHNjcmVlbi5leGl0JyA6ICdtZW51LmZ1bGxzY3JlZW4nKSB8IGkxOG4gfX1cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZC1ibG9ja10nOiAndHJ1ZSdcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgWXpIZWFkZXJGdWxsU2NyZWVuQ29tcG9uZW50IHtcbiAgc3RhdHVzID0gZmFsc2U7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIF9yZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXMgPSBzY3JlZW5mdWxsLmlzRnVsbHNjcmVlbjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgX2NsaWNrKCk6IHZvaWQge1xuICAgIGlmIChzY3JlZW5mdWxsLmlzRW5hYmxlZCkge1xuICAgICAgc2NyZWVuZnVsbC50b2dnbGUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,115 @@
1
+ import { __decorate } from "tslib";
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core';
4
+ import { YUNZAI_I18N_TOKEN } from '@yelon/theme';
5
+ import { InputBoolean } from '@yelon/util/decorator';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@yelon/theme";
8
+ import * as i2 from "ng-zorro-antd/dropdown";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "ng-zorro-antd/core/transition-patch";
11
+ import * as i5 from "ng-zorro-antd/icon";
12
+ import * as i6 from "ng-zorro-antd/menu";
13
+ import * as i7 from "../yz.i18n.service";
14
+ export class YzHeaderI18NComponent {
15
+ constructor(settings, i18n, doc) {
16
+ this.settings = settings;
17
+ this.i18n = i18n;
18
+ this.doc = doc;
19
+ /** Whether to display language text */
20
+ this.showLangText = true;
21
+ }
22
+ get langs() {
23
+ return this.i18n.getLangs();
24
+ }
25
+ get curLangCode() {
26
+ return this.settings.layout.lang;
27
+ }
28
+ change(lang) {
29
+ const spinEl = this.doc.createElement('div');
30
+ spinEl.setAttribute('class', `page-loading ant-spin ant-spin-lg ant-spin-spinning`);
31
+ spinEl.innerHTML = `<span class="ant-spin-dot ant-spin-dot-spin"><i></i><i></i><i></i><i></i></span>`;
32
+ this.doc.body.appendChild(spinEl);
33
+ this.i18n.loadLangData(lang).subscribe(res => {
34
+ this.i18n.use(lang, res);
35
+ this.settings.setLayout('lang', lang);
36
+ setTimeout(() => this.doc.location.reload());
37
+ });
38
+ }
39
+ }
40
+ YzHeaderI18NComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderI18NComponent, deps: [{ token: i1.SettingsService }, { token: YUNZAI_I18N_TOKEN }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
41
+ YzHeaderI18NComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: YzHeaderI18NComponent, selector: "yz-header-i18n", inputs: { showLangText: "showLangText" }, ngImport: i0, template: `
42
+ <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
43
+ <i nz-icon nzType="global"></i>
44
+ {{ 'menu.lang' | i18n }}
45
+ <i nz-icon nzType="down"></i>
46
+ </div>
47
+ <i
48
+ *ngIf="!showLangText"
49
+ nz-dropdown
50
+ [nzDropdownMenu]="langMenu"
51
+ nzPlacement="bottomRight"
52
+ nz-icon
53
+ nzType="global"
54
+ ></i>
55
+ <nz-dropdown-menu #langMenu="nzDropdownMenu">
56
+ <ul nz-menu>
57
+ <li
58
+ nz-menu-item
59
+ *ngFor="let item of langs"
60
+ [nzSelected]="item.code === curLangCode"
61
+ (click)="change(item.code)"
62
+ >
63
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
64
+ {{ item.text }}
65
+ </li>
66
+ </ul>
67
+ </nz-dropdown-menu>
68
+ `, isInline: true, components: [{ type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { type: i4.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i5.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i6.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NzMenuItemDirective, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }], pipes: { "i18n": i1.I18nPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
+ __decorate([
70
+ InputBoolean()
71
+ ], YzHeaderI18NComponent.prototype, "showLangText", void 0);
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: YzHeaderI18NComponent, decorators: [{
73
+ type: Component,
74
+ args: [{
75
+ selector: 'yz-header-i18n',
76
+ template: `
77
+ <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
78
+ <i nz-icon nzType="global"></i>
79
+ {{ 'menu.lang' | i18n }}
80
+ <i nz-icon nzType="down"></i>
81
+ </div>
82
+ <i
83
+ *ngIf="!showLangText"
84
+ nz-dropdown
85
+ [nzDropdownMenu]="langMenu"
86
+ nzPlacement="bottomRight"
87
+ nz-icon
88
+ nzType="global"
89
+ ></i>
90
+ <nz-dropdown-menu #langMenu="nzDropdownMenu">
91
+ <ul nz-menu>
92
+ <li
93
+ nz-menu-item
94
+ *ngFor="let item of langs"
95
+ [nzSelected]="item.code === curLangCode"
96
+ (click)="change(item.code)"
97
+ >
98
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
99
+ {{ item.text }}
100
+ </li>
101
+ </ul>
102
+ </nz-dropdown-menu>
103
+ `,
104
+ changeDetection: ChangeDetectionStrategy.OnPush
105
+ }]
106
+ }], ctorParameters: function () { return [{ type: i1.SettingsService }, { type: i7.YzI18NService, decorators: [{
107
+ type: Inject,
108
+ args: [YUNZAI_I18N_TOKEN]
109
+ }] }, { type: undefined, decorators: [{
110
+ type: Inject,
111
+ args: [DOCUMENT]
112
+ }] }]; }, propDecorators: { showLangText: [{
113
+ type: Input
114
+ }] } });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouaTE4bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L3dpZGdldHMveXouaTE4bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUNsRSxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFvQ25FLE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsWUFDVSxRQUF5QixFQUNFLElBQW1CLEVBQzVCLEdBQVE7UUFGMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDRSxTQUFJLEdBQUosSUFBSSxDQUFlO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFkcEMsdUNBQXVDO1FBQ2QsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFjMUMsQ0FBQztJQVpKLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQVFELE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLHFEQUFxRCxDQUFDLENBQUM7UUFDcEYsTUFBTSxDQUFDLFNBQVMsR0FBRyxrRkFBa0YsQ0FBQztRQUN0RyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEE5QlUscUJBQXFCLGlEQWV0QixpQkFBaUIsYUFDakIsUUFBUTtzR0FoQlAscUJBQXFCLGdHQTlCdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtBQU13QjtJQUFmLFlBQVksRUFBRTsyREFBcUI7MkZBSGxDLHFCQUFxQjtrQkFoQ2pDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFnQkksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLFFBQVE7NENBYk8sWUFBWTtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgWVVOWkFJX0kxOE5fVE9LRU4sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIElucHV0Qm9vbGVhbiB9IGZyb20gJ0B5ZWxvbi91dGlsL2RlY29yYXRvcic7XG5cbmltcG9ydCB7IFl6STE4TlNlcnZpY2UgfSBmcm9tICcuLi95ei5pMThuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5ei1oZWFkZXItaTE4bicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cInNob3dMYW5nVGV4dFwiIG56LWRyb3Bkb3duIFtuekRyb3Bkb3duTWVudV09XCJsYW5nTWVudVwiIG56UGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIj5cbiAgICAgIDxpIG56LWljb24gbnpUeXBlPVwiZ2xvYmFsXCI+PC9pPlxuICAgICAge3sgJ21lbnUubGFuZycgfCBpMThuIH19XG4gICAgICA8aSBuei1pY29uIG56VHlwZT1cImRvd25cIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGlcbiAgICAgICpuZ0lmPVwiIXNob3dMYW5nVGV4dFwiXG4gICAgICBuei1kcm9wZG93blxuICAgICAgW256RHJvcGRvd25NZW51XT1cImxhbmdNZW51XCJcbiAgICAgIG56UGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIlxuICAgICAgbnotaWNvblxuICAgICAgbnpUeXBlPVwiZ2xvYmFsXCJcbiAgICA+PC9pPlxuICAgIDxuei1kcm9wZG93bi1tZW51ICNsYW5nTWVudT1cIm56RHJvcGRvd25NZW51XCI+XG4gICAgICA8dWwgbnotbWVudT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgbnotbWVudS1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGFuZ3NcIlxuICAgICAgICAgIFtuelNlbGVjdGVkXT1cIml0ZW0uY29kZSA9PT0gY3VyTGFuZ0NvZGVcIlxuICAgICAgICAgIChjbGljayk9XCJjaGFuZ2UoaXRlbS5jb2RlKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiByb2xlPVwiaW1nXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLnRleHRcIiBjbGFzcz1cInByLXhzXCI+e3sgaXRlbS5hYmJyIH19PC9zcGFuPlxuICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L256LWRyb3Bkb3duLW1lbnU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFl6SGVhZGVySTE4TkNvbXBvbmVudCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zaG93TGFuZ1RleHQ6IEJvb2xlYW5JbnB1dDtcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBsYW5ndWFnZSB0ZXh0ICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93TGFuZ1RleHQgPSB0cnVlO1xuXG4gIGdldCBsYW5ncygpOiBBcnJheTx7IGNvZGU6IHN0cmluZzsgdGV4dDogc3RyaW5nOyBhYmJyOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmkxOG4uZ2V0TGFuZ3MoKTtcbiAgfVxuXG4gIGdldCBjdXJMYW5nQ29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmxheW91dC5sYW5nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIEBJbmplY3QoWVVOWkFJX0kxOE5fVE9LRU4pIHByaXZhdGUgaTE4bjogWXpJMThOU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogYW55XG4gICkge31cblxuICBjaGFuZ2UobGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3BpbkVsID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc3BpbkVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBgcGFnZS1sb2FkaW5nIGFudC1zcGluIGFudC1zcGluLWxnIGFudC1zcGluLXNwaW5uaW5nYCk7XG4gICAgc3BpbkVsLmlubmVySFRNTCA9IGA8c3BhbiBjbGFzcz1cImFudC1zcGluLWRvdCBhbnQtc3Bpbi1kb3Qtc3BpblwiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+YDtcbiAgICB0aGlzLmRvYy5ib2R5LmFwcGVuZENoaWxkKHNwaW5FbCk7XG5cbiAgICB0aGlzLmkxOG4ubG9hZExhbmdEYXRhKGxhbmcpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy5pMThuLnVzZShsYW5nLCByZXMpO1xuICAgICAgdGhpcy5zZXR0aW5ncy5zZXRMYXlvdXQoJ2xhbmcnLCBsYW5nKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kb2MubG9jYXRpb24ucmVsb2FkKCkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=