@yelon/bis 17.2.1 → 17.2.3

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 +160 -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 +184 -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 +180 -0
  27. package/esm2022/yunzai-widgets/yunzai-user.component.mjs +120 -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 +554 -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 +396 -2781
  35. package/fesm2022/layout.mjs.map +1 -1
  36. package/fesm2022/yunzai-widgets.mjs +563 -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 +14 -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 +24 -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 +25 -0
  59. package/yunzai-widgets/yunzai-user.component.d.ts +22 -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,368 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, inject } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { Subject, takeUntil } from 'rxjs';
5
+ import { mergeBisConfig } from '@yelon/bis/config';
6
+ import { _HttpClient, I18nPipe, YunzaiHttpI18NService } from '@yelon/theme';
7
+ import { useLocalStorageHeader, WINDOW, YunzaiConfigService } from '@yelon/util';
8
+ import { NzFormModule } from 'ng-zorro-antd/form';
9
+ import { NzGridModule } from 'ng-zorro-antd/grid';
10
+ import { NzInputModule } from 'ng-zorro-antd/input';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/forms";
13
+ import * as i2 from "ng-zorro-antd/grid";
14
+ import * as i3 from "ng-zorro-antd/input";
15
+ import * as i4 from "@angular/common";
16
+ export class YunzaiNavApplicationComponent {
17
+ constructor() {
18
+ this.config = mergeBisConfig(inject(YunzaiConfigService));
19
+ this.http = inject(_HttpClient);
20
+ this.win = inject(WINDOW);
21
+ this.i18n = inject(YunzaiHttpI18NService);
22
+ this.destroy$ = new Subject();
23
+ this.state = {
24
+ active: false,
25
+ type: 'all',
26
+ topic: undefined,
27
+ topics: [],
28
+ list: [],
29
+ search: null
30
+ };
31
+ }
32
+ get showAllMenu() {
33
+ if (this.config.nav)
34
+ return this.config.nav.all;
35
+ return true;
36
+ }
37
+ get showMineMenu() {
38
+ if (this.config.nav)
39
+ return this.config.nav.mine;
40
+ return true;
41
+ }
42
+ ngOnInit() {
43
+ this.fetchAllTopic();
44
+ this.attachNav('all');
45
+ this.win.addEventListener('click', (event) => {
46
+ const { target } = event;
47
+ const btn = this.win.document.getElementById('navBtn');
48
+ const dropdown = this.win.document.getElementById('navDropdown');
49
+ if (btn && dropdown && !dropdown.contains(target) && !btn.contains(target)) {
50
+ this.state.active = false;
51
+ }
52
+ });
53
+ }
54
+ fetchAllTopic() {
55
+ const [, getTopics] = useLocalStorageHeader();
56
+ this.state.topics = getTopics();
57
+ }
58
+ attachNav(type, topic) {
59
+ this.state.type = type;
60
+ this.clearSearch();
61
+ if (type === 'all') {
62
+ this.displayAllNav();
63
+ }
64
+ if (type === 'mine') {
65
+ this.displayMineNav();
66
+ }
67
+ if (type === 'other' && topic) {
68
+ this.displayOtherNav(topic);
69
+ }
70
+ }
71
+ clearSearch() {
72
+ this.state.search = null;
73
+ }
74
+ displayAllNav() {
75
+ const [, getTopics] = useLocalStorageHeader();
76
+ this.state.list = getTopics();
77
+ }
78
+ displayMineNav() {
79
+ const [, getTopics] = useLocalStorageHeader();
80
+ this.state.list = getTopics()
81
+ .filter((topic) => {
82
+ topic.children = topic.children.filter((child) => {
83
+ return child.auth;
84
+ });
85
+ return topic;
86
+ })
87
+ .filter((topic) => {
88
+ return topic.children.length > 0;
89
+ });
90
+ }
91
+ displayOtherNav(topic) {
92
+ const [, getTopics] = useLocalStorageHeader();
93
+ this.state.topic = topic;
94
+ const temp = getTopics();
95
+ this.state.list = temp.filter(t => t.key === topic.key)[0].children;
96
+ }
97
+ diffChange(flag) {
98
+ if (flag) {
99
+ this.state.active = flag;
100
+ }
101
+ else {
102
+ this.state.active = !this.state.active;
103
+ }
104
+ }
105
+ open(topic) {
106
+ if (topic.key) {
107
+ this.http
108
+ .post(`/app-manager/web-scan/save`, {
109
+ appId: topic.key,
110
+ createDate: new Date()
111
+ })
112
+ .pipe(takeUntil(this.destroy$))
113
+ .subscribe();
114
+ }
115
+ switch (topic.target) {
116
+ case 'href':
117
+ this.win.location.href = topic.url;
118
+ break;
119
+ case 'blank':
120
+ this.win.location.href = topic.url;
121
+ break;
122
+ case 'target':
123
+ this.win.location.href = topic.url;
124
+ break;
125
+ default:
126
+ this.win.location.href = topic.url;
127
+ break;
128
+ }
129
+ }
130
+ onSearch() {
131
+ const [, getTopics] = useLocalStorageHeader();
132
+ const temp = getTopics();
133
+ if (this.state.search) {
134
+ this.state.list = temp
135
+ .filter((topic) => {
136
+ if (this.i18n.fanyi(topic.name).includes(this.state.search)) {
137
+ return topic;
138
+ }
139
+ else {
140
+ topic.children = topic.children.filter((child) => {
141
+ return this.i18n.fanyi(child.name).includes(this.state.search);
142
+ });
143
+ return topic;
144
+ }
145
+ })
146
+ .filter((topic) => {
147
+ return topic.children.length > 0;
148
+ });
149
+ }
150
+ else {
151
+ const [, getTopics] = useLocalStorageHeader();
152
+ this.state.list = getTopics();
153
+ }
154
+ }
155
+ ngOnDestroy() {
156
+ this.destroy$.complete();
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiNavApplicationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: YunzaiNavApplicationComponent, isStandalone: true, selector: "yunzai-layout-nav-application", ngImport: i0, template: `
160
+ <ng-template #search>
161
+ <div nz-row class="yz-application-list-search">
162
+ <nz-input-group [nzPrefix]="prefixTemplate">
163
+ <input
164
+ data-event-id="_nav_search"
165
+ type="text"
166
+ nz-input
167
+ placeholder="{{ 'application.search' | i18n }}"
168
+ [(ngModel)]="state.search"
169
+ (ngModelChange)="onSearch()"
170
+ />
171
+ <ng-template #prefixTemplate>
172
+ <i nz-icon nzType="search" nzTheme="outline"></i>
173
+ </ng-template>
174
+ </nz-input-group>
175
+ </div>
176
+ </ng-template>
177
+
178
+ <ng-template #ld>
179
+ <div class="yz-application-list">
180
+ <ul>
181
+ @for (topic of state.list; track topic) {
182
+ <li>
183
+ <h5>{{ topic.name | i18n }}</h5>
184
+ @for (nav of topic.children; track nav) {
185
+ <a
186
+ data-event-id="_nav_item"
187
+ [attr.data-name]="nav.name | i18n"
188
+ href="javascript:;"
189
+ (click)="open(nav)"
190
+ >{{ nav.name | i18n }}</a
191
+ >
192
+ }
193
+ </li>
194
+ }
195
+ </ul>
196
+ </div>
197
+ </ng-template>
198
+
199
+ <div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()"
200
+ >{{ 'mode.nav' | i18n }}
201
+ </div>
202
+
203
+ <div class="yz-application" id="navDropdown" nz-row *ngIf="state.active">
204
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
205
+ @if (showAllMenu) {
206
+ <div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')"
207
+ >{{ 'mode.nav.all' | i18n }}
208
+ </div>
209
+ }
210
+ @if (showMineMenu) {
211
+ <div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')"
212
+ >{{ 'mode.nav.mine' | i18n }}
213
+ </div>
214
+ }
215
+ @for (nav of state.topics; track nav) {
216
+ <div
217
+ data-event-id="_nav_topic"
218
+ [attr.data-name]="nav.name | i18n"
219
+ class="yz-application-text"
220
+ (click)="attachNav('other', nav)"
221
+ >{{ nav.name | i18n }}
222
+ </div>
223
+ }
224
+ </div>
225
+ <div nz-col [nzSpan]="21" class="yz-application-container">
226
+ @switch (state.type) {
227
+ @case ('all') {
228
+ <div>
229
+ <ng-template [ngTemplateOutlet]="search" />
230
+ <ng-template [ngTemplateOutlet]="ld" />
231
+ </div>
232
+ }
233
+ @case ('mine') {
234
+ <div>
235
+ <ng-template [ngTemplateOutlet]="search" />
236
+ <ng-template [ngTemplateOutlet]="ld" />
237
+ </div>
238
+ }
239
+ @case ('other') {
240
+ <div class="yz-application-list">
241
+ <div class="yz-application-list-item">
242
+ <ul>
243
+ @for (nav of state.list; track nav) {
244
+ <li data-event-id="_nav_item" [attr.data-name]="nav.name | i18n" (click)="open(nav)">
245
+ <a href="javascript:;">
246
+ <h4>{{ nav.name | i18n }}</h4>
247
+ <p>{{ nav.intro | i18n }}</p>
248
+ </a>
249
+ </li>
250
+ }
251
+ </ul>
252
+ </div>
253
+ </div>
254
+ }
255
+ }
256
+ </div>
257
+ </div>
258
+ `, isInline: true, dependencies: [{ kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i2.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"] }, { kind: "directive", type: i2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i3.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i3.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i3.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzGridModule }] }); }
259
+ }
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiNavApplicationComponent, decorators: [{
261
+ type: Component,
262
+ args: [{
263
+ selector: `yunzai-layout-nav-application`,
264
+ template: `
265
+ <ng-template #search>
266
+ <div nz-row class="yz-application-list-search">
267
+ <nz-input-group [nzPrefix]="prefixTemplate">
268
+ <input
269
+ data-event-id="_nav_search"
270
+ type="text"
271
+ nz-input
272
+ placeholder="{{ 'application.search' | i18n }}"
273
+ [(ngModel)]="state.search"
274
+ (ngModelChange)="onSearch()"
275
+ />
276
+ <ng-template #prefixTemplate>
277
+ <i nz-icon nzType="search" nzTheme="outline"></i>
278
+ </ng-template>
279
+ </nz-input-group>
280
+ </div>
281
+ </ng-template>
282
+
283
+ <ng-template #ld>
284
+ <div class="yz-application-list">
285
+ <ul>
286
+ @for (topic of state.list; track topic) {
287
+ <li>
288
+ <h5>{{ topic.name | i18n }}</h5>
289
+ @for (nav of topic.children; track nav) {
290
+ <a
291
+ data-event-id="_nav_item"
292
+ [attr.data-name]="nav.name | i18n"
293
+ href="javascript:;"
294
+ (click)="open(nav)"
295
+ >{{ nav.name | i18n }}</a
296
+ >
297
+ }
298
+ </li>
299
+ }
300
+ </ul>
301
+ </div>
302
+ </ng-template>
303
+
304
+ <div data-event-id="_nav_app" id="navBtn" class="yunzai-default__nav-item" (click)="diffChange()"
305
+ >{{ 'mode.nav' | i18n }}
306
+ </div>
307
+
308
+ <div class="yz-application" id="navDropdown" nz-row *ngIf="state.active">
309
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
310
+ @if (showAllMenu) {
311
+ <div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')"
312
+ >{{ 'mode.nav.all' | i18n }}
313
+ </div>
314
+ }
315
+ @if (showMineMenu) {
316
+ <div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')"
317
+ >{{ 'mode.nav.mine' | i18n }}
318
+ </div>
319
+ }
320
+ @for (nav of state.topics; track nav) {
321
+ <div
322
+ data-event-id="_nav_topic"
323
+ [attr.data-name]="nav.name | i18n"
324
+ class="yz-application-text"
325
+ (click)="attachNav('other', nav)"
326
+ >{{ nav.name | i18n }}
327
+ </div>
328
+ }
329
+ </div>
330
+ <div nz-col [nzSpan]="21" class="yz-application-container">
331
+ @switch (state.type) {
332
+ @case ('all') {
333
+ <div>
334
+ <ng-template [ngTemplateOutlet]="search" />
335
+ <ng-template [ngTemplateOutlet]="ld" />
336
+ </div>
337
+ }
338
+ @case ('mine') {
339
+ <div>
340
+ <ng-template [ngTemplateOutlet]="search" />
341
+ <ng-template [ngTemplateOutlet]="ld" />
342
+ </div>
343
+ }
344
+ @case ('other') {
345
+ <div class="yz-application-list">
346
+ <div class="yz-application-list-item">
347
+ <ul>
348
+ @for (nav of state.list; track nav) {
349
+ <li data-event-id="_nav_item" [attr.data-name]="nav.name | i18n" (click)="open(nav)">
350
+ <a href="javascript:;">
351
+ <h4>{{ nav.name | i18n }}</h4>
352
+ <p>{{ nav.intro | i18n }}</p>
353
+ </a>
354
+ </li>
355
+ }
356
+ </ul>
357
+ </div>
358
+ </div>
359
+ }
360
+ }
361
+ </div>
362
+ </div>
363
+ `,
364
+ standalone: true,
365
+ imports: [I18nPipe, FormsModule, NzFormModule, NzInputModule, CommonModule, NzGridModule]
366
+ }]
367
+ }] });
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi1hcHBsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2xheW91dC1uYXYtYXBwbGljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixtQkFBbUIsRUFFcEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQTJHcEQsTUFBTSxPQUFPLDZCQUE2QjtJQXpHMUM7UUEwR21CLFdBQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNyRCxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLFFBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JDLGFB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QkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1HVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQzFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgbWVyZ2VCaXNDb25maWcgfSBmcm9tICdAeWVsb24vYmlzL2NvbmZpZyc7XG5pbXBvcnQgeyBfSHR0cENsaWVudCwgSTE4blBpcGUsIFl1bnphaUh0dHBJMThOU2VydmljZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQge1xuICBMYXlvdXROYXZBcHBsaWNhdGlvblN0YXRlLFxuICB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIsXG4gIFdJTkRPVyxcbiAgWXVuemFpQ29uZmlnU2VydmljZSxcbiAgWXVuemFpTmF2VG9waWNcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56Rm9ybU1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvZm9ybSc7XG5pbXBvcnQgeyBOekdyaWRNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2dyaWQnO1xuaW1wb3J0IHsgTnpJbnB1dE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGB5dW56YWktbGF5b3V0LW5hdi1hcHBsaWNhdGlvbmAsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gICAgICA8ZGl2IG56LXJvdyBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3Qtc2VhcmNoXCI+XG4gICAgICAgIDxuei1pbnB1dC1ncm91cCBbbnpQcmVmaXhdPVwicHJlZml4VGVtcGxhdGVcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGRhdGEtZXZlbnQtaWQ9XCJfbmF2X3NlYXJjaFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnYXBwbGljYXRpb24uc2VhcmNoJyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGF0ZS5zZWFyY2hcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZWZpeFRlbXBsYXRlPlxuICAgICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJzZWFyY2hcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbGQ+XG4gICAgICA8ZGl2IGNsYXNzPVwieXotYXBwbGljYXRpb24tbGlzdFwiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgQGZvciAodG9waWMgb2Ygc3RhdGUubGlzdDsgdHJhY2sgdG9waWMpIHtcbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgPGg1Pnt7IHRvcGljLm5hbWUgfCBpMThuIH19PC9oNT5cbiAgICAgICAgICAgICAgQGZvciAobmF2IG9mIHRvcGljLmNoaWxkcmVuOyB0cmFjayBuYXYpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgZGF0YS1ldmVudC1pZD1cIl9uYXZfaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwibmF2Lm5hbWUgfCBpMThuXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW4obmF2KVwiXG4gICAgICAgICAgICAgICAgICA+e3sgbmF2Lm5hbWUgfCBpMThuIH19PC9hXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGRhdGEtZXZlbnQtaWQ9XCJfbmF2X2FwcFwiIGlkPVwibmF2QnRuXCIgY2xhc3M9XCJ5dW56YWktZGVmYXVsdF9fbmF2LWl0ZW1cIiAoY2xpY2spPVwiZGlmZkNoYW5nZSgpXCJcbiAgICAgID57eyAnbW9kZS5uYXYnIHwgaTE4biB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uXCIgaWQ9XCJuYXZEcm9wZG93blwiIG56LXJvdyAqbmdJZj1cInN0YXRlLmFjdGl2ZVwiPlxuICAgICAgPGRpdiBuei1jb2wgW256U3Bhbl09XCIzXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10b3BpY1wiPlxuICAgICAgICBAaWYgKHNob3dBbGxNZW51KSB7XG4gICAgICAgICAgPGRpdiBkYXRhLWV2ZW50LWlkPVwiX25hdl90b3BpY1wiIGRhdGEtbmFtZT1cIuWFqOmDqOW6lOeUqFwiIGNsYXNzPVwieXotYXBwbGljYXRpb24tdGV4dFwiIChjbGljayk9XCJhdHRhY2hOYXYoJ2FsbCcpXCJcbiAgICAgICAgICAgID57eyAnbW9kZS5uYXYuYWxsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHNob3dNaW5lTWVudSkge1xuICAgICAgICAgIDxkaXYgZGF0YS1ldmVudC1pZD1cIl9uYXZfdG9waWNcIiBkYXRhLW5hbWU9XCLmiJHnmoTlupTnlKhcIiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLXRleHRcIiAoY2xpY2spPVwiYXR0YWNoTmF2KCdtaW5lJylcIlxuICAgICAgICAgICAgPnt7ICdtb2RlLm5hdi5taW5lJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChuYXYgb2Ygc3RhdGUudG9waWNzOyB0cmFjayBuYXYpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBkYXRhLWV2ZW50LWlkPVwiX25hdl90b3BpY1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwibmF2Lm5hbWUgfCBpMThuXCJcbiAgICAgICAgICAgIGNsYXNzPVwieXotYXBwbGljYXRpb24tdGV4dFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXR0YWNoTmF2KCdvdGhlcicsIG5hdilcIlxuICAgICAgICAgICAgPnt7IG5hdi5uYW1lIHwgaTE4biB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgbnotY29sIFtuelNwYW5dPVwiMjFcIiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWNvbnRhaW5lclwiPlxuICAgICAgICBAc3dpdGNoIChzdGF0ZS50eXBlKSB7XG4gICAgICAgICAgQGNhc2UgKCdhbGwnKSB7XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCIgLz5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ21pbmUnKSB7XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCIgLz5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoJ290aGVyJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKG5hdiBvZiBzdGF0ZS5saXN0OyB0cmFjayBuYXYpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtZXZlbnQtaWQ9XCJfbmF2X2l0ZW1cIiBbYXR0ci5kYXRhLW5hbWVdPVwibmF2Lm5hbWUgfCBpMThuXCIgKGNsaWNrKT1cIm9wZW4obmF2KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoND57eyBuYXYubmFtZSB8IGkxOG4gfX08L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgbmF2LmludHJvIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSTE4blBpcGUsIEZvcm1zTW9kdWxlLCBOekZvcm1Nb2R1bGUsIE56SW5wdXRNb2R1bGUsIENvbW1vbk1vZHVsZSwgTnpHcmlkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBZdW56YWlOYXZBcHBsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBtZXJnZUJpc0NvbmZpZyhpbmplY3QoWXVuemFpQ29uZmlnU2VydmljZSkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoX0h0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXSU5ET1cpO1xuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoWXVuemFpSHR0cEkxOE5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgc3RhdGU6IExheW91dE5hdkFwcGxpY2F0aW9uU3RhdGUgPSB7XG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICB0eXBlOiAnYWxsJyxcbiAgICB0b3BpYzogdW5kZWZpbmVkLFxuICAgIHRvcGljczogW10sXG4gICAgbGlzdDogW10sXG4gICAgc2VhcmNoOiBudWxsXG4gIH07XG5cbiAgZ2V0IHNob3dBbGxNZW51KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbmZpZy5uYXYpIHJldHVybiB0aGlzLmNvbmZpZy5uYXYhLmFsbCE7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgc2hvd01pbmVNZW51KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbmZpZy5uYXYpIHJldHVybiB0aGlzLmNvbmZpZy5uYXYhLm1pbmUhO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaEFsbFRvcGljKCk7XG4gICAgdGhpcy5hdHRhY2hOYXYoJ2FsbCcpO1xuICAgIHRoaXMud2luLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBOelNhZmVBbnkpID0+IHtcbiAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudDtcbiAgICAgIGNvbnN0IGJ0biA9IHRoaXMud2luLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZCdG4nKTtcbiAgICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy53aW4uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdkRyb3Bkb3duJyk7XG4gICAgICBpZiAoYnRuICYmIGRyb3Bkb3duICYmICFkcm9wZG93bi5jb250YWlucyh0YXJnZXQpICYmICFidG4uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICB0aGlzLnN0YXRlLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hBbGxUb3BpYygpOiB2b2lkIHtcbiAgICBjb25zdCBbLCBnZXRUb3BpY3NdID0gdXNlTG9jYWxTdG9yYWdlSGVhZGVyKCk7XG4gICAgdGhpcy5zdGF0ZS50b3BpY3MgPSBnZXRUb3BpY3MoKSE7XG4gIH1cblxuICBhdHRhY2hOYXYodHlwZTogJ2FsbCcgfCAnbWluZScgfCAnb3RoZXInLCB0b3BpYz86IFl1bnphaU5hdlRvcGljKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS50eXBlID0gdHlwZTtcbiAgICB0aGlzLmNsZWFyU2VhcmNoKCk7XG4gICAgaWYgKHR5cGUgPT09ICdhbGwnKSB7XG4gICAgICB0aGlzLmRpc3BsYXlBbGxOYXYoKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdtaW5lJykge1xuICAgICAgdGhpcy5kaXNwbGF5TWluZU5hdigpO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ290aGVyJyAmJiB0b3BpYykge1xuICAgICAgdGhpcy5kaXNwbGF5T3RoZXJOYXYodG9waWMpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuc2VhcmNoID0gbnVsbDtcbiAgfVxuXG4gIGRpc3BsYXlBbGxOYXYoKTogdm9pZCB7XG4gICAgY29uc3QgWywgZ2V0VG9waWNzXSA9IHVzZUxvY2FsU3RvcmFnZUhlYWRlcigpO1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IGdldFRvcGljcygpITtcbiAgfVxuXG4gIGRpc3BsYXlNaW5lTmF2KCk6IHZvaWQge1xuICAgIGNvbnN0IFssIGdldFRvcGljc10gPSB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIoKTtcbiAgICB0aGlzLnN0YXRlLmxpc3QgPSBnZXRUb3BpY3MoKSFcbiAgICAgIC5maWx0ZXIoKHRvcGljOiBZdW56YWlOYXZUb3BpYykgPT4ge1xuICAgICAgICB0b3BpYy5jaGlsZHJlbiA9IHRvcGljLmNoaWxkcmVuLmZpbHRlcigoY2hpbGQ6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkLmF1dGg7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdG9waWM7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigodG9waWM6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgIHJldHVybiB0b3BpYy5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgfSk7XG4gIH1cblxuICBkaXNwbGF5T3RoZXJOYXYodG9waWM6IFl1bnphaU5hdlRvcGljKTogdm9pZCB7XG4gICAgY29uc3QgWywgZ2V0VG9waWNzXSA9IHVzZUxvY2FsU3RvcmFnZUhlYWRlcigpO1xuICAgIHRoaXMuc3RhdGUudG9waWMgPSB0b3BpYztcbiAgICBjb25zdCB0ZW1wOiBZdW56YWlOYXZUb3BpY1tdID0gZ2V0VG9waWNzKCkhO1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IHRlbXAuZmlsdGVyKHQgPT4gdC5rZXkgPT09IHRvcGljLmtleSlbMF0uY2hpbGRyZW47XG4gIH1cblxuICBkaWZmQ2hhbmdlKGZsYWc/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGZsYWcpIHtcbiAgICAgIHRoaXMuc3RhdGUuYWN0aXZlID0gZmxhZztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZS5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgb3Blbih0b3BpYzogWXVuemFpTmF2VG9waWMpOiB2b2lkIHtcbiAgICBpZiAodG9waWMua2V5KSB7XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3QoYC9hcHAtbWFuYWdlci93ZWItc2Nhbi9zYXZlYCwge1xuICAgICAgICAgIGFwcElkOiB0b3BpYy5rZXksXG4gICAgICAgICAgY3JlYXRlRGF0ZTogbmV3IERhdGUoKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgc3dpdGNoICh0b3BpYy50YXJnZXQpIHtcbiAgICAgIGNhc2UgJ2hyZWYnOlxuICAgICAgICB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JsYW5rJzpcbiAgICAgICAgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0YXJnZXQnOlxuICAgICAgICB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgIGNvbnN0IFssIGdldFRvcGljc10gPSB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIoKTtcbiAgICBjb25zdCB0ZW1wOiBZdW56YWlOYXZUb3BpY1tdID0gZ2V0VG9waWNzKCkhO1xuICAgIGlmICh0aGlzLnN0YXRlLnNlYXJjaCkge1xuICAgICAgdGhpcy5zdGF0ZS5saXN0ID0gdGVtcFxuICAgICAgICAuZmlsdGVyKCh0b3BpYzogWXVuemFpTmF2VG9waWMpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pMThuLmZhbnlpKHRvcGljLm5hbWUpLmluY2x1ZGVzKHRoaXMuc3RhdGUuc2VhcmNoISkpIHtcbiAgICAgICAgICAgIHJldHVybiB0b3BpYztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9waWMuY2hpbGRyZW4gPSB0b3BpYy5jaGlsZHJlbi5maWx0ZXIoKGNoaWxkOiBZdW56YWlOYXZUb3BpYykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pMThuLmZhbnlpKGNoaWxkLm5hbWUpLmluY2x1ZGVzKHRoaXMuc3RhdGUuc2VhcmNoISk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0b3BpYztcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoKHRvcGljOiBZdW56YWlOYXZUb3BpYykgPT4ge1xuICAgICAgICAgIHJldHVybiB0b3BpYy5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgWywgZ2V0VG9waWNzXSA9IHVzZUxvY2FsU3RvcmFnZUhlYWRlcigpO1xuICAgICAgdGhpcy5zdGF0ZS5saXN0ID0gZ2V0VG9waWNzKCkhO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,160 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { _HttpClient, I18nPipe } from '@yelon/theme';
4
+ import { useLocalStorageHeader, WINDOW } from '@yelon/util';
5
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
6
+ import { NzIconModule } from 'ng-zorro-antd/icon';
7
+ import { NzTabsModule } from 'ng-zorro-antd/tabs';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "ng-zorro-antd/icon";
10
+ import * as i2 from "ng-zorro-antd/menu";
11
+ import * as i3 from "ng-zorro-antd/dropdown";
12
+ import * as i4 from "ng-zorro-antd/tabs";
13
+ export class YunzaiLayoutNavGroupComponent {
14
+ constructor() {
15
+ this.http = inject(_HttpClient);
16
+ this.destroy$ = new Subject();
17
+ this.win = inject(WINDOW);
18
+ this.state = {
19
+ topics: []
20
+ };
21
+ }
22
+ ngOnInit() {
23
+ const [, getTopics] = useLocalStorageHeader();
24
+ this.state.topics = getTopics() || [];
25
+ }
26
+ open(topic) {
27
+ if (topic.key) {
28
+ this.http
29
+ .post(`/app-manager/web-scan/save`, {
30
+ appId: topic.key,
31
+ createDate: new Date()
32
+ })
33
+ .pipe(takeUntil(this.destroy$))
34
+ .subscribe();
35
+ }
36
+ switch (topic.target) {
37
+ case 'href':
38
+ this.win.location.href = topic.url;
39
+ break;
40
+ case 'blank':
41
+ this.win.location.href = topic.url;
42
+ break;
43
+ case 'target':
44
+ this.win.location.href = topic.url;
45
+ break;
46
+ default:
47
+ this.win.location.href = topic.url;
48
+ break;
49
+ }
50
+ }
51
+ ngOnDestroy() {
52
+ this.destroy$.complete();
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiLayoutNavGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: YunzaiLayoutNavGroupComponent, isStandalone: true, selector: "yunzai-layout-nav-group", ngImport: i0, template: `
56
+ <div class="yz-application-group">
57
+ <nz-tabset>
58
+ @for (menu of state.topics; track menu) {
59
+ <nz-tab [nzTitle]="groupTitleTpl">
60
+ <ng-template #groupTitleTpl>
61
+ <a
62
+ data-event-id="_nav_topic"
63
+ [attr.data-name]="menu.name | i18n"
64
+ nz-dropdown
65
+ [nzDropdownMenu]="menuTpl"
66
+ [nzTrigger]="'click'"
67
+ [nzOverlayClassName]="'yz-application-dropdown'"
68
+ >
69
+ @if (menu.icon) {
70
+ <i nz-icon [nzType]="menu.icon" nzTheme="outline"></i>
71
+ }
72
+ {{ menu.name | i18n }}
73
+ @if (menu.children && menu.children.length > 0) {
74
+ <i nz-icon nzType="down" nzTheme="outline"></i>
75
+ }
76
+ </a>
77
+ <nz-dropdown-menu #menuTpl="nzDropdownMenu">
78
+ @if (menu.children && menu.children.length > 0) {
79
+ <ul nz-menu nzSelectable>
80
+ @for (item of menu.children; track item) {
81
+ <ng-container>
82
+ <li
83
+ data-event-id="_nav_item"
84
+ [attr.data-name]="item.name | i18n"
85
+ nz-menu-item
86
+ (click)="open(item)"
87
+ >
88
+ @if (item.icon) {
89
+ <i nz-icon [nzType]="item.icon" nzTheme="outline"></i>{{ item.name | i18n }}
90
+ }
91
+ </li>
92
+ </ng-container>
93
+ }
94
+ </ul>
95
+ }
96
+ </nz-dropdown-menu>
97
+ </ng-template>
98
+ </nz-tab>
99
+ }
100
+ </nz-tabset>
101
+ </div>
102
+ `, 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: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i2.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i3.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i3.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i3.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzTabsModule }, { kind: "component", type: i4.NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { kind: "component", type: i4.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }] }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiLayoutNavGroupComponent, decorators: [{
105
+ type: Component,
106
+ args: [{
107
+ selector: `yunzai-layout-nav-group`,
108
+ template: `
109
+ <div class="yz-application-group">
110
+ <nz-tabset>
111
+ @for (menu of state.topics; track menu) {
112
+ <nz-tab [nzTitle]="groupTitleTpl">
113
+ <ng-template #groupTitleTpl>
114
+ <a
115
+ data-event-id="_nav_topic"
116
+ [attr.data-name]="menu.name | i18n"
117
+ nz-dropdown
118
+ [nzDropdownMenu]="menuTpl"
119
+ [nzTrigger]="'click'"
120
+ [nzOverlayClassName]="'yz-application-dropdown'"
121
+ >
122
+ @if (menu.icon) {
123
+ <i nz-icon [nzType]="menu.icon" nzTheme="outline"></i>
124
+ }
125
+ {{ menu.name | i18n }}
126
+ @if (menu.children && menu.children.length > 0) {
127
+ <i nz-icon nzType="down" nzTheme="outline"></i>
128
+ }
129
+ </a>
130
+ <nz-dropdown-menu #menuTpl="nzDropdownMenu">
131
+ @if (menu.children && menu.children.length > 0) {
132
+ <ul nz-menu nzSelectable>
133
+ @for (item of menu.children; track item) {
134
+ <ng-container>
135
+ <li
136
+ data-event-id="_nav_item"
137
+ [attr.data-name]="item.name | i18n"
138
+ nz-menu-item
139
+ (click)="open(item)"
140
+ >
141
+ @if (item.icon) {
142
+ <i nz-icon [nzType]="item.icon" nzTheme="outline"></i>{{ item.name | i18n }}
143
+ }
144
+ </li>
145
+ </ng-container>
146
+ }
147
+ </ul>
148
+ }
149
+ </nz-dropdown-menu>
150
+ </ng-template>
151
+ </nz-tab>
152
+ }
153
+ </nz-tabset>
154
+ </div>
155
+ `,
156
+ standalone: true,
157
+ imports: [NzIconModule, NzDropDownModule, I18nPipe, NzTabsModule]
158
+ }]
159
+ }] });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2xheW91dC1uYXYtZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sRUFBa0IsTUFBTSxhQUFhLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBdURsRCxNQUFNLE9BQU8sNkJBQTZCO0lBckQxQztRQXNEbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNoQixRQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLFVBQUssR0FBd0I7WUFDM0IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO0tBb0NIO0lBbENDLFFBQVE7UUFDTixNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQXFCO1FBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUk7aUJBQ04sSUFBSSxDQUFDLDRCQUE0QixFQUFFO2dCQUNsQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUc7Z0JBQ2hCLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRTthQUN2QixDQUFDO2lCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBQ0QsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ25DLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBekNVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLG1GQW5EOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NULDJEQUVTLFlBQVksaU5BQUUsZ0JBQWdCLHU3QkFBRSxRQUFRLDRDQUFFLFlBQVk7OzJGQUVyRCw2QkFBNkI7a0JBckR6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDO2lCQUNsRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IF9IdHRwQ2xpZW50LCBJMThuUGlwZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBMYXlvdXROYXZHcm91cFN0YXRlLCB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIsIFdJTkRPVywgWXVuemFpTmF2VG9waWMgfSBmcm9tICdAeWVsb24vdXRpbCc7XG5pbXBvcnQgeyBOekRyb3BEb3duTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9kcm9wZG93bic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgTnpUYWJzTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90YWJzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBgeXVuemFpLWxheW91dC1uYXYtZ3JvdXBgLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi1ncm91cFwiPlxuICAgICAgPG56LXRhYnNldD5cbiAgICAgICAgQGZvciAobWVudSBvZiBzdGF0ZS50b3BpY3M7IHRyYWNrIG1lbnUpIHtcbiAgICAgICAgICA8bnotdGFiIFtuelRpdGxlXT1cImdyb3VwVGl0bGVUcGxcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZ3JvdXBUaXRsZVRwbD5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBkYXRhLWV2ZW50LWlkPVwiX25hdl90b3BpY1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cIm1lbnUubmFtZSB8IGkxOG5cIlxuICAgICAgICAgICAgICAgIG56LWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgW256RHJvcGRvd25NZW51XT1cIm1lbnVUcGxcIlxuICAgICAgICAgICAgICAgIFtuelRyaWdnZXJdPVwiJ2NsaWNrJ1wiXG4gICAgICAgICAgICAgICAgW256T3ZlcmxheUNsYXNzTmFtZV09XCIneXotYXBwbGljYXRpb24tZHJvcGRvd24nXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAobWVudS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICA8aSBuei1pY29uIFtuelR5cGVdPVwibWVudS5pY29uXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHt7IG1lbnUubmFtZSB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICBAaWYgKG1lbnUuY2hpbGRyZW4gJiYgbWVudS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICA8aSBuei1pY29uIG56VHlwZT1cImRvd25cIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPG56LWRyb3Bkb3duLW1lbnUgI21lbnVUcGw9XCJuekRyb3Bkb3duTWVudVwiPlxuICAgICAgICAgICAgICAgIEBpZiAobWVudS5jaGlsZHJlbiAmJiBtZW51LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIDx1bCBuei1tZW51IG56U2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtZW51LmNoaWxkcmVuOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWV2ZW50LWlkPVwiX25hdl9pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cIml0ZW0ubmFtZSB8IGkxOG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuei1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW4oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIG56LWljb24gW256VHlwZV09XCJpdGVtLmljb25cIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT57eyBpdGVtLm5hbWUgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L256LWRyb3Bkb3duLW1lbnU+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbnotdGFiPlxuICAgICAgICB9XG4gICAgICA8L256LXRhYnNldD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW056SWNvbk1vZHVsZSwgTnpEcm9wRG93bk1vZHVsZSwgSTE4blBpcGUsIE56VGFic01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgWXVuemFpTGF5b3V0TmF2R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChfSHR0cENsaWVudCk7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXSU5ET1cpO1xuICBzdGF0ZTogTGF5b3V0TmF2R3JvdXBTdGF0ZSA9IHtcbiAgICB0b3BpY3M6IFtdXG4gIH07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgWywgZ2V0VG9waWNzXSA9IHVzZUxvY2FsU3RvcmFnZUhlYWRlcigpO1xuICAgIHRoaXMuc3RhdGUudG9waWNzID0gZ2V0VG9waWNzKCkgfHwgW107XG4gIH1cblxuICBvcGVuKHRvcGljOiBZdW56YWlOYXZUb3BpYyk6IHZvaWQge1xuICAgIGlmICh0b3BpYy5rZXkpIHtcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAucG9zdChgL2FwcC1tYW5hZ2VyL3dlYi1zY2FuL3NhdmVgLCB7XG4gICAgICAgICAgYXBwSWQ6IHRvcGljLmtleSxcbiAgICAgICAgICBjcmVhdGVEYXRlOiBuZXcgRGF0ZSgpXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRvcGljLnRhcmdldCkge1xuICAgICAgY2FzZSAnaHJlZic6XG4gICAgICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYmxhbmsnOlxuICAgICAgICB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RhcmdldCc6XG4gICAgICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class YunzaiLayoutNavTileComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiLayoutNavTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: YunzaiLayoutNavTileComponent, isStandalone: true, selector: "yunzai-layout-nav-tile", ngImport: i0, template: `<ng-template />`, isInline: true }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: YunzaiLayoutNavTileComponent, decorators: [{
8
+ type: Component,
9
+ args: [{
10
+ selector: `yunzai-layout-nav-tile`,
11
+ template: `<ng-template />`,
12
+ standalone: true
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9sYXlvdXQvbGF5b3V0LW5hdi10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xQyxNQUFNLE9BQU8sNEJBQTRCOzhHQUE1Qiw0QkFBNEI7a0dBQTVCLDRCQUE0QixrRkFIN0IsaUJBQWlCOzsyRkFHaEIsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IGB5dW56YWktbGF5b3V0LW5hdi10aWxlYCxcbiAgdGVtcGxhdGU6IGA8bmctdGVtcGxhdGUgLz5gLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFl1bnphaUxheW91dE5hdlRpbGVDb21wb25lbnQge31cbiJdfQ==