@yelon/bis 15.0.0-beta.2 → 15.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/layout/bis.config.mjs +11 -0
- package/esm2020/layout/icon/style-icons.mjs +796 -0
- package/esm2020/layout/layout-basic/index.mjs +4 -0
- package/esm2020/layout/layout-basic/interface.mjs +7 -0
- package/esm2020/layout/layout-basic/layout-basic.component.mjs +320 -0
- package/esm2020/layout/layout-basic/layout-display.service.mjs +87 -0
- package/esm2020/layout/layout-nav/index.mjs +5 -0
- package/esm2020/layout/layout-nav/layout-nav-application.component.mjs +262 -0
- package/esm2020/{src → layout}/layout-nav/layout-nav-group.component.mjs +1 -1
- package/esm2020/{src → layout}/layout-nav/layout-nav-tile.component.mjs +1 -1
- package/esm2020/layout/layout-nav/types.mjs +7 -0
- package/esm2020/layout/layout.mjs +5 -0
- package/esm2020/layout/public_api.mjs +11 -0
- package/esm2020/layout/widgets/index.mjs +7 -0
- package/esm2020/{src → layout}/widgets/yunzai-clear-storage.component.mjs +1 -1
- package/esm2020/{src → layout}/widgets/yunzai-fullscreen.component.mjs +1 -1
- package/esm2020/{src → layout}/widgets/yunzai-i18n.component.mjs +1 -1
- package/esm2020/layout/widgets/yunzai-notify.component.mjs +183 -0
- package/esm2020/layout/widgets/yunzai-theme-btn.component.mjs +195 -0
- package/esm2020/{src → layout}/widgets/yunzai-user.component.mjs +1 -1
- package/esm2020/layout/yunzai-act.guard.mjs +107 -0
- package/esm2020/layout/yunzai-auth.service.mjs +153 -0
- package/esm2020/layout/yunzai-default.interceptor.mjs +207 -0
- package/esm2020/layout/yunzai-i18n.service.mjs +94 -0
- package/esm2020/layout/yunzai-layout.module.mjs +76 -0
- package/esm2020/layout/yunzai-startup.service.mjs +157 -0
- package/esm2020/public_api.mjs +2 -2
- package/fesm2015/bis.mjs +1 -2960
- package/fesm2015/bis.mjs.map +1 -1
- package/fesm2015/layout.mjs +2971 -0
- package/fesm2015/layout.mjs.map +1 -0
- package/fesm2020/bis.mjs +1 -2968
- package/fesm2020/bis.mjs.map +1 -1
- package/fesm2020/layout.mjs +2979 -0
- package/fesm2020/layout.mjs.map +1 -0
- package/{src → layout}/bis.config.d.ts +0 -0
- package/{src → layout}/icon/style-icons.d.ts +0 -0
- package/layout/index.d.ts +5 -0
- package/{src → layout}/layout-basic/index.d.ts +0 -0
- package/{src → layout}/layout-basic/interface.d.ts +0 -0
- package/{src → layout}/layout-basic/layout-basic.component.d.ts +4 -3
- package/{src → layout}/layout-basic/layout-display.service.d.ts +0 -0
- package/{src → layout}/layout-nav/index.d.ts +0 -0
- package/{src → layout}/layout-nav/layout-nav-application.component.d.ts +0 -0
- package/{src → layout}/layout-nav/layout-nav-group.component.d.ts +0 -0
- package/{src → layout}/layout-nav/layout-nav-tile.component.d.ts +0 -0
- package/{src → layout}/layout-nav/types.d.ts +0 -0
- package/{src/index.d.ts → layout/public_api.d.ts} +0 -1
- package/layout/style/index.less +154 -0
- package/{src → layout}/widgets/index.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-clear-storage.component.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-fullscreen.component.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-i18n.component.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-notify.component.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-theme-btn.component.d.ts +0 -0
- package/{src → layout}/widgets/yunzai-user.component.d.ts +0 -0
- package/{src → layout}/yunzai-act.guard.d.ts +0 -0
- package/{src → layout}/yunzai-auth.service.d.ts +0 -0
- package/{src → layout}/yunzai-default.interceptor.d.ts +0 -0
- package/{src → layout}/yunzai-i18n.service.d.ts +1 -1
- package/{src → layout}/yunzai-layout.module.d.ts +1 -1
- package/{src → layout}/yunzai-startup.service.d.ts +0 -0
- package/package.json +19 -11
- package/public_api.d.ts +2 -1
- package/esm2020/src/bis.config.mjs +0 -11
- package/esm2020/src/icon/style-icons.mjs +0 -796
- package/esm2020/src/index.mjs +0 -12
- package/esm2020/src/layout-basic/index.mjs +0 -4
- package/esm2020/src/layout-basic/interface.mjs +0 -7
- package/esm2020/src/layout-basic/layout-basic.component.mjs +0 -312
- package/esm2020/src/layout-basic/layout-display.service.mjs +0 -87
- package/esm2020/src/layout-nav/index.mjs +0 -5
- package/esm2020/src/layout-nav/layout-nav-application.component.mjs +0 -262
- package/esm2020/src/layout-nav/types.mjs +0 -7
- package/esm2020/src/widgets/index.mjs +0 -7
- package/esm2020/src/widgets/yunzai-notify.component.mjs +0 -183
- package/esm2020/src/widgets/yunzai-theme-btn.component.mjs +0 -195
- package/esm2020/src/yunzai-act.guard.mjs +0 -107
- package/esm2020/src/yunzai-auth.service.mjs +0 -153
- package/esm2020/src/yunzai-default.interceptor.mjs +0 -207
- package/esm2020/src/yunzai-i18n.service.mjs +0 -94
- package/esm2020/src/yunzai-layout.module.mjs +0 -76
- package/esm2020/src/yunzai-startup.service.mjs +0 -157
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import { WINDOW } from '@yelon/util';
|
|
4
|
-
import { TopicType } from './types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@yelon/cache";
|
|
7
|
-
import * as i2 from "../yunzai-i18n.service";
|
|
8
|
-
import * as i3 from "@yelon/theme";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "@angular/forms";
|
|
11
|
-
import * as i6 from "ng-zorro-antd/core/transition-patch";
|
|
12
|
-
import * as i7 from "ng-zorro-antd/grid";
|
|
13
|
-
import * as i8 from "ng-zorro-antd/icon";
|
|
14
|
-
import * as i9 from "ng-zorro-antd/input";
|
|
15
|
-
export class LayoutNavApplicationComponent {
|
|
16
|
-
constructor(cacheService, i18n, http, inject) {
|
|
17
|
-
this.cacheService = cacheService;
|
|
18
|
-
this.i18n = i18n;
|
|
19
|
-
this.http = http;
|
|
20
|
-
this.inject = inject;
|
|
21
|
-
this.TopicType = TopicType;
|
|
22
|
-
this.state = {
|
|
23
|
-
active: false,
|
|
24
|
-
type: TopicType.FULL,
|
|
25
|
-
topic: undefined,
|
|
26
|
-
topics: [],
|
|
27
|
-
list: [],
|
|
28
|
-
search: null,
|
|
29
|
-
destroy$: new Subject()
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
this.state.list = this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
34
|
-
}
|
|
35
|
-
initTopic(type) {
|
|
36
|
-
this.state.search = null;
|
|
37
|
-
this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
38
|
-
this.state.type = type;
|
|
39
|
-
}
|
|
40
|
-
full() {
|
|
41
|
-
this.initTopic(TopicType.FULL);
|
|
42
|
-
}
|
|
43
|
-
own() {
|
|
44
|
-
this.initTopic(TopicType.OWN);
|
|
45
|
-
const temp = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
46
|
-
this.state.list = temp
|
|
47
|
-
.filter((topic) => {
|
|
48
|
-
topic.children = topic.children.filter((child) => {
|
|
49
|
-
return child.auth;
|
|
50
|
-
});
|
|
51
|
-
return topic;
|
|
52
|
-
})
|
|
53
|
-
.filter((topic) => {
|
|
54
|
-
return topic.children.length > 0;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
every(e) {
|
|
58
|
-
this.initTopic(TopicType.EVERY);
|
|
59
|
-
this.state.topic = e;
|
|
60
|
-
const temp = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
61
|
-
this.state.list = [...temp.filter(t => t.key === e.key)[0].children];
|
|
62
|
-
}
|
|
63
|
-
diffChange(flag) {
|
|
64
|
-
if (flag) {
|
|
65
|
-
this.state.active = flag;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this.state.active = !this.state.active;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
open(topic) {
|
|
72
|
-
if (topic.key) {
|
|
73
|
-
this.http
|
|
74
|
-
.post(`/app-manager/web-scan/save`, {
|
|
75
|
-
appId: topic.key,
|
|
76
|
-
createDate: new Date()
|
|
77
|
-
})
|
|
78
|
-
.pipe(takeUntil(this.state.destroy$))
|
|
79
|
-
.subscribe();
|
|
80
|
-
}
|
|
81
|
-
switch (topic.target) {
|
|
82
|
-
case 'href':
|
|
83
|
-
this.inject.get(WINDOW).location.href = topic.url;
|
|
84
|
-
break;
|
|
85
|
-
case 'blank':
|
|
86
|
-
this.inject.get(WINDOW).location.href = topic.url;
|
|
87
|
-
break;
|
|
88
|
-
case 'target':
|
|
89
|
-
this.inject.get(WINDOW).location.href = topic.url;
|
|
90
|
-
break;
|
|
91
|
-
default:
|
|
92
|
-
this.inject.get(WINDOW).location.href = topic.url;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
onSearch() {
|
|
97
|
-
const temp = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
98
|
-
if (this.state.search) {
|
|
99
|
-
this.state.list = temp
|
|
100
|
-
.filter((topic) => {
|
|
101
|
-
if (this.i18n.fanyi(topic.name).includes(this.state.search)) {
|
|
102
|
-
return topic;
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
topic.children = topic.children.filter((child) => {
|
|
106
|
-
return this.i18n.fanyi(child.name).includes(this.state.search);
|
|
107
|
-
});
|
|
108
|
-
return topic;
|
|
109
|
-
}
|
|
110
|
-
})
|
|
111
|
-
.filter((topic) => {
|
|
112
|
-
return topic.children.length > 0;
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
ngOnDestroy() {
|
|
120
|
-
this.state.destroy$.complete();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
LayoutNavApplicationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, deps: [{ token: i1.CacheService }, { token: i2.YunzaiI18NService }, { token: i3._HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
-
LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LayoutNavApplicationComponent, selector: "layout-nav-application", ngImport: i0, template: `
|
|
125
|
-
<!-- template start-->
|
|
126
|
-
<ng-template #search>
|
|
127
|
-
<div nz-row class="yz-application-list-search">
|
|
128
|
-
<nz-input-group [nzPrefix]="prefixTemplate">
|
|
129
|
-
<input
|
|
130
|
-
type="text"
|
|
131
|
-
nz-input
|
|
132
|
-
placeholder="{{ 'application.search' | i18n }}"
|
|
133
|
-
[(ngModel)]="state.search"
|
|
134
|
-
(ngModelChange)="onSearch()"
|
|
135
|
-
/>
|
|
136
|
-
<ng-template #prefixTemplate>
|
|
137
|
-
<i nz-icon nzType="search" nzTheme="outline"></i>
|
|
138
|
-
</ng-template>
|
|
139
|
-
</nz-input-group>
|
|
140
|
-
</div>
|
|
141
|
-
</ng-template>
|
|
142
|
-
<ng-template #ld>
|
|
143
|
-
<div class="yz-application-list">
|
|
144
|
-
<ul>
|
|
145
|
-
<li *ngFor="let d of state.list">
|
|
146
|
-
<h5>{{ d.name }}</h5>
|
|
147
|
-
<a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
|
|
148
|
-
</li>
|
|
149
|
-
</ul>
|
|
150
|
-
</div>
|
|
151
|
-
</ng-template>
|
|
152
|
-
<!-- template end-->
|
|
153
|
-
|
|
154
|
-
<!-- button start-->
|
|
155
|
-
<div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
|
|
156
|
-
<!-- button end-->
|
|
157
|
-
|
|
158
|
-
<!-- header start-->
|
|
159
|
-
<div class="yz-application" nz-row *ngIf="state.active">
|
|
160
|
-
<div nz-col [nzSpan]="3" class="yz-application-topic">
|
|
161
|
-
<div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
|
|
162
|
-
<div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
|
|
163
|
-
<div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
|
|
164
|
-
</div>
|
|
165
|
-
<div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
|
|
166
|
-
<div *ngSwitchCase="TopicType.FULL">
|
|
167
|
-
<ng-template [ngTemplateOutlet]="search"></ng-template>
|
|
168
|
-
<ng-template [ngTemplateOutlet]="ld"></ng-template>
|
|
169
|
-
</div>
|
|
170
|
-
<div *ngSwitchCase="TopicType.OWN">
|
|
171
|
-
<ng-template [ngTemplateOutlet]="search"></ng-template>
|
|
172
|
-
<ng-template [ngTemplateOutlet]="ld"></ng-template>
|
|
173
|
-
</div>
|
|
174
|
-
<div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
|
|
175
|
-
<div class="yz-application-list-item">
|
|
176
|
-
<ul>
|
|
177
|
-
<li *ngFor="let d of state.list" (click)="open(d)">
|
|
178
|
-
<a href="javascript:;">
|
|
179
|
-
<h4>{{ d.name }}</h4>
|
|
180
|
-
<p>{{ d.intro }}</p>
|
|
181
|
-
</a>
|
|
182
|
-
</li>
|
|
183
|
-
</ul>
|
|
184
|
-
</div>
|
|
185
|
-
</div>
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
<!-- header end-->
|
|
189
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", 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"] }, { kind: "directive", type: i7.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: i7.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] });
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, decorators: [{
|
|
191
|
-
type: Component,
|
|
192
|
-
args: [{
|
|
193
|
-
selector: `layout-nav-application`,
|
|
194
|
-
template: `
|
|
195
|
-
<!-- template start-->
|
|
196
|
-
<ng-template #search>
|
|
197
|
-
<div nz-row class="yz-application-list-search">
|
|
198
|
-
<nz-input-group [nzPrefix]="prefixTemplate">
|
|
199
|
-
<input
|
|
200
|
-
type="text"
|
|
201
|
-
nz-input
|
|
202
|
-
placeholder="{{ 'application.search' | i18n }}"
|
|
203
|
-
[(ngModel)]="state.search"
|
|
204
|
-
(ngModelChange)="onSearch()"
|
|
205
|
-
/>
|
|
206
|
-
<ng-template #prefixTemplate>
|
|
207
|
-
<i nz-icon nzType="search" nzTheme="outline"></i>
|
|
208
|
-
</ng-template>
|
|
209
|
-
</nz-input-group>
|
|
210
|
-
</div>
|
|
211
|
-
</ng-template>
|
|
212
|
-
<ng-template #ld>
|
|
213
|
-
<div class="yz-application-list">
|
|
214
|
-
<ul>
|
|
215
|
-
<li *ngFor="let d of state.list">
|
|
216
|
-
<h5>{{ d.name }}</h5>
|
|
217
|
-
<a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
|
|
218
|
-
</li>
|
|
219
|
-
</ul>
|
|
220
|
-
</div>
|
|
221
|
-
</ng-template>
|
|
222
|
-
<!-- template end-->
|
|
223
|
-
|
|
224
|
-
<!-- button start-->
|
|
225
|
-
<div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
|
|
226
|
-
<!-- button end-->
|
|
227
|
-
|
|
228
|
-
<!-- header start-->
|
|
229
|
-
<div class="yz-application" nz-row *ngIf="state.active">
|
|
230
|
-
<div nz-col [nzSpan]="3" class="yz-application-topic">
|
|
231
|
-
<div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
|
|
232
|
-
<div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
|
|
233
|
-
<div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
|
|
234
|
-
</div>
|
|
235
|
-
<div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
|
|
236
|
-
<div *ngSwitchCase="TopicType.FULL">
|
|
237
|
-
<ng-template [ngTemplateOutlet]="search"></ng-template>
|
|
238
|
-
<ng-template [ngTemplateOutlet]="ld"></ng-template>
|
|
239
|
-
</div>
|
|
240
|
-
<div *ngSwitchCase="TopicType.OWN">
|
|
241
|
-
<ng-template [ngTemplateOutlet]="search"></ng-template>
|
|
242
|
-
<ng-template [ngTemplateOutlet]="ld"></ng-template>
|
|
243
|
-
</div>
|
|
244
|
-
<div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
|
|
245
|
-
<div class="yz-application-list-item">
|
|
246
|
-
<ul>
|
|
247
|
-
<li *ngFor="let d of state.list" (click)="open(d)">
|
|
248
|
-
<a href="javascript:;">
|
|
249
|
-
<h4>{{ d.name }}</h4>
|
|
250
|
-
<p>{{ d.intro }}</p>
|
|
251
|
-
</a>
|
|
252
|
-
</li>
|
|
253
|
-
</ul>
|
|
254
|
-
</div>
|
|
255
|
-
</div>
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
258
|
-
<!-- header end-->
|
|
259
|
-
`
|
|
260
|
-
}]
|
|
261
|
-
}], ctorParameters: function () { return [{ type: i1.CacheService }, { type: i2.YunzaiI18NService }, { type: i3._HttpClient }, { type: i0.Injector }]; } });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi1hcHBsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvc3JjL2xheW91dC1uYXYvbGF5b3V0LW5hdi1hcHBsaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdyQyxPQUFPLEVBQTZCLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7QUF1RS9ELE1BQU0sT0FBTyw2QkFBNkI7SUFZeEMsWUFDVSxZQUEwQixFQUMxQixJQUF1QixFQUN2QixJQUFpQixFQUNqQixNQUFnQjtRQUhoQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFmbkIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM3QixVQUFLLEdBQThCO1lBQ2pDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJLE9BQU8sRUFBTztTQUM3QixDQUFDO0lBT0MsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVB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Q0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLENBQUM7b0JBQ2xFLENBQUMsQ0FBQyxDQUFDO29CQUNILE9BQU8sS0FBSyxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDO2lCQUNELE1BQU0sQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtnQkFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OzBIQWpIVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qiw4REFuRTlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFVDsyRkFFVSw2QkFBNkI7a0JBckV6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENhY2hlU2VydmljZSwgWXVuemFpTmF2VG9waWMgfSBmcm9tICdAeWVsb24vY2FjaGUnO1xuaW1wb3J0IHsgX0h0dHBDbGllbnQgfSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHsgV0lORE9XIH0gZnJvbSAnQHllbG9uL3V0aWwnO1xuXG5pbXBvcnQgeyBZdW56YWlJMThOU2VydmljZSB9IGZyb20gJy4uL3l1bnphaS1pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0TmF2QXBwbGljYXRpb25TdGF0ZSwgVG9waWNUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogYGxheW91dC1uYXYtYXBwbGljYXRpb25gLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gICAgICB0ZW1wbGF0ZSBzdGFydC0tPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VhcmNoPlxuICAgICAgPGRpdiBuei1yb3cgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi1saXN0LXNlYXJjaFwiPlxuICAgICAgICA8bnotaW5wdXQtZ3JvdXAgW256UHJlZml4XT1cInByZWZpeFRlbXBsYXRlXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnYXBwbGljYXRpb24uc2VhcmNoJyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzdGF0ZS5zZWFyY2hcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3ByZWZpeFRlbXBsYXRlPlxuICAgICAgICAgICAgPGkgbnotaWNvbiBuelR5cGU9XCJzZWFyY2hcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvaT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L256LWlucHV0LWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2xkPlxuICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZCBvZiBzdGF0ZS5saXN0XCI+XG4gICAgICAgICAgICA8aDU+e3sgZC5uYW1lIH19PC9oNT5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAqbmdGb3I9XCJsZXQgY2Qgb2YgZC5jaGlsZHJlblwiIChjbGljayk9XCJvcGVuKGNkKVwiPnt7IGNkLm5hbWUgfX08L2E+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPCEtLSAgICAgIHRlbXBsYXRlIGVuZC0tPlxuXG4gICAgPCEtLSAgICAgIGJ1dHRvbiBzdGFydC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ5dW56YWktZGVmYXVsdF9fbmF2LWl0ZW1cIiAoY2xpY2spPVwiZGlmZkNoYW5nZSgpXCI+IHt7ICdhcHBsaWNhdGlvbi5idXR0b24nIHwgaTE4biB9fTwvZGl2PlxuICAgIDwhLS0gICAgICBidXR0b24gZW5kLS0+XG5cbiAgICA8IS0tICAgICAgaGVhZGVyIHN0YXJ0LS0+XG4gICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uXCIgbnotcm93ICpuZ0lmPVwic3RhdGUuYWN0aXZlXCI+XG4gICAgICA8ZGl2IG56LWNvbCBbbnpTcGFuXT1cIjNcIiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLXRvcGljXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10ZXh0XCIgKGNsaWNrKT1cImZ1bGwoKVwiPnt7ICdhcHBsaWNhdGlvbi5hbGwnIHwgaTE4biB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotYXBwbGljYXRpb24tdGV4dFwiIChjbGljayk9XCJvd24oKVwiPnt7ICdhcHBsaWNhdGlvbi5taW5lJyB8IGkxOG4gfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLXRleHRcIiAqbmdGb3I9XCJsZXQgZCBvZiBzdGF0ZS50b3BpY3NcIiAoY2xpY2spPVwiZXZlcnkoZClcIj57eyBkLm5hbWUgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBuei1jb2wgW256U3Bhbl09XCIyMVwiIFtuZ1N3aXRjaF09XCJzdGF0ZS50b3BpY1wiIGNsYXNzPVwieXotYXBwbGljYXRpb24tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIlRvcGljVHlwZS5GVUxMXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIlRvcGljVHlwZS5PV05cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiVG9waWNUeXBlLkVWRVJZXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi1saXN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGQgb2Ygc3RhdGUubGlzdFwiIChjbGljayk9XCJvcGVuKGQpXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiPlxuICAgICAgICAgICAgICAgICAgPGg0Pnt7IGQubmFtZSB9fTwvaDQ+XG4gICAgICAgICAgICAgICAgICA8cD57eyBkLmludHJvIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSAgICAgIGhlYWRlciBlbmQtLT5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXROYXZBcHBsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIFRvcGljVHlwZSA9IFRvcGljVHlwZTtcbiAgc3RhdGU6IExheW91dE5hdkFwcGxpY2F0aW9uU3RhdGUgPSB7XG4gICAgYWN0aXZlOiBmYWxzZSxcbiAgICB0eXBlOiBUb3BpY1R5cGUuRlVMTCxcbiAgICB0b3BpYzogdW5kZWZpbmVkLFxuICAgIHRvcGljczogW10sXG4gICAgbGlzdDogW10sXG4gICAgc2VhcmNoOiBudWxsLFxuICAgIGRlc3Ryb3kkOiBuZXcgU3ViamVjdDxhbnk+KClcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaTE4bjogWXVuemFpSTE4TlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBfSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGluamVjdDogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IHRoaXMuc3RhdGUudG9waWNzID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gIH1cblxuICBpbml0VG9waWModHlwZTogVG9waWNUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZWFyY2ggPSBudWxsO1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIHRoaXMuc3RhdGUudHlwZSA9IHR5cGU7XG4gIH1cblxuICBmdWxsKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFRvcGljKFRvcGljVHlwZS5GVUxMKTtcbiAgfVxuXG4gIG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRUb3BpYyhUb3BpY1R5cGUuT1dOKTtcbiAgICBjb25zdCB0ZW1wOiBZdW56YWlOYXZUb3BpY1tdID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgdGhpcy5zdGF0ZS5saXN0ID0gdGVtcFxuICAgICAgLmZpbHRlcigodG9waWM6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgIHRvcGljLmNoaWxkcmVuID0gdG9waWMuY2hpbGRyZW4uZmlsdGVyKChjaGlsZDogWXVuemFpTmF2VG9waWMpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2hpbGQuYXV0aDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0b3BpYztcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKCh0b3BpYzogWXVuemFpTmF2VG9waWMpID0+IHtcbiAgICAgICAgcmV0dXJuIHRvcGljLmNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgICB9KTtcbiAgfVxuXG4gIGV2ZXJ5KGU6IFl1bnphaU5hdlRvcGljKTogdm9pZCB7XG4gICAgdGhpcy5pbml0VG9waWMoVG9waWNUeXBlLkVWRVJZKTtcbiAgICB0aGlzLnN0YXRlLnRvcGljID0gZTtcbiAgICBjb25zdCB0ZW1wOiBZdW56YWlOYXZUb3BpY1tdID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgdGhpcy5zdGF0ZS5saXN0ID0gWy4uLnRlbXAuZmlsdGVyKHQgPT4gdC5rZXkgPT09IGUua2V5KVswXS5jaGlsZHJlbl07XG4gIH1cblxuICBkaWZmQ2hhbmdlKGZsYWc/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGZsYWcpIHtcbiAgICAgIHRoaXMuc3RhdGUuYWN0aXZlID0gZmxhZztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGF0ZS5hY3RpdmUgPSAhdGhpcy5zdGF0ZS5hY3RpdmU7XG4gICAgfVxuICB9XG5cbiAgb3Blbih0b3BpYzogWXVuemFpTmF2VG9waWMpOiB2b2lkIHtcbiAgICBpZiAodG9waWMua2V5KSB7XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLnBvc3QoYC9hcHAtbWFuYWdlci93ZWItc2Nhbi9zYXZlYCwge1xuICAgICAgICAgIGFwcElkOiB0b3BpYy5rZXksXG4gICAgICAgICAgY3JlYXRlRGF0ZTogbmV3IERhdGUoKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5zdGF0ZS5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgc3dpdGNoICh0b3BpYy50YXJnZXQpIHtcbiAgICAgIGNhc2UgJ2hyZWYnOlxuICAgICAgICB0aGlzLmluamVjdC5nZXQoV0lORE9XKS5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JsYW5rJzpcbiAgICAgICAgdGhpcy5pbmplY3QuZ2V0KFdJTkRPVykubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0YXJnZXQnOlxuICAgICAgICB0aGlzLmluamVjdC5nZXQoV0lORE9XKS5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuaW5qZWN0LmdldChXSU5ET1cpLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHRlbXA6IFl1bnphaU5hdlRvcGljW10gPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICBpZiAodGhpcy5zdGF0ZS5zZWFyY2gpIHtcbiAgICAgIHRoaXMuc3RhdGUubGlzdCA9IHRlbXBcbiAgICAgICAgLmZpbHRlcigodG9waWM6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaTE4bi5mYW55aSh0b3BpYy5uYW1lKS5pbmNsdWRlcyh0aGlzLnN0YXRlLnNlYXJjaCEpKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9waWM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcGljLmNoaWxkcmVuID0gdG9waWMuY2hpbGRyZW4uZmlsdGVyKChjaGlsZDogWXVuemFpTmF2VG9waWMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaTE4bi5mYW55aShjaGlsZC5uYW1lKS5pbmNsdWRlcyh0aGlzLnN0YXRlLnNlYXJjaCEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdG9waWM7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKCh0b3BpYzogWXVuemFpTmF2VG9waWMpID0+IHtcbiAgICAgICAgICByZXR1cm4gdG9waWMuY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUubGlzdCA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var TopicType;
|
|
2
|
-
(function (TopicType) {
|
|
3
|
-
TopicType[TopicType["FULL"] = 0] = "FULL";
|
|
4
|
-
TopicType[TopicType["OWN"] = 1] = "OWN";
|
|
5
|
-
TopicType[TopicType["EVERY"] = 2] = "EVERY";
|
|
6
|
-
})(TopicType || (TopicType = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvc3JjL2xheW91dC1uYXYvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQix5Q0FBSSxDQUFBO0lBQ0osdUNBQUcsQ0FBQTtJQUNILDJDQUFLLENBQUE7QUFDUCxDQUFDLEVBSlcsU0FBUyxLQUFULFNBQVMsUUFJcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1l1bnphaU5hdlRvcGljfSBmcm9tICdAeWVsb24vY2FjaGUnO1xuXG5leHBvcnQgZW51bSBUb3BpY1R5cGUge1xuICBGVUxMLFxuICBPV04sXG4gIEVWRVJZXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0TmF2QXBwbGljYXRpb25TdGF0ZSB7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgdHlwZTogVG9waWNUeXBlO1xuICB0b3BpYz86IFl1bnphaU5hdlRvcGljO1xuICB0b3BpY3M6IFl1bnphaU5hdlRvcGljW107XG4gIGxpc3Q6IFl1bnphaU5hdlRvcGljW107XG4gIHNlYXJjaDogc3RyaW5nIHwgbnVsbDtcbiAgZGVzdHJveSQ6IFN1YmplY3Q8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXROYXZHcm91cFN0YXRlIHtcbiAgdG9waWNzOiBZdW56YWlOYXZUb3BpY1tdO1xuICBkZXN0cm95JDogU3ViamVjdDxhbnk+O1xufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './yunzai-clear-storage.component';
|
|
2
|
-
export * from './yunzai-fullscreen.component';
|
|
3
|
-
export * from './yunzai-i18n.component';
|
|
4
|
-
export * from './yunzai-notify.component';
|
|
5
|
-
export * from './yunzai-theme-btn.component';
|
|
6
|
-
export * from './yunzai-user.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvc3JjL3dpZGdldHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3l1bnphaS1jbGVhci1zdG9yYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS1mdWxsc2NyZWVuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS1pMThuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3l1bnphaS1ub3RpZnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4veXVuemFpLXRoZW1lLWJ0bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi95dW56YWktdXNlci5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
2
|
-
import { forkJoin, map } from 'rxjs';
|
|
3
|
-
import { formatDistanceToNow } from 'date-fns';
|
|
4
|
-
import { YUNZAI_I18N_TOKEN } from '@yelon/theme';
|
|
5
|
-
import { WINDOW } from '@yelon/util';
|
|
6
|
-
import { log } from '@yelon/util/other';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "ng-zorro-antd/message";
|
|
9
|
-
import * as i2 from "ng-zorro-antd/i18n";
|
|
10
|
-
import * as i3 from "@yelon/theme";
|
|
11
|
-
import * as i4 from "@yelon/abc/notice-icon";
|
|
12
|
-
import * as i5 from "../yunzai-i18n.service";
|
|
13
|
-
export class YunzaiNotifyComponent {
|
|
14
|
-
constructor(injector, msg, y18n, nzI18n, cdr, httpClient) {
|
|
15
|
-
this.injector = injector;
|
|
16
|
-
this.msg = msg;
|
|
17
|
-
this.y18n = y18n;
|
|
18
|
-
this.nzI18n = nzI18n;
|
|
19
|
-
this.cdr = cdr;
|
|
20
|
-
this.httpClient = httpClient;
|
|
21
|
-
this.data = [
|
|
22
|
-
{
|
|
23
|
-
key: 'msg',
|
|
24
|
-
title: this.y18n.fanyi('notify.message'),
|
|
25
|
-
list: [],
|
|
26
|
-
emptyText: this.y18n.fanyi('notify.message.emptyText'),
|
|
27
|
-
emptyImage: './assets/tmp/img/message.svg',
|
|
28
|
-
clearText: this.y18n.fanyi('notify.message.clearText')
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
key: 'todo',
|
|
32
|
-
title: this.y18n.fanyi('notify.todo'),
|
|
33
|
-
list: [],
|
|
34
|
-
emptyText: this.y18n.fanyi('notify.todo.emptyText'),
|
|
35
|
-
emptyImage: './assets/tmp/img/todo.svg',
|
|
36
|
-
clearText: this.y18n.fanyi('notify.todo.clearText')
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
key: 'notice',
|
|
40
|
-
title: this.y18n.fanyi('notify.notice'),
|
|
41
|
-
list: [],
|
|
42
|
-
emptyText: this.y18n.fanyi('notify.notice.emptyText'),
|
|
43
|
-
emptyImage: './assets/tmp/img/notice.svg',
|
|
44
|
-
clearText: this.y18n.fanyi('notify.notice.clearText')
|
|
45
|
-
}
|
|
46
|
-
];
|
|
47
|
-
this.loading = false;
|
|
48
|
-
this.count = 0;
|
|
49
|
-
this.subs = [];
|
|
50
|
-
}
|
|
51
|
-
ngOnInit() {
|
|
52
|
-
this.loadData();
|
|
53
|
-
}
|
|
54
|
-
loadData() {
|
|
55
|
-
this.count = 0;
|
|
56
|
-
this.loading = true;
|
|
57
|
-
this.subs.push(forkJoin(this.loadTodo(), this.loadMessage()).subscribe(() => {
|
|
58
|
-
this.loading = false;
|
|
59
|
-
this.cdr.detectChanges();
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
loadMessage() {
|
|
63
|
-
log('notify.component: ', 'fetch message list');
|
|
64
|
-
const formatMessageStatus = (status) => {
|
|
65
|
-
switch (status) {
|
|
66
|
-
case '0':
|
|
67
|
-
return { extra: this.y18n.fanyi('notify.unread'), color: 'red' };
|
|
68
|
-
case '1':
|
|
69
|
-
return { extra: this.y18n.fanyi('notify.readed'), color: 'green' };
|
|
70
|
-
default:
|
|
71
|
-
return { extra: this.y18n.fanyi('notify.nostatus'), color: 'primary' };
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
return this.httpClient
|
|
75
|
-
.post(`/message-center-3/my-msg-and-todo/msg-list`, {
|
|
76
|
-
pageNum: 1,
|
|
77
|
-
pageSize: 10,
|
|
78
|
-
status: '0'
|
|
79
|
-
})
|
|
80
|
-
.pipe(map((response) => {
|
|
81
|
-
const viewMessage = this.data.filter(d => d.key === 'msg')[0];
|
|
82
|
-
viewMessage.list = response.data.list.map((m) => {
|
|
83
|
-
return {
|
|
84
|
-
...m,
|
|
85
|
-
avatar: m?.imgUrl || './assets/tmp/img/message.png',
|
|
86
|
-
title: m.systemName,
|
|
87
|
-
description: m.content,
|
|
88
|
-
extra: formatMessageStatus(m.status).extra,
|
|
89
|
-
color: formatMessageStatus(m.status).color,
|
|
90
|
-
datetime: formatDistanceToNow(new Date(m.date), { locale: this.nzI18n.getDateLocale() })
|
|
91
|
-
};
|
|
92
|
-
});
|
|
93
|
-
this.count += viewMessage.list.length;
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
loadTodo() {
|
|
97
|
-
log('notify.component: ', 'fetch todo list');
|
|
98
|
-
const formatTodoStatus = (status) => {
|
|
99
|
-
switch (status) {
|
|
100
|
-
case '0':
|
|
101
|
-
return { extra: this.y18n.fanyi('notify.unstart'), color: 'red' };
|
|
102
|
-
case '1':
|
|
103
|
-
return { extra: this.y18n.fanyi('notify.started'), color: 'green' };
|
|
104
|
-
default:
|
|
105
|
-
return { extra: this.y18n.fanyi('notify.nostatus'), color: 'primary' };
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
return this.httpClient
|
|
109
|
-
.post(`/message-center-3/my-msg-and-todo/todo-list`, {
|
|
110
|
-
pageNum: 1,
|
|
111
|
-
pageSize: 10,
|
|
112
|
-
status: '0'
|
|
113
|
-
})
|
|
114
|
-
.pipe(map((response) => {
|
|
115
|
-
const viewTodo = this.data.filter(d => d.key === 'todo')[0];
|
|
116
|
-
viewTodo.list = response.data.list.map((t) => {
|
|
117
|
-
return {
|
|
118
|
-
...t,
|
|
119
|
-
avatar: t?.imgUrl || './assets/tmp/img/todo.png',
|
|
120
|
-
title: t.systemName,
|
|
121
|
-
description: t.content,
|
|
122
|
-
datetime: formatDistanceToNow(new Date(t.date), { locale: this.nzI18n.getDateLocale() }),
|
|
123
|
-
extra: formatTodoStatus(t.status).extra,
|
|
124
|
-
color: formatTodoStatus(t.status).color
|
|
125
|
-
};
|
|
126
|
-
});
|
|
127
|
-
this.count += viewTodo.list.length;
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
|
-
clear(type) {
|
|
131
|
-
const t = this.data.filter(d => d.title === type)[0];
|
|
132
|
-
if (t.key == 'msg' || t.key == 'notice') {
|
|
133
|
-
this.subs.push(this.httpClient.post(`/message-center-3/my-msg-and-todo/msg-clear`, {}).subscribe(_ => {
|
|
134
|
-
this.msg.success(`${this.y18n.fanyi('notify.clear')} ${type}`);
|
|
135
|
-
this.loadData();
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
if (t.key == 'todo') {
|
|
139
|
-
this.loadData();
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
select(res) {
|
|
143
|
-
this.injector.get(WINDOW).open(res.item.url);
|
|
144
|
-
this.loadData();
|
|
145
|
-
}
|
|
146
|
-
ngOnDestroy() {
|
|
147
|
-
this.subs.forEach(a => a.unsubscribe());
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
YunzaiNotifyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiNotifyComponent, deps: [{ token: i0.Injector }, { token: i1.NzMessageService }, { token: YUNZAI_I18N_TOKEN }, { token: i2.NzI18nService }, { token: i0.ChangeDetectorRef }, { token: i3._HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
YunzaiNotifyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiNotifyComponent, selector: "yunzai-notify", ngImport: i0, template: `
|
|
152
|
-
<notice-icon
|
|
153
|
-
[data]="data"
|
|
154
|
-
[count]="count"
|
|
155
|
-
[loading]="loading"
|
|
156
|
-
btnClass="yunzai-default__nav-item"
|
|
157
|
-
btnIconClass="yunzai-default__nav-item-icon"
|
|
158
|
-
(select)="select($event)"
|
|
159
|
-
(clear)="clear($event)"
|
|
160
|
-
></notice-icon>
|
|
161
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i4.NoticeIconComponent, selector: "notice-icon", inputs: ["data", "count", "loading", "popoverVisible", "btnClass", "btnIconClass", "centered"], outputs: ["select", "clear", "popoverVisibleChange"], exportAs: ["noticeIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiNotifyComponent, decorators: [{
|
|
163
|
-
type: Component,
|
|
164
|
-
args: [{
|
|
165
|
-
selector: 'yunzai-notify',
|
|
166
|
-
template: `
|
|
167
|
-
<notice-icon
|
|
168
|
-
[data]="data"
|
|
169
|
-
[count]="count"
|
|
170
|
-
[loading]="loading"
|
|
171
|
-
btnClass="yunzai-default__nav-item"
|
|
172
|
-
btnIconClass="yunzai-default__nav-item-icon"
|
|
173
|
-
(select)="select($event)"
|
|
174
|
-
(clear)="clear($event)"
|
|
175
|
-
></notice-icon>
|
|
176
|
-
`,
|
|
177
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
178
|
-
}]
|
|
179
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NzMessageService }, { type: i5.YunzaiI18NService, decorators: [{
|
|
180
|
-
type: Inject,
|
|
181
|
-
args: [YUNZAI_I18N_TOKEN]
|
|
182
|
-
}] }, { type: i2.NzI18nService }, { type: i0.ChangeDetectorRef }, { type: i3._HttpClient }]; } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLW5vdGlmeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvc3JjL3dpZGdldHMveXVuemFpLW5vdGlmeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsTUFBTSxFQUlQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQTRCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBc0J4QyxNQUFNLE9BQU8scUJBQXFCO0lBK0JoQyxZQUNVLFFBQWtCLEVBQ2xCLEdBQXFCLEVBQ00sSUFBdUIsRUFDbEQsTUFBcUIsRUFDckIsR0FBc0IsRUFDdEIsVUFBdUI7UUFMdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNNLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ2xELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQXBDakMsU0FBSSxHQUFpQjtZQUNuQjtnQkFDRSxHQUFHLEVBQUUsS0FBSztnQkFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLElBQUksRUFBRSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztnQkFDdEQsVUFBVSxFQUFFLDhCQUE4QjtnQkFDMUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDO2FBQ3ZEO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDckMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDO2dCQUNuRCxVQUFVLEVBQUUsMkJBQTJCO2dCQUN2QyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUM7YUFDcEQ7WUFDRDtnQkFDRSxHQUFHLEVBQUUsUUFBUTtnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUN2QyxJQUFJLEVBQUUsRUFBRTtnQkFDUixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSw2QkFBNkI7Z0JBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQzthQUN0RDtTQUNGLENBQUM7UUFDRixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixTQUFJLEdBQW1CLEVBQUUsQ0FBQztJQVN2QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1osUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsR0FBRyxDQUFDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDaEQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQWMsRUFBYSxFQUFFO1lBQ3hELFFBQVEsTUFBTSxFQUFFO2dCQUNkLEtBQUssR0FBRztvQkFDTixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDbkUsS0FBSyxHQUFHO29CQUNOLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNyRTtvQkFDRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQzFFO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixJQUFJLENBQUMsNENBQTRDLEVBQUU7WUFDbEQsT0FBTyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBWSxFQUFFLEVBQUU7Z0JBQ3pELE9BQU87b0JBQ0wsR0FBRyxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLDhCQUE4QjtvQkFDbkQsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVO29CQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE9BQU87b0JBQ3RCLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSztvQkFDMUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLO29CQUMxQyxRQUFRLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztpQkFDekYsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDTixHQUFHLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsTUFBYyxFQUFhLEVBQUU7WUFDckQsUUFBUSxNQUFNLEVBQUU7Z0JBQ2QsS0FBSyxHQUFHO29CQUNOLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ3BFLEtBQUssR0FBRztvQkFDTixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUN0RTtvQkFDRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO2FBQzFFO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixJQUFJLENBQUMsNkNBQTZDLEVBQUU7WUFDbkQsT0FBTyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBWSxFQUFFLEVBQUU7Z0JBQ3RELE9BQU87b0JBQ0wsR0FBRyxDQUFDO29CQUNKLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxJQUFJLDJCQUEyQjtvQkFDaEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVO29CQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE9BQU87b0JBQ3RCLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO29CQUN4RixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUs7b0JBQ3ZDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSztpQkFDeEMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksUUFBUSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQXFCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7a0hBdkpVLHFCQUFxQiwwRUFrQ3RCLGlCQUFpQjtzR0FsQ2hCLHFCQUFxQixxREFidEI7Ozs7Ozs7Ozs7R0FVVDsyRkFHVSxxQkFBcUI7a0JBZmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7OztHQVVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBbUNJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGZvcm1hdERpc3RhbmNlVG9Ob3cgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IE5vdGljZUljb25TZWxlY3QsIE5vdGljZUl0ZW0gfSBmcm9tICdAeWVsb24vYWJjL25vdGljZS1pY29uJztcbmltcG9ydCB7IFlVTlpBSV9JMThOX1RPS0VOLCBfSHR0cENsaWVudCB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBXSU5ET1cgfSBmcm9tICdAeWVsb24vdXRpbCc7XG5pbXBvcnQgeyBsb2cgfSBmcm9tICdAeWVsb24vdXRpbC9vdGhlcic7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5pbXBvcnQgeyBOek1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9tZXNzYWdlJztcblxuaW1wb3J0IHsgWXVuemFpSTE4TlNlcnZpY2UgfSBmcm9tICcuLi95dW56YWktaTE4bi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXVuemFpLW5vdGlmeScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5vdGljZS1pY29uXG4gICAgICBbZGF0YV09XCJkYXRhXCJcbiAgICAgIFtjb3VudF09XCJjb3VudFwiXG4gICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgIGJ0bkNsYXNzPVwieXVuemFpLWRlZmF1bHRfX25hdi1pdGVtXCJcbiAgICAgIGJ0bkljb25DbGFzcz1cInl1bnphaS1kZWZhdWx0X19uYXYtaXRlbS1pY29uXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0KCRldmVudClcIlxuICAgICAgKGNsZWFyKT1cImNsZWFyKCRldmVudClcIlxuICAgID48L25vdGljZS1pY29uPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBZdW56YWlOb3RpZnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGRhdGE6IE5vdGljZUl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdtc2cnLFxuICAgICAgdGl0bGU6IHRoaXMueTE4bi5mYW55aSgnbm90aWZ5Lm1lc3NhZ2UnKSxcbiAgICAgIGxpc3Q6IFtdLFxuICAgICAgZW1wdHlUZXh0OiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5tZXNzYWdlLmVtcHR5VGV4dCcpLFxuICAgICAgZW1wdHlJbWFnZTogJy4vYXNzZXRzL3RtcC9pbWcvbWVzc2FnZS5zdmcnLFxuICAgICAgY2xlYXJUZXh0OiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5tZXNzYWdlLmNsZWFyVGV4dCcpXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICd0b2RvJyxcbiAgICAgIHRpdGxlOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS50b2RvJyksXG4gICAgICBsaXN0OiBbXSxcbiAgICAgIGVtcHR5VGV4dDogdGhpcy55MThuLmZhbnlpKCdub3RpZnkudG9kby5lbXB0eVRleHQnKSxcbiAgICAgIGVtcHR5SW1hZ2U6ICcuL2Fzc2V0cy90bXAvaW1nL3RvZG8uc3ZnJyxcbiAgICAgIGNsZWFyVGV4dDogdGhpcy55MThuLmZhbnlpKCdub3RpZnkudG9kby5jbGVhclRleHQnKVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbm90aWNlJyxcbiAgICAgIHRpdGxlOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5ub3RpY2UnKSxcbiAgICAgIGxpc3Q6IFtdLFxuICAgICAgZW1wdHlUZXh0OiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5ub3RpY2UuZW1wdHlUZXh0JyksXG4gICAgICBlbXB0eUltYWdlOiAnLi9hc3NldHMvdG1wL2ltZy9ub3RpY2Uuc3ZnJyxcbiAgICAgIGNsZWFyVGV4dDogdGhpcy55MThuLmZhbnlpKCdub3RpZnkubm90aWNlLmNsZWFyVGV4dCcpXG4gICAgfVxuICBdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGNvdW50ID0gMDtcbiAgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIG1zZzogTnpNZXNzYWdlU2VydmljZSxcbiAgICBASW5qZWN0KFlVTlpBSV9JMThOX1RPS0VOKSBwcml2YXRlIHkxOG46IFl1bnphaUkxOE5TZXJ2aWNlLFxuICAgIHByaXZhdGUgbnpJMThuOiBOekkxOG5TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IF9IdHRwQ2xpZW50XG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ID0gMDtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgZm9ya0pvaW4odGhpcy5sb2FkVG9kbygpLCB0aGlzLmxvYWRNZXNzYWdlKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsb2coJ25vdGlmeS5jb21wb25lbnQ6ICcsICdmZXRjaCBtZXNzYWdlIGxpc3QnKTtcbiAgICBjb25zdCBmb3JtYXRNZXNzYWdlU3RhdHVzID0gKHN0YXR1czogc3RyaW5nKTogTnpTYWZlQW55ID0+IHtcbiAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgIHJldHVybiB7IGV4dHJhOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS51bnJlYWQnKSwgY29sb3I6ICdyZWQnIH07XG4gICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgIHJldHVybiB7IGV4dHJhOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5yZWFkZWQnKSwgY29sb3I6ICdncmVlbicgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4geyBleHRyYTogdGhpcy55MThuLmZhbnlpKCdub3RpZnkubm9zdGF0dXMnKSwgY29sb3I6ICdwcmltYXJ5JyB9O1xuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYC9tZXNzYWdlLWNlbnRlci0zL215LW1zZy1hbmQtdG9kby9tc2ctbGlzdGAsIHtcbiAgICAgICAgcGFnZU51bTogMSxcbiAgICAgICAgcGFnZVNpemU6IDEwLFxuICAgICAgICBzdGF0dXM6ICcwJ1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB2aWV3TWVzc2FnZSA9IHRoaXMuZGF0YS5maWx0ZXIoZCA9PiBkLmtleSA9PT0gJ21zZycpWzBdO1xuICAgICAgICAgIHZpZXdNZXNzYWdlLmxpc3QgPSByZXNwb25zZS5kYXRhLmxpc3QubWFwKChtOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLm0sXG4gICAgICAgICAgICAgIGF2YXRhcjogbT8uaW1nVXJsIHx8ICcuL2Fzc2V0cy90bXAvaW1nL21lc3NhZ2UucG5nJyxcbiAgICAgICAgICAgICAgdGl0bGU6IG0uc3lzdGVtTmFtZSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IG0uY29udGVudCxcbiAgICAgICAgICAgICAgZXh0cmE6IGZvcm1hdE1lc3NhZ2VTdGF0dXMobS5zdGF0dXMpLmV4dHJhLFxuICAgICAgICAgICAgICBjb2xvcjogZm9ybWF0TWVzc2FnZVN0YXR1cyhtLnN0YXR1cykuY29sb3IsXG4gICAgICAgICAgICAgIGRhdGV0aW1lOiBmb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKG0uZGF0ZSksIHsgbG9jYWxlOiB0aGlzLm56STE4bi5nZXREYXRlTG9jYWxlKCkgfSlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jb3VudCArPSB2aWV3TWVzc2FnZS5saXN0Lmxlbmd0aDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBsb2FkVG9kbygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsb2coJ25vdGlmeS5jb21wb25lbnQ6ICcsICdmZXRjaCB0b2RvIGxpc3QnKTtcbiAgICBjb25zdCBmb3JtYXRUb2RvU3RhdHVzID0gKHN0YXR1czogc3RyaW5nKTogTnpTYWZlQW55ID0+IHtcbiAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgIHJldHVybiB7IGV4dHJhOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS51bnN0YXJ0JyksIGNvbG9yOiAncmVkJyB9O1xuICAgICAgICBjYXNlICcxJzpcbiAgICAgICAgICByZXR1cm4geyBleHRyYTogdGhpcy55MThuLmZhbnlpKCdub3RpZnkuc3RhcnRlZCcpLCBjb2xvcjogJ2dyZWVuJyB9O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB7IGV4dHJhOiB0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5ub3N0YXR1cycpLCBjb2xvcjogJ3ByaW1hcnknIH07XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgL21lc3NhZ2UtY2VudGVyLTMvbXktbXNnLWFuZC10b2RvL3RvZG8tbGlzdGAsIHtcbiAgICAgICAgcGFnZU51bTogMSxcbiAgICAgICAgcGFnZVNpemU6IDEwLFxuICAgICAgICBzdGF0dXM6ICcwJ1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB2aWV3VG9kbyA9IHRoaXMuZGF0YS5maWx0ZXIoZCA9PiBkLmtleSA9PT0gJ3RvZG8nKVswXTtcbiAgICAgICAgICB2aWV3VG9kby5saXN0ID0gcmVzcG9uc2UuZGF0YS5saXN0Lm1hcCgodDogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi50LFxuICAgICAgICAgICAgICBhdmF0YXI6IHQ/LmltZ1VybCB8fCAnLi9hc3NldHMvdG1wL2ltZy90b2RvLnBuZycsXG4gICAgICAgICAgICAgIHRpdGxlOiB0LnN5c3RlbU5hbWUsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0LmNvbnRlbnQsXG4gICAgICAgICAgICAgIGRhdGV0aW1lOiBmb3JtYXREaXN0YW5jZVRvTm93KG5ldyBEYXRlKHQuZGF0ZSksIHsgbG9jYWxlOiB0aGlzLm56STE4bi5nZXREYXRlTG9jYWxlKCkgfSksXG4gICAgICAgICAgICAgIGV4dHJhOiBmb3JtYXRUb2RvU3RhdHVzKHQuc3RhdHVzKS5leHRyYSxcbiAgICAgICAgICAgICAgY29sb3I6IGZvcm1hdFRvZG9TdGF0dXModC5zdGF0dXMpLmNvbG9yXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuY291bnQgKz0gdmlld1RvZG8ubGlzdC5sZW5ndGg7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgY2xlYXIodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdCA9IHRoaXMuZGF0YS5maWx0ZXIoZCA9PiBkLnRpdGxlID09PSB0eXBlKVswXTtcbiAgICBpZiAodC5rZXkgPT0gJ21zZycgfHwgdC5rZXkgPT0gJ25vdGljZScpIHtcbiAgICAgIHRoaXMuc3Vicy5wdXNoKFxuICAgICAgICB0aGlzLmh0dHBDbGllbnQucG9zdChgL21lc3NhZ2UtY2VudGVyLTMvbXktbXNnLWFuZC10b2RvL21zZy1jbGVhcmAsIHt9KS5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgICAgdGhpcy5tc2cuc3VjY2VzcyhgJHt0aGlzLnkxOG4uZmFueWkoJ25vdGlmeS5jbGVhcicpfSAke3R5cGV9YCk7XG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHQua2V5ID09ICd0b2RvJykge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdChyZXM6IE5vdGljZUljb25TZWxlY3QpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdG9yLmdldChXSU5ET1cpLm9wZW4ocmVzLml0ZW0udXJsKTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaChhID0+IGEudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiJdfQ==
|