fantasy-ngzorro 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/fantasy-ngzorro.umd.js +236 -138
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-form/hd-form.component.js +81 -37
- package/esm2015/hd-form/hd-form.service.js +5 -1
- package/esm2015/hd-form-lines/hd-form-lines.component.js +124 -97
- package/esm2015/hd-form-lines/hd-form-lines.service.js +5 -1
- package/esm5/hd-form/hd-form.component.js +93 -40
- package/esm5/hd-form/hd-form.service.js +5 -1
- package/esm5/hd-form-lines/hd-form-lines.component.js +137 -100
- package/esm5/hd-form-lines/hd-form-lines.service.js +5 -1
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +211 -132
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +236 -138
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-form/hd-form.component.d.ts +4 -0
- package/hd-form/hd-form.service.d.ts +2 -0
- package/hd-form-lines/hd-form-lines.component.d.ts +4 -0
- package/hd-form-lines/hd-form-lines.service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -65,6 +65,8 @@ if (false) {
|
|
|
65
65
|
/** @type {?} */
|
|
66
66
|
FormLine.prototype.onSearchEvent;
|
|
67
67
|
/** @type {?} */
|
|
68
|
+
FormLine.prototype.onOpenChangeEvent;
|
|
69
|
+
/** @type {?} */
|
|
68
70
|
FormLine.prototype.defaultLabel;
|
|
69
71
|
/** @type {?} */
|
|
70
72
|
FormLine.prototype.hdDisabledDate;
|
|
@@ -82,6 +84,8 @@ if (false) {
|
|
|
82
84
|
FormLine.prototype.onChangeEventDebounceTime;
|
|
83
85
|
/** @type {?} */
|
|
84
86
|
FormLine.prototype.onSearchEventEventDebounceTime;
|
|
87
|
+
/** @type {?} */
|
|
88
|
+
FormLine.prototype.onOpenChangeEventDebounceTime;
|
|
85
89
|
}
|
|
86
90
|
export class ColorOption {
|
|
87
91
|
}
|
|
@@ -127,4 +131,4 @@ HdFormLinesService.decorators = [
|
|
|
127
131
|
/** @nocollapse */
|
|
128
132
|
HdFormLinesService.ctorParameters = () => [];
|
|
129
133
|
/** @nocollapse */ HdFormLinesService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function HdFormLinesService_Factory() { return new HdFormLinesService(); }, token: HdFormLinesService, providedIn: "root" });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS1saW5lcy9oZC1mb3JtLWxpbmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRWpFLE1BQU0sT0FBTyxRQUFRO0lBQXJCOztRQUtFLFlBQU8sR0FBYSxLQUFLLENBQUMsQ0FBQyxPQUFPOztRQUNsQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxxQkFBZ0IsR0FBYSxLQUFLLENBQUMsQ0FBQyw4Q0FBOEM7O1FBRWxGLFVBQUssR0FBb0UsSUFBSSxDQUFDLENBQUUsY0FBYzs7UUFTOUYsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3Qjs7UUFNdkUsZ0JBQVcsR0FBYSxJQUFJLENBQUMsQ0FBQyxvQ0FBb0M7O1FBRWxFLGFBQVEsR0FBYSxLQUFLLENBQUMsQ0FBQyxjQUFjO1FBRTFDLGNBQVMsR0FBYSxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFJOUQsQ0FBQztDQUFBOzs7SUEvQkMsd0JBQW1COztJQUNuQix5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYiwrQkFBcUI7O0lBQ3JCLDJCQUEwQjs7SUFDMUIsd0JBQXVCOztJQUN2QixvQ0FBbUM7O0lBQ25DLHlCQUFvQzs7SUFDcEMseUJBQThFOztJQUM5RSw0QkFBbUI7O0lBQ25CLGdDQUE0Qjs7SUFDNUIsc0NBQW1DOztJQUNuQyxpQ0FBOEI7O0lBQzlCLCtCQUEwQjs7SUFFMUIsNkJBQW1COztJQUNuQixrQ0FBd0I7O0lBQ3hCLCtCQUE4Qzs7SUFDOUMsaUNBQXlCOztJQUN6QixpQ0FBeUI7O0lBQ3pCLHFDQUE2Qjs7SUFDN0IsZ0NBQW1COztJQUNuQixrQ0FBMEI7O0lBQzFCLCtCQUE2Qjs7SUFDN0IsNEJBQW1COztJQUNuQiw0QkFBMkI7O0lBQzNCLHlCQUFlOztJQUNmLDZCQUE0Qjs7SUFDNUIsNkNBQW1DOztJQUNuQyxrREFBd0M7O0lBQ3hDLGlEQUF1Qzs7QUFHekMsTUFBTSxPQUFPLFdBQVc7Q0FHdkI7OztJQUZDLDJCQUFhOztJQUNiLDRCQUFlOztBQUdqQixNQUFNLE9BQU8sYUFBYTtDQUl6Qjs7O0lBSEMsNkJBQWM7O0lBQ2QsNkJBQWE7O0lBQ2IsOEJBQWU7Ozs7SUFNZixPQUFRLE9BQU87SUFDZixRQUFTLFFBQVE7SUFDakIsTUFBTyxNQUFNO0lBQ2IsV0FBWSxXQUFXO0lBQ3ZCLFVBQVcsVUFBVTtJQUNyQixhQUFjLGFBQWE7SUFDM0IsZ0JBQWlCLGdCQUFnQjtJQUNqQyxTQUFVLFNBQVM7SUFDbkIsUUFBUyxRQUFRO0lBQ2pCLE1BQU8sTUFBTSxDQUFlLFFBQVE7Ozs7QUFNdEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixnQkFBZ0IsQ0FBQzs7O1lBSmxCLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0TnVtYmVyLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9jb21tb24tdHlwZSc7XG4vLyDmjqfku7bliJfooahcbmV4cG9ydCBjbGFzcyBGb3JtTGluZSB7XG4gIHR5cGU6IEZvcm1MaW5lVHlwZTsgLy8g5o6n5Lu257G75Z6LXG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nOyAvLyDovpPlhaXmoYbnmoTmj5DnpLrmlofku7ZcbiAgcmVxdWlyZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5b+F5aGrXG4gIGhpZGU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuS4uumakOiXj+Wtl+aute+8jOS7heeUqOS6juWhq+WFheihqOWNleeahOWtl+aute+8jOS4jeaYvuekuuWcqOmhtemdouS4ilxuICBoaWRlVmlld0RvbVZhbHVlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyB0eXBl5Li6Vmlld0RvbeaXtu+8jOaYr+WQpumakOiXj3ZhbHVl5YC8LCDnlKjkuo7nibnmrorlnLrmma/vvIzorazlpoLliJfooajkuK3lm77niYfnmoTmmL7npLpcbiAgYWxpZ24/OiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7IC8vIOWIl+Wvuem9kOaWueW8j1xuICB2YWx1ZT86IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlIHwgQXJyYXk8c3RyaW5nIHwgRGF0ZT4gfCBudWxsID0gbnVsbDsgIC8vIOWAvCDkuI3kvKDpu5jorqTkuLpudWxsXG4gIGlzU2VsZWN0PzogYm9vbGVhbjsgIC8vIOi+k+WFpeahhuetieaYr+WQpuWFgeiuuOeCueWHu+S5i+WQjuWFqOmAieWGheWuuVxuICBzZWxlY3RPcHRpb24/OiBTZWxlY3RPcHRpb247ICAvLyDmjqfku7bkuLpTZWxlY3Tml7bvvIzpgInpobnliJfooahcbiAgZXhwbGFpbk9wdGlvblJpZ2h0PzogRXhwbGFpbk9wdGlvbjsgLy8g5piO57uG5a2X5q6155qE6K+05piOKOWPs+S+pylcbiAgZXhwbGFpbk9wdGlvbj86IEV4cGxhaW5PcHRpb247IC8vIOaYjue7huWtl+auteeahOivtOaYjlxuICBjb2xvck9wdGlvbj86IENvbG9yT3B0aW9uOyAvLyDpopzoibLlrZfmrrXnmoTor7TmmI5cbiAgLy8g57uE5Lu25YaF6YOo5oiQ5ZGYXG4gIG1heExlbmd0aD86IG51bWJlcjsgLy8gaW5wdXTmjqfku7bnmoTovpPlhaXplb/luqZcbiAgcHJlc2VydmVOdW1iZXI/OiBudW1iZXI7IC8vIOmcgOimgeS/neeVmeWwj+aVsOeahOWIl+eahOS9jeaVsFxuICBpbnB1dE51bWJlcj86IElucHV0TnVtYmVyID0gbmV3IElucHV0TnVtYmVyKCk7IC8vIG51bWJlcue7hOS7tueahG1pbuOAgW1heOOAgXN0ZXBcbiAgb25DaGFuZ2VFdmVudD86IEZ1bmN0aW9uOyAgIC8vIOaOp+S7tueahOWAvOaUueWPmOS6i+S7tiDlj6/nlKjkuo7mjqfku7bpl7TogZTliqhcbiAgb25TZWFyY2hFdmVudD86IEZ1bmN0aW9uOyAgLy8gc2VsZWN06YCJ5oup5Zmo5pCc57Si5LqL5Lu2IOWPr+eUqOS6juabtOaWsOWkh+mAiembhuWQiFxuICBvbk9wZW5DaGFuZ2VFdmVudD86IEZ1bmN0aW9uOyAvLyBzZWxlY3TkuIvmi4nlsZXlvIAv5pS26LW35LqL5Lu277yM5Zue6LCD5Y+C5pWwIChvcGVuLCBsaW5lKe+8jOWPr+eUqOS6juaMieW9k+WJjeihjOivt+axgiBzZWxlY3RMaXN0XG4gIGRlZmF1bHRMYWJlbD86IGFueTsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBoZFNob3dUb2RheT86IGJvb2xlYW4gPSB0cnVlOyAvLyDlr7nlupQgbnpTaG93VG9kYXnvvIzmmK/lkKbmmL7npLrjgIzku4rlpKnjgI3mjInpkq7vvIzpu5jorqQgdHJ1ZVxuICBkaXNhYmxlZD86IGJvb2xlYW47IC8vIOS4jeWPr+i+k+WFpeeKtuaAgVxuICBzaG93VGltZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5pel5pyf6YCJ5oup5Zmo5piv5ZCm5YyF5ZCr5pe26Ze0XG4gIHN0eWxlPzogb2JqZWN0O1xuICBjYW5TZWFyY2g/OiBib29sZWFuID0gZmFsc2U7IC8vIOaMh+aYjmhpZGUg5oOF5Ya15LiL55qE5o6n5Lu25piv5ZCm5Y+v5Lul6KKr5pCc57Si77yM6buY6K6kZmFsc2VcbiAgb25DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gY2hhbmdl5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1zXG4gIG9uU2VhcmNoRXZlbnRFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gc2VhcmNo5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1zXG4gIG9uT3BlbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lPzogbnVtYmVyOyAvLyDkuIvmi4nlsZXlvIDkuovku7bpmLLmipbvvIzpu5jorqQgNTAwbXPvvIzpgb/lhY3popHnuYHmiZPlvIDph43lpI3or7fmsYJcbn1cblxuZXhwb3J0IGNsYXNzIENvbG9yT3B0aW9uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEV4cGxhaW5PcHRpb24ge1xuICBzaG93OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG5cbi8vIOaOp+S7tuexu+Wei1xuZXhwb3J0IGVudW0gRm9ybUxpbmVUeXBlIHtcbiAgSW5wdXQgPSAnSW5wdXQnLCAgICAgICAgICAgIC8vIOi+k+WFpeahhlxuICBTZWxlY3QgPSAnU2VsZWN0JywgICAgICAgICAgLy8g5Y2V6aG56YCJ5oup5ZmoXG4gIERhdGUgPSAnRGF0ZScsICAgICAgICAgICAgICAvLyDljZXkuKrml6XmnJ/pgInmi6lcbiAgRGF0ZVJhbmdlID0gJ0RhdGVSYW5nZScsICAgIC8vIOaXpeacn+iMg+WbtOmAieaLqVxuICBUZXh0QXJlYSA9ICdUZXh0QXJlYScsICAgICAgLy8g5Z2X57qn6L6T5YWl5qGGXG4gIElucHV0TnVtYmVyID0gJ0lucHV0TnVtYmVyJywvLyDmlbDlrZfovpPlhaVcbiAgTXVsdGlwbGVTZWxlY3QgPSAnTXVsdGlwbGVTZWxlY3QnLCAvLyDlpJrpgIlcbiAgVmlld0RvbSA9ICdWaWV3RG9tJywgICAgICAgIC8vIOWNlee6r+eahOaYvuekuuaOp+S7tlxuICBTd2l0Y2ggPSAnU3dpdGNoJywgICAgICAgICAgLy8g5byA5YWzXG4gIFRpbWUgPSAnVGltZScgICAgICAgICAgICAgICAvLyDml7bpl7TpgInmi6nlmahcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtTGluZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
|
|
@@ -16,6 +16,8 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
16
16
|
this.changeEvent = new EventEmitter();
|
|
17
17
|
this.searchSubject = new Subject();
|
|
18
18
|
this.debounceTimeout = 0; // 默认防抖时间
|
|
19
|
+
this.openChangeSubject = new Subject();
|
|
20
|
+
this.openChangeDebounceTimeout = 0;
|
|
19
21
|
this.inputNumberDefaultFormatter = (/**
|
|
20
22
|
* @param {?} value
|
|
21
23
|
* @return {?}
|
|
@@ -34,6 +36,17 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
34
36
|
var fn = _a.fn, event = _a.event;
|
|
35
37
|
return _this.triggerEvent(fn, event);
|
|
36
38
|
}));
|
|
39
|
+
this.openChangeSubscription = this.openChangeSubject.pipe(debounceTime(this.openChangeDebounceTimeout)).subscribe((/**
|
|
40
|
+
* @param {?} __0
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
function (_a) {
|
|
44
|
+
var fn = _a.fn, event = _a.event;
|
|
45
|
+
// 防抖结束后仅展开态触发业务回调,避免频繁开关仍打接口
|
|
46
|
+
if (event) {
|
|
47
|
+
_this.triggerEvent(fn, event);
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
37
50
|
}
|
|
38
51
|
/**
|
|
39
52
|
* @return {?}
|
|
@@ -77,28 +90,61 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
77
90
|
*/
|
|
78
91
|
function (fn, event, onSearchEventDebounceTime) {
|
|
79
92
|
var _this = this;
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
this.debounceTimeout = onSearchEventDebounceTime;
|
|
83
|
-
// 取消之前的订阅
|
|
84
|
-
if (this.searchSubscription) {
|
|
85
|
-
this.searchSubscription.unsubscribe();
|
|
86
|
-
}
|
|
87
|
-
// 创建新的订阅
|
|
88
|
-
this.searchSubscription = this.searchSubject.pipe(debounceTime(this.debounceTimeout)).subscribe((/**
|
|
89
|
-
* @param {?} __0
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
|
-
function (_a) {
|
|
93
|
-
var fn = _a.fn, event = _a.event;
|
|
94
|
-
return _this.triggerEvent(fn, event);
|
|
95
|
-
}));
|
|
96
|
-
// 发送事件
|
|
97
|
-
this.searchSubject.next({ fn: fn, event: event });
|
|
93
|
+
if (!fn) {
|
|
94
|
+
return;
|
|
98
95
|
}
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
// 父组件未配置时默认 500ms 防抖
|
|
97
|
+
/** @type {?} */
|
|
98
|
+
var debounceMs = onSearchEventDebounceTime != null ? onSearchEventDebounceTime : 500;
|
|
99
|
+
this.debounceTimeout = debounceMs;
|
|
100
|
+
if (this.searchSubscription) {
|
|
101
|
+
this.searchSubscription.unsubscribe();
|
|
101
102
|
}
|
|
103
|
+
this.searchSubscription = this.searchSubject.pipe(debounceTime(this.debounceTimeout)).subscribe((/**
|
|
104
|
+
* @param {?} __0
|
|
105
|
+
* @return {?}
|
|
106
|
+
*/
|
|
107
|
+
function (_a) {
|
|
108
|
+
var fn = _a.fn, event = _a.event;
|
|
109
|
+
return _this.triggerEvent(fn, event);
|
|
110
|
+
}));
|
|
111
|
+
this.searchSubject.next({ fn: fn, event: event });
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* @param {?} fn
|
|
115
|
+
* @param {?} open
|
|
116
|
+
* @param {?} onOpenChangeEventDebounceTime
|
|
117
|
+
* @return {?}
|
|
118
|
+
*/
|
|
119
|
+
HdFormComponent.prototype.onOpenChangeEvent = /**
|
|
120
|
+
* @param {?} fn
|
|
121
|
+
* @param {?} open
|
|
122
|
+
* @param {?} onOpenChangeEventDebounceTime
|
|
123
|
+
* @return {?}
|
|
124
|
+
*/
|
|
125
|
+
function (fn, open, onOpenChangeEventDebounceTime) {
|
|
126
|
+
var _this = this;
|
|
127
|
+
if (!fn) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// 父组件未配置时默认 500ms 防抖
|
|
131
|
+
/** @type {?} */
|
|
132
|
+
var debounceMs = onOpenChangeEventDebounceTime != null ? onOpenChangeEventDebounceTime : 500;
|
|
133
|
+
this.openChangeDebounceTimeout = debounceMs;
|
|
134
|
+
if (this.openChangeSubscription) {
|
|
135
|
+
this.openChangeSubscription.unsubscribe();
|
|
136
|
+
}
|
|
137
|
+
this.openChangeSubscription = this.openChangeSubject.pipe(debounceTime(this.openChangeDebounceTimeout)).subscribe((/**
|
|
138
|
+
* @param {?} __0
|
|
139
|
+
* @return {?}
|
|
140
|
+
*/
|
|
141
|
+
function (_a) {
|
|
142
|
+
var fn = _a.fn, event = _a.event;
|
|
143
|
+
if (event) {
|
|
144
|
+
_this.triggerEvent(fn, event);
|
|
145
|
+
}
|
|
146
|
+
}));
|
|
147
|
+
this.openChangeSubject.next({ fn: fn, event: open });
|
|
102
148
|
};
|
|
103
149
|
/**
|
|
104
150
|
* @param {?} fn
|
|
@@ -225,24 +271,16 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
225
271
|
*/
|
|
226
272
|
function (item) {
|
|
227
273
|
if (item.onChangeEvent) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
else {
|
|
239
|
-
_this.validateHdForm.get(item.name).valueChanges.subscribe((/**
|
|
240
|
-
* @param {?} value
|
|
241
|
-
* @return {?}
|
|
242
|
-
*/
|
|
243
|
-
function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
|
|
244
|
-
}
|
|
245
|
-
}
|
|
274
|
+
// 父组件未配置时默认 500ms 防抖
|
|
275
|
+
/** @type {?} */
|
|
276
|
+
var debounceMs = item.onChangeEventDebounceTime != null ? item.onChangeEventDebounceTime : 500;
|
|
277
|
+
_this.validateHdForm.get(item.name).valueChanges
|
|
278
|
+
.pipe(debounceTime(debounceMs))
|
|
279
|
+
.subscribe((/**
|
|
280
|
+
* @param {?} value
|
|
281
|
+
* @return {?}
|
|
282
|
+
*/
|
|
283
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
|
|
246
284
|
}
|
|
247
285
|
}));
|
|
248
286
|
this.validateHdForm.valueChanges.subscribe((/**
|
|
@@ -457,7 +495,7 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
457
495
|
HdFormComponent.decorators = [
|
|
458
496
|
{ type: Component, args: [{
|
|
459
497
|
selector: 'hd-form',
|
|
460
|
-
template: "<form nz-form [formGroup]=\"validateHdForm\" class=\"ant-advanced-search-form hd-formItem-container\">\n <!-- \u6574\u4F53\u7ED3\u6784 -->\n <div nz-row [nzGutter]=\"24\">\n <!-- \u5BF9\u7EC4\u4EF6\u5217\u8868\u5FAA\u73AF\u5904\u7406 -->\n <ng-container *ngFor=\"let formItem of formList;index as i\">\n <div nz-row *ngIf=\"formItem.isRowFirst && formItem.isRowFirst === 1\">\n <div nz-col *ngIf=\"!formItem.hide\" [nzSpan]=\"formItem.width? formItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"formItem.require\">*</span>\n <span [ngStyle]=\"{'color': formItem?.labelColor ? formItem.labelColor : null}\">{{ formItem.label\n }}</span>\n </span>\n <ng-container *ngIf=\"formItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ formItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"formItemErrorTpl\">\n <ng-template #formItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of formItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"formItem.prefixIcon ? inputPrefixIconTemplate : formItem.prefix\">\n <input nz-input [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"formItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(formItem.name).value && !formItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <nz-option *ngIf=\"formItem.defaultLabel\" [nzLabel]=\"formItem.defaultLabel\"\n [nzValue]=\"formItem.value\" nzHide></nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.showLabelAndValue || formItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(formItem.selectOption.value).value + ']' + validateHdForm.get(formItem.selectOption.label).value) : validateHdForm.get(formItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"!formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"formItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"formItem.hdDisabledDate\" [formControlName]=\"formItem.name\"\n [nzShowTime]=\"formItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [rows]=\"formItem.textAreaRows ? formItem.textAreaRows : 1\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\" rows=\"1\"\n nz-input [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [formControlName]=\"formItem.name\" [nzMin]=\"formItem?.inputNumber?.min || 0\"\n [nzMax]=\"formItem?.inputNumber?.max || 99999999\" [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPlaceHolder]=\"'\u8BF7\u8F93\u5165' + formItem.label\"\n [nzFormatter]=\"formItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"formItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPrecision]=\"formItem?.inputNumber?.precision != null ? formItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container *ngIf=\"formItem.defaultLabel\">\n <nz-option *ngFor=\"let option of formItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"formItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of validateHdForm.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ formItem.value || validateHdForm.get(formItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"formItem.name\" [nzFormat]=\"formItem.format\"\n [nzAllowEmpty]=\"!formItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"formItem.cascaderOption.options\" [formControlName]=\"formItem.name\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"formItem.name\">\n <label nz-radio *ngFor=\"let radioItem of formItem.radioOption.optionList\"\n [nzValue]=\"radioItem[formItem.radioOption.value]\">\n {{ formItem.radioOption.showLabelAndValue ? '[' + radioItem[formItem.radioOption.value] + ']' +\n radioItem[formItem.radioOption.label] : radioItem[formItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"formItem.checkboxOption; else singleCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of formItem.checkboxOption.optionList\"\n [nzDisabled]=\"formItem.disabled || validateHdForm.get(formItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(formItem.name, checkboxItem[formItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(formItem.name, checkboxItem[formItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ formItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[formItem.checkboxOption.value] + ']' + checkboxItem[formItem.checkboxOption.label]\n : checkboxItem[formItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleCheckboxTpl>\n <label nz-checkbox [formControlName]=\"formItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n <!-- \u5FAA\u73AF\u6700\u591A\u56DB\u6B21 -->\n <ng-container *ngFor=\"let columnItem of formItem.columnItems;index as columnItemIndex\">\n <div nz-col *ngIf=\"!columnItem.hide\" [nzSpan]=\"columnItem.width? columnItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"columnItem.require\">*</span>\n <span [ngStyle]=\"{'color': columnItem?.labelColor ? columnItem.labelColor : null}\">{{\n columnItem.label }}</span>\n </span>\n <ng-container *ngIf=\"columnItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ columnItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"columnItemErrorTpl\">\n <ng-template #columnItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of columnItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ columnItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"columnItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"columnItem.prefixIcon ? inputPrefixIconTemplate : columnItem.prefix\">\n <input *ngIf=\"columnItem.disabled === true;else inputTemplate\" nz-input\n [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\" [disabled]=\"true\"\n [attr.disabled]=\"true\" [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n <ng-template #inputTemplate>\n <input nz-input [ngStyle]=\"{'color': columnItem?.color ? formItem.color : null}\"\n [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n </ng-template>\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"columnItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(columnItem.name).value && !columnItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(columnItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\"\n [nzLabel]=\"(columnItem.selectOption.showLabelAndValue || columnItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(columnItem.selectOption.value).value + ']' + validateHdForm.get(columnItem.selectOption.label).value) : validateHdForm.get(columnItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(columnItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"!columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"columnItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"columnItem.hdDisabledDate\" [formControlName]=\"columnItem.name\"\n [nzShowTime]=\"columnItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [rows]=\"columnItem.textAreaRows ? columnItem.textAreaRows : 1\" rows=\"1\" nz-input\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [maxlength]=\"columnItem.maxLength || null\" [formControlName]=\"columnItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [formControlName]=\"columnItem.name\" [nzMin]=\"columnItem?.inputNumber?.min || 0\"\n [nzMax]=\"columnItem?.inputNumber?.max || 99999999\" [nzStep]=\"columnItem?.inputNumber?.step || 1\"\n [nzFormatter]=\"columnItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"columnItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [nzPrecision]=\"columnItem?.inputNumber?.precision != null ? columnItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <ng-container *ngIf=\"columnItem.defaultLabel\">\n <nz-option *ngFor=\"let option of columnItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"columnItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\">\n <nz-option\n *ngFor=\"let option of validateHdForm.get(columnItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(columnItem.selectOption.label).value[i]\" [nzValue]=\"option\"\n nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ columnItem.value || validateHdForm.get(columnItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"columnItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"columnItem.name\" [nzFormat]=\"columnItem.format\"\n [nzAllowEmpty]=\"!columnItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"columnItem.cascaderOption.options\" [formControlName]=\"columnItem.name\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"columnItem.name\">\n <label nz-radio *ngFor=\"let radioItem of columnItem.radioOption.optionList\"\n [nzValue]=\"radioItem[columnItem.radioOption.value]\">\n {{ columnItem.radioOption.showLabelAndValue ? '[' + radioItem[columnItem.radioOption.value] + ']' +\n radioItem[columnItem.radioOption.label] : radioItem[columnItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"columnItem.checkboxOption; else singleColumnCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of columnItem.checkboxOption.optionList\"\n [nzDisabled]=\"columnItem.disabled || validateHdForm.get(columnItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(columnItem.name, checkboxItem[columnItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(columnItem.name, checkboxItem[columnItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ columnItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[columnItem.checkboxOption.value] + ']' + checkboxItem[columnItem.checkboxOption.label]\n : checkboxItem[columnItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleColumnCheckboxTpl>\n <label nz-checkbox [formControlName]=\"columnItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</form>\n",
|
|
498
|
+
template: "<form nz-form [formGroup]=\"validateHdForm\" class=\"ant-advanced-search-form hd-formItem-container\">\n <!-- \u6574\u4F53\u7ED3\u6784 -->\n <div nz-row [nzGutter]=\"24\">\n <!-- \u5BF9\u7EC4\u4EF6\u5217\u8868\u5FAA\u73AF\u5904\u7406 -->\n <ng-container *ngFor=\"let formItem of formList;index as i\">\n <div nz-row *ngIf=\"formItem.isRowFirst && formItem.isRowFirst === 1\">\n <div nz-col *ngIf=\"!formItem.hide\" [nzSpan]=\"formItem.width? formItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"formItem.require\">*</span>\n <span [ngStyle]=\"{'color': formItem?.labelColor ? formItem.labelColor : null}\">{{ formItem.label\n }}</span>\n </span>\n <ng-container *ngIf=\"formItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ formItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"formItemErrorTpl\">\n <ng-template #formItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of formItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ formItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"formItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"formItem.prefixIcon ? inputPrefixIconTemplate : formItem.prefix\">\n <input nz-input [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [maxlength]=\"formItem.maxLength || null\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\"\n [formControlName]=\"formItem.name\" />\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"formItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(formItem.name).value && !formItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(formItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(formItem.onOpenChangeEvent || null, $event, formItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <nz-option *ngIf=\"formItem.defaultLabel\" [nzLabel]=\"formItem.defaultLabel\"\n [nzValue]=\"formItem.value\" nzHide></nz-option>\n <nz-option\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\"\n [nzLabel]=\"(formItem.selectOption.showLabelAndValue || formItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(formItem.selectOption.value).value + ']' + validateHdForm.get(formItem.selectOption.label).value) : validateHdForm.get(formItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(formItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"!formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"formItem.showTime\" [nzDisabledDate]=\"formItem.hdDisabledDate\"\n [nzShowToday]=\"formItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"formItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"formItem.hdDisabledDate\" [formControlName]=\"formItem.name\"\n [nzShowTime]=\"formItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [rows]=\"formItem.textAreaRows ? formItem.textAreaRows : 1\"\n [placeholder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u8F93\u5165' + formItem.label\" rows=\"1\"\n nz-input [maxlength]=\"formItem.maxLength || null\" [formControlName]=\"formItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': formItem?.color ? formItem.color : null}\"\n [formControlName]=\"formItem.name\" [nzMin]=\"formItem?.inputNumber?.min || 0\"\n [nzMax]=\"formItem?.inputNumber?.max || 99999999\" [nzStep]=\"formItem?.inputNumber?.step || 1\"\n [nzPlaceHolder]=\"'\u8BF7\u8F93\u5165' + formItem.label\"\n [nzFormatter]=\"formItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"formItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPrecision]=\"formItem?.inputNumber?.precision != null ? formItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"formItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"formItem.selectOption.hdDropdownMatchSelectWidth ? formItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"formItem.selectOption.hdShowSearch != null ? formItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"formItem.selectOption.hdAllowClear != null ? formItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\"\n [formControlName]=\"formItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(formItem.onOpenChangeEvent || null, $event, formItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(formItem.onSearchEvent || null, $event, formItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of formItem.selectOption.selectList\"\n [nzValue]=\"selectItem[formItem.selectOption.value]\" [nzLabel]=\"formItem.selectOption.showLabelAndValue ? '['+ selectItem[formItem.selectOption.value] +']' +\n selectItem[formItem.selectOption.label] : selectItem[formItem.selectOption.label]\"></nz-option>\n <ng-container *ngIf=\"formItem.defaultLabel\">\n <nz-option *ngFor=\"let option of formItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"formItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"formItem.selectOption.label && validateHdForm.get(formItem.name) && validateHdForm.get(formItem.selectOption.label)?.value && validateHdForm.get(formItem.selectOption.value)?.value\">\n <nz-option *ngFor=\"let option of validateHdForm.get(formItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(formItem.selectOption.label).value[i]\" [nzValue]=\"option\" nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ formItem.value || validateHdForm.get(formItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"formItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"formItem.name\" [nzFormat]=\"formItem.format\"\n [nzAllowEmpty]=\"!formItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"formItem.cascaderOption.options\" [formControlName]=\"formItem.name\"\n [nzPlaceHolder]=\"formItem.placeholder ? formItem.placeholder : '\u8BF7\u9009\u62E9' + formItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"formItem.name\">\n <label nz-radio *ngFor=\"let radioItem of formItem.radioOption.optionList\"\n [nzValue]=\"radioItem[formItem.radioOption.value]\">\n {{ formItem.radioOption.showLabelAndValue ? '[' + radioItem[formItem.radioOption.value] + ']' +\n radioItem[formItem.radioOption.label] : radioItem[formItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"formItem.checkboxOption; else singleCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of formItem.checkboxOption.optionList\"\n [nzDisabled]=\"formItem.disabled || validateHdForm.get(formItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(formItem.name, checkboxItem[formItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(formItem.name, checkboxItem[formItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ formItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[formItem.checkboxOption.value] + ']' + checkboxItem[formItem.checkboxOption.label]\n : checkboxItem[formItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleCheckboxTpl>\n <label nz-checkbox [formControlName]=\"formItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n <!-- \u5FAA\u73AF\u6700\u591A\u56DB\u6B21 -->\n <ng-container *ngFor=\"let columnItem of formItem.columnItems;index as columnItemIndex\">\n <div nz-col *ngIf=\"!columnItem.hide\" [nzSpan]=\"columnItem.width? columnItem.width * 6 : 6\">\n <nz-form-item nzFlex>\n <nz-form-label class=\"hd-formItem-label\" [nzNoColon]=\"true\">\n <div class=\"hd-formItem-label-flex\">\n <span>\n <span class=\"hd-formItem-label-require\" *ngIf=\"columnItem.require\">*</span>\n <span [ngStyle]=\"{'color': columnItem?.labelColor ? columnItem.labelColor : null}\">{{\n columnItem.label }}</span>\n </span>\n <ng-container *ngIf=\"columnItem.explain\">\n <span class=\"hd-formItem-label-explain\">{{ columnItem.explain }}</span>\n </ng-container>\n </div>\n </nz-form-label>\n <nz-form-control class=\"hd-formItem-control\" [nzErrorTip]=\"columnItemErrorTpl\">\n <ng-template #columnItemErrorTpl let-control>\n <ng-container *ngFor=\"let validatorKey of columnItem.validatorKeys;index as i\">\n <ng-container *ngIf=\"control.hasError(validatorKey.key)\">\n {{ validatorKey.label }}\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"control.hasError('required')\">\n {{ columnItem.label + '\u4E0D\u80FD\u4E3A\u7A7A' }}\n </ng-container>\n </ng-template>\n <ng-container [ngSwitch]=\"columnItem.type\">\n <ng-container *ngSwitchCase=\"0\">\n <nz-input-group [nzSuffix]=\"inputCleanTemplate\"\n [nzPrefix]=\"columnItem.prefixIcon ? inputPrefixIconTemplate : columnItem.prefix\">\n <input *ngIf=\"columnItem.disabled === true;else inputTemplate\" nz-input\n [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\" [disabled]=\"true\"\n [attr.disabled]=\"true\" [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n <ng-template #inputTemplate>\n <input nz-input [ngStyle]=\"{'color': columnItem?.color ? formItem.color : null}\"\n [maxlength]=\"columnItem.maxLength || null\"\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [formControlName]=\"columnItem.name\" />\n </ng-template>\n </nz-input-group>\n <ng-template #inputPrefixIconTemplate><i nz-icon [nzType]=\"columnItem.prefixIcon\"></i></ng-template>\n <ng-template #inputCleanTemplate><i nz-icon nz-tooltip class=\"ant-input-clear-icon\" nzTheme=\"fill\"\n nzType=\"close-circle\"\n *ngIf=\"validateHdForm.get(columnItem.name).value && !columnItem.disabled && !validateHdForm.get(formItem.name).disabled\"\n (click)=\"inputClean(columnItem)\"></i></ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(columnItem.onOpenChangeEvent || null, $event, columnItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <nz-option\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\"\n [nzLabel]=\"(columnItem.selectOption.showLabelAndValue || columnItem.selectOption.hdShowItemCode) ? ('['+ validateHdForm.get(columnItem.selectOption.value).value + ']' + validateHdForm.get(columnItem.selectOption.label).value) : validateHdForm.get(columnItem.selectOption.label).value\"\n [nzValue]=\"validateHdForm.get(columnItem.selectOption.value).value\" nzHide></nz-option>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <nz-date-picker *ngIf=\"columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\" nzShowTime nzFormat=\"yyyy-MM-dd HH:mm:ss\">\n </nz-date-picker>\n <nz-date-picker *ngIf=\"!columnItem.showTime\" [nzDisabledDate]=\"columnItem.hdDisabledDate\"\n [nzShowToday]=\"columnItem.hdShowToday !== false\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\">\n </nz-date-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"3\">\n <nz-range-picker [nzPlaceHolder]=\"columnItem.showTime ? ['\u5F00\u59CB\u65F6\u95F4','\u7ED3\u675F\u65F6\u95F4'] : ['\u5F00\u59CB\u65E5\u671F','\u7ED3\u675F\u65E5\u671F']\"\n [nzDisabledDate]=\"columnItem.hdDisabledDate\" [formControlName]=\"columnItem.name\"\n [nzShowTime]=\"columnItem.showTime ? true : false\">\n </nz-range-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"4\">\n <textarea [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [rows]=\"columnItem.textAreaRows ? columnItem.textAreaRows : 1\" rows=\"1\" nz-input\n [placeholder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [maxlength]=\"columnItem.maxLength || null\" [formControlName]=\"columnItem.name\"></textarea>\n </ng-container>\n <ng-container *ngSwitchCase=\"5\">\n <nz-input-number [ngStyle]=\"{'color': columnItem?.color ? columnItem.color : null}\"\n [formControlName]=\"columnItem.name\" [nzMin]=\"columnItem?.inputNumber?.min || 0\"\n [nzMax]=\"columnItem?.inputNumber?.max || 99999999\" [nzStep]=\"columnItem?.inputNumber?.step || 1\"\n [nzFormatter]=\"columnItem?.inputNumber?.nzFormatter || inputNumberDefaultFormatter\"\n [nzParser]=\"columnItem?.inputNumber?.nzParser || inputNumberDefaultParser\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u8F93\u5165' + columnItem.label\"\n [nzPrecision]=\"columnItem?.inputNumber?.precision != null ? columnItem.inputNumber.precision : 4\">\n </nz-input-number>\n </ng-container>\n <!-- \u591A\u9879\u9009\u62E9\u5668 -->\n <ng-container *ngSwitchCase=\"6\">\n <nz-select [nzServerSearch]=\"columnItem.selectOption.hdServerSearch || false\"\n [nzDropdownMatchSelectWidth]=\"columnItem.selectOption.hdDropdownMatchSelectWidth ? columnItem.selectOption.hdDropdownMatchSelectWidth : false\"\n nzMode=\"multiple\"\n [nzShowSearch]=\"columnItem.selectOption.hdShowSearch != null ? columnItem.selectOption.hdShowSearch : true\"\n [nzAllowClear]=\"columnItem.selectOption.hdAllowClear != null ? columnItem.selectOption.hdAllowClear : true\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\"\n [formControlName]=\"columnItem.name\"\n (nzOpenChange)=\"onOpenChangeEvent(columnItem.onOpenChangeEvent || null, $event, columnItem.onOpenChangeEventDebounceTime)\"\n (nzOnSearch)=\"onSearchEvent(columnItem.onSearchEvent || null, $event, columnItem.onSearchEventEventDebounceTime)\">\n <nz-option *ngFor=\"let selectItem of columnItem.selectOption.selectList\"\n [nzValue]=\"selectItem[columnItem.selectOption.value]\" [nzLabel]=\"columnItem.selectOption.showLabelAndValue ? '['+ selectItem[columnItem.selectOption.value] +']' +\n selectItem[columnItem.selectOption.label] : selectItem[columnItem.selectOption.label]\">\n </nz-option>\n <ng-container *ngIf=\"columnItem.defaultLabel\">\n <nz-option *ngFor=\"let option of columnItem.defaultLabel;index as i\" [nzLabel]=\"option\"\n [nzValue]=\"columnItem.value[i]\" nzHide></nz-option>\n </ng-container>\n <ng-container\n *ngIf=\"columnItem.selectOption.label && validateHdForm.get(columnItem.name) && validateHdForm.get(columnItem.selectOption.label)?.value && validateHdForm.get(columnItem.selectOption.value)?.value\">\n <nz-option\n *ngFor=\"let option of validateHdForm.get(columnItem.selectOption.value).value;index as i\"\n [nzLabel]=\"validateHdForm.get(columnItem.selectOption.label).value[i]\" [nzValue]=\"option\"\n nzHide>\n </nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n <ng-container *ngSwitchCase=\"7\">\n <span>{{ columnItem.value || validateHdForm.get(columnItem.name).value }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"8\">\n <nz-switch [formControlName]=\"columnItem.name\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchCase=\"9\">\n <nz-time-picker [formControlName]=\"columnItem.name\" [nzFormat]=\"columnItem.format\"\n [nzAllowEmpty]=\"!columnItem.disabled\"></nz-time-picker>\n </ng-container>\n <ng-container *ngSwitchCase=\"10\">\n <nz-cascader [nzOptions]=\"columnItem.cascaderOption.options\" [formControlName]=\"columnItem.name\"\n [nzPlaceHolder]=\"columnItem.placeholder ? columnItem.placeholder : '\u8BF7\u9009\u62E9' + columnItem.label\">\n </nz-cascader>\n </ng-container>\n <ng-container *ngSwitchCase=\"11\">\n <nz-radio-group [formControlName]=\"columnItem.name\">\n <label nz-radio *ngFor=\"let radioItem of columnItem.radioOption.optionList\"\n [nzValue]=\"radioItem[columnItem.radioOption.value]\">\n {{ columnItem.radioOption.showLabelAndValue ? '[' + radioItem[columnItem.radioOption.value] + ']' +\n radioItem[columnItem.radioOption.label] : radioItem[columnItem.radioOption.label] }}\n </label>\n </nz-radio-group>\n </ng-container>\n <ng-container *ngSwitchCase=\"12\">\n <ng-container *ngIf=\"columnItem.checkboxOption; else singleColumnCheckboxTpl\">\n <label nz-checkbox\n *ngFor=\"let checkboxItem of columnItem.checkboxOption.optionList\"\n [nzDisabled]=\"columnItem.disabled || validateHdForm.get(columnItem.name).disabled\"\n [ngModel]=\"isCheckboxChecked(columnItem.name, checkboxItem[columnItem.checkboxOption.value])\"\n (ngModelChange)=\"onCheckboxItemChange(columnItem.name, checkboxItem[columnItem.checkboxOption.value], $event)\"\n [ngModelOptions]=\"{standalone: true}\">\n {{ columnItem.checkboxOption.showLabelAndValue\n ? '[' + checkboxItem[columnItem.checkboxOption.value] + ']' + checkboxItem[columnItem.checkboxOption.label]\n : checkboxItem[columnItem.checkboxOption.label] }}\n </label>\n </ng-container>\n <ng-template #singleColumnCheckboxTpl>\n <label nz-checkbox [formControlName]=\"columnItem.name\"></label>\n </ng-template>\n </ng-container>\n </ng-container>\n </nz-form-control>\n </nz-form-item>\n </div>\n </ng-container>\n </div>\n </ng-container>\n </div>\n</form>\n",
|
|
461
499
|
styles: ["::ng-deep .common-btn-group>a{font-size:14px;font-weight:400;color:#20b95d!important;white-space:nowrap}::ng-deep .common-btn-group .common-danger-btn:hover{color:#f05b24!important}::ng-deep .common-btn-group>a:hover{color:#20bd62!important}::ng-deep .common-btn-group>a:not(:last-child)::after{content:'';margin:0 2px}::ng-deep .common-billNumber>a{color:#3b77e3}button{box-shadow:unset;text-shadow:unset}::ng-deep .ant-form-item-label>label{color:#4b504e;font-size:14px}::ng-deep .ant-input-number-input{height:32px}::ng-deep .ant-input-number{height:32px}textarea.ant-input{height:auto;min-height:32px}::ng-deep .ant-select-selection--multiple{min-height:32px}::ng-deep .ant-select-selection__rendered>ul>li{height:26px!important;margin-top:3px!important;line-height:26px!important}::ng-deep .ant-advanced-search-form .ant-form-item{margin-bottom:0!important}::ng-deep .ant-select-selection--single{height:32px!important}::ng-deep .ant-input{height:32px}::ng-deep .ant-input[disabled]:hover{border-color:#d9d9d9!important}::ng-deep .ant-select-selection__rendered{line-height:32px!important}::ng-deep .ant-calendar-range-picker-input{text-align:left!important}::ng-deep .ant-calendar-picker{width:100%!important}::ng-deep .ant-row{margin-right:0!important;margin-left:0!important}::ng-deep .ant-col-6{padding-left:12px;padding-right:12px}::ng-deep .ant-col-12{padding-left:12px;padding-right:12px}::ng-deep .ant-col-18{padding-left:12px;padding-right:12px}::ng-deep .ant-col-24{padding-left:12px;padding-right:12px}::ng-deep .ant-alert-info{background-color:#f5f8f6;border:1px solid #cfe3d4}:host ::ng-deep th{background:#f5f8f6!important;font-weight:700!important;white-space:nowrap;font-size:14px;font-family:PingFangSC-Medium,PingFang SC;color:#2a3634;padding:8px!important;box-sizing:border-box}:host ::ng-deep td{font-weight:400;font-style:normal;font-size:14px;color:#2a3634;text-align:left;white-space:nowrap;padding:8px!important;box-sizing:border-box}::ng-deep .ant-pagination-options{display:inline-flex;align-items:center}::ng-deep .ant-time-picker{width:100%}.ant-input-number-disabled,.ant-input[disabled],.ant-select-disabled{color:#4b504e}.hd-formItem-container .hd-formItem-label{width:124px;word-break:break-all;text-align:right}.hd-formItem-container .hd-formItem-control{width:calc(100% - 124px)}.hd-formItem-container .ant-input-number{width:100%}.hd-formItem-container .hd-formItem-label-flex{display:inline-flex;flex-direction:column}.hd-formItem-container .hd-formItem-label-flex span{display:inline-block}.hd-formItem-container .hd-formItem-label-flex .hd-formItem-label-require{margin-right:4px;color:#f5222d;font-size:14px;font-family:SimSun,sans-serif}.hd-formItem-container .hd-formItem-label-flex .hd-formItem-label-explain{margin-top:-13px;color:#f5222d}.hd-formItem-container textarea{margin-top:8px}.hd-formItem-container ::ng-deep label[nz-checkbox]{margin-right:12px;line-height:32px}"]
|
|
462
500
|
}] }
|
|
463
501
|
];
|
|
@@ -496,6 +534,21 @@ if (false) {
|
|
|
496
534
|
* @private
|
|
497
535
|
*/
|
|
498
536
|
HdFormComponent.prototype.searchSubscription;
|
|
537
|
+
/**
|
|
538
|
+
* @type {?}
|
|
539
|
+
* @private
|
|
540
|
+
*/
|
|
541
|
+
HdFormComponent.prototype.openChangeSubject;
|
|
542
|
+
/**
|
|
543
|
+
* @type {?}
|
|
544
|
+
* @private
|
|
545
|
+
*/
|
|
546
|
+
HdFormComponent.prototype.openChangeDebounceTimeout;
|
|
547
|
+
/**
|
|
548
|
+
* @type {?}
|
|
549
|
+
* @private
|
|
550
|
+
*/
|
|
551
|
+
HdFormComponent.prototype.openChangeSubscription;
|
|
499
552
|
/** @type {?} */
|
|
500
553
|
HdFormComponent.prototype.inputNumberDefaultFormatter;
|
|
501
554
|
/** @type {?} */
|
|
@@ -506,4 +559,4 @@ if (false) {
|
|
|
506
559
|
*/
|
|
507
560
|
HdFormComponent.prototype.fb;
|
|
508
561
|
}
|
|
509
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUUzRDtJQWdCRSx5QkFBb0IsRUFBZTtRQUFuQyxpQkFJQztRQUptQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBUnpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUluQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQ3hELG9CQUFlLEdBQVcsQ0FBQyxDQUFDLENBQUUsU0FBUztRQTZQdEMsZ0NBQTJCOzs7O1FBQUcsVUFBQyxLQUFjLElBQUssT0FBQSxLQUFLLEVBQUwsQ0FBSyxFQUFDO1FBQ3hELDZCQUF3Qjs7OztRQUFHLFVBQUMsS0FBYSxJQUFLLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQztRQTFQM0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMvQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNuQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFDLEVBQWE7Z0JBQVgsVUFBRSxFQUFFLGdCQUFLO1lBQU8sT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUM7UUFB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QkFFeEM7Ozs7Z0JBVFEsV0FBVzs7OzJCQVlqQixLQUFLOzhCQUNMLE1BQU07O0lBb1FULHNCQUFDO0NBQUEsQUE1UUQsSUE0UUM7U0F2UVksZUFBZTs7O0lBRTFCLG1DQUFtQzs7SUFDbkMsc0NBQTJDOztJQUMzQyx5Q0FBMEI7O0lBQzFCLHFDQUFtQjs7Ozs7SUFFbkIsd0NBQWdFOzs7OztJQUNoRSwwQ0FBb0M7Ozs7O0lBRXBDLDZDQUFxRDs7SUEyUHJELHNEQUFpRTs7SUFDakUsbURBQTZEOzs7OztJQTNQakQsNkJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybUl0ZW0sIEZvcm1MaXN0VHlwZSB9IGZyb20gJy4vaGQtZm9ybS5zZXJ2aWNlJztcbi8vIGltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGQtZm9ybS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZm9ybUxpc3Q6IEFycmF5PEZvcm1JdGVtPjtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB2YWxpZGF0ZUhkRm9ybTogRm9ybUdyb3VwO1xuICBpbnB1dFZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8eyBmbjogYW55LCBldmVudDogYW55OyB9PigpO1xuICBwcml2YXRlIGRlYm91bmNlVGltZW91dDogbnVtYmVyID0gMDsgIC8vIOm7mOiupOmYsuaKluaXtumXtFxuXG4gIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaFN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZW91dClcbiAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZm9ybUxpc3QnXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaXN0J10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaEV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnksIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmIChvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lKSB7XG4gICAgICAvLyDmm7TmlrDpmLLmipbml7bpl7RcbiAgICAgIHRoaXMuZGVib3VuY2VUaW1lb3V0ID0gb25TZWFyY2hFdmVudERlYm91bmNlVGltZTtcblxuICAgICAgLy8g5Y+W5raI5LmL5YmN55qE6K6i6ZiFXG4gICAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cblxuICAgICAgLy8g5Yib5bu65paw55qE6K6i6ZiFXG4gICAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VhcmNoU3ViamVjdC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4gdGhpcy50cmlnZ2VyRXZlbnQoZm4sIGV2ZW50KSk7XG5cbiAgICAgIC8vIOWPkemAgeS6i+S7tlxuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoeyBmbiwgZXZlbnQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIMnO1xuICAgIH1cbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gMyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGxldCBmb3JtSXRlbURhdGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpKTtcbiAgICAgICAgaWYgKGZvcm1JdGVtRGF0ZSAmJiBmb3JtSXRlbURhdGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGZvcm1JdGVtRGF0ZSA9IGZvcm1JdGVtRGF0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0uc3BsaXQoJy0nKS5tYXAoc3RyID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtSXRlbURhdGUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdmb3Jt57uE5Lu25LitRGF0ZVJhbmdl5o6n5Lu2dmFsdWXlgLzmoLzlvI/kuI3op4TojIPvvIzmraPnoa7npLrkvotbXFwnMjAyMC0wMS0yMlxcJywgXFwnMjAyMC0wMS0yM1xcJ10nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94VmFsdWUgPSBpdGVtLnZhbHVlICE9IG51bGwgPyBpdGVtLnZhbHVlIDogZmFsc2U7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaXRlbS52YWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwTGlzdCk7XG5cbiAgICB0aGlzLmZvcm1MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZShpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5vbkhkRm9ybVZhbHVlQ2hhbmdlZChkYXRhKSk7XG4gICAgdGhpcy5vbkhkRm9ybVZhbHVlQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWFsUm93KCkge1xuICAgIC8vIOS4gOmYtuautSDpgY3ljobmlbDmja7orqHnrpfnm7jlhbPmlbDmja5cbiAgICBjb25zdCBmb3JtTGlzdExlbmd0aCA9IHRoaXMuZm9ybUxpc3QubGVuZ3RoO1xuICAgIGxldCBzdGVwID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1MaXN0TGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdFtpXS5oaWRlKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID0gdGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxO1xuICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIOWOu+aJvuWIsOWJjeS4gOS4qumdnmhpZGXnmoTmjqfku7ZcbiAgICAgICAgICBmb3IgKGxldCBqID0gaSAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0udG90YWxXaWR0aCA9IHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpO1xuICAgICAgICAgICAgICBpZiAoKHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCArICh0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDEpKSA+IHN0ZXAgJiYgdGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoIDw9IHN0ZXApIHtcbiAgICAgICAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOS6jOmYtuautSBpc1Jvd0ZpcnN055qE5pWw57uE6aG55aKe5Yqg5a2Q6IqC54K5XG4gICAgZm9yIChsZXQgbSA9IDA7IG0gPCBmb3JtTGlzdExlbmd0aDsgbSsrKSB7XG4gICAgICBpZiAodGhpcy5mb3JtTGlzdFttXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMgPSBbXTtcbiAgICAgICAgbGV0IHNwYWNlID0gMDtcbiAgICAgICAgZm9yIChsZXQgbiA9IDE7IG4gPCBmb3JtTGlzdExlbmd0aCAtIG07IG4rKykge1xuICAgICAgICAgIGlmIChzcGFjZSA9PT0gNCB8fCB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W20gKyBuXS5oaWRlICYmIHRoaXMuZm9ybUxpc3RbbSArIG5dICYmIHRoaXMuZm9ybUxpc3RbbSArIG5dLmlzUm93Rmlyc3QgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbbV0uY29sdW1uSXRlbXMucHVzaCh0aGlzLmZvcm1MaXN0W20gKyBuXSk7XG4gICAgICAgICAgICBzcGFjZSsrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YT86IGFueSkge1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tMaXN0KGxpc3Q6IEFycmF5PEZvcm1JdGVtPik6IGJvb2xlYW4ge1xuICAgIGlmICghbGlzdCB8fCAobGlzdCAmJiBsaXN0Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IG5hbWVMaXN0ID0gW107XG4gICAgbGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAvLyDmoKHpqozljZXpobnpgInmi6nlmahcbiAgICAgIC8vIGlmIChpdGVtLnR5cGUgPT09IEZvcm1MaXN0VHlwZS5TZWxlY3QgJiYgKCFpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0IHx8IChpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0ICYmIGl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QubGVuZ3RoID09PSAwKSkpIHtcbiAgICAgIC8vICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjljZXpobnpgInmi6nlmajmsqHmnInkvKDlhaXpgInpobkhJ1xuICAgICAgLy8gfVxuICAgICAgbmFtZUxpc3QucHVzaChpdGVtLm5hbWUpO1xuICAgIH0pO1xuICAgIC8vIOagoemqjG5hbWXmmK/lkKbph43lpI1cbiAgICBpZiAoWy4uLm5ldyBTZXQobmFtZUxpc3QpXS5sZW5ndGggIT09IGxpc3QubGVuZ3RoKSB7XG4gICAgICB0aHJvdyAnZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOmHjeWkjW5hbWXlgLwhJztcbiAgICB9XG4gICAgLy8gLi4ubW9yZSBjaGVja1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdEZvcm0oKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkYXRlSGRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucmVzZXQoKTtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dENsZWFuKGZpbHRlcjogRm9ybUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBwYXRjaE9iamVjdCA9IHt9O1xuICAgIHBhdGNoT2JqZWN0W2ZpbHRlci5uYW1lXSA9IG51bGw7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5wYXRjaFZhbHVlKHBhdGNoT2JqZWN0KTtcbiAgfVxuXG4gIGlzQ2hlY2tib3hDaGVja2VkKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBjb25zdCBjdXJyZW50ID0gY29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBudWxsO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQuaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICB9XG5cbiAgb25DaGVja2JveEl0ZW1DaGFuZ2UobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KG5hbWUpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50ID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKSA/IFsuLi5jb250cm9sLnZhbHVlXSA6IFtdO1xuICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoY2hlY2tlZCAmJiBpbmRleCA9PT0gLTEpIHtcbiAgICAgIGN1cnJlbnQucHVzaCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICghY2hlY2tlZCAmJiBpbmRleCAhPT0gLTEpIHtcbiAgICAgIGN1cnJlbnQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgY29udHJvbC5zZXRWYWx1ZShjdXJyZW50KTtcbiAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRGb3JtYXR0ZXIgPSAodmFsdWU6IHVua25vd24pID0+IHZhbHVlO1xuICByZWFkb25seSBpbnB1dE51bWJlckRlZmF1bHRQYXJzZXIgPSAodmFsdWU6IHN0cmluZykgPT4gdmFsdWU7XG59XG4iXX0=
|
|
562
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUUzRDtJQW9CRSx5QkFBb0IsRUFBZTtRQUFuQyxpQkFZQztRQVptQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWnpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUluQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO1FBQ3hELG9CQUFlLEdBQVcsQ0FBQyxDQUFDLENBQUUsU0FBUztRQUd2QyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztRQUM1RCw4QkFBeUIsR0FBVyxDQUFDLENBQUM7UUE2UXJDLGdDQUEyQjs7OztRQUFHLFVBQUMsS0FBYyxJQUFLLE9BQUEsS0FBSyxFQUFMLENBQUssRUFBQztRQUN4RCw2QkFBd0I7Ozs7UUFBRyxVQUFDLEtBQWEsSUFBSyxPQUFBLEtBQUssRUFBTCxDQUFLLEVBQUM7UUExUTNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDL0MsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbkMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQyxFQUFhO2dCQUFYLFVB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QzNDLHlDQUEwQjs7SUFDMUIscUNBQW1COzs7OztJQUVuQix3Q0FBZ0U7Ozs7O0lBQ2hFLDBDQUFvQzs7Ozs7SUFDcEMsNkNBQXFEOzs7OztJQUVyRCw0Q0FBb0U7Ozs7O0lBQ3BFLG9EQUE4Qzs7Ozs7SUFDOUMsaURBQXlEOztJQTRRekQsc0RBQWlFOztJQUNqRSxtREFBNkQ7Ozs7O0lBM1FqRCw2QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtSXRlbSwgRm9ybUxpc3RUeXBlIH0gZnJvbSAnLi9oZC1mb3JtLnNlcnZpY2UnO1xuLy8gaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZC1mb3JtLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBmb3JtTGlzdDogQXJyYXk8Rm9ybUl0ZW0+O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHZhbGlkYXRlSGRGb3JtOiBGb3JtR3JvdXA7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDx7IGZuOiBhbnksIGV2ZW50OiBhbnk7IH0+KCk7XG4gIHByaXZhdGUgZGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwOyAgLy8g6buY6K6k6Ziy5oqW5pe26Ze0XG4gIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PHsgZm46IGFueSwgZXZlbnQ6IGFueTsgfT4oKTtcbiAgcHJpdmF0ZSBvcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0OiBudW1iZXIgPSAwO1xuICBwcml2YXRlIG9wZW5DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0LnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCkpO1xuICAgIHRoaXMub3BlbkNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMub3BlbkNoYW5nZVN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLm9wZW5DaGFuZ2VEZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHtcbiAgICAgIC8vIOmYsuaKlue7k+adn+WQjuS7heWxleW8gOaAgeinpuWPkeS4muWKoeWbnuiwg++8jOmBv+WFjemikee5geW8gOWFs+S7jeaJk+aOpeWPo1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZm9ybUxpc3QnXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaXN0J10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaEV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnksIG9uU2VhcmNoRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmICghZm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgIGNvbnN0IGRlYm91bmNlTXMgPSBvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lICE9IG51bGwgPyBvblNlYXJjaEV2ZW50RGVib3VuY2VUaW1lIDogNTAwO1xuICAgIHRoaXMuZGVib3VuY2VUaW1lb3V0ID0gZGVib3VuY2VNcztcbiAgICBpZiAodGhpcy5zZWFyY2hTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hTdWJqZWN0LnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVvdXQpXG4gICAgKS5zdWJzY3JpYmUoKHsgZm4sIGV2ZW50IH0pID0+IHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCkpO1xuICAgIHRoaXMuc2VhcmNoU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50IH0pO1xuICB9XG5cbiAgb25PcGVuQ2hhbmdlRXZlbnQoZm46IGFueSwgb3BlbjogYm9vbGVhbiwgb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWU6IGFueSkge1xuICAgIGlmICghZm4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgIGNvbnN0IGRlYm91bmNlTXMgPSBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZSAhPSBudWxsID8gb25PcGVuQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgOiA1MDA7XG4gICAgdGhpcy5vcGVuQ2hhbmdlRGVib3VuY2VUaW1lb3V0ID0gZGVib3VuY2VNcztcbiAgICBpZiAodGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLm9wZW5DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMub3BlbkNoYW5nZURlYm91bmNlVGltZW91dClcbiAgICApLnN1YnNjcmliZSgoeyBmbiwgZXZlbnQgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGZuLCBldmVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vcGVuQ2hhbmdlU3ViamVjdC5uZXh0KHsgZm4sIGV2ZW50OiBvcGVuIH0pO1xuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIMnO1xuICAgIH1cbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gMyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGxldCBmb3JtSXRlbURhdGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpKTtcbiAgICAgICAgaWYgKGZvcm1JdGVtRGF0ZSAmJiBmb3JtSXRlbURhdGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGZvcm1JdGVtRGF0ZSA9IGZvcm1JdGVtRGF0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0uc3BsaXQoJy0nKS5tYXAoc3RyID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtSXRlbURhdGUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdmb3Jt57uE5Lu25LitRGF0ZVJhbmdl5o6n5Lu2dmFsdWXlgLzmoLzlvI/kuI3op4TojIPvvIzmraPnoa7npLrkvotbXFwnMjAyMC0wMS0yMlxcJywgXFwnMjAyMC0wMS0yM1xcJ10nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94ICYmIGl0ZW0uY2hlY2tib3hPcHRpb24pIHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaXRlbS52YWx1ZSkgPyBpdGVtLnZhbHVlIDogW107XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLkNoZWNrYm94KSB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94VmFsdWUgPSBpdGVtLnZhbHVlICE9IG51bGwgPyBpdGVtLnZhbHVlIDogZmFsc2U7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBjaGVja2JveFZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGNoZWNrYm94VmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaXRlbS52YWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwTGlzdCk7XG5cbiAgICB0aGlzLmZvcm1MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgLy8g54i257uE5Lu25pyq6YWN572u5pe26buY6K6kIDUwMG1zIOmYsuaKllxuICAgICAgICBjb25zdCBkZWJvdW5jZU1zID0gaXRlbS5vbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lICE9IG51bGwgPyBpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUgOiA1MDA7XG4gICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKGRlYm91bmNlTXMpKVxuICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRhID0+IHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSkpO1xuICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVhbFJvdygpIHtcbiAgICAvLyDkuIDpmLbmrrUg6YGN5Y6G5pWw5o2u6K6h566X55u45YWz5pWw5o2uXG4gICAgY29uc3QgZm9ybUxpc3RMZW5ndGggPSB0aGlzLmZvcm1MaXN0Lmxlbmd0aDtcbiAgICBsZXQgc3RlcCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtTGlzdExlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUxpc3RbaV0uaGlkZSkge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0udG90YWxXaWR0aCA9IHRoaXMuZm9ybUxpc3RbaV0ud2lkdGggfHwgMTtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLmlzUm93Rmlyc3QgPSAxO1xuICAgICAgICAgIHN0ZXAgPSBzdGVwICsgNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyDljrvmib7liLDliY3kuIDkuKrpnZ5oaWRl55qE5o6n5Lu2XG4gICAgICAgICAgZm9yIChsZXQgaiA9IGkgLSAxOyBqID49IDA7IGotLSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKTtcbiAgICAgICAgICAgICAgaWYgKCh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGggKyAodGhpcy5mb3JtTGlzdFtpXS53aWR0aCB8fCAxKSkgPiBzdGVwICYmIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCA8PSBzdGVwKSB7XG4gICAgICAgICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDkuozpmLbmrrUgaXNSb3dGaXJzdOeahOaVsOe7hOmhueWinuWKoOWtkOiKgueCuVxuICAgIGZvciAobGV0IG0gPSAwOyBtIDwgZm9ybUxpc3RMZW5ndGg7IG0rKykge1xuICAgICAgaWYgKHRoaXMuZm9ybUxpc3RbbV0uaXNSb3dGaXJzdCA9PT0gMSkge1xuICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zID0gW107XG4gICAgICAgIGxldCBzcGFjZSA9IDA7XG4gICAgICAgIGZvciAobGV0IG4gPSAxOyBuIDwgZm9ybUxpc3RMZW5ndGggLSBtOyBuKyspIHtcbiAgICAgICAgICBpZiAoc3BhY2UgPT09IDQgfHwgdGhpcy5mb3JtTGlzdFttICsgbl0uaXNSb3dGaXJzdCA9PT0gMSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5mb3JtTGlzdFttICsgbl0uaGlkZSAmJiB0aGlzLmZvcm1MaXN0W20gKyBuXSAmJiB0aGlzLmZvcm1MaXN0W20gKyBuXS5pc1Jvd0ZpcnN0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1MaXN0W21dLmNvbHVtbkl0ZW1zLnB1c2godGhpcy5mb3JtTGlzdFttICsgbl0pO1xuICAgICAgICAgICAgc3BhY2UrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTGlzdChsaXN0OiBBcnJheTxGb3JtSXRlbT4pOiBib29sZWFuIHtcbiAgICBpZiAoIWxpc3QgfHwgKGxpc3QgJiYgbGlzdC5sZW5ndGggPT09IDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBuYW1lTGlzdCA9IFtdO1xuICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgLy8g5qCh6aqM5Y2V6aG56YCJ5oup5ZmoXG4gICAgICAvLyBpZiAoaXRlbS50eXBlID09PSBGb3JtTGlzdFR5cGUuU2VsZWN0ICYmICghaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdCAmJiBpdGVtLnNlbGVjdE9wdGlvbi5zZWxlY3RMaXN0Lmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAvLyAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo5Y2V6aG56YCJ5oup5Zmo5rKh5pyJ5Lyg5YWl6YCJ6aG5ISdcbiAgICAgIC8vIH1cbiAgICAgIG5hbWVMaXN0LnB1c2goaXRlbS5uYW1lKTtcbiAgICB9KTtcbiAgICAvLyDmoKHpqoxuYW1l5piv5ZCm6YeN5aSNXG4gICAgaWYgKFsuLi5uZXcgU2V0KG5hbWVMaXN0KV0ubGVuZ3RoICE9PSBsaXN0Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjph43lpI1uYW1l5YC8ISc7XG4gICAgfVxuICAgIC8vIC4uLm1vcmUgY2hlY2tcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnJlc2V0KCk7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnZhbGlkYXRlSGRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRDbGVhbihmaWx0ZXI6IEZvcm1JdGVtKTogdm9pZCB7XG4gICAgY29uc3QgcGF0Y2hPYmplY3QgPSB7fTtcbiAgICBwYXRjaE9iamVjdFtmaWx0ZXIubmFtZV0gPSBudWxsO1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm0ucGF0Y2hWYWx1ZShwYXRjaE9iamVjdCk7XG4gIH1cblxuICBpc0NoZWNrYm94Q2hlY2tlZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQobmFtZSk7XG4gICAgY29uc3QgY3VycmVudCA9IGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogbnVsbDtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjdXJyZW50KSAmJiBjdXJyZW50LmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hJdGVtQ2hhbmdlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnZhbGlkYXRlSGRGb3JtLmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudCA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSkgPyBbLi4uY29udHJvbC52YWx1ZV0gOiBbXTtcbiAgICBjb25zdCBpbmRleCA9IGN1cnJlbnQuaW5kZXhPZih2YWx1ZSk7XG4gICAgaWYgKGNoZWNrZWQgJiYgaW5kZXggPT09IC0xKSB7XG4gICAgICBjdXJyZW50LnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoIWNoZWNrZWQgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICBjdXJyZW50LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIGNvbnRyb2wuc2V0VmFsdWUoY3VycmVudCk7XG4gICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaW5wdXROdW1iZXJEZWZhdWx0Rm9ybWF0dGVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZTtcbiAgcmVhZG9ubHkgaW5wdXROdW1iZXJEZWZhdWx0UGFyc2VyID0gKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlO1xufVxuIl19
|
|
@@ -78,6 +78,8 @@ if (false) {
|
|
|
78
78
|
/** @type {?} */
|
|
79
79
|
FormItem.prototype.onSearchEvent;
|
|
80
80
|
/** @type {?} */
|
|
81
|
+
FormItem.prototype.onOpenChangeEvent;
|
|
82
|
+
/** @type {?} */
|
|
81
83
|
FormItem.prototype.defaultLabel;
|
|
82
84
|
/** @type {?} */
|
|
83
85
|
FormItem.prototype.hdDisabledDate;
|
|
@@ -100,6 +102,8 @@ if (false) {
|
|
|
100
102
|
/** @type {?} */
|
|
101
103
|
FormItem.prototype.onSearchEventEventDebounceTime;
|
|
102
104
|
/** @type {?} */
|
|
105
|
+
FormItem.prototype.onOpenChangeEventDebounceTime;
|
|
106
|
+
/** @type {?} */
|
|
103
107
|
FormItem.prototype.cascaderOption;
|
|
104
108
|
/** @type {?} */
|
|
105
109
|
FormItem.prototype.format;
|
|
@@ -161,4 +165,4 @@ var HdFormService = /** @class */ (function () {
|
|
|
161
165
|
return HdFormService;
|
|
162
166
|
}());
|
|
163
167
|
export { HdFormService };
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFrQyxXQUFXLEVBQTZCLE1BQU0sc0JBQXNCLENBQUM7OztBQUc5Rzs7O0lBQUE7O1FBSUUsWUFBTyxHQUFhLEtBQUssQ0FBQyxDQUFDLE9BQU87O1FBRWxDLFVBQUssR0FBWSxDQUFDLENBQUMsQ0FBQyxZQUFZOztRQUNoQyxTQUFJLEdBQWEsS0FBSyxDQUFDLENBQUMsNkJBQTZCOztRQUNyRCxlQUFVLEdBQVksQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBWSxDQUFDLENBQUMsQ0FBQyxjQUFjOztRQUV2QyxVQUFLLEdBQXVGLElBQUksQ0FBQyxDQUFFLGNBQWM7O1FBVWpILGdCQUFXLEdBQWlCLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7O1FBTXZFLGdCQUFXLEdBQWEsSUFBSSxDQUFDLENBQUMsb0NBQW9DOztRQUdsRSxhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYztJQVM1QyxDQUFDO0lBQUQsZUFBQztBQUFELENBQUMsQUF2Q0QsSUF1Q0M7Ozs7O0lBdENDLHdCQUFtQjs7SUFDbkIseUJBQWM7O0lBQ2Qsd0JBQWE7O0lBQ2IsMkJBQTBCOztJQUMxQiwrQkFBcUI7O0lBQ3JCLHlCQUFtQjs7SUFDbkIsd0JBQXVCOztJQUN2Qiw4QkFBd0I7O0lBQ3hCLDhCQUF3Qjs7SUFDeEIsK0JBQXlCOztJQUN6Qix5QkFBaUc7O0lBQ2pHLDRCQUFtQjs7SUFDbkIseUJBQWU7O0lBRWYsNkJBQW1COztJQUNuQiwwQkFBZ0I7O0lBQ2hCLDhCQUFvQjs7SUFDcEIsZ0NBQTRCOztJQUM1QiwrQkFBMEI7O0lBQzFCLGtDQUFnQzs7SUFDaEMsK0JBQThDOztJQUM5QyxpQ0FBeUI7O0lBQ3pCLGlDQUF5Qjs7SUFDekIscUNBQTZCOztJQUM3QixnQ0FBc0M7O0lBQ3RDLGtDQUEwQjs7SUFDMUIsK0JBQTZCOztJQUM3QiwyQkFBaUI7O0lBQ2pCLGdDQUFzQjs7SUFDdEIsNEJBQTJCOztJQUMzQiw4QkFBb0I7O0lBQ3BCLGlDQUFvQzs7SUFDcEMsNkJBQXdCOztJQUN4Qiw2Q0FBbUM7O0lBQ25DLGtEQUF3Qzs7SUFDeEMsaURBQXVDOztJQUN2QyxrQ0FBZ0M7O0lBQ2hDLDBCQUFnQjs7QUFHbEI7SUFBQTtJQUdBLENBQUM7SUFBRCxtQkFBQztBQUFELENBQUMsQUFIRCxJQUdDOzs7O0lBRkMsMkJBQVk7O0lBQ1osNkJBQWM7Ozs7SUFLZCxRQUFLO0lBQ0wsU0FBTTtJQUNOLE9BQUk7SUFDSixZQUFTO0lBQ1QsV0FBUTtJQUNSLGNBQVc7SUFDWCxpQkFBYztJQUNkLFVBQU87SUFDUCxTQUFNO0lBQ04sT0FBSTtJQUNKLFlBQVE7SUFDUixTQUFLO0lBQ0wsWUFBUSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR2pCO0lBSUU7SUFDQSxDQUFDOztnQkFMRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozt3QkF0RUQ7Q0EwRUMsQUFORCxJQU1DO1NBSFksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FzY2FkZXJPcHRpb24sIENoZWNrYm94T3B0aW9uLCBJbnB1dE51bWJlciwgUmFkaW9PcHRpb24sIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL21vZGVsL2NvbW1vbi10eXBlJztcblxuLy8g5o6n5Lu25YiX6KGoXG5leHBvcnQgY2xhc3MgRm9ybUl0ZW0ge1xuICB0eXBlOiBGb3JtTGlzdFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHJlcXVpcmU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuW/heWhq1xuICBwbGFjZWhvbGRlcj86IHN0cmluZzsgLy8g6L6T5YWl5qGG5o+Q56S65paH5qGIXG4gIHdpZHRoPzogbnVtYmVyID0gMTsgLy8g5Y2g5o2u55qE5YiX5pWw44CC6buY6K6kMVxuICBoaWRlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKbkuLrpmpDol4/lrZfmrrXvvIzku4XnlKjkuo7loavlhYXooajljZXnmoTlrZfmrrXvvIzkuI3mmL7npLrlnKjpobXpnaLkuIpcbiAgdG90YWxXaWR0aD86IG51bWJlciA9IDA7XG4gIGlzUm93Rmlyc3Q/OiBudW1iZXIgPSAwOyAvLyDmmK/lkKbmmK/kuIDooYznmoTnrKzkuIDkuKrlhYPntKBcbiAgY29sdW1uSXRlbXM/OiBBcnJheTxhbnk+OyAvLyDlvZPliY3ooYznmoTmiYDmnInliJfnmoRpdGVtc1xuICB2YWx1ZT86IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBEYXRlIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGU+IHwgbnVsbCA9IG51bGw7ICAvLyDlgLwg5LiN5Lyg6buY6K6k5Li6bnVsbFxuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGNvbG9yPzogc3RyaW5nO1xuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgbWF4TGVuZ3RoPzogbnVtYmVyOyAvLyBpbnB1dOaOp+S7tueahOi+k+WFpemVv+W6plxuICBwcmVmaXg/OiBzdHJpbmc7IC8vIGlucHV05YmN57yA5paH5a2X77yM5a+55bqUIG56LWlucHV0LWdyb3VwIG56UHJlZml4XG4gIHByZWZpeEljb24/OiBzdHJpbmc7IC8vIGlucHV05YmN57yA5Zu+5qCH77yM5a+55bqUIG56LWljb24gbnpUeXBlXG4gIHNlbGVjdE9wdGlvbj86IFNlbGVjdE9wdGlvbjsgIC8vIOaOp+S7tuS4ulNlbGVjdOaXtu+8jOmAiemhueWIl+ihqFxuICByYWRpb09wdGlvbj86IFJhZGlvT3B0aW9uOyAgLy8g5o6n5Lu25Li6UmFkaW/ml7bvvIzpgInpobnliJfooahcbiAgY2hlY2tib3hPcHRpb24/OiBDaGVja2JveE9wdGlvbjsgIC8vIOaOp+S7tuS4ukNoZWNrYm9457uE5pe277yM6YCJ6aG55YiX6KGoXG4gIGlucHV0TnVtYmVyPzogSW5wdXROdW1iZXIgPSBuZXcgSW5wdXROdW1iZXIoKTsgLy8gbnVtYmVy57uE5Lu255qEbWlu44CBbWF444CBc3RlcFxuICBvbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247ICAgLy8g5o6n5Lu255qE5YC85pS55Y+Y5LqL5Lu2IOWPr+eUqOS6juaOp+S7tumXtOiBlOWKqFxuICBvblNlYXJjaEV2ZW50PzogRnVuY3Rpb247ICAvLyBzZWxlY3TpgInmi6nlmajmkJzntKLkuovku7Yg5Y+v55So5LqO5pu05paw5aSH6YCJ6ZuG5ZCIXG4gIG9uT3BlbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247IC8vIHNlbGVjdOS4i+aLieWxleW8gC/mlLbotbfkuovku7bvvIzlj6/nlKjkuo7mjInpnIDor7fmsYIgc2VsZWN0TGlzdFxuICBkZWZhdWx0TGFiZWw/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+OyAgIC8vIHNlbGVjdOmAieaLqeWZqOS4jeWIneWni+WMlueahOaXtuWAmeWPr+S7peS9v+eUqGRlZmF1bHRMYWJlbOaQremFjXZhbHVl77yM6K6+572u6buY6K6k5YC8XG4gIGhkRGlzYWJsZWREYXRlPzogRnVuY3Rpb247IC8vIGRhdGUtcGlja2Vy57uE5Lu25LiN5Y+v6YCJ5oup55qE5pel5pyfXG4gIGhkU2hvd1RvZGF5PzogYm9vbGVhbiA9IHRydWU7IC8vIOWvueW6lCBuelNob3dUb2Rhee+8jOaYr+WQpuaYvuekuuOAjOS7iuWkqeOAjeaMiemSru+8jOm7mOiupCB0cnVlXG4gIGV4cGxhaW4/OiBzdHJpbmc7IC8vIGxhYmVs5bqV6YOo55qE5LuL57uNXG4gIHRleHRBcmVhUm93cz86IG51bWJlcjsgLy8gdGV4dEFyZWHnmoTooYzmlbBcbiAgc2hvd1RpbWU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaXpeacn+mAieaLqeWZqOaYr+WQpuWMheWQq+aXtumXtFxuICBsYWJlbENvbG9yPzogc3RyaW5nOyAvLyBsYWJlbOeahOaWh+Wtl+eahOminOiJslxuICB2YWxpZGF0b3JLZXlzPzogQXJyYXk8VmFsaWRhdG9yS2V5PjtcbiAgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm47XG4gIG9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWU/OiBudW1iZXI7IC8vIGNoYW5nZeS6i+S7tumYsuaKlu+8jOm7mOiupCA1MDBtc1xuICBvblNlYXJjaEV2ZW50RXZlbnREZWJvdW5jZVRpbWU/OiBudW1iZXI7IC8vIHNlYXJjaOS6i+S7tumYsuaKlu+8jOm7mOiupCA1MDBtc1xuICBvbk9wZW5DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8g5LiL5ouJ5bGV5byA5LqL5Lu26Ziy5oqW77yM6buY6K6kIDUwMG1z77yM6YG/5YWN6aKR57mB5omT5byA6YeN5aSN6K+35rGCXG4gIGNhc2NhZGVyT3B0aW9uPzogQ2FzY2FkZXJPcHRpb247IC8vIOe6p+iBlOmAieaLqeWZqOmFjee9rlxuICBmb3JtYXQ/OiBzdHJpbmc7IC8vIOaXtumXtOeahOagvOW8j+WMluinhOWImVxufVxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yS2V5IHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbi8vIOaOp+S7tuexu+Wei1xuZXhwb3J0IGVudW0gRm9ybUxpc3RUeXBlIHtcbiAgSW5wdXQsICAvLyDovpPlhaXmoYZcbiAgU2VsZWN0LCAgLy8g5Y2V6aG56YCJ5oup5ZmoXG4gIERhdGUsICAvLyDljZXkuKrml6XmnJ/pgInmi6lcbiAgRGF0ZVJhbmdlLCAgLy8g5pel5pyf6IyD5Zu06YCJ5oupXG4gIFRleHRBcmVhLCAvLyDlnZfnuqfovpPlhaXmoYZcbiAgSW5wdXROdW1iZXIsIC8vIOaVsOWtl+i+k+WFpVxuICBNdWx0aXBsZVNlbGVjdCwgLy8g5aSa6YCJXG4gIFZpZXdEb20sIC8vIOWNlee6r+eahOaYvuekuuaOp+S7tlxuICBTd2l0Y2gsIC8vIOW8gOWFs1xuICBUaW1lLCAvLyDml7bpl7TpgInmi6nlmahcbiAgQ2FzY2FkZXIsIC8vIOe6p+iBlOmAieaLqeWZqFxuICBSYWRpbywgLy8g5Y2V6YCJXG4gIENoZWNrYm94IC8vIOWkjemAieahhlxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZEZvcm1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiJdfQ==
|