rd-outer-component 0.0.95 → 0.0.96
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/lib/modules/custom-checkbox/custom-checkbox.component.mjs +26 -19
- package/esm2020/lib/modules/custom-date/custom-date.component.mjs +141 -18
- package/esm2020/lib/modules/custom-date/custom-date.module.mjs +19 -4
- package/esm2020/lib/modules/custom-filter/custom-filter.component.mjs +2 -2
- package/esm2020/lib/modules/custom-input/custom-input.component.mjs +68 -34
- package/esm2020/lib/modules/custom-input-amount/custom-input-amount.component.mjs +28 -29
- package/esm2020/lib/modules/custom-radio/custom-radio.component.mjs +82 -16
- package/esm2020/lib/modules/custom-select/index.mjs +5 -3
- package/esm2020/lib/modules/custom-select/industry-cascader/industry-cascader.component.mjs +361 -0
- package/esm2020/lib/modules/custom-select/industry-cascader/industry-cascader.module.mjs +60 -0
- package/esm2020/lib/modules/custom-select/pure-select-token/pure-select-token.component.mjs +3 -3
- package/esm2020/lib/modules/custom-select/rd-select.component.mjs +432 -0
- package/esm2020/lib/modules/custom-select/rd-select.module.mjs +67 -0
- package/esm2020/lib/modules/custom-textarea/custom-textarea.component.mjs +2 -2
- package/esm2020/lib/modules/form-item/form-item.component.mjs +20 -3
- package/esm2020/lib/modules/rd-button/rd-button.component.mjs +133 -0
- package/esm2020/lib/modules/rd-button/rd-button.module.mjs +20 -0
- package/fesm2015/rd-outer-component.mjs +1274 -216
- package/fesm2015/rd-outer-component.mjs.map +1 -1
- package/fesm2020/rd-outer-component.mjs +1270 -212
- package/fesm2020/rd-outer-component.mjs.map +1 -1
- package/lib/modules/custom-checkbox/custom-checkbox.component.d.ts +7 -3
- package/lib/modules/custom-date/custom-date.component.d.ts +30 -6
- package/lib/modules/custom-date/custom-date.module.d.ts +2 -1
- package/lib/modules/custom-input/custom-input.component.d.ts +12 -3
- package/lib/modules/custom-input-amount/custom-input-amount.component.d.ts +5 -5
- package/lib/modules/custom-radio/custom-radio.component.d.ts +21 -7
- package/lib/modules/custom-select/index.d.ts +4 -2
- package/lib/modules/custom-select/industry-cascader/industry-cascader.component.d.ts +81 -0
- package/lib/modules/custom-select/industry-cascader/industry-cascader.module.d.ts +18 -0
- package/lib/modules/custom-select/rd-select.component.d.ts +90 -0
- package/lib/modules/custom-select/rd-select.module.d.ts +19 -0
- package/lib/modules/form-item/form-item.component.d.ts +7 -2
- package/lib/modules/rd-button/rd-button.component.d.ts +53 -0
- package/lib/modules/rd-button/rd-button.module.d.ts +10 -0
- package/package.json +3 -2
- package/src/lib/assets/scss/form-item.scss +1 -1
- package/esm2020/lib/modules/custom-select/custom-select.component.mjs +0 -194
- package/esm2020/lib/modules/custom-select/custom-select.module.mjs +0 -39
- package/lib/modules/custom-select/custom-select.component.d.ts +0 -53
- package/lib/modules/custom-select/custom-select.module.d.ts +0 -12
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
import { Component, HostBinding, HostListener, Input, Output, EventEmitter, forwardRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "ng-zorro-antd/cascader";
|
|
8
|
+
import * as i5 from "ng-zorro-antd/drawer";
|
|
9
|
+
import * as i6 from "ng-zorro-antd/input";
|
|
10
|
+
import * as i7 from "ng-zorro-antd/core/transition-patch";
|
|
11
|
+
import * as i8 from "../../form-item/form-item.component";
|
|
12
|
+
import * as i9 from "ng-zorro-antd/radio";
|
|
13
|
+
export class IndustryCascaderComponent {
|
|
14
|
+
constructor(translate, cdr) {
|
|
15
|
+
this.translate = translate;
|
|
16
|
+
this.cdr = cdr;
|
|
17
|
+
this.disabled = false;
|
|
18
|
+
this.errorMessages = {
|
|
19
|
+
pattern: 'invalid_format',
|
|
20
|
+
custom: 'validation_failed',
|
|
21
|
+
};
|
|
22
|
+
this.valueChange = new EventEmitter();
|
|
23
|
+
this.label = '1st industry nature of business';
|
|
24
|
+
this.name = '';
|
|
25
|
+
this.options = [];
|
|
26
|
+
this.searchInput = '';
|
|
27
|
+
this.value = [];
|
|
28
|
+
this.drawerOpen = false;
|
|
29
|
+
this.view = 'root';
|
|
30
|
+
this.activeParent = null;
|
|
31
|
+
this.isFocus = false;
|
|
32
|
+
this.isOpen = false;
|
|
33
|
+
this.searchTerm = '';
|
|
34
|
+
this.searchChildrenTerm = '';
|
|
35
|
+
this.filteredOptions = [];
|
|
36
|
+
this.filteredChildren = [];
|
|
37
|
+
this.searchTimer = null;
|
|
38
|
+
this.control = null;
|
|
39
|
+
// 添加新属性
|
|
40
|
+
this.isTextOverflow = false;
|
|
41
|
+
// 修改isTextOverflow为对象,记录更详细的信息
|
|
42
|
+
this.textOverflowInfo = {
|
|
43
|
+
isOverflow: false,
|
|
44
|
+
lineCount: 0,
|
|
45
|
+
maxLines: 2,
|
|
46
|
+
exceededLines: 0, // 超过的行数
|
|
47
|
+
};
|
|
48
|
+
this.overflowLineCount = 0; // 实际占用的行数
|
|
49
|
+
this.maxAllowedLines = 2; // 最大允许行数
|
|
50
|
+
this.resizeObserver = null;
|
|
51
|
+
this.onChange = () => { };
|
|
52
|
+
this.onTouched = () => { };
|
|
53
|
+
// 响应式:是否是移动端
|
|
54
|
+
this.isMobile = false;
|
|
55
|
+
this.cascaderSearchFn = (input, path) => {
|
|
56
|
+
const i = input.toLowerCase();
|
|
57
|
+
return path.some((p) => p.labelLower.includes(i));
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
get hostThemeLight() {
|
|
61
|
+
return this.theme === 'light';
|
|
62
|
+
}
|
|
63
|
+
get hostThemeDark() {
|
|
64
|
+
return this.theme === 'dark';
|
|
65
|
+
}
|
|
66
|
+
get drawerWrapClassName() {
|
|
67
|
+
const themeClass = this.theme === 'light'
|
|
68
|
+
? 'theme-light'
|
|
69
|
+
: this.theme === 'dark'
|
|
70
|
+
? 'theme-dark'
|
|
71
|
+
: '';
|
|
72
|
+
return ['cascader-drawer', themeClass].filter(Boolean).join(' ');
|
|
73
|
+
}
|
|
74
|
+
get showError() {
|
|
75
|
+
return (!!this.control?.invalid && (this.control?.touched || this.control?.dirty));
|
|
76
|
+
}
|
|
77
|
+
get currentErrorMessage() {
|
|
78
|
+
if (!this.control?.errors)
|
|
79
|
+
return '';
|
|
80
|
+
const firstError = Object.keys(this.control?.errors || {})[0];
|
|
81
|
+
const msg = this.errorMessages[firstError];
|
|
82
|
+
switch (firstError) {
|
|
83
|
+
case 'required':
|
|
84
|
+
return (msg ||
|
|
85
|
+
`${this.translate.instant('please_select')}${this.label.toLowerCase()}`);
|
|
86
|
+
case 'custom':
|
|
87
|
+
return (this.control?.errors['custom'] ||
|
|
88
|
+
this.translate.instant('validation_failed'));
|
|
89
|
+
default:
|
|
90
|
+
return (this.translate.instant(this.errorMessages[firstError]) ||
|
|
91
|
+
this.translate.instant('validation_failed'));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
onResize() {
|
|
95
|
+
this.updateIsMobile();
|
|
96
|
+
}
|
|
97
|
+
ngOnInit() {
|
|
98
|
+
this.handleInitOptions();
|
|
99
|
+
this.updateIsMobile();
|
|
100
|
+
const mq = window.matchMedia('(max-width: 997px)');
|
|
101
|
+
if (mq.addEventListener) {
|
|
102
|
+
mq.addEventListener('change', () => this.updateIsMobile());
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
mq.addListener(() => this.updateIsMobile());
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
ngOnChanges(changes) {
|
|
109
|
+
if (changes['industryCodes']) {
|
|
110
|
+
this.handleInitOptions();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
ngAfterViewInit() {
|
|
114
|
+
this.setupResizeObserver();
|
|
115
|
+
// 初始检测
|
|
116
|
+
setTimeout(() => this.checkTextOverflow(), 0);
|
|
117
|
+
}
|
|
118
|
+
ngOnDestroy() {
|
|
119
|
+
if (this.resizeObserver) {
|
|
120
|
+
this.resizeObserver.disconnect();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
setupResizeObserver() {
|
|
124
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
125
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
126
|
+
this.checkTextOverflow();
|
|
127
|
+
});
|
|
128
|
+
if (this.valueText?.nativeElement) {
|
|
129
|
+
this.resizeObserver.observe(this.valueText.nativeElement);
|
|
130
|
+
}
|
|
131
|
+
if (this.cascaderContainer?.nativeElement) {
|
|
132
|
+
this.resizeObserver.observe(this.cascaderContainer.nativeElement);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
checkTextOverflow() {
|
|
137
|
+
if (!this.valueText?.nativeElement)
|
|
138
|
+
return;
|
|
139
|
+
const textElement = this.valueText.nativeElement;
|
|
140
|
+
// 方法1:计算实际行数
|
|
141
|
+
this.calculateLineCount(textElement);
|
|
142
|
+
// 方法2:备用宽度检测
|
|
143
|
+
this.checkWidthOverflow(textElement);
|
|
144
|
+
}
|
|
145
|
+
calculateLineCount(element) {
|
|
146
|
+
// 获取元素的样式
|
|
147
|
+
const computedStyle = window.getComputedStyle(element);
|
|
148
|
+
const lineHeight = parseFloat(computedStyle.lineHeight);
|
|
149
|
+
const scrollHeight = element.scrollHeight;
|
|
150
|
+
const clientHeight = element.clientHeight;
|
|
151
|
+
// 如果lineHeight为0或NaN,使用默认值
|
|
152
|
+
const actualLineHeight = lineHeight && !isNaN(lineHeight) ? lineHeight : 20; // 默认20px
|
|
153
|
+
// 计算实际行数
|
|
154
|
+
const lineCount = Math.round(scrollHeight / actualLineHeight);
|
|
155
|
+
this.overflowLineCount = lineCount;
|
|
156
|
+
// 检查是否超过最大允许行数
|
|
157
|
+
this.isTextOverflow = lineCount > this.maxAllowedLines;
|
|
158
|
+
// 你也可以记录更多信息
|
|
159
|
+
this.textOverflowInfo = {
|
|
160
|
+
isOverflow: lineCount > this.maxAllowedLines,
|
|
161
|
+
lineCount: lineCount,
|
|
162
|
+
maxLines: this.maxAllowedLines,
|
|
163
|
+
exceededLines: Math.max(0, lineCount - this.maxAllowedLines),
|
|
164
|
+
};
|
|
165
|
+
console.log(`文本行数: ${lineCount}, 是否溢出: ${this.isTextOverflow}`);
|
|
166
|
+
this.cdr.markForCheck();
|
|
167
|
+
}
|
|
168
|
+
checkWidthOverflow(element) {
|
|
169
|
+
// 原有的宽度检测逻辑(作为备用)
|
|
170
|
+
const container = this.cascaderContainer?.nativeElement;
|
|
171
|
+
if (container) {
|
|
172
|
+
const containerStyle = window.getComputedStyle(container);
|
|
173
|
+
const containerWidth = parseFloat(containerStyle.width);
|
|
174
|
+
const textWidth = element.scrollWidth;
|
|
175
|
+
const containerPadding = parseFloat(containerStyle.paddingLeft) +
|
|
176
|
+
parseFloat(containerStyle.paddingRight);
|
|
177
|
+
const availableWidth = containerWidth - containerPadding - 56;
|
|
178
|
+
const isWidthOverflow = textWidth > availableWidth;
|
|
179
|
+
// 结合两种检测结果
|
|
180
|
+
if (isWidthOverflow && !this.isTextOverflow) {
|
|
181
|
+
this.isTextOverflow = true;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// 修改handleValueChange方法,添加延迟检测
|
|
186
|
+
handleValueChange(value) {
|
|
187
|
+
this.value = value;
|
|
188
|
+
this.onChange(this.value);
|
|
189
|
+
this.valueChange.emit(this.value);
|
|
190
|
+
// 增加延迟,确保DOM完全更新
|
|
191
|
+
setTimeout(() => {
|
|
192
|
+
this.checkTextOverflow();
|
|
193
|
+
// 可能需要多次检测以确保准确
|
|
194
|
+
setTimeout(() => this.checkTextOverflow(), 100);
|
|
195
|
+
}, 50);
|
|
196
|
+
}
|
|
197
|
+
updateIsMobile() {
|
|
198
|
+
this.isMobile = window.matchMedia('(max-width: 997px)').matches;
|
|
199
|
+
}
|
|
200
|
+
validate(control) {
|
|
201
|
+
if (control) {
|
|
202
|
+
this.control = control;
|
|
203
|
+
}
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
setDisabledState(isDisabled) {
|
|
207
|
+
this.disabled = isDisabled;
|
|
208
|
+
this.cdr.markForCheck();
|
|
209
|
+
}
|
|
210
|
+
writeValue(value) {
|
|
211
|
+
this.value = value;
|
|
212
|
+
}
|
|
213
|
+
registerOnChange(fn) {
|
|
214
|
+
this.onChange = fn;
|
|
215
|
+
}
|
|
216
|
+
registerOnTouched(fn) {
|
|
217
|
+
this.onTouched = fn;
|
|
218
|
+
}
|
|
219
|
+
onVisibleChange(value) {
|
|
220
|
+
this.isOpen = value;
|
|
221
|
+
}
|
|
222
|
+
handleInitOptions() {
|
|
223
|
+
if (this.industryCodes?.length > 0) {
|
|
224
|
+
this.options = this.industryCodes.map((item) => {
|
|
225
|
+
return {
|
|
226
|
+
...item,
|
|
227
|
+
value: item.objId,
|
|
228
|
+
label: item.annexa,
|
|
229
|
+
isLeaf: false,
|
|
230
|
+
labelLower: item.annexa.toLowerCase(),
|
|
231
|
+
children: item.subList.map((subItem) => {
|
|
232
|
+
return {
|
|
233
|
+
...subItem,
|
|
234
|
+
value: subItem.objId,
|
|
235
|
+
label: subItem.annexa,
|
|
236
|
+
labelLower: subItem.annexa.toLowerCase(),
|
|
237
|
+
isLeaf: true,
|
|
238
|
+
};
|
|
239
|
+
}),
|
|
240
|
+
};
|
|
241
|
+
});
|
|
242
|
+
this.filteredOptions = this.options;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
this.options = [];
|
|
246
|
+
this.filteredOptions = [];
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// ---------- 移动端操作 ----------
|
|
250
|
+
openDrawer() {
|
|
251
|
+
if (this.disabled)
|
|
252
|
+
return;
|
|
253
|
+
this.searchTerm = '';
|
|
254
|
+
this.searchChildrenTerm = '';
|
|
255
|
+
this.drawerOpen = true;
|
|
256
|
+
this.view = 'root';
|
|
257
|
+
this.activeParent = null;
|
|
258
|
+
this.filteredOptions = this.options;
|
|
259
|
+
this.filteredChildren = [];
|
|
260
|
+
}
|
|
261
|
+
closeDrawer() {
|
|
262
|
+
this.drawerOpen = false;
|
|
263
|
+
}
|
|
264
|
+
goBackMobile() {
|
|
265
|
+
this.view = 'root';
|
|
266
|
+
this.activeParent = null;
|
|
267
|
+
this.searchChildrenTerm = '';
|
|
268
|
+
}
|
|
269
|
+
selectLeafMobile(option, parent) {
|
|
270
|
+
const parentVal = parent?.value ?? this.activeParent?.value ?? null;
|
|
271
|
+
const value = [String(parentVal), String(option.value)];
|
|
272
|
+
this.handleValueChange(value);
|
|
273
|
+
this.drawerOpen = false;
|
|
274
|
+
this.view = 'root';
|
|
275
|
+
this.activeParent = null;
|
|
276
|
+
}
|
|
277
|
+
openChildrenMobile(opt) {
|
|
278
|
+
if (!opt?.value)
|
|
279
|
+
return;
|
|
280
|
+
this.view = 'children';
|
|
281
|
+
this.activeParent = opt;
|
|
282
|
+
this.filteredChildren = this.activeParent?.children || [];
|
|
283
|
+
this.value = [opt.value];
|
|
284
|
+
}
|
|
285
|
+
doMobileSearch(value) {
|
|
286
|
+
const term = value?.trim().toLowerCase();
|
|
287
|
+
clearTimeout(this.searchTimer);
|
|
288
|
+
this.searchTimer = setTimeout(() => {
|
|
289
|
+
if (!term) {
|
|
290
|
+
// 恢复原数据
|
|
291
|
+
this.filteredOptions = this.options;
|
|
292
|
+
this.filteredChildren = this.activeParent?.children || [];
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (this.view === 'root') {
|
|
296
|
+
this.filteredOptions = this.options.filter((opt) => opt.label.toLowerCase().includes(term));
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
this.filteredChildren = this.activeParent?.children.filter((child) => child.label.toLowerCase().includes(term));
|
|
300
|
+
}
|
|
301
|
+
}, 150);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
IndustryCascaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
305
|
+
IndustryCascaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: IndustryCascaderComponent, selector: "app-industry-cascader", inputs: { disabled: "disabled", errorMessages: "errorMessages", industryCodes: "industryCodes", label: "label", name: "name", theme: "theme" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class.theme-light": "this.hostThemeLight", "class.theme-dark": "this.hostThemeDark" } }, providers: [
|
|
306
|
+
{
|
|
307
|
+
provide: NG_VALUE_ACCESSOR,
|
|
308
|
+
useExisting: forwardRef(() => IndustryCascaderComponent),
|
|
309
|
+
multi: true,
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
provide: NG_VALIDATORS,
|
|
313
|
+
useExisting: forwardRef(() => IndustryCascaderComponent),
|
|
314
|
+
multi: true,
|
|
315
|
+
},
|
|
316
|
+
], viewQueries: [{ propertyName: "cascaderContainer", first: true, predicate: ["cascaderContainer"], descendants: true }, { propertyName: "valueText", first: true, predicate: ["valueText"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<app-rd-form-item\n [type]=\"'select'\"\n [label]=\"label\"\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [value]=\"value && value?.length\"\n [errorMessage]=\"showError ? currentErrorMessage : ''\"\n [theme]=\"theme\"\n (click)=\"openDrawer()\"\n [ngClass]=\"{\n 'rd-cascader-overflow-container': isTextOverflow,\n 'rd-cascader-overflow-container-th': overflowLineCount >= 3,\n }\"\n>\n <div #cascaderContainer class=\"cascader-container\">\n <nz-cascader\n [nzOptions]=\"options\"\n [(ngModel)]=\"value\"\n [nzDisabled]=\"disabled\"\n [nzShowSearch]=\"{ filter: cascaderSearchFn }\"\n [nzAllowClear]=\"false\"\n nzExpandTrigger=\"click\"\n (ngModelChange)=\"handleValueChange($event)\"\n [nzLabelRender]=\"renderTpl\"\n [nzOptionRender]=\"optionTpl\"\n [nzExpandIcon]=\"customExpandIcon\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzColumnClassName=\"rd-cascader-colum\"\n class=\"rd-cascader\"\n [ngClass]=\"{\n 'rd-cascader-disabled-open': isMobile,\n 'rd-cascader-is-text-overflow': isTextOverflow,\n }\"\n >\n </nz-cascader>\n </div>\n</app-rd-form-item>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzWrapClassName]=\"drawerWrapClassName\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"cascader-drawer-header\">\n <div class=\"header-title\">\n {{ \"select_nature_of_business\" | translate }}\n <div class=\"close-btn\" *ngIf=\"view === 'root'\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.46967 4.46967C4.76256 4.17678 5.23744 4.17678 5.53033 4.46967L12 10.9393L18.4697 4.46967C18.7626 4.17678 19.2374 4.17678 19.5303 4.46967C19.8232 4.76256 19.8232 5.23744 19.5303 5.53033L13.0607 12L19.5303 18.4697C19.8232 18.7626 19.8232 19.2374 19.5303 19.5303C19.2374 19.8232 18.7626 19.8232 18.4697 19.5303L12 13.0607L5.53033 19.5303C5.23744 19.8232 4.76256 19.8232 4.46967 19.5303C4.17678 19.2374 4.17678 18.7626 4.46967 18.4697L10.9393 12L4.46967 5.53033C4.17678 5.23744 4.17678 4.76256 4.46967 4.46967Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n *ngIf=\"view === 'root'\"\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n\n <nz-input-group\n *ngIf=\"view === 'children'\"\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchChildrenTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n\n <div class=\"cascader-drawer-sub-header\" *ngIf=\"view === 'children'\">\n <div class=\"back-btn\" (click)=\"goBackMobile()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.3422 2.18437C11.5626 2.4194 11.5507 2.78856 11.3156 3.0089L6.43623 7.58334L11.3156 12.1578C11.5507 12.3781 11.5626 12.7473 11.3422 12.9823C11.1219 13.2173 10.7527 13.2292 10.5177 13.0089L5.18437 8.0089C5.06674 7.89862 5 7.74457 5 7.58334C5 7.4221 5.06674 7.26805 5.18437 7.15777L10.5177 2.15777C10.7527 1.93743 11.1219 1.94934 11.3422 2.18437Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n </div>\n <div class=\"children-title\">{{ activeParent?.label }}</div>\n </div>\n </div>\n\n <div *ngIf=\"view === 'root'\" class=\"cascader-drawer-list\">\n <ng-container *ngIf=\"filteredOptions?.length\">\n <div\n *ngFor=\"let opt of filteredOptions\"\n (click)=\"openChildrenMobile(opt)\"\n class=\"cascader-drawer-option cascader-drawer-root-option\"\n [ngClass]=\"{\n 'cascader-drawer-option-active': opt.value === value?.[0],\n }\"\n >\n {{ opt.label }}\n <ng-container *ngTemplateOutlet=\"customExpandIcon\"></ng-container>\n </div>\n </ng-container>\n </div>\n\n <div *ngIf=\"view === 'children'\" class=\"cascader-drawer-list\">\n <ng-container *ngIf=\"filteredChildren?.length\">\n <div\n *ngFor=\"let child of filteredChildren\"\n (click)=\"selectLeafMobile(child)\"\n class=\"cascader-drawer-option cascader-drawer-children-option\"\n >\n <label\n class=\"cascader-option-radio\"\n nz-radio\n [ngModel]=\"child.value === value?.[1]\"\n ></label>\n {{ child.label }}\n </div>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<ng-template\n #renderTpl\n let-labels=\"labels\"\n let-selectedOptions=\"selectedOptions\"\n>\n <ng-container *ngFor=\"let label of labels; let last = last\">\n <ng-container *ngIf=\"last\">\n <span #valueText class=\"cascader-value-text\" [title]=\"label\">\n {{ label }}\n </span></ng-container\n >\n </ng-container>\n</ng-template>\n\n<ng-template #optionTpl let-option>\n <div class=\"rd-cascader-menu-option\">\n <label\n *ngIf=\"option.isLeaf\"\n class=\"cascader-option-radio\"\n nz-radio\n [ngModel]=\"option.value === value?.[1]\"\n ></label\n >{{ option.label }}\n </div>\n</ng-template>\n\n<ng-template #customExpandIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.90777 2.60234C5.12811 2.36731 5.49727 2.3554 5.7323 2.57574L11.0656 7.57574C11.1833 7.68602 11.25 7.84007 11.25 8.0013C11.25 8.16254 11.1833 8.31659 11.0656 8.42687L5.7323 13.4269C5.49727 13.6472 5.12811 13.6353 4.90777 13.4003C4.68743 13.1652 4.69934 12.7961 4.93437 12.5757L9.81377 8.0013L4.93437 3.42687C4.69934 3.20652 4.68743 2.83737 4.90777 2.60234Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: [":host{display:block;width:100%}:host ::ng-deep .ant-select:not(.ant-select-customize-input) .ant-select-selector{transition:none!important}:host ::ng-deep .rd-cascader{width:100%;height:62px}:host ::ng-deep .rd-cascader .ant-select-selector{background-color:var(--rd-input-bg-default);max-width:100%!important;overflow:hidden!important}:host ::ng-deep .rd-cascader.rd-cascader-disabled-open{pointer-events:none}:host ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px;height:52px;border:none;border-radius:initial}:host ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{padding:10px 5px 2px;color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500;height:100%}:host ::ng-deep .rd-cascader.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{box-shadow:none}:host ::ng-deep .rd-cascader .ant-select-selection-placeholder{display:none}:host ::ng-deep .rd-cascader .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500}:host ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}:host ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;display:block!important;width:calc(100% - 20px)!important}:host ::ng-deep .rd-cascader.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px;line-height:normal}:host ::ng-deep .rd-cascader .cascader-value-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:pre-line;vertical-align:middle}:host ::ng-deep .rd-cascader.ant-select:not(.ant-select-disabled):hover .ant-select-selector,:host ::ng-deep .rd-cascader.ant-select:not(.ant-select-disabled):focus .ant-select-selector{box-shadow:none;outline:none;border:none}:host ::ng-deep .rd-cascader-is-text-overflow .ant-select-selector{height:auto!important}:host ::ng-deep .rd-cascader-overflow-container .rd-form-item{min-height:85px!important}:host ::ng-deep .rd-cascader-overflow-container-th .rd-form-item{min-height:110px!important}:host(.theme-light) ::ng-deep .rd-cascader{height:auto;min-height:62px}:host(.theme-light) ::ng-deep .rd-cascader .ant-select-arrow{display:none}:host(.theme-light) ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:auto;min-height:52px;padding-right:40px}:host(.theme-light) ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item{width:100%!important;white-space:normal!important}::ng-deep .ant-cascader-dropdown{background-color:var(--rd-bg-website);border-radius:4px;border:1px solid var(--rd-input-fg-default)}::ng-deep .rd-cascader-colum{border-right:none;height:268px!important}::ng-deep .rd-cascader-colum .ant-cascader-menu-item{padding:4px 16px;color:var(--rd-copy-primary)}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover{background-color:transparent;font-weight:400}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active .rd-cascader-menu-option,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover .rd-cascader-menu-option{background-color:#2a7bff4d}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active .rd-cascader-menu-option .ant-radio-inner,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover .rd-cascader-menu-option .ant-radio-inner{border-color:var(--rd-copy-brand)}::ng-deep .rd-cascader-colum .ant-cascader-menu-item .ant-cascader-menu-item-expand-icon{width:16px;height:16px}::ng-deep .rd-cascader-colum .rd-cascader-menu-option{min-height:44px;padding:8px;border-radius:4px;width:100%;line-height:28px;max-width:400px;word-break:normal;white-space:break-spaces;display:flex;align-items:flex-start}::ng-deep .rd-cascader-colum .rd-cascader-menu-option .cascader-option-radio{padding-top:3px}::ng-deep .rd-cascader-colum+.rd-cascader-colum{border-left:1px solid var(--rd-input-fg-default)}::ng-deep .cascader-drawer{background-color:var(--rd-bg-website)}::ng-deep .cascader-drawer .cascader-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .cascader-drawer .cascader-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .cascader-drawer .cascader-drawer-sub-header{display:flex;align-items:center;margin-top:16px;gap:16px;font-size:14px;font-weight:500}::ng-deep .cascader-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .cascader-drawer .close-btn svg{width:24px}::ng-deep .cascader-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .cascader-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .cascader-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .cascader-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .cascader-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .cascader-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .cascader-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .cascader-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .cascader-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .cascader-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .cascader-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .cascader-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .cascader-drawer.theme-light{background-color:#fff}::ng-deep .cascader-drawer.theme-light .cascader-drawer-header{background-color:#fff}::ng-deep .cascader-drawer.theme-light .ant-drawer-content{color:var(--rd-copy-primary)}::ng-deep .cascader-drawer.theme-light .cascader-drawer-search{border-color:#dfe3ea;background:#fff}::ng-deep .cascader-drawer.theme-light .cascader-drawer-search .ant-input{background:#fff;color:var(--rd-copy-primary)}::ng-deep .cascader-drawer.theme-light .cascader-drawer-option-active{background:var(--rd-blue-100)}::ng-deep .cascader-drawer.theme-light .cascader-option-radio .ant-radio-inner{border-color:#cfd5df;background:#fff}::ng-deep .cascader-drawer.theme-light svg path{fill:var(--rd-copy-primary)}::ng-deep .cascader-option-radio{pointer-events:none}::ng-deep .cascader-option-radio .ant-radio-inner{border-radius:16px;border:1px solid var(--rd-control-border-empty);background:var(--rd-control-input-empty)}::ng-deep .cascader-option-radio .ant-radio-input:focus+.ant-radio-inner{box-shadow:none}::ng-deep .cascader-option-radio .ant-radio-wrapper:hover .ant-radio,::ng-deep .cascader-option-radio .ant-radio:hover .ant-radio-inner,::ng-deep .cascader-option-radio .ant-radio-input:focus+.ant-radio-inner{border-color:var(--rd-copy-brand)}::ng-deep .cascader-data-empty{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--rd-copy-primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NzCascaderComponent, selector: "nz-cascader, [nz-cascader]", inputs: ["nzOptionRender", "nzShowInput", "nzShowArrow", "nzAllowClear", "nzAutoFocus", "nzChangeOnSelect", "nzDisabled", "nzColumnClassName", "nzExpandTrigger", "nzValueProperty", "nzLabelRender", "nzLabelProperty", "nzNotFoundContent", "nzSize", "nzBackdrop", "nzShowSearch", "nzPlaceHolder", "nzMenuClassName", "nzMenuStyle", "nzMouseEnterDelay", "nzMouseLeaveDelay", "nzStatus", "nzTriggerAction", "nzChangeOn", "nzLoadData", "nzSuffixIcon", "nzExpandIcon", "nzOptions"], outputs: ["nzVisibleChange", "nzSelectionChange", "nzSelect", "nzClear"], exportAs: ["nzCascader"] }, { kind: "component", type: i5.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i5.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "directive", type: i6.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i6.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i6.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "directive", type: i7.ɵ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: "component", type: i8.FormItemComponent, selector: "app-rd-form-item", inputs: ["errorMessage", "disabled", "label", "type", "focus", "value", "size", "theme"] }, { kind: "component", type: i9.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
317
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderComponent, decorators: [{
|
|
318
|
+
type: Component,
|
|
319
|
+
args: [{ selector: 'app-industry-cascader', providers: [
|
|
320
|
+
{
|
|
321
|
+
provide: NG_VALUE_ACCESSOR,
|
|
322
|
+
useExisting: forwardRef(() => IndustryCascaderComponent),
|
|
323
|
+
multi: true,
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
provide: NG_VALIDATORS,
|
|
327
|
+
useExisting: forwardRef(() => IndustryCascaderComponent),
|
|
328
|
+
multi: true,
|
|
329
|
+
},
|
|
330
|
+
], template: "<app-rd-form-item\n [type]=\"'select'\"\n [label]=\"label\"\n [disabled]=\"disabled\"\n [focus]=\"!!searchInput || isFocus || isOpen\"\n [value]=\"value && value?.length\"\n [errorMessage]=\"showError ? currentErrorMessage : ''\"\n [theme]=\"theme\"\n (click)=\"openDrawer()\"\n [ngClass]=\"{\n 'rd-cascader-overflow-container': isTextOverflow,\n 'rd-cascader-overflow-container-th': overflowLineCount >= 3,\n }\"\n>\n <div #cascaderContainer class=\"cascader-container\">\n <nz-cascader\n [nzOptions]=\"options\"\n [(ngModel)]=\"value\"\n [nzDisabled]=\"disabled\"\n [nzShowSearch]=\"{ filter: cascaderSearchFn }\"\n [nzAllowClear]=\"false\"\n nzExpandTrigger=\"click\"\n (ngModelChange)=\"handleValueChange($event)\"\n [nzLabelRender]=\"renderTpl\"\n [nzOptionRender]=\"optionTpl\"\n [nzExpandIcon]=\"customExpandIcon\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n nzColumnClassName=\"rd-cascader-colum\"\n class=\"rd-cascader\"\n [ngClass]=\"{\n 'rd-cascader-disabled-open': isMobile,\n 'rd-cascader-is-text-overflow': isTextOverflow,\n }\"\n >\n </nz-cascader>\n </div>\n</app-rd-form-item>\n\n<nz-drawer\n [nzVisible]=\"drawerOpen && isMobile\"\n [nzPlacement]=\"'bottom'\"\n [nzHeight]=\"'70vh'\"\n [nzTitle]=\"''\"\n [nzClosable]=\"false\"\n [nzWrapClassName]=\"drawerWrapClassName\"\n (nzOnClose)=\"closeDrawer()\"\n>\n <div *nzDrawerContent>\n <div class=\"cascader-drawer-header\">\n <div class=\"header-title\">\n {{ \"select_nature_of_business\" | translate }}\n <div class=\"close-btn\" *ngIf=\"view === 'root'\" (click)=\"closeDrawer()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.46967 4.46967C4.76256 4.17678 5.23744 4.17678 5.53033 4.46967L12 10.9393L18.4697 4.46967C18.7626 4.17678 19.2374 4.17678 19.5303 4.46967C19.8232 4.76256 19.8232 5.23744 19.5303 5.53033L13.0607 12L19.5303 18.4697C19.8232 18.7626 19.8232 19.2374 19.5303 19.5303C19.2374 19.8232 18.7626 19.8232 18.4697 19.5303L12 13.0607L5.53033 19.5303C5.23744 19.8232 4.76256 19.8232 4.46967 19.5303C4.17678 19.2374 4.17678 18.7626 4.46967 18.4697L10.9393 12L4.46967 5.53033C4.17678 5.23744 4.17678 4.76256 4.46967 4.46967Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n </div>\n </div>\n\n <nz-input-group\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n *ngIf=\"view === 'root'\"\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n\n <nz-input-group\n *ngIf=\"view === 'children'\"\n class=\"cascader-drawer-search\"\n [nzPrefix]=\"prefixIconSearch\"\n nzClearable\n >\n <input\n nz-input\n [placeholder]=\"'search' | translate\"\n [(ngModel)]=\"searchChildrenTerm\"\n (ngModelChange)=\"doMobileSearch($event)\"\n />\n </nz-input-group>\n\n <div class=\"cascader-drawer-sub-header\" *ngIf=\"view === 'children'\">\n <div class=\"back-btn\" (click)=\"goBackMobile()\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M11.3422 2.18437C11.5626 2.4194 11.5507 2.78856 11.3156 3.0089L6.43623 7.58334L11.3156 12.1578C11.5507 12.3781 11.5626 12.7473 11.3422 12.9823C11.1219 13.2173 10.7527 13.2292 10.5177 13.0089L5.18437 8.0089C5.06674 7.89862 5 7.74457 5 7.58334C5 7.4221 5.06674 7.26805 5.18437 7.15777L10.5177 2.15777C10.7527 1.93743 11.1219 1.94934 11.3422 2.18437Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n </div>\n <div class=\"children-title\">{{ activeParent?.label }}</div>\n </div>\n </div>\n\n <div *ngIf=\"view === 'root'\" class=\"cascader-drawer-list\">\n <ng-container *ngIf=\"filteredOptions?.length\">\n <div\n *ngFor=\"let opt of filteredOptions\"\n (click)=\"openChildrenMobile(opt)\"\n class=\"cascader-drawer-option cascader-drawer-root-option\"\n [ngClass]=\"{\n 'cascader-drawer-option-active': opt.value === value?.[0],\n }\"\n >\n {{ opt.label }}\n <ng-container *ngTemplateOutlet=\"customExpandIcon\"></ng-container>\n </div>\n </ng-container>\n </div>\n\n <div *ngIf=\"view === 'children'\" class=\"cascader-drawer-list\">\n <ng-container *ngIf=\"filteredChildren?.length\">\n <div\n *ngFor=\"let child of filteredChildren\"\n (click)=\"selectLeafMobile(child)\"\n class=\"cascader-drawer-option cascader-drawer-children-option\"\n >\n <label\n class=\"cascader-option-radio\"\n nz-radio\n [ngModel]=\"child.value === value?.[1]\"\n ></label>\n {{ child.label }}\n </div>\n </ng-container>\n </div>\n </div>\n</nz-drawer>\n\n<ng-template\n #renderTpl\n let-labels=\"labels\"\n let-selectedOptions=\"selectedOptions\"\n>\n <ng-container *ngFor=\"let label of labels; let last = last\">\n <ng-container *ngIf=\"last\">\n <span #valueText class=\"cascader-value-text\" [title]=\"label\">\n {{ label }}\n </span></ng-container\n >\n </ng-container>\n</ng-template>\n\n<ng-template #optionTpl let-option>\n <div class=\"rd-cascader-menu-option\">\n <label\n *ngIf=\"option.isLeaf\"\n class=\"cascader-option-radio\"\n nz-radio\n [ngModel]=\"option.value === value?.[1]\"\n ></label\n >{{ option.label }}\n </div>\n</ng-template>\n\n<ng-template #customExpandIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.90777 2.60234C5.12811 2.36731 5.49727 2.3554 5.7323 2.57574L11.0656 7.57574C11.1833 7.68602 11.25 7.84007 11.25 8.0013C11.25 8.16254 11.1833 8.31659 11.0656 8.42687L5.7323 13.4269C5.49727 13.6472 5.12811 13.6353 4.90777 13.4003C4.68743 13.1652 4.69934 12.7961 4.93437 12.5757L9.81377 8.0013L4.93437 3.42687C4.69934 3.20652 4.68743 2.83737 4.90777 2.60234Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n\n<ng-template #prefixIconSearch>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M14.4951 13.6948L11.3962 10.5959C12.3175 9.46902 12.7704 8.03122 12.6613 6.57983C12.5522 5.12844 11.8894 3.77451 10.81 2.79807C9.73066 1.82164 8.3173 1.29741 6.86227 1.33381C5.40723 1.37021 4.02185 1.96445 2.99266 2.99364C1.96348 4.02282 1.36923 5.4082 1.33283 6.86323C1.29643 8.31826 1.82066 9.73162 2.7971 10.811C3.77354 11.8903 5.12747 12.5531 6.57887 12.6622C8.03026 12.7713 9.46807 12.3184 10.5949 11.3972L13.6938 14.5032C13.8027 14.6073 13.9474 14.6656 14.098 14.6663C14.2105 14.6661 14.3204 14.6325 14.4138 14.5697C14.5071 14.5069 14.5796 14.4178 14.6222 14.3136C14.6648 14.2095 14.6754 14.0951 14.6528 13.9849C14.6302 13.8747 14.5753 13.7737 14.4951 13.6948ZM7.00667 11.5461C6.10905 11.5461 5.23158 11.2799 4.48523 10.7812C3.73889 10.2825 3.15718 9.57372 2.81367 8.74443C2.47017 7.91513 2.38029 7.0026 2.55541 6.12223C2.73053 5.24185 3.16277 4.43317 3.79749 3.79846C4.43221 3.16375 5.24088 2.7315 6.12126 2.55638C7.00164 2.38127 7.91417 2.47114 8.74347 2.81465C9.57277 3.15815 10.2816 3.73986 10.7803 4.4862C11.279 5.23255 11.5451 6.11001 11.5451 7.00763C11.5433 8.21073 11.0645 9.36402 10.2138 10.2147C9.36306 11.0655 8.20977 11.5442 7.00667 11.5461Z\"\n fill=\"var(--rd-copy-primary)\"\n />\n </svg>\n</ng-template>\n", styles: [":host{display:block;width:100%}:host ::ng-deep .ant-select:not(.ant-select-customize-input) .ant-select-selector{transition:none!important}:host ::ng-deep .rd-cascader{width:100%;height:62px}:host ::ng-deep .rd-cascader .ant-select-selector{background-color:var(--rd-input-bg-default);max-width:100%!important;overflow:hidden!important}:host ::ng-deep .rd-cascader.rd-cascader-disabled-open{pointer-events:none}:host ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:14px 16px;height:52px;border:none;border-radius:initial}:host ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{padding:10px 5px 2px;color:var(--rd-copy-primary);font-size:14px;width:100%;font-weight:500;height:100%}:host ::ng-deep .rd-cascader.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{box-shadow:none}:host ::ng-deep .rd-cascader .ant-select-selection-placeholder{display:none}:host ::ng-deep .rd-cascader .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500}:host ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item:after{display:none}:host ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;display:block!important;width:calc(100% - 20px)!important}:host ::ng-deep .rd-cascader.ant-select .ant-select-selection-item{color:var(--rd-copy-primary);font-weight:500;font-size:14px;line-height:normal}:host ::ng-deep .rd-cascader .cascader-value-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:pre-line;vertical-align:middle}:host ::ng-deep .rd-cascader.ant-select:not(.ant-select-disabled):hover .ant-select-selector,:host ::ng-deep .rd-cascader.ant-select:not(.ant-select-disabled):focus .ant-select-selector{box-shadow:none;outline:none;border:none}:host ::ng-deep .rd-cascader-is-text-overflow .ant-select-selector{height:auto!important}:host ::ng-deep .rd-cascader-overflow-container .rd-form-item{min-height:85px!important}:host ::ng-deep .rd-cascader-overflow-container-th .rd-form-item{min-height:110px!important}:host(.theme-light) ::ng-deep .rd-cascader{height:auto;min-height:62px}:host(.theme-light) ::ng-deep .rd-cascader .ant-select-arrow{display:none}:host(.theme-light) ::ng-deep .rd-cascader.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{height:auto;min-height:52px;padding-right:40px}:host(.theme-light) ::ng-deep .rd-cascader.ant-select-single .ant-select-selector .ant-select-selection-item{width:100%!important;white-space:normal!important}::ng-deep .ant-cascader-dropdown{background-color:var(--rd-bg-website);border-radius:4px;border:1px solid var(--rd-input-fg-default)}::ng-deep .rd-cascader-colum{border-right:none;height:268px!important}::ng-deep .rd-cascader-colum .ant-cascader-menu-item{padding:4px 16px;color:var(--rd-copy-primary)}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover{background-color:transparent;font-weight:400}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active .rd-cascader-menu-option,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover .rd-cascader-menu-option{background-color:#2a7bff4d}::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item-active .rd-cascader-menu-option .ant-radio-inner,::ng-deep .rd-cascader-colum .ant-cascader-menu-item.ant-cascader-menu-item:hover .rd-cascader-menu-option .ant-radio-inner{border-color:var(--rd-copy-brand)}::ng-deep .rd-cascader-colum .ant-cascader-menu-item .ant-cascader-menu-item-expand-icon{width:16px;height:16px}::ng-deep .rd-cascader-colum .rd-cascader-menu-option{min-height:44px;padding:8px;border-radius:4px;width:100%;line-height:28px;max-width:400px;word-break:normal;white-space:break-spaces;display:flex;align-items:flex-start}::ng-deep .rd-cascader-colum .rd-cascader-menu-option .cascader-option-radio{padding-top:3px}::ng-deep .rd-cascader-colum+.rd-cascader-colum{border-left:1px solid var(--rd-input-fg-default)}::ng-deep .cascader-drawer{background-color:var(--rd-bg-website)}::ng-deep .cascader-drawer .cascader-drawer-header{padding:24px 8px 0;position:sticky;top:0;background-color:var(--rd-bg-website);z-index:1111}::ng-deep .cascader-drawer .cascader-drawer-header .header-title{display:flex;align-items:center;font-size:18px;font-weight:500;line-height:24px;justify-content:space-between}::ng-deep .cascader-drawer .cascader-drawer-sub-header{display:flex;align-items:center;margin-top:16px;gap:16px;font-size:14px;font-weight:500}::ng-deep .cascader-drawer .close-btn{width:24px;height:24px;cursor:pointer}::ng-deep .cascader-drawer .close-btn svg{width:24px}::ng-deep .cascader-drawer .back-btn{width:16px;height:16px;cursor:pointer}::ng-deep .cascader-drawer .ant-drawer-body{padding:0 16px 24px}::ng-deep .cascader-drawer .ant-drawer-content{background-color:transparent;color:var(--rd-copy-primary)}::ng-deep .cascader-drawer .cascader-drawer-search{border-radius:4px;border:1px solid var(--rd-input-fg-default);background:var(--rd-input-bg-default);height:44px;padding:0 16px;margin-top:16px}::ng-deep .cascader-drawer .cascader-drawer-search::placeholder{color:var(--rd-copy-disable)}::ng-deep .cascader-drawer .cascader-drawer-search .ant-input{background:var(--rd-input-bg-default);color:var(--rd-copy-primary)}::ng-deep .cascader-drawer .cascader-drawer-search.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:var(--rd-input-fg-hover)}::ng-deep .cascader-drawer .cascader-drawer-list{margin-top:16px}::ng-deep .cascader-drawer .cascader-drawer-option{padding:8px;min-height:44px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:14px;font-weight:400;line-height:28px;line-height:1.5}::ng-deep .cascader-drawer .cascader-drawer-option svg{margin-left:auto;flex-shrink:0}::ng-deep .cascader-drawer .cascader-drawer-option-active{border-radius:4px;background:rgba(42,123,255,.3)}::ng-deep .cascader-drawer .cascader-drawer-option.cascader-drawer-root-option{align-items:center}::ng-deep .cascader-drawer.theme-light{background-color:#fff}::ng-deep .cascader-drawer.theme-light .cascader-drawer-header{background-color:#fff}::ng-deep .cascader-drawer.theme-light .ant-drawer-content{color:var(--rd-copy-primary)}::ng-deep .cascader-drawer.theme-light .cascader-drawer-search{border-color:#dfe3ea;background:#fff}::ng-deep .cascader-drawer.theme-light .cascader-drawer-search .ant-input{background:#fff;color:var(--rd-copy-primary)}::ng-deep .cascader-drawer.theme-light .cascader-drawer-option-active{background:var(--rd-blue-100)}::ng-deep .cascader-drawer.theme-light .cascader-option-radio .ant-radio-inner{border-color:#cfd5df;background:#fff}::ng-deep .cascader-drawer.theme-light svg path{fill:var(--rd-copy-primary)}::ng-deep .cascader-option-radio{pointer-events:none}::ng-deep .cascader-option-radio .ant-radio-inner{border-radius:16px;border:1px solid var(--rd-control-border-empty);background:var(--rd-control-input-empty)}::ng-deep .cascader-option-radio .ant-radio-input:focus+.ant-radio-inner{box-shadow:none}::ng-deep .cascader-option-radio .ant-radio-wrapper:hover .ant-radio,::ng-deep .cascader-option-radio .ant-radio:hover .ant-radio-inner,::ng-deep .cascader-option-radio .ant-radio-input:focus+.ant-radio-inner{border-color:var(--rd-copy-brand)}::ng-deep .cascader-data-empty{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--rd-copy-primary)}\n"] }]
|
|
331
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { cascaderContainer: [{
|
|
332
|
+
type: ViewChild,
|
|
333
|
+
args: ['cascaderContainer']
|
|
334
|
+
}], valueText: [{
|
|
335
|
+
type: ViewChild,
|
|
336
|
+
args: ['valueText']
|
|
337
|
+
}], disabled: [{
|
|
338
|
+
type: Input
|
|
339
|
+
}], errorMessages: [{
|
|
340
|
+
type: Input
|
|
341
|
+
}], industryCodes: [{
|
|
342
|
+
type: Input
|
|
343
|
+
}], valueChange: [{
|
|
344
|
+
type: Output
|
|
345
|
+
}], label: [{
|
|
346
|
+
type: Input
|
|
347
|
+
}], name: [{
|
|
348
|
+
type: Input
|
|
349
|
+
}], theme: [{
|
|
350
|
+
type: Input
|
|
351
|
+
}], hostThemeLight: [{
|
|
352
|
+
type: HostBinding,
|
|
353
|
+
args: ['class.theme-light']
|
|
354
|
+
}], hostThemeDark: [{
|
|
355
|
+
type: HostBinding,
|
|
356
|
+
args: ['class.theme-dark']
|
|
357
|
+
}], onResize: [{
|
|
358
|
+
type: HostListener,
|
|
359
|
+
args: ['window:resize']
|
|
360
|
+
}] } });
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kdXN0cnktY2FzY2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLXNlbGVjdC9pbmR1c3RyeS1jYXNjYWRlci9pbmR1c3RyeS1jYXNjYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQtbGliL3NyYy9saWIvbW9kdWxlcy9jdXN0b20tc2VsZWN0L2luZHVzdHJ5LWNhc2NhZGVyL2luZHVzdHJ5LWNhc2NhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFLWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBSVYsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBRWxCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBcUJ4QixNQUFNLE9BQU8seUJBQXlCO0lBS3BDLFlBQ1UsU0FBMkIsRUFDM0IsR0FBc0I7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFHdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUE4QjtZQUNsRCxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLE1BQU0sRUFBRSxtQkFBbUI7U0FDNUIsQ0FBQztRQUVRLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFbkQsVUFBSyxHQUFHLGlDQUFpQyxDQUFDO1FBQzFDLFNBQUksR0FBRyxFQUFFLENBQUM7UUF1Qm5CLFlBQU8sR0FBdUIsRUFBRSxDQUFDO1FBRWpDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBYSxFQUFF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STt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3VJQUsrQixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNOLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFNYixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUdGLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsbUJBQW1CO2dCQU01QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLGtCQUFrQjtnQkFxRi9CLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBPbkluaXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE56Q2FzY2FkZXJPcHRpb24gfSBmcm9tICduZy16b3Jyby1hbnRkL2Nhc2NhZGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWluZHVzdHJ5LWNhc2NhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZHVzdHJ5LWNhc2NhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5kdXN0cnktY2FzY2FkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbmR1c3RyeUNhc2NhZGVyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEluZHVzdHJ5Q2FzY2FkZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSW5kdXN0cnlDYXNjYWRlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIEBWaWV3Q2hpbGQoJ2Nhc2NhZGVyQ29udGFpbmVyJykgY2FzY2FkZXJDb250YWluZXIhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd2YWx1ZVRleHQnKSB2YWx1ZVRleHQhOiBFbGVtZW50UmVmO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHBhdHRlcm46ICdpbnZhbGlkX2Zvcm1hdCcsXG4gICAgY3VzdG9tOiAndmFsaWRhdGlvbl9mYWlsZWQnLFxuICB9O1xuICBASW5wdXQoKSBpbmR1c3RyeUNvZGVzOiBhbnk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10gfCBudWxsPigpO1xuXG4gIEBJbnB1dCgpIGxhYmVsID0gJzFzdCBpbmR1c3RyeSBuYXR1cmUgb2YgYnVzaW5lc3MnO1xuICBASW5wdXQoKSBuYW1lID0gJyc7XG4gIC8qKiBMb2NhbCBjb2xvciBjb250ZXh0LiBPbWl0IHRvIGluaGVyaXQgYm9keSBgLnRoZW1lLWxpZ2h0YCAvIGAudGhlbWUtZGFya2AuICovXG4gIEBJbnB1dCgpIHRoZW1lPzogJ2xpZ2h0JyB8ICdkYXJrJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZW1lLWxpZ2h0JylcbiAgZ2V0IGhvc3RUaGVtZUxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lID09PSAnbGlnaHQnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aGVtZS1kYXJrJylcbiAgZ2V0IGhvc3RUaGVtZURhcmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09ICdkYXJrJztcbiAgfVxuXG4gIGdldCBkcmF3ZXJXcmFwQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdGhlbWVDbGFzcyA9XG4gICAgICB0aGlzLnRoZW1lID09PSAnbGlnaHQnXG4gICAgICAgID8gJ3RoZW1lLWxpZ2h0J1xuICAgICAgICA6IHRoaXMudGhlbWUgPT09ICdkYXJrJ1xuICAgICAgICAgID8gJ3RoZW1lLWRhcmsnXG4gICAgICAgICAgOiAnJztcbiAgICByZXR1cm4gWydjYXNjYWRlci1kcmF3ZXInLCB0aGVtZUNsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9XG4gIG9wdGlvbnM6IE56Q2FzY2FkZXJPcHRpb25bXSA9IFtdO1xuXG4gIHNlYXJjaElucHV0ID0gJyc7XG4gIHZhbHVlOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGRyYXdlck9wZW4gPSBmYWxzZTtcbiAgdmlldzogJ3Jvb3QnIHwgJ2NoaWxkcmVuJyA9ICdyb290JztcbiAgYWN0aXZlUGFyZW50OiBhbnkgfCBOekNhc2NhZGVyT3B0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgaXNGb2N1cyA9IGZhbHNlO1xuICBpc09wZW4gPSBmYWxzZTtcblxuICBzZWFyY2hUZXJtID0gJyc7XG4gIHNlYXJjaENoaWxkcmVuVGVybSA9ICcnO1xuICBmaWx0ZXJlZE9wdGlvbnM6IGFueSA9IFtdO1xuICBmaWx0ZXJlZENoaWxkcmVuOiBhbnkgPSBbXTtcbiAgcHJpdmF0ZSBzZWFyY2hUaW1lcjogYW55ID0gbnVsbDtcblxuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICAvLyDmt7vliqDmlrDlsZ7mgKdcbiAgaXNUZXh0T3ZlcmZsb3cgPSBmYWxzZTtcbiAgLy8g5L+u5pS5aXNUZXh0T3ZlcmZsb3fkuLrlr7nosaHvvIzorrDlvZXmm7Tor6bnu4bnmoTkv6Hmga9cbiAgdGV4dE92ZXJmbG93SW5mbyA9IHtcbiAgICBpc092ZXJmbG93OiBmYWxzZSxcbiAgICBsaW5lQ291bnQ6IDAsXG4gICAgbWF4TGluZXM6IDIsIC8vIOS9oOWPr+S7peiuvue9ruacgOWkp+WFgeiuuOeahOihjOaVsFxuICAgIGV4Y2VlZGVkTGluZXM6IDAsIC8vIOi2hei/h+eahOihjOaVsFxuICB9O1xuICBvdmVyZmxvd0xpbmVDb3VudCA9IDA7IC8vIOWunumZheWNoOeUqOeahOihjOaVsFxuICBtYXhBbGxvd2VkTGluZXMgPSAyOyAvLyDmnIDlpKflhYHorrjooYzmlbBcblxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhIXRoaXMuY29udHJvbD8uaW52YWxpZCAmJiAodGhpcy5jb250cm9sPy50b3VjaGVkIHx8IHRoaXMuY29udHJvbD8uZGlydHkpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2w/LmVycm9ycykgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgZmlyc3RFcnJvciA9IE9iamVjdC5rZXlzKHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IHt9KVswXTtcbiAgICBjb25zdCBtc2cgPSB0aGlzLmVycm9yTWVzc2FnZXNbZmlyc3RFcnJvcl07XG5cbiAgICBzd2l0Y2ggKGZpcnN0RXJyb3IpIHtcbiAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtc2cgfHxcbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ3BsZWFzZV9zZWxlY3QnLFxuICAgICAgICAgICl9JHt0aGlzLmxhYmVsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICApO1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB0aGlzLmNvbnRyb2w/LmVycm9yc1snY3VzdG9tJ10gfHxcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd2YWxpZGF0aW9uX2ZhaWxlZCcpXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5lcnJvck1lc3NhZ2VzW2ZpcnN0RXJyb3JdKSB8fFxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ZhbGlkYXRpb25fZmFpbGVkJylcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmdbXSB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgLy8g5ZON5bqU5byP77ya5piv5ZCm5piv56e75Yqo56uvXG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLnVwZGF0ZUlzTW9iaWxlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUluaXRPcHRpb25zKCk7XG4gICAgdGhpcy51cGRhdGVJc01vYmlsZSgpO1xuICAgIGNvbnN0IG1xID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDk5N3B4KScpO1xuICAgIGlmIChtcS5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgICBtcS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtcS5hZGRMaXN0ZW5lcigoKSA9PiB0aGlzLnVwZGF0ZUlzTW9iaWxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaW5kdXN0cnlDb2RlcyddKSB7XG4gICAgICB0aGlzLmhhbmRsZUluaXRPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0dXBSZXNpemVPYnNlcnZlcigpO1xuICAgIC8vIOWIneWni+ajgOa1i1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja1RleHRPdmVyZmxvdygpLCAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwUmVzaXplT2JzZXJ2ZXIoKSB7XG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrVGV4dE92ZXJmbG93KCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMudmFsdWVUZXh0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnZhbHVlVGV4dC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY2FzY2FkZXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY2FzY2FkZXJDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1RleHRPdmVyZmxvdygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWVUZXh0Py5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB0ZXh0RWxlbWVudCA9IHRoaXMudmFsdWVUZXh0Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyDmlrnms5Ux77ya6K6h566X5a6e6ZmF6KGM5pWwXG4gICAgdGhpcy5jYWxjdWxhdGVMaW5lQ291bnQodGV4dEVsZW1lbnQpO1xuXG4gICAgLy8g5pa55rOVMu+8muWkh+eUqOWuveW6puajgOa1i1xuICAgIHRoaXMuY2hlY2tXaWR0aE92ZXJmbG93KHRleHRFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlTGluZUNvdW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgLy8g6I635Y+W5YWD57Sg55qE5qC35byPXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubGluZUhlaWdodCk7XG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICAvLyDlpoLmnpxsaW5lSGVpZ2h05Li6MOaIlk5hTu+8jOS9v+eUqOm7mOiupOWAvFxuICAgIGNvbnN0IGFjdHVhbExpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0ICYmICFpc05hTihsaW5lSGVpZ2h0KSA/IGxpbmVIZWlnaHQgOiAyMDsgLy8g6buY6K6kMjBweFxuXG4gICAgLy8g6K6h566X5a6e6ZmF6KGM5pWwXG4gICAgY29uc3QgbGluZUNvdW50ID0gTWF0aC5yb3VuZChzY3JvbGxIZWlnaHQgLyBhY3R1YWxMaW5lSGVpZ2h0KTtcbiAgICB0aGlzLm92ZXJmbG93TGluZUNvdW50ID0gbGluZUNvdW50O1xuXG4gICAgLy8g5qOA5p+l5piv5ZCm6LaF6L+H5pyA5aSn5YWB6K646KGM5pWwXG4gICAgdGhpcy5pc1RleHRPdmVyZmxvdyA9IGxpbmVDb3VudCA+IHRoaXMubWF4QWxsb3dlZExpbmVzO1xuXG4gICAgLy8g5L2g5Lmf5Y+v5Lul6K6w5b2V5pu05aSa5L+h5oGvXG4gICAgdGhpcy50ZXh0T3ZlcmZsb3dJbmZvID0ge1xuICAgICAgaXNPdmVyZmxvdzogbGluZUNvdW50ID4gdGhpcy5tYXhBbGxvd2VkTGluZXMsXG4gICAgICBsaW5lQ291bnQ6IGxpbmVDb3VudCxcbiAgICAgIG1heExpbmVzOiB0aGlzLm1heEFsbG93ZWRMaW5lcyxcbiAgICAgIGV4Y2VlZGVkTGluZXM6IE1hdGgubWF4KDAsIGxpbmVDb3VudCAtIHRoaXMubWF4QWxsb3dlZExpbmVzKSxcbiAgICB9O1xuXG4gICAgY29uc29sZS5sb2coYOaWh+acrOihjOaVsDogJHtsaW5lQ291bnR9LCDmmK/lkKbmuqLlh7o6ICR7dGhpcy5pc1RleHRPdmVyZmxvd31gKTtcblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1dpZHRoT3ZlcmZsb3coZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyDljp/mnInnmoTlrr3luqbmo4DmtYvpgLvovpHvvIjkvZzkuLrlpIfnlKjvvIlcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNhc2NhZGVyQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY29udGFpbmVyKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gcGFyc2VGbG9hdChjb250YWluZXJTdHlsZS53aWR0aCk7XG4gICAgICBjb25zdCB0ZXh0V2lkdGggPSBlbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9XG4gICAgICAgIHBhcnNlRmxvYXQoY29udGFpbmVyU3R5bGUucGFkZGluZ0xlZnQpICtcbiAgICAgICAgcGFyc2VGbG9hdChjb250YWluZXJTdHlsZS5wYWRkaW5nUmlnaHQpO1xuICAgICAgY29uc3QgYXZhaWxhYmxlV2lkdGggPSBjb250YWluZXJXaWR0aCAtIGNvbnRhaW5lclBhZGRpbmcgLSA1NjtcblxuICAgICAgY29uc3QgaXNXaWR0aE92ZXJmbG93ID0gdGV4dFdpZHRoID4gYXZhaWxhYmxlV2lkdGg7XG5cbiAgICAgIC8vIOe7k+WQiOS4pOenjeajgOa1i+e7k+aenFxuICAgICAgaWYgKGlzV2lkdGhPdmVyZmxvdyAmJiAhdGhpcy5pc1RleHRPdmVyZmxvdykge1xuICAgICAgICB0aGlzLmlzVGV4dE92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyDkv67mlLloYW5kbGVWYWx1ZUNoYW5nZeaWueazle+8jOa3u+WKoOW7tui/n+ajgOa1i1xuICBoYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG5cbiAgICAvLyDlop7liqDlu7bov5/vvIznoa7kv51ET03lrozlhajmm7TmlrBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tUZXh0T3ZlcmZsb3coKTtcbiAgICAgIC8vIOWPr+iDvemcgOimgeWkmuasoeajgOa1i+S7peehruS/neWHhuehrlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrVGV4dE92ZXJmbG93KCksIDEwMCk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJc01vYmlsZSgpIHtcbiAgICB0aGlzLmlzTW9iaWxlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6IDk5N3B4KScpLm1hdGNoZXM7XG4gIH1cblxuICBjYXNjYWRlclNlYXJjaEZuID0gKGlucHV0OiBzdHJpbmcsIHBhdGg6IGFueVtdKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaSA9IGlucHV0LnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gcGF0aC5zb21lKChwKSA9PiBwLmxhYmVsTG93ZXIuaW5jbHVkZXMoaSkpO1xuICB9O1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgb25WaXNpYmxlQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmlzT3BlbiA9IHZhbHVlO1xuICB9XG5cbiAgaGFuZGxlSW5pdE9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuaW5kdXN0cnlDb2Rlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5pbmR1c3RyeUNvZGVzLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICB2YWx1ZTogaXRlbS5vYmpJZCxcbiAgICAgICAgICBsYWJlbDogaXRlbS5hbm5leGEsXG4gICAgICAgICAgaXNMZWFmOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbExvd2VyOiBpdGVtLmFubmV4YS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIGNoaWxkcmVuOiBpdGVtLnN1Ykxpc3QubWFwKChzdWJJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnN1Ykl0ZW0sXG4gICAgICAgICAgICAgIHZhbHVlOiBzdWJJdGVtLm9iaklkLFxuICAgICAgICAgICAgICBsYWJlbDogc3ViSXRlbS5hbm5leGEsXG4gICAgICAgICAgICAgIGxhYmVsTG93ZXI6IHN1Ykl0ZW0uYW5uZXhhLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgIGlzTGVhZjogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLSDnp7vliqjnq6/mk43kvZwgLS0tLS0tLS0tLVxuXG4gIG9wZW5EcmF3ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLnNlYXJjaENoaWxkcmVuVGVybSA9ICcnO1xuICAgIHRoaXMuZHJhd2VyT3BlbiA9IHRydWU7XG4gICAgdGhpcy52aWV3ID0gJ3Jvb3QnO1xuICAgIHRoaXMuYWN0aXZlUGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4gPSBbXTtcbiAgfVxuXG4gIGNsb3NlRHJhd2VyKCkge1xuICAgIHRoaXMuZHJhd2VyT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgZ29CYWNrTW9iaWxlKCk6IHZvaWQge1xuICAgIHRoaXMudmlldyA9ICdyb290JztcbiAgICB0aGlzLmFjdGl2ZVBhcmVudCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hDaGlsZHJlblRlcm0gPSAnJztcbiAgfVxuXG4gIHNlbGVjdExlYWZNb2JpbGUob3B0aW9uOiBhbnksIHBhcmVudD86IGFueSkge1xuICAgIGNvbnN0IHBhcmVudFZhbCA9IHBhcmVudD8udmFsdWUgPz8gdGhpcy5hY3RpdmVQYXJlbnQ/LnZhbHVlID8/IG51bGw7XG4gICAgY29uc3QgdmFsdWUgPSBbU3RyaW5nKHBhcmVudFZhbCksIFN0cmluZyhvcHRpb24udmFsdWUpXTtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLmRyYXdlck9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnZpZXcgPSAncm9vdCc7XG4gICAgdGhpcy5hY3RpdmVQYXJlbnQgPSBudWxsO1xuICB9XG5cbiAgb3BlbkNoaWxkcmVuTW9iaWxlKG9wdDogYW55KSB7XG4gICAgaWYgKCFvcHQ/LnZhbHVlKSByZXR1cm47XG4gICAgdGhpcy52aWV3ID0gJ2NoaWxkcmVuJztcbiAgICB0aGlzLmFjdGl2ZVBhcmVudCA9IG9wdDtcbiAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmFjdGl2ZVBhcmVudD8uY2hpbGRyZW4gfHwgW107XG4gICAgdGhpcy52YWx1ZSA9IFtvcHQudmFsdWVdO1xuICB9XG5cbiAgZG9Nb2JpbGVTZWFyY2godmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRlcm0gPSB2YWx1ZT8udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hUaW1lcik7XG5cbiAgICB0aGlzLnNlYXJjaFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXRlcm0pIHtcbiAgICAgICAgLy8g5oGi5aSN5Y6f5pWw5o2uXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmFjdGl2ZVBhcmVudD8uY2hpbGRyZW4gfHwgW107XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudmlldyA9PT0gJ3Jvb3QnKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0OiBhbnkpID0+XG4gICAgICAgICAgb3B0LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4gPSB0aGlzLmFjdGl2ZVBhcmVudD8uY2hpbGRyZW4uZmlsdGVyKFxuICAgICAgICAgIChjaGlsZDogYW55KSA9PiBjaGlsZC5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIDE1MCk7XG4gIH1cbn1cbiIsIjxhcHAtcmQtZm9ybS1pdGVtXG4gIFt0eXBlXT1cIidzZWxlY3QnXCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2ZvY3VzXT1cIiEhc2VhcmNoSW5wdXQgfHwgaXNGb2N1cyB8fCBpc09wZW5cIlxuICBbdmFsdWVdPVwidmFsdWUgJiYgdmFsdWU/Lmxlbmd0aFwiXG4gIFtlcnJvck1lc3NhZ2VdPVwic2hvd0Vycm9yID8gY3VycmVudEVycm9yTWVzc2FnZSA6ICcnXCJcbiAgW3RoZW1lXT1cInRoZW1lXCJcbiAgKGNsaWNrKT1cIm9wZW5EcmF3ZXIoKVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAncmQtY2FzY2FkZXItb3ZlcmZsb3ctY29udGFpbmVyJzogaXNUZXh0T3ZlcmZsb3csXG4gICAgJ3JkLWNhc2NhZGVyLW92ZXJmbG93LWNvbnRhaW5lci10aCc6IG92ZXJmbG93TGluZUNvdW50ID49IDMsXG4gIH1cIlxuPlxuICA8ZGl2ICNjYXNjYWRlckNvbnRhaW5lciBjbGFzcz1cImNhc2NhZGVyLWNvbnRhaW5lclwiPlxuICAgIDxuei1jYXNjYWRlclxuICAgICAgW256T3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgW256RGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW256U2hvd1NlYXJjaF09XCJ7IGZpbHRlcjogY2FzY2FkZXJTZWFyY2hGbiB9XCJcbiAgICAgIFtuekFsbG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgbnpFeHBhbmRUcmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbnpMYWJlbFJlbmRlcl09XCJyZW5kZXJUcGxcIlxuICAgICAgW256T3B0aW9uUmVuZGVyXT1cIm9wdGlvblRwbFwiXG4gICAgICBbbnpFeHBhbmRJY29uXT1cImN1c3RvbUV4cGFuZEljb25cIlxuICAgICAgKG56VmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBuekNvbHVtbkNsYXNzTmFtZT1cInJkLWNhc2NhZGVyLWNvbHVtXCJcbiAgICAgIGNsYXNzPVwicmQtY2FzY2FkZXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAncmQtY2FzY2FkZXItZGlzYWJsZWQtb3Blbic6IGlzTW9iaWxlLFxuICAgICAgICAncmQtY2FzY2FkZXItaXMtdGV4dC1vdmVyZmxvdyc6IGlzVGV4dE92ZXJmbG93LFxuICAgICAgfVwiXG4gICAgPlxuICAgIDwvbnotY2FzY2FkZXI+XG4gIDwvZGl2PlxuPC9hcHAtcmQtZm9ybS1pdGVtPlxuXG48bnotZHJhd2VyXG4gIFtuelZpc2libGVdPVwiZHJhd2VyT3BlbiAmJiBpc01vYmlsZVwiXG4gIFtuelBsYWNlbWVudF09XCInYm90dG9tJ1wiXG4gIFtuekhlaWdodF09XCInNzB2aCdcIlxuICBbbnpUaXRsZV09XCInJ1wiXG4gIFtuekNsb3NhYmxlXT1cImZhbHNlXCJcbiAgW256V3JhcENsYXNzTmFtZV09XCJkcmF3ZXJXcmFwQ2xhc3NOYW1lXCJcbiAgKG56T25DbG9zZSk9XCJjbG9zZURyYXdlcigpXCJcbj5cbiAgPGRpdiAqbnpEcmF3ZXJDb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgIHt7IFwic2VsZWN0X25hdHVyZV9vZl9idXNpbmVzc1wiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idG5cIiAqbmdJZj1cInZpZXcgPT09ICdyb290J1wiIChjbGljayk9XCJjbG9zZURyYXdlcigpXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk00LjQ2OTY3IDQuNDY5NjdDNC43NjI1NiA0LjE3Njc4IDUuMjM3NDQgNC4xNzY3OCA1LjUzMDMzIDQuNDY5NjdMMTIgMTAuOTM5M0wxOC40Njk3IDQuNDY5NjdDMTguNzYyNiA0LjE3Njc4IDE5LjIzNzQgNC4xNzY3OCAxOS41MzAzIDQuNDY5NjdDMTkuODIzMiA0Ljc2MjU2IDE5LjgyMzIgNS4yMzc0NCAxOS41MzAzIDUuNTMwMzNMMTMuMDYwNyAxMkwxOS41MzAzIDE4LjQ2OTdDMTkuODIzMiAxOC43NjI2IDE5LjgyMzIgMTkuMjM3NCAxOS41MzAzIDE5LjUzMDNDMTkuMjM3NCAxOS44MjMyIDE4Ljc2MjYgMTkuODIzMiAxOC40Njk3IDE5LjUzMDNMMTIgMTMuMDYwN0w1LjUzMDMzIDE5LjUzMDNDNS4yMzc0NCAxOS44MjMyIDQuNzYyNTYgMTkuODIzMiA0LjQ2OTY3IDE5LjUzMDNDNC4xNzY3OCAxOS4yMzc0IDQuMTc2NzggMTguNzYyNiA0LjQ2OTY3IDE4LjQ2OTdMMTAuOTM5MyAxMkw0LjQ2OTY3IDUuNTMwMzNDNC4xNzY3OCA1LjIzNzQ0IDQuMTc2NzggNC43NjI1NiA0LjQ2OTY3IDQuNDY5NjdaXCJcbiAgICAgICAgICAgICAgZmlsbD1cInZhcigtLXJkLWNvcHktcHJpbWFyeSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG56LWlucHV0LWdyb3VwXG4gICAgICAgIGNsYXNzPVwiY2FzY2FkZXItZHJhd2VyLXNlYXJjaFwiXG4gICAgICAgIFtuelByZWZpeF09XCJwcmVmaXhJY29uU2VhcmNoXCJcbiAgICAgICAgbnpDbGVhcmFibGVcbiAgICAgICAgKm5nSWY9XCJ2aWV3ID09PSAncm9vdCdcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJkb01vYmlsZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvbnotaW5wdXQtZ3JvdXA+XG5cbiAgICAgIDxuei1pbnB1dC1ncm91cFxuICAgICAgICAqbmdJZj1cInZpZXcgPT09ICdjaGlsZHJlbidcIlxuICAgICAgICBjbGFzcz1cImNhc2NhZGVyLWRyYXdlci1zZWFyY2hcIlxuICAgICAgICBbbnpQcmVmaXhdPVwicHJlZml4SWNvblNlYXJjaFwiXG4gICAgICAgIG56Q2xlYXJhYmxlXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaENoaWxkcmVuVGVybVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZG9Nb2JpbGVTZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L256LWlucHV0LWdyb3VwPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FzY2FkZXItZHJhd2VyLXN1Yi1oZWFkZXJcIiAqbmdJZj1cInZpZXcgPT09ICdjaGlsZHJlbidcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJhY2stYnRuXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZSgpXCI+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk0xMS4zNDIyIDIuMTg0MzdDMTEuNTYyNiAyLjQxOTQgMTEuNTUwNyAyLjc4ODU2IDExLjMxNTYgMy4wMDg5TDYuNDM2MjMgNy41ODMzNEwxMS4zMTU2IDEyLjE1NzhDMTEuNTUwNyAxMi4zNzgxIDExLjU2MjYgMTIuNzQ3MyAxMS4zNDIyIDEyLjk4MjNDMTEuMTIxOSAxMy4yMTczIDEwLjc1MjcgMTMuMjI5MiAxMC41MTc3IDEzLjAwODlMNS4xODQzNyA4LjAwODlDNS4wNjY3NCA3Ljg5ODYyIDUgNy43NDQ1NyA1IDcuNTgzMzRDNSA3LjQyMjEgNS4wNjY3NCA3LjI2ODA1IDUuMTg0MzcgNy4xNTc3N0wxMC41MTc3IDIuMTU3NzdDMTAuNzUyNyAxLjkzNzQzIDExLjEyMTkgMS45NDkzNCAxMS4zNDIyIDIuMTg0MzdaXCJcbiAgICAgICAgICAgICAgZmlsbD1cInZhcigtLXJkLWNvcHktcHJpbWFyeSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZHJlbi10aXRsZVwiPnt7IGFjdGl2ZVBhcmVudD8ubGFiZWwgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInZpZXcgPT09ICdyb290J1wiIGNsYXNzPVwiY2FzY2FkZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJlZE9wdGlvbnM/Lmxlbmd0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9wdCBvZiBmaWx0ZXJlZE9wdGlvbnNcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuQ2hpbGRyZW5Nb2JpbGUob3B0KVwiXG4gICAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItb3B0aW9uIGNhc2NhZGVyLWRyYXdlci1yb290LW9wdGlvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2Nhc2NhZGVyLWRyYXdlci1vcHRpb24tYWN0aXZlJzogb3B0LnZhbHVlID09PSB2YWx1ZT8uWzBdLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgb3B0LmxhYmVsIH19XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUV4cGFuZEljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJ2aWV3ID09PSAnY2hpbGRyZW4nXCIgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItbGlzdFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcmVkQ2hpbGRyZW4/Lmxlbmd0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGZpbHRlcmVkQ2hpbGRyZW5cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RMZWFmTW9iaWxlKGNoaWxkKVwiXG4gICAgICAgICAgY2xhc3M9XCJjYXNjYWRlci1kcmF3ZXItb3B0aW9uIGNhc2NhZGVyLWRyYXdlci1jaGlsZHJlbi1vcHRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cImNhc2NhZGVyLW9wdGlvbi1yYWRpb1wiXG4gICAgICAgICAgICBuei1yYWRpb1xuICAgICAgICAgICAgW25nTW9kZWxdPVwiY2hpbGQudmFsdWUgPT09IHZhbHVlPy5bMV1cIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIHt7IGNoaWxkLmxhYmVsIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uei1kcmF3ZXI+XG5cbjxuZy10ZW1wbGF0ZVxuICAjcmVuZGVyVHBsXG4gIGxldC1sYWJlbHM9XCJsYWJlbHNcIlxuICBsZXQtc2VsZWN0ZWRPcHRpb25zPVwic2VsZWN0ZWRPcHRpb25zXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgbGFiZWxzOyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFzdFwiPlxuICAgICAgPHNwYW4gI3ZhbHVlVGV4dCBjbGFzcz1cImNhc2NhZGVyLXZhbHVlLXRleHRcIiBbdGl0bGVdPVwibGFiZWxcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgIDwvc3Bhbj48L25nLWNvbnRhaW5lclxuICAgID5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI29wdGlvblRwbCBsZXQtb3B0aW9uPlxuICA8ZGl2IGNsYXNzPVwicmQtY2FzY2FkZXItbWVudS1vcHRpb25cIj5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0lmPVwib3B0aW9uLmlzTGVhZlwiXG4gICAgICBjbGFzcz1cImNhc2NhZGVyLW9wdGlvbi1yYWRpb1wiXG4gICAgICBuei1yYWRpb1xuICAgICAgW25nTW9kZWxdPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZT8uWzFdXCJcbiAgICA+PC9sYWJlbFxuICAgID57eyBvcHRpb24ubGFiZWwgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUV4cGFuZEljb24+XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjE2XCJcbiAgICBoZWlnaHQ9XCIxNlwiXG4gICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTQuOTA3NzcgMi42MDIzNEM1LjEyODExIDIuMzY3MzEgNS40OTcyNyAyLjM1NTQgNS43MzIzIDIuNTc1NzRMMTEuMDY1NiA3LjU3NTc0QzExLjE4MzMgNy42ODYwMiAxMS4yNSA3Ljg0MDA3IDExLjI1IDguMDAxM0MxMS4yNSA4LjE2MjU0IDExLjE4MzMgOC4zMTY1OSAxMS4wNjU2IDguNDI2ODdMNS43MzIzIDEzLjQyNjlDNS40OTcyNyAxMy42NDcyIDUuMTI4MTEgMTMuNjM1MyA0LjkwNzc3IDEzLjQwMDNDNC42ODc0MyAxMy4xNjUyIDQuNjk5MzQgMTIuNzk2MSA0LjkzNDM3IDEyLjU3NTdMOS44MTM3NyA4LjAwMTNMNC45MzQzNyAzLjQyNjg3QzQuNjk5MzQgMy4yMDY1MiA0LjY4NzQzIDIuODM3MzcgNC45MDc3NyAyLjYwMjM0WlwiXG4gICAgICBmaWxsPVwidmFyKC0tcmQtY29weS1wcmltYXJ5KVwiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3ByZWZpeEljb25TZWFyY2g+XG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjE2XCJcbiAgICBoZWlnaHQ9XCIxNlwiXG4gICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMTQuNDk1MSAxMy42OTQ4TDExLjM5NjIgMTAuNTk1OUMxMi4zMTc1IDkuNDY5MDIgMTIuNzcwNCA4LjAzMTIyIDEyLjY2MTMgNi41Nzk4M0MxMi41NTIyIDUuMTI4NDQgMTEuODg5NCAzLjc3NDUxIDEwLjgxIDIuNzk4MDdDOS43MzA2NiAxLjgyMTY0IDguMzE3MyAxLjI5NzQxIDYuODYyMjcgMS4zMzM4MUM1LjQwNzIzIDEuMzcwMjEgNC4wMjE4NSAxLjk2NDQ1IDIuOTkyNjYgMi45OTM2NEMxLjk2MzQ4IDQuMDIyODIgMS4zNjkyMyA1LjQwODIgMS4zMzI4MyA2Ljg2MzIzQzEuMjk2NDMgOC4zMTgyNiAxLjgyMDY2IDkuNzMxNjIgMi43OTcxIDEwLjgxMUMzLjc3MzU0IDExLjg5MDMgNS4xMjc0NyAxMi41NTMxIDYuNTc4ODcgMTIuNjYyMkM4LjAzMDI2IDEyLjc3MTMgOS40NjgwNyAxMi4zMTg0IDEwLjU5NDkgMTEuMzk3MkwxMy42OTM4IDE0LjUwMzJDMTMuODAyNyAxNC42MDczIDEzLjk0NzQgMTQuNjY1NiAxNC4wOTggMTQuNjY2M0MxNC4yMTA1IDE0LjY2NjEgMTQuMzIwNCAxNC42MzI1IDE0LjQxMzggMTQuNTY5N0MxNC41MDcxIDE0LjUwNjkgMTQuNTc5NiAxNC40MTc4IDE0LjYyMjIgMTQuMzEzNkMxNC42NjQ4IDE0LjIwOTUgMTQuNjc1NCAxNC4wOTUxIDE0LjY1MjggMTMuOTg0OUMxNC42MzAyIDEzLjg3NDcgMTQuNTc1MyAxMy43NzM3IDE0LjQ5NTEgMTMuNjk0OFpNNy4wMDY2NyAxMS41NDYxQzYuMTA5MDUgMTEuNTQ2MSA1LjIzMTU4IDExLjI3OTkgNC40ODUyMyAxMC43ODEyQzMuNzM4ODkgMTAuMjgyNSAzLjE1NzE4IDkuNTczNzIgMi44MTM2NyA4Ljc0NDQzQzIuNDcwMTcgNy45MTUxMyAyLjM4MDI5IDcuMDAyNiAyLjU1NTQxIDYuMTIyMjNDMi43MzA1MyA1LjI0MTg1IDMuMTYyNzcgNC40MzMxNyAzLjc5NzQ5IDMuNzk4NDZDNC40MzIyMSAzLjE2Mzc1IDUuMjQwODggMi43MzE1IDYuMTIxMjYgMi41NTYzOEM3LjAwMTY0IDIuMzgxMjcgNy45MTQxNyAyLjQ3MTE0IDguNzQzNDcgMi44MTQ2NUM5LjU3Mjc3IDMuMTU4MTUgMTAuMjgxNiAzLjczOTg2IDEwLjc4MDMgNC40ODYyQzExLjI3OSA1LjIzMjU1IDExLjU0NTEgNi4xMTAwMSAxMS41NDUxIDcuMDA3NjNDMTEuNTQzMyA4LjIxMDczIDExLjA2NDUgOS4zNjQwMiAxMC4yMTM4IDEwLjIxNDdDOS4zNjMwNiAxMS4wNjU1IDguMjA5NzcgMTEuNTQ0MiA3LjAwNjY3IDExLjU0NjFaXCJcbiAgICAgIGZpbGw9XCJ2YXIoLS1yZC1jb3B5LXByaW1hcnkpXCJcbiAgICAvPlxuICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { FormsModule } from "@angular/forms";
|
|
4
|
+
import { NzCascaderModule } from "ng-zorro-antd/cascader";
|
|
5
|
+
import { NzDrawerModule } from "ng-zorro-antd/drawer";
|
|
6
|
+
import { NzInputModule } from "ng-zorro-antd/input";
|
|
7
|
+
import { NzListModule } from "ng-zorro-antd/list";
|
|
8
|
+
import { NzSpinModule } from "ng-zorro-antd/spin";
|
|
9
|
+
import { NzButtonModule } from "ng-zorro-antd/button";
|
|
10
|
+
import { IndustryCascaderComponent } from "./industry-cascader.component";
|
|
11
|
+
import { FormItemModule } from "../../form-item/form-item.module";
|
|
12
|
+
import { NzRadioModule } from "ng-zorro-antd/radio";
|
|
13
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@ngx-translate/core";
|
|
16
|
+
export class IndustryCascaderModule {
|
|
17
|
+
}
|
|
18
|
+
IndustryCascaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
IndustryCascaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderModule, declarations: [IndustryCascaderComponent], imports: [CommonModule,
|
|
20
|
+
FormsModule,
|
|
21
|
+
NzCascaderModule,
|
|
22
|
+
NzDrawerModule,
|
|
23
|
+
NzInputModule,
|
|
24
|
+
NzListModule,
|
|
25
|
+
NzSpinModule,
|
|
26
|
+
NzButtonModule,
|
|
27
|
+
FormItemModule,
|
|
28
|
+
NzRadioModule, i1.TranslateModule], exports: [IndustryCascaderComponent] });
|
|
29
|
+
IndustryCascaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderModule, imports: [CommonModule,
|
|
30
|
+
FormsModule,
|
|
31
|
+
NzCascaderModule,
|
|
32
|
+
NzDrawerModule,
|
|
33
|
+
NzInputModule,
|
|
34
|
+
NzListModule,
|
|
35
|
+
NzSpinModule,
|
|
36
|
+
NzButtonModule,
|
|
37
|
+
FormItemModule,
|
|
38
|
+
NzRadioModule,
|
|
39
|
+
TranslateModule.forChild()] });
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: IndustryCascaderModule, decorators: [{
|
|
41
|
+
type: NgModule,
|
|
42
|
+
args: [{
|
|
43
|
+
declarations: [IndustryCascaderComponent],
|
|
44
|
+
imports: [
|
|
45
|
+
CommonModule,
|
|
46
|
+
FormsModule,
|
|
47
|
+
NzCascaderModule,
|
|
48
|
+
NzDrawerModule,
|
|
49
|
+
NzInputModule,
|
|
50
|
+
NzListModule,
|
|
51
|
+
NzSpinModule,
|
|
52
|
+
NzButtonModule,
|
|
53
|
+
FormItemModule,
|
|
54
|
+
NzRadioModule,
|
|
55
|
+
TranslateModule.forChild(),
|
|
56
|
+
],
|
|
57
|
+
exports: [IndustryCascaderComponent],
|
|
58
|
+
}]
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kdXN0cnktY2FzY2FkZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLXNlbGVjdC9pbmR1c3RyeS1jYXNjYWRlci9pbmR1c3RyeS1jYXNjYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQW1CdEQsTUFBTSxPQUFPLHNCQUFzQjs7b0hBQXRCLHNCQUFzQjtxSEFBdEIsc0JBQXNCLGlCQWhCbEIseUJBQXlCLGFBRXRDLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsWUFBWTtRQUNaLFlBQVk7UUFDWixjQUFjO1FBQ2QsY0FBYztRQUNkLGFBQWEsaUNBR0wseUJBQXlCO3FIQUV4QixzQkFBc0IsWUFkL0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGFBQWE7UUFDYixZQUFZO1FBQ1osWUFBWTtRQUNaLGNBQWM7UUFDZCxjQUFjO1FBQ2QsYUFBYTtRQUNiLGVBQWUsQ0FBQyxRQUFRLEVBQUU7NEZBSWpCLHNCQUFzQjtrQkFqQmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWUsQ0FBQyxRQUFRLEVBQUU7cUJBQzNCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOekNhc2NhZGVyTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY2FzY2FkZXJcIjtcbmltcG9ydCB7IE56RHJhd2VyTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvZHJhd2VyXCI7XG5pbXBvcnQgeyBOeklucHV0TW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvaW5wdXRcIjtcbmltcG9ydCB7IE56TGlzdE1vZHVsZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkL2xpc3RcIjtcbmltcG9ydCB7IE56U3Bpbk1vZHVsZSB9IGZyb20gXCJuZy16b3Jyby1hbnRkL3NwaW5cIjtcbmltcG9ydCB7IE56QnV0dG9uTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvYnV0dG9uXCI7XG5cbmltcG9ydCB7IEluZHVzdHJ5Q2FzY2FkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9pbmR1c3RyeS1jYXNjYWRlci5jb21wb25lbnRcIjtcbmltcG9ydCB7IEZvcm1JdGVtTW9kdWxlIH0gZnJvbSBcIi4uLy4uL2Zvcm0taXRlbS9mb3JtLWl0ZW0ubW9kdWxlXCI7XG5pbXBvcnQgeyBOelJhZGlvTW9kdWxlIH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvcmFkaW9cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0luZHVzdHJ5Q2FzY2FkZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE56Q2FzY2FkZXJNb2R1bGUsXG4gICAgTnpEcmF3ZXJNb2R1bGUsXG4gICAgTnpJbnB1dE1vZHVsZSxcbiAgICBOekxpc3RNb2R1bGUsXG4gICAgTnpTcGluTW9kdWxlLFxuICAgIE56QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1JdGVtTW9kdWxlLFxuICAgIE56UmFkaW9Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXG4gIF0sXG4gIGV4cG9ydHM6IFtJbmR1c3RyeUNhc2NhZGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgSW5kdXN0cnlDYXNjYWRlck1vZHVsZSB7fVxuIl19
|