ng-zorro-antd-extension 17.4.0 → 17.4.2
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/configurable-query/configurable-query.component.d.ts +16 -3
- package/configurable-query/type.d.ts +1 -1
- package/esm2022/configurable-query/configurable-query.component.mjs +54 -33
- package/esm2022/configurable-query/type.mjs +1 -1
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +53 -32
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -42,6 +42,7 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
|
|
|
42
42
|
collapseIcon: string;
|
|
43
43
|
collapseText: string;
|
|
44
44
|
private _queryParams;
|
|
45
|
+
/** 重置时用来给查询框默认值 */
|
|
45
46
|
private defaultValue;
|
|
46
47
|
private cacheParams;
|
|
47
48
|
private destroy$;
|
|
@@ -56,14 +57,16 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
|
|
|
56
57
|
setQueryParams(cacheParams: NzxQueryParams): void;
|
|
57
58
|
/**
|
|
58
59
|
* 根据controlName设置config值
|
|
60
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
59
61
|
*/
|
|
60
|
-
setControl(controlName: string, config: Partial<NzxQueryControlOptions
|
|
62
|
+
setControl(controlName: string, config: Partial<NzxQueryControlOptions>, defaultValueResettable?: boolean): void;
|
|
61
63
|
/**
|
|
62
64
|
* 动态添加控件
|
|
63
65
|
* @param config 配置项
|
|
64
66
|
* @param position 添加位置 不传为末尾
|
|
67
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
65
68
|
*/
|
|
66
|
-
addControl(config: NzxQueryControlOptions, position?: number | undefined): void;
|
|
69
|
+
addControl(config: NzxQueryControlOptions, position?: number | undefined, defaultValueResettable?: boolean): void;
|
|
67
70
|
/**
|
|
68
71
|
* 根据控件名删除控件
|
|
69
72
|
*/
|
|
@@ -87,8 +90,18 @@ export declare class NzxConfigurableQueryComponent implements OnChanges, OnInit,
|
|
|
87
90
|
private calculateText;
|
|
88
91
|
/** 清空表单控件 */
|
|
89
92
|
private clearFormControl;
|
|
90
|
-
/**
|
|
93
|
+
/** 生成 queryForm 表单 */
|
|
91
94
|
private generateForm;
|
|
95
|
+
/**
|
|
96
|
+
*
|
|
97
|
+
* @param controlConfig control配置
|
|
98
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
99
|
+
*
|
|
100
|
+
* 1. 生成单个表单控件并将其添加到queryForm中
|
|
101
|
+
* 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值
|
|
102
|
+
*
|
|
103
|
+
**/
|
|
104
|
+
private generateControl;
|
|
92
105
|
static ɵfac: i0.ɵɵFactoryDeclaration<NzxConfigurableQueryComponent, never>;
|
|
93
106
|
static ɵcmp: i0.ɵɵComponentDeclaration<NzxConfigurableQueryComponent, "nzx-configurable-query", ["NzxConfigurableQuery"], { "controls": { "alias": "controls"; "required": false; }; "nzxJustify": { "alias": "nzxJustify"; "required": false; }; "nzxGutter": { "alias": "nzxGutter"; "required": false; }; "lineNumber": { "alias": "lineNumber"; "required": false; }; "nzxBtnSpan": { "alias": "nzxBtnSpan"; "required": false; }; "initQuery": { "alias": "initQuery"; "required": false; }; "fixedParams": { "alias": "fixedParams"; "required": false; }; }, { "queryChange": "queryChange"; "resetChange": "resetChange"; }, ["controlTemplateList"], ["*"], false, never>;
|
|
94
107
|
}
|
|
@@ -53,6 +53,7 @@ export class NzxConfigurableQueryComponent {
|
|
|
53
53
|
this.collapseIcon = 'down';
|
|
54
54
|
this.collapseText = '';
|
|
55
55
|
this._queryParams = {};
|
|
56
|
+
/** 重置时用来给查询框默认值 */
|
|
56
57
|
this.defaultValue = {};
|
|
57
58
|
this.cacheParams = {};
|
|
58
59
|
this.destroy$ = new Subject();
|
|
@@ -113,29 +114,34 @@ export class NzxConfigurableQueryComponent {
|
|
|
113
114
|
}
|
|
114
115
|
/**
|
|
115
116
|
* 根据controlName设置config值
|
|
117
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
116
118
|
*/
|
|
117
|
-
setControl(controlName, config) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}, 0);
|
|
119
|
+
setControl(controlName, config, defaultValueResettable = false) {
|
|
120
|
+
const control = this.getControl(controlName);
|
|
121
|
+
if (control) {
|
|
122
|
+
Object.keys(config).forEach((key) => {
|
|
123
|
+
control[key] = config[key];
|
|
124
|
+
});
|
|
125
|
+
this.generateControl(control, defaultValueResettable);
|
|
126
|
+
this.cd.markForCheck();
|
|
127
|
+
}
|
|
127
128
|
}
|
|
128
129
|
/**
|
|
129
130
|
* 动态添加控件
|
|
130
131
|
* @param config 配置项
|
|
131
132
|
* @param position 添加位置 不传为末尾
|
|
133
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
132
134
|
*/
|
|
133
|
-
addControl(config, position) {
|
|
135
|
+
addControl(config, position, defaultValueResettable = false) {
|
|
134
136
|
const control = this.getControl(config.controlName);
|
|
135
137
|
if (!control) {
|
|
136
|
-
if (config
|
|
137
|
-
|
|
138
|
+
if (config && config['hasOwnProperty']('collapse')) {
|
|
139
|
+
const hasCollapseProperty = this.controls.some((i) => i['hasOwnProperty']('collapse'));
|
|
140
|
+
if (hasCollapseProperty) {
|
|
141
|
+
config.collapse = this.controls.some((i) => i.collapse === true);
|
|
142
|
+
}
|
|
138
143
|
}
|
|
144
|
+
this.generateControl(config, defaultValueResettable);
|
|
139
145
|
if (position === void 0 || position === null) {
|
|
140
146
|
this.controls.push(config);
|
|
141
147
|
}
|
|
@@ -185,10 +191,6 @@ export class NzxConfigurableQueryComponent {
|
|
|
185
191
|
}
|
|
186
192
|
/** 重置 */
|
|
187
193
|
reset() {
|
|
188
|
-
// if (this.queryForm.invalid) {
|
|
189
|
-
// updateControlStatus(this.queryForm);
|
|
190
|
-
// return;
|
|
191
|
-
// }
|
|
192
194
|
this.queryForm.reset(this.defaultValue);
|
|
193
195
|
this.resetChange.emit(this._queryParams);
|
|
194
196
|
}
|
|
@@ -196,11 +198,11 @@ export class NzxConfigurableQueryComponent {
|
|
|
196
198
|
toggleCollapse() {
|
|
197
199
|
for (let index = 0; index < this.controls.length; index++) {
|
|
198
200
|
const config = this.controls[index];
|
|
199
|
-
|
|
201
|
+
const hasProperty = config.hasOwnProperty('collapse');
|
|
202
|
+
if (hasProperty && config.collapse) {
|
|
200
203
|
config.collapse = false;
|
|
201
204
|
}
|
|
202
|
-
else if (config.
|
|
203
|
-
config.collapse === false) {
|
|
205
|
+
else if (hasProperty && !config.collapse) {
|
|
204
206
|
config.collapse = true;
|
|
205
207
|
}
|
|
206
208
|
}
|
|
@@ -227,19 +229,11 @@ export class NzxConfigurableQueryComponent {
|
|
|
227
229
|
this.queryForm.removeControl(key);
|
|
228
230
|
});
|
|
229
231
|
}
|
|
230
|
-
/**
|
|
232
|
+
/** 生成 queryForm 表单 */
|
|
231
233
|
generateForm(controlConfigs) {
|
|
232
234
|
this.clearFormControl();
|
|
233
235
|
for (const config of controlConfigs) {
|
|
234
|
-
|
|
235
|
-
const item = this.controlTemplateList.find((directive) => directive.nzxControl === config.controlName);
|
|
236
|
-
if (item) {
|
|
237
|
-
config.templateRef = item.templateRef;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
if (config.controlName) {
|
|
241
|
-
this.queryForm.addControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
242
|
-
}
|
|
236
|
+
this.generateControl(config);
|
|
243
237
|
}
|
|
244
238
|
this.defaultValue = this.queryForm.getRawValue();
|
|
245
239
|
if (this.cacheParams) {
|
|
@@ -248,12 +242,39 @@ export class NzxConfigurableQueryComponent {
|
|
|
248
242
|
}
|
|
249
243
|
this.calculateText();
|
|
250
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
*
|
|
247
|
+
* @param controlConfig control配置
|
|
248
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
249
|
+
*
|
|
250
|
+
* 1. 生成单个表单控件并将其添加到queryForm中
|
|
251
|
+
* 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值
|
|
252
|
+
*
|
|
253
|
+
**/
|
|
254
|
+
generateControl(config, defaultValueResettable = false) {
|
|
255
|
+
if (config.controlName) {
|
|
256
|
+
if (!config?.templateRef) {
|
|
257
|
+
const d = this.controlTemplateList.find((d) => d.nzxControl === config.controlName);
|
|
258
|
+
if (d) {
|
|
259
|
+
config.templateRef = d.templateRef;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
this.queryForm.setControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
263
|
+
if (!defaultValueResettable) {
|
|
264
|
+
const control = this.queryForm.get(config.controlName);
|
|
265
|
+
this.defaultValue = {
|
|
266
|
+
...this.defaultValue,
|
|
267
|
+
[config.controlName]: control.value,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
251
272
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NzxConfigurableQueryComponent, deps: [{ token: i1.NzI18nService }, { token: i2.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
252
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], viewQueries: [{ propertyName: "queyFormEl", first: true, predicate: ["queyForm"], descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [
|
|
273
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], viewQueries: [{ propertyName: "queyFormEl", first: true, predicate: ["queyForm"], descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n [nzOrder]=\"controls.length\"\n class=\"nzx-query-btn\"\n nz-col\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i9.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i10.NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: ["form", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
253
274
|
}
|
|
254
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NzxConfigurableQueryComponent, decorators: [{
|
|
255
276
|
type: Component,
|
|
256
|
-
args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [
|
|
277
|
+
args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n [nzOrder]=\"controls.length\"\n class=\"nzx-query-btn\"\n nz-col\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"] }]
|
|
257
278
|
}], ctorParameters: () => [{ type: i1.NzI18nService }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { controls: [{
|
|
258
279
|
type: Input
|
|
259
280
|
}], nzxJustify: [{
|
|
@@ -279,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
279
300
|
type: ContentChildren,
|
|
280
301
|
args: [NzxControlDirective, { descendants: true }]
|
|
281
302
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7OztBQUcxRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4QyxZQUFZO0lBQ1osSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQWlCRCxZQUNVLElBQW1CLEVBQ25CLEVBQWUsRUFDZixFQUFxQjtRQUZyQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25C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QUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkF5QndCLFVBQVU7c0JBQXhDLFNBQVM7dUJBQUMsVUFBVTtnQkFFckIsbUJBQW1CO3NCQURsQixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTnp4UXVlcnlJMThuSW50ZXJmYWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vaTE4bic7XHJcbmltcG9ydCB7IHVwZGF0ZUNvbnRyb2xTdGF0dXMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcclxuaW1wb3J0IHsgTnpKdXN0aWZ5IH0gZnJvbSAnbmctem9ycm8tYW50ZC9ncmlkJztcclxuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE56eENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTnp4UXVlcnlDb250cm9sT3B0aW9ucywgTnp4UXVlcnlQYXJhbXMgfSBmcm9tICcuL3R5cGUnO1xyXG5cclxuLyoqXHJcbiAqIOafpeivoue7hOS7tlxyXG4gKiDmlK/mjIHmqKHmnb/oh6rlrprkuYnvvIzlnKjkvb/nlKjmqKHmnb/oh6rlrprkuYnml7bvvIzopoHms6jmhI9jb250cm9sVHlwZeW6lOivpeiuvue9ruS4ulRlbXBsYXRl5bm25LiU56Gu5L+dY29udHJvbE5hbWXkuI7mjIfku6TkuIrnmoRuenhDb250cm9s5bqU6K+l55u45ZCMXHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduengtY29uZmlndXJhYmxlLXF1ZXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBleHBvcnRBczogJ056eENvbmZpZ3VyYWJsZVF1ZXJ5JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE56eENvbmZpZ3VyYWJsZVF1ZXJ5Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XHJcbntcclxuICAvKiog6YWN572u6aG5ICovXHJcbiAgQElucHV0KCkgY29udHJvbHM6IEFycmF5PE56eFF1ZXJ5Q29udHJvbE9wdGlvbnM+ID0gW107XHJcbiAgLyoqIOafpeivouihqOWNleaOkuWIl+aWueW8jyAqL1xyXG4gIEBJbnB1dCgpIG56eEp1c3RpZnk6IE56SnVzdGlmeSA9ICdzdGFydCc7XHJcbiAgLyoqIOafpeivoumhuemXtOmalCAqL1xyXG4gIEBJbnB1dCgpIG56eEd1dHRlcjogbnVtYmVyID0gODtcclxuICAvKiog5LiA6KGM5bGV56S65aSa5bCR5p+l6K+i6aG5ICovXHJcbiAgQElucHV0KCkgbGluZU51bWJlcjogbnVtYmVyID0gMztcclxuICAvKiog5pON5L2c5oyJ6ZKu5omA5Y2g5qCF5qC85pWw77yMMjTliJnmjaLooYwgKi9cclxuICBASW5wdXQoKSBuenhCdG5TcGFuOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKiog5Yid5aeL5YyW5pe277yM5Li75Yqo5p+l6K+iICovXHJcbiAgQElucHV0KCkgaW5pdFF1ZXJ5ID0gZmFsc2U7XHJcbiAgLyoqIOe8uuecgSDlm7rlrprlj4LmlbAgKi9cclxuICBASW5wdXQoKSBmaXhlZFBhcmFtcyA9IHt9O1xyXG5cclxuICAvKiog5p+l6K+i5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuICAvKiog6YeN572u5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHJlc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuXHJcbiAgLyoqIOafpeivoue7hOS7tuWHuuWPgiovXHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zO1xyXG4gIH1cclxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fcXVlcnlQYXJhbXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBuenhDb2xsYXBzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xzLnNvbWUoKGkpID0+IGkuaGFzT3duUHJvcGVydHkoJ2NvbGxhcHNlJykpO1xyXG4gIH1cclxuXHJcbiAgLyoqIGZvcm0g6KGo5Y2VKi9cclxuICBxdWVyeUZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgbG9jYWxlITogTnp4UXVlcnlJMThuSW50ZXJmYWNlO1xyXG4gIGNvbGxhcHNlSWNvbjogc3RyaW5nID0gJ2Rvd24nO1xyXG4gIGNvbGxhcHNlVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX3F1ZXJ5UGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3F1ZXlGb3JtJykgcHJpdmF0ZSBxdWV5Rm9ybUVsITogRWxlbWVudFJlZjxIVE1MRm9ybUVsZW1lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4Q29udHJvbERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIGNvbnRyb2xUZW1wbGF0ZUxpc3QhOiBRdWVyeUxpc3Q8Tnp4Q29udHJvbERpcmVjdGl2ZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpMThuOiBOekkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5xdWVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjb250cm9scyddICYmICFjaGFuZ2VzWydjb250cm9scyddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGNoYW5nZXNbJ2NvbnRyb2xzJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250cm9scykpIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybShjb250cm9scyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmkxOG4uZ2V0TG9jYWxlRGF0YSgnUXVlcnknKTtcclxuXHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgIC4uLnZhbCxcclxuICAgICAgICAgIC4uLnRoaXMuZml4ZWRQYXJhbXMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWV5Rm9ybUVsKSB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLnF1ZXlGb3JtRWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOajgOafpeaYr+WQpuWQjOaXtuaMieS4i+S6hkN0cmzplK7vvIjlnKhXaW5kb3dzL0xpbnV45LiK77yJ5ZKMU+mUrlxyXG4gICAgICAgICAgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmIGV2ZW50LmtleSA9PT0gJ3InKSB7XHJcbiAgICAgICAgICAgIC8vIOazqOaEj++8mmV2ZW50Lm1ldGFLZXnnlKjkuo7lhbzlrrlNYWPnmoRDb21tYW5k6ZSuXHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIOmYu+atoua1j+iniOWZqOm7mOiupOeahOS/neWtmOihjOS4ulxyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0odGhpcy5jb250cm9scyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdFF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiog6K6+572u5p+l6K+i5YC86L+b6KGM5Zue5pi+ICovXHJcbiAgc2V0UXVlcnlQYXJhbXMoY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlUGFyYW1zID0gY2FjaGVQYXJhbXM7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKGNhY2hlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmNvbnRyb2xOYW1l6K6+572uY29uZmln5YC8XHJcbiAgICovXHJcbiAgc2V0Q29udHJvbChcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBjb25maWc6IFBhcnRpYWw8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz5cclxuICApOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgKGNvbnRyb2wgYXMgYW55KVtrZXldID0gKGNvbmZpZyBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDliqjmgIHmt7vliqDmjqfku7ZcclxuICAgKiBAcGFyYW0gY29uZmlnIOmFjee9rumhuVxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiDmt7vliqDkvY3nva4g5LiN5Lyg5Li65pyr5bC+XHJcbiAgICovXHJcbiAgYWRkQ29udHJvbChcclxuICAgIGNvbmZpZzogTnp4UXVlcnlDb250cm9sT3B0aW9ucyxcclxuICAgIHBvc2l0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbmZpZy5jb250cm9sTmFtZSk7XHJcbiAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgaWYgKGNvbmZpZy5jb250cm9sTmFtZSkge1xyXG4gICAgICAgIHRoaXMucXVlcnlGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICBjb25maWcuY29udHJvbE5hbWUsXHJcbiAgICAgICAgICBjb25maWcuY29udHJvbEluc3RhbmNlID8/IHRoaXMuZmIuY29udHJvbChjb25maWcuZGVmYXVsdCA/PyBudWxsKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBvc2l0aW9uID09PSB2b2lkIDAgfHwgcG9zaXRpb24gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLnB1c2goY29uZmlnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLnNwbGljZShwb3NpdGlvbiAtIDEsIDAsIGNvbmZpZyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBgVGhlIGNvbnRyb2wgbmFtZTogJyR7Y29uZmlnLmNvbnRyb2xOYW1lfScgYWxyZWFkeSBleGlzdHMhYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNruaOp+S7tuWQjeWIoOmZpOaOp+S7tlxyXG4gICAqL1xyXG4gIHJlbW92ZUNvbnRyb2woY29udHJvbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgICAgdGhpcy5jb250cm9scyA9IHRoaXMuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjKSA9PiBjLmNvbnRyb2xOYW1lICE9PSBjb250cm9sTmFtZVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBgVGhlIGNvbnRyb2wgbmFtZTogJyR7Y29udHJvbE5hbWV9JyBub3QgZmluZCFgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uY29udHJvbE5hbWXojrflj5Zjb25maWfpoblcclxuICAgKi9cclxuICBnZXRDb250cm9sKFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gICk6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHMuZmluZCgoY29uZmlnKSA9PiBjb25maWcuY29udHJvbE5hbWUgPT09IGNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOajgOe0oue7meWumuaOp+S7tuWQjeensOaIlui3r+W+hOeahOWtkOaOp+S7tuOAglxyXG4gICAqIOi/meS4qiBnZXRGb3JtQ29udHJvbCDnrb7lkI3mlK/mjIHlrZfnrKbkuLLlkowgY29uc3Qg5pWw57uE77yILmdldEZvcm1Db250cm9sKFsnZm9vJywgJ2JhciddIGFzIGNvbnN0Ke+8iVxyXG4gICAqL1xyXG4gIGdldEZvcm1Db250cm9sKFxyXG4gICAgcGF0aDogc3RyaW5nIHwgcmVhZG9ubHkgKHN0cmluZyB8IG51bWJlcilbXVxyXG4gICk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnF1ZXJ5Rm9ybS5nZXQocGF0aCk7XHJcbiAgfVxyXG5cclxuICAvKiog5p+l6K+iICovXHJcbiAgc2VhcmNoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlcnlGb3JtLmludmFsaWQpIHtcclxuICAgICAgdXBkYXRlQ29udHJvbFN0YXR1cyh0aGlzLnF1ZXJ5Rm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdCh0aGlzLl9xdWVyeVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICAvKiog6YeN572uICovXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodGhpcy5xdWVyeUZvcm0uaW52YWxpZCkge1xyXG4gICAgLy8gICB1cGRhdGVDb250cm9sU3RhdHVzKHRoaXMucXVlcnlGb3JtKTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5xdWVyeUZvcm0ucmVzZXQodGhpcy5kZWZhdWx0VmFsdWUpO1xyXG4gICAgdGhpcy5yZXNldENoYW5nZS5lbWl0KHRoaXMuX3F1ZXJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKuWxleW8gOOAgeaUtui1tyovXHJcbiAgdG9nZ2xlQ29sbGFwc2UoKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5jb250cm9scy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb250cm9sc1tpbmRleF07XHJcbiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoJ2NvbGxhcHNlJykgJiYgY29uZmlnLmNvbGxhcHNlID09PSB0cnVlKSB7XHJcbiAgICAgICAgKGNvbmZpZy5jb2xsYXBzZSBhcyBib29sZWFuKSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIGNvbmZpZy5oYXNPd25Qcm9wZXJ0eSgnY29sbGFwc2UnKSAmJlxyXG4gICAgICAgIChjb25maWcuY29sbGFwc2UgYXMgYm9vbGVhbikgPT09IGZhbHNlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbmZpZy5jb2xsYXBzZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2FsY3VsYXRlVGV4dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY3VsYXRlVGV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2xzLnNvbWUoKGkpID0+IGkuY29sbGFwc2UgPT09IHRydWUpKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VJY29uID0gJ2Rvd24nO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlVGV4dCA9IHRoaXMubG9jYWxlLmV4cGFuZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VJY29uID0gJ3VwJztcclxuICAgICAgdGhpcy5jb2xsYXBzZVRleHQgPSB0aGlzLmxvY2FsZS5jb2xsYXBzZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvKiog5riF56m66KGo5Y2V5o6n5Lu2ICovXHJcbiAgcHJpdmF0ZSBjbGVhckZvcm1Db250cm9sKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5xdWVyeUZvcm0uY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5yZW1vdmVDb250cm9sKGtleSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiDnlJ/miJDooajljZUgKi9cclxuICBwcml2YXRlIGdlbmVyYXRlRm9ybShjb250cm9sQ29uZmlnczogQXJyYXk8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJGb3JtQ29udHJvbCgpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbnRyb2xDb25maWdzKSB7XHJcbiAgICAgIGlmIChjb25maWcuY29udHJvbFR5cGUgPT09ICdUZW1wbGF0ZScpIHtcclxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb250cm9sVGVtcGxhdGVMaXN0LmZpbmQoXHJcbiAgICAgICAgICAoZGlyZWN0aXZlKSA9PiBkaXJlY3RpdmUubnp4Q29udHJvbCA9PT0gY29uZmlnLmNvbnRyb2xOYW1lXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgY29uZmlnLnRlbXBsYXRlUmVmID0gaXRlbS50ZW1wbGF0ZVJlZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5jb250cm9sTmFtZSkge1xyXG4gICAgICAgIHRoaXMucXVlcnlGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICBjb25maWcuY29udHJvbE5hbWUsXHJcbiAgICAgICAgICBjb25maWcuY29udHJvbEluc3RhbmNlID8/IHRoaXMuZmIuY29udHJvbChjb25maWcuZGVmYXVsdCA/PyBudWxsKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5xdWVyeUZvcm0uZ2V0UmF3VmFsdWUoKTtcclxuICAgIGlmICh0aGlzLmNhY2hlUGFyYW1zKSB7XHJcbiAgICAgIC8vIOe8k+WtmOWbnuaYvuafpeivouadoeS7tlxyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKHRoaXMuY2FjaGVQYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2FsY3VsYXRlVGV4dCgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSAjcXVleUZvcm0gY2xhc3M9XCJuengtcXVlcnktY29udGFpbmVyXCIgbnotZm9ybSBbZm9ybUdyb3VwXT1cInF1ZXJ5Rm9ybVwiPlxuICA8ZGl2IG56LXJvdyBbbnpHdXR0ZXJdPVwibnp4R3V0dGVyXCIgW256SnVzdGlmeV09XCJuenhKdXN0aWZ5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uZmlnIG9mIGNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWNvbmZpZy5oaWRkZW5cIlxuICAgICAgICBuei1jb2xcbiAgICAgICAgW256U3Bhbl09XCJjb25maWcubnp4U3BhbiB8fCAyNCAvIGxpbmVOdW1iZXJcIlxuICAgICAgICBbaGlkZGVuXT1cImNvbmZpZy5jb2xsYXBzZVwiXG4gICAgICAgIFtuek9yZGVyXT1cImlcIlxuICAgICAgPlxuICAgICAgICA8bnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtXT1cInF1ZXJ5Rm9ybVwiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiY29uZmlnXCJcbiAgICAgICAgPjwvbnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm56eC1xdWVyeS1idG5cIlxuICAgICAgbnotY29sXG4gICAgICBbbnpPcmRlcl09XCJjb250cm9scy5sZW5ndGhcIlxuICAgICAgW256U3Bhbl09XCJuenhCdG5TcGFuIHx8IDI0IC8gbGluZU51bWJlclwiXG4gICAgPlxuICAgICAgPGRpdiBuei1yb3cgbnpKdXN0aWZ5PVwiZW5kXCIgbnpBbGlnbj1cIm1pZGRsZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgbnpUeXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGl0bGU9XCJFbnRlclwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlYXJjaCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxvY2FsZVsncXVlcnknXSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gdHlwZT1cImJ1dHRvblwiIHRpdGxlPVwiY3RybCtyXCIgKGNsaWNrKT1cInJlc2V0KClcIj5cbiAgICAgICAgICB7eyBsb2NhbGVbJ3Jlc2V0J10gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIm56eENvbGxhcHNlXCJcbiAgICAgICAgICBuei1idXR0b25cbiAgICAgICAgICBuelR5cGU9XCJsaW5rXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb2xsYXBzZVRleHQgfX1cbiAgICAgICAgICA8aSBuei1pY29uIFtuelR5cGVdPVwiY29sbGFwc2VJY29uXCI+PC9pPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7OztBQUcxRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4QyxZQUFZO0lBQ1osSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQWtCRCxZQUNVLElBQW1CLEVBQ25CLEVBQWUsRUFDZixFQUFxQjtRQUZyQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25C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ZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTnp4UXVlcnlJMThuSW50ZXJmYWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vaTE4bic7XHJcbmltcG9ydCB7IHVwZGF0ZUNvbnRyb2xTdGF0dXMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcclxuaW1wb3J0IHsgTnpKdXN0aWZ5IH0gZnJvbSAnbmctem9ycm8tYW50ZC9ncmlkJztcclxuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE56eENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTnp4UXVlcnlDb250cm9sT3B0aW9ucywgTnp4UXVlcnlQYXJhbXMgfSBmcm9tICcuL3R5cGUnO1xyXG5cclxuLyoqXHJcbiAqIOafpeivoue7hOS7tlxyXG4gKiDmlK/mjIHmqKHmnb/oh6rlrprkuYnvvIzlnKjkvb/nlKjmqKHmnb/oh6rlrprkuYnml7bvvIzopoHms6jmhI9jb250cm9sVHlwZeW6lOivpeiuvue9ruS4ulRlbXBsYXRl5bm25LiU56Gu5L+dY29udHJvbE5hbWXkuI7mjIfku6TkuIrnmoRuenhDb250cm9s5bqU6K+l55u45ZCMXHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduengtY29uZmlndXJhYmxlLXF1ZXJ5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBleHBvcnRBczogJ056eENvbmZpZ3VyYWJsZVF1ZXJ5JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE56eENvbmZpZ3VyYWJsZVF1ZXJ5Q29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XHJcbntcclxuICAvKiog6YWN572u6aG5ICovXHJcbiAgQElucHV0KCkgY29udHJvbHM6IEFycmF5PE56eFF1ZXJ5Q29udHJvbE9wdGlvbnM+ID0gW107XHJcbiAgLyoqIOafpeivouihqOWNleaOkuWIl+aWueW8jyAqL1xyXG4gIEBJbnB1dCgpIG56eEp1c3RpZnk6IE56SnVzdGlmeSA9ICdzdGFydCc7XHJcbiAgLyoqIOafpeivoumhuemXtOmalCAqL1xyXG4gIEBJbnB1dCgpIG56eEd1dHRlcjogbnVtYmVyID0gODtcclxuICAvKiog5LiA6KGM5bGV56S65aSa5bCR5p+l6K+i6aG5ICovXHJcbiAgQElucHV0KCkgbGluZU51bWJlcjogbnVtYmVyID0gMztcclxuICAvKiog5pON5L2c5oyJ6ZKu5omA5Y2g5qCF5qC85pWw77yMMjTliJnmjaLooYwgKi9cclxuICBASW5wdXQoKSBuenhCdG5TcGFuOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAvKiog5Yid5aeL5YyW5pe277yM5Li75Yqo5p+l6K+iICovXHJcbiAgQElucHV0KCkgaW5pdFF1ZXJ5ID0gZmFsc2U7XHJcbiAgLyoqIOe8uuecgSDlm7rlrprlj4LmlbAgKi9cclxuICBASW5wdXQoKSBmaXhlZFBhcmFtcyA9IHt9O1xyXG5cclxuICAvKiog5p+l6K+i5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuICAvKiog6YeN572u5pe25Lya6Kem5Y+R5oqb5Ye65p+l6K+i5Y+C5pWwICovXHJcbiAgQE91dHB1dCgpIHJlc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhRdWVyeVBhcmFtcz4oKTtcclxuXHJcbiAgLyoqIOafpeivoue7hOS7tuWHuuWPgiovXHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zO1xyXG4gIH1cclxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fcXVlcnlQYXJhbXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBuenhDb2xsYXBzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xzLnNvbWUoKGkpID0+IGkuaGFzT3duUHJvcGVydHkoJ2NvbGxhcHNlJykpO1xyXG4gIH1cclxuXHJcbiAgLyoqIGZvcm0g6KGo5Y2VKi9cclxuICBxdWVyeUZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgbG9jYWxlITogTnp4UXVlcnlJMThuSW50ZXJmYWNlO1xyXG4gIGNvbGxhcHNlSWNvbjogc3RyaW5nID0gJ2Rvd24nO1xyXG4gIGNvbGxhcHNlVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX3F1ZXJ5UGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIC8qKiDph43nva7ml7bnlKjmnaXnu5nmn6Xor6LmoYbpu5jorqTlgLwgKi9cclxuICBwcml2YXRlIGRlZmF1bHRWYWx1ZTogTnp4UXVlcnlQYXJhbXMgPSB7fTtcclxuICBwcml2YXRlIGNhY2hlUGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdxdWV5Rm9ybScpIHByaXZhdGUgcXVleUZvcm1FbCE6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PjtcclxuICBAQ29udGVudENoaWxkcmVuKE56eENvbnRyb2xEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcclxuICBjb250cm9sVGVtcGxhdGVMaXN0ITogUXVlcnlMaXN0PE56eENvbnRyb2xEaXJlY3RpdmU+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaTE4bjogTnpJMThuU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMucXVlcnlGb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snY29udHJvbHMnXSAmJiAhY2hhbmdlc1snY29udHJvbHMnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBjaGFuZ2VzWydjb250cm9scyddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbHMpKSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0oY29udHJvbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5pMThuLmdldExvY2FsZURhdGEoJ1F1ZXJ5Jyk7XHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgIC4uLnZhbCxcclxuICAgICAgICAgIC4uLnRoaXMuZml4ZWRQYXJhbXMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWV5Rm9ybUVsKSB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLnF1ZXlGb3JtRWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOajgOafpeaYr+WQpuWQjOaXtuaMieS4i+S6hkN0cmzplK7vvIjlnKhXaW5kb3dzL0xpbnV45LiK77yJ5ZKMU+mUrlxyXG4gICAgICAgICAgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmIGV2ZW50LmtleSA9PT0gJ3InKSB7XHJcbiAgICAgICAgICAgIC8vIOazqOaEj++8mmV2ZW50Lm1ldGFLZXnnlKjkuo7lhbzlrrlNYWPnmoRDb21tYW5k6ZSuXHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIOmYu+atoua1j+iniOWZqOm7mOiupOeahOS/neWtmOihjOS4ulxyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0odGhpcy5jb250cm9scyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdFF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiog6K6+572u5p+l6K+i5YC86L+b6KGM5Zue5pi+ICovXHJcbiAgc2V0UXVlcnlQYXJhbXMoY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlUGFyYW1zID0gY2FjaGVQYXJhbXM7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKGNhY2hlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmNvbnRyb2xOYW1l6K6+572uY29uZmln5YC8XHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUg5re75Yqg55qE6KGo5Y2V5o6n5Lu26buY6K6k5YC85piv5ZCm5Y+v5Lul6YeN572u77yM6buY6K6k5LiN5Y+v5LulXHJcbiAgICovXHJcbiAgc2V0Q29udHJvbChcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBjb25maWc6IFBhcnRpYWw8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4sXHJcbiAgICBkZWZhdWx0VmFsdWVSZXNldHRhYmxlID0gZmFsc2VcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgT2JqZWN0LmtleXMoY29uZmlnKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAoY29udHJvbCBhcyBhbnkpW2tleV0gPSAoY29uZmlnIGFzIGFueSlba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb250cm9sKGNvbnRyb2wsIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUpO1xyXG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Yqo5oCB5re75Yqg5o6n5Lu2XHJcbiAgICogQHBhcmFtIGNvbmZpZyDphY3nva7poblcclxuICAgKiBAcGFyYW0gcG9zaXRpb24g5re75Yqg5L2N572uIOS4jeS8oOS4uuacq+WwvlxyXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVSZXNldHRhYmxlIOa3u+WKoOeahOihqOWNleaOp+S7tum7mOiupOWAvOaYr+WQpuWPr+S7pemHjee9ru+8jOm7mOiupOS4jeWPr+S7pVxyXG4gICAqL1xyXG4gIGFkZENvbnRyb2woXHJcbiAgICBjb25maWc6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMsXHJcbiAgICBwb3NpdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZCxcclxuICAgIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUgPSBmYWxzZVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb25maWcuY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGlmIChjb25maWcgJiYgY29uZmlnWydoYXNPd25Qcm9wZXJ0eSddKCdjb2xsYXBzZScpKSB7XHJcbiAgICAgICAgY29uc3QgaGFzQ29sbGFwc2VQcm9wZXJ0eSA9IHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT5cclxuICAgICAgICAgIGlbJ2hhc093blByb3BlcnR5J10oJ2NvbGxhcHNlJylcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChoYXNDb2xsYXBzZVByb3BlcnR5KSB7XHJcbiAgICAgICAgICBjb25maWcuY29sbGFwc2UgPSB0aGlzLmNvbnRyb2xzLnNvbWUoKGkpID0+IGkuY29sbGFwc2UgPT09IHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvbnRyb2woY29uZmlnLCBkZWZhdWx0VmFsdWVSZXNldHRhYmxlKTtcclxuXHJcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwIHx8IHBvc2l0aW9uID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5wdXNoKGNvbmZpZyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5zcGxpY2UocG9zaXRpb24gLSAxLCAwLCBjb25maWcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlVGV4dCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgYFRoZSBjb250cm9sIG5hbWU6ICcke2NvbmZpZy5jb250cm9sTmFtZX0nIGFscmVhZHkgZXhpc3RzIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja7mjqfku7blkI3liKDpmaTmjqfku7ZcclxuICAgKi9cclxuICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5xdWVyeUZvcm0ucmVtb3ZlQ29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgICAgIHRoaXMuY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoYykgPT4gYy5jb250cm9sTmFtZSAhPT0gY29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBgVGhlIGNvbnRyb2wgbmFtZTogJyR7Y29udHJvbE5hbWV9JyBub3QgZmluZCFgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uY29udHJvbE5hbWXojrflj5Zjb25maWfpoblcclxuICAgKi9cclxuICBnZXRDb250cm9sKFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gICk6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHMuZmluZCgoY29uZmlnKSA9PiBjb25maWcuY29udHJvbE5hbWUgPT09IGNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOajgOe0oue7meWumuaOp+S7tuWQjeensOaIlui3r+W+hOeahOWtkOaOp+S7tuOAglxyXG4gICAqIOi/meS4qiBnZXRGb3JtQ29udHJvbCDnrb7lkI3mlK/mjIHlrZfnrKbkuLLlkowgY29uc3Qg5pWw57uE77yILmdldEZvcm1Db250cm9sKFsnZm9vJywgJ2JhciddIGFzIGNvbnN0Ke+8iVxyXG4gICAqL1xyXG4gIGdldEZvcm1Db250cm9sKFxyXG4gICAgcGF0aDogc3RyaW5nIHwgcmVhZG9ubHkgKHN0cmluZyB8IG51bWJlcilbXVxyXG4gICk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnF1ZXJ5Rm9ybS5nZXQocGF0aCk7XHJcbiAgfVxyXG5cclxuICAvKiog5p+l6K+iICovXHJcbiAgc2VhcmNoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlcnlGb3JtLmludmFsaWQpIHtcclxuICAgICAgdXBkYXRlQ29udHJvbFN0YXR1cyh0aGlzLnF1ZXJ5Rm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdCh0aGlzLl9xdWVyeVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICAvKiog6YeN572uICovXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLnJlc2V0Q2hhbmdlLmVtaXQodGhpcy5fcXVlcnlQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoq5bGV5byA44CB5pS26LW3Ki9cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNvbnRyb2xzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbnRyb2xzW2luZGV4XTtcclxuICAgICAgY29uc3QgaGFzUHJvcGVydHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoJ2NvbGxhcHNlJyk7XHJcbiAgICAgIGlmIChoYXNQcm9wZXJ0eSAmJiBjb25maWcuY29sbGFwc2UpIHtcclxuICAgICAgICBjb25maWcuY29sbGFwc2UgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIGlmIChoYXNQcm9wZXJ0eSAmJiAhY29uZmlnLmNvbGxhcHNlKSB7XHJcbiAgICAgICAgY29uZmlnLmNvbGxhcHNlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVUZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT4gaS5jb2xsYXBzZSA9PT0gdHJ1ZSkpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUljb24gPSAnZG93bic7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VUZXh0ID0gdGhpcy5sb2NhbGUuZXhwYW5kO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZUljb24gPSAndXAnO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlVGV4dCA9IHRoaXMubG9jYWxlLmNvbGxhcHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIC8qKiDmuIXnqbrooajljZXmjqfku7YgKi9cclxuICBwcml2YXRlIGNsZWFyRm9ybUNvbnRyb2woKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnF1ZXJ5Rm9ybS5jb250cm9scykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIOeUn+aIkCBxdWVyeUZvcm0g6KGo5Y2VICovXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUZvcm0oY29udHJvbENvbmZpZ3M6IEFycmF5PE56eFF1ZXJ5Q29udHJvbE9wdGlvbnM+KTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb250cm9sQ29uZmlncykge1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29udHJvbChjb25maWcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLnF1ZXJ5Rm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmNhY2hlUGFyYW1zKSB7XHJcbiAgICAgIC8vIOe8k+WtmOWbnuaYvuafpeivouadoeS7tlxyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKHRoaXMuY2FjaGVQYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2FsY3VsYXRlVGV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udHJvbENvbmZpZyBjb250cm9s6YWN572uXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUg5re75Yqg55qE6KGo5Y2V5o6n5Lu26buY6K6k5YC85piv5ZCm5Y+v5Lul6YeN572u77yM6buY6K6k5LiN5Y+v5LulXHJcbiAgICpcclxuICAgKiAxLiDnlJ/miJDljZXkuKrooajljZXmjqfku7blubblsIblhbbmt7vliqDliLBxdWVyeUZvcm3kuK1cclxuICAgKiAyLiDlpoLmnpzmsqHmnIl0ZW1wbGF0ZVJlZuagueaNrmNvbnRyb2xOYW1l6I635Y+W5oqV5b2x55qEdGVtcGxhdGVMaXN05Lit55qEdGVtcGxhdGVSZWbnu5kgdGVtcGxhdGVSZWYg6LWL5YC8XHJcbiAgICpcclxuICAgKiovXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNvbnRyb2woXHJcbiAgICBjb25maWc6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMsXHJcbiAgICBkZWZhdWx0VmFsdWVSZXNldHRhYmxlID0gZmFsc2VcclxuICApIHtcclxuICAgIGlmIChjb25maWcuY29udHJvbE5hbWUpIHtcclxuICAgICAgaWYgKCFjb25maWc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgICAgY29uc3QgZCA9IHRoaXMuY29udHJvbFRlbXBsYXRlTGlzdC5maW5kKFxyXG4gICAgICAgICAgKGQpID0+IGQubnp4Q29udHJvbCA9PT0gY29uZmlnLmNvbnRyb2xOYW1lXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoZCkge1xyXG4gICAgICAgICAgY29uZmlnLnRlbXBsYXRlUmVmID0gZC50ZW1wbGF0ZVJlZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnNldENvbnRyb2woXHJcbiAgICAgICAgY29uZmlnLmNvbnRyb2xOYW1lLFxyXG4gICAgICAgIGNvbmZpZy5jb250cm9sSW5zdGFuY2UgPz8gdGhpcy5mYi5jb250cm9sKGNvbmZpZy5kZWZhdWx0ID8/IG51bGwpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoIWRlZmF1bHRWYWx1ZVJlc2V0dGFibGUpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5xdWVyeUZvcm0uZ2V0KGNvbmZpZy5jb250cm9sTmFtZSk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB7XHJcbiAgICAgICAgICAuLi50aGlzLmRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIFtjb25maWcuY29udHJvbE5hbWVdOiBjb250cm9sLnZhbHVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGZvcm0gI3F1ZXlGb3JtIGNsYXNzPVwibnp4LXF1ZXJ5LWNvbnRhaW5lclwiIG56LWZvcm0gW2Zvcm1Hcm91cF09XCJxdWVyeUZvcm1cIj5cbiAgPGRpdiBuei1yb3cgW256R3V0dGVyXT1cIm56eEd1dHRlclwiIFtuekp1c3RpZnldPVwibnp4SnVzdGlmeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbmZpZyBvZiBjb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiFjb25maWcuaGlkZGVuXCJcbiAgICAgICAgbnotY29sXG4gICAgICAgIFtuelNwYW5dPVwiY29uZmlnLm56eFNwYW4gfHwgMjQgLyBsaW5lTnVtYmVyXCJcbiAgICAgICAgW2hpZGRlbl09XCJjb25maWcuY29sbGFwc2VcIlxuICAgICAgICBbbnpPcmRlcl09XCJpXCJcbiAgICAgID5cbiAgICAgICAgPG56eC1jb25maWd1cmFibGUtcXVlcnktaXRlbVxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICBbZm9ybV09XCJxdWVyeUZvcm1cIlxuICAgICAgICAgIFtjb250cm9sXT1cImNvbmZpZ1wiXG4gICAgICAgID48L256eC1jb25maWd1cmFibGUtcXVlcnktaXRlbT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdlxuICAgICAgW256T3JkZXJdPVwiY29udHJvbHMubGVuZ3RoXCJcbiAgICAgIGNsYXNzPVwibnp4LXF1ZXJ5LWJ0blwiXG4gICAgICBuei1jb2xcbiAgICAgIFtuelNwYW5dPVwibnp4QnRuU3BhbiB8fCAyNCAvIGxpbmVOdW1iZXJcIlxuICAgID5cbiAgICAgIDxkaXYgbnotcm93IG56SnVzdGlmeT1cImVuZFwiIG56QWxpZ249XCJtaWRkbGVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG56LWJ1dHRvblxuICAgICAgICAgIG56VHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHRpdGxlPVwiRW50ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJzZWFyY2goKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsb2NhbGVbJ3F1ZXJ5J10gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbnotYnV0dG9uIHR5cGU9XCJidXR0b25cIiB0aXRsZT1cImN0cmwrclwiIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAge3sgbG9jYWxlWydyZXNldCddIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJuenhDb2xsYXBzZVwiXG4gICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgbnpUeXBlPVwibGlua1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sbGFwc2VUZXh0IH19XG4gICAgICAgICAgPGkgbnotaWNvbiBbbnpUeXBlXT1cImNvbGxhcHNlSWNvblwiPjwvaT5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOenhPcHRpb25zIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdHlwZXMnO1xuaW1wb3J0IHsgTnp4QWJzdHJhY3RDb250cm9sIH0gZnJvbSAnLi9jb250cm9scy9hYnN0cmFjdC5jb250cm9sJztcblxuLyoqXG4gKiDmn6Xor6Llj4LmlbBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOenhRdWVyeVBhcmFtcyB7XG5cdFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxudHlwZSBDb250cm9sVHlwZSA9XG5cdHwgJ2lucHV0J1xuXHR8ICdzZWxlY3QnXG5cdHwgJ2RhdGVQaWNrZXInXG5cdHwgJ3JhbmdlUGlja2VyJ1xuXHR8ICdUZW1wbGF0ZSdcblx0fCBzdHJpbmc7XG5cbi8qKlxuICog6YWN572u6aG5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnp4UXVlcnlDb250cm9sT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiDmjqfku7blkI3lr7nlupTmn6Xor6Llj4LmlbDnmoRrZXlcblx0ICovXG5cdGNvbnRyb2xOYW1lPzogc3RyaW5nO1xuXHQvKipcblx0ICog5o6n5Lu257G75Z6LXG5cdCAqL1xuXHRjb250cm9sVHlwZT86IENvbnRyb2xUeXBlO1xuXG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZsYWJlbFxuXHQgKi9cblx0bGFiZWw/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZwbGFjZWhvbGRlclxuXHQgKi9cblx0cGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7bkuIvmi4npm4blkIhcblx0ICovXG5cdG1lbnVMaXN0PzogQXJyYXk8Tnp4T3B0aW9uczxhbnk+Pjtcblx0LyoqXG5cdCAqIOaOp+S7tuS4unNlbGVjdOaXtuWFgeiuuOWNleeLrOa4heepulxuXHQgKi9cblx0bnp4QWxsb3dDbGVhcj86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7blhYHorrjliY3nq6/mkJzntKJcblx0ICovXG5cdG56eFNob3dTZWFyY2g/OiBib29sZWFuO1xuXHQvKipcblx0ICog5p+l6K+i6aG55omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5o6n5Lu26buY6K6k5YC877yM5rOo5oSP6buY6K6k5YC86YeN572u5pe25LiN5Lya5riF56m6XG5cdCAqL1xuXHRkZWZhdWx0PzogYW55O1xuXHQvKipcblx0ICog5p+l6K+i6aG5bGFiZWzmiYDljaDmoIXmoLzmlbBcblx0ICovXG5cdG56eExTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5p+l6K+i6aG55o6n5Lu25omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhSU3Bhbj86IG51bWJlcjtcblx0LyoqXG5cdCAqIOagoemqjOmUmeivr+aPkOekulxuXHQgKi9cblx0ZXJyb3JUaXA/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOenhPcHRpb25zIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdHlwZXMnO1xuaW1wb3J0IHsgTnp4QWJzdHJhY3RDb250cm9sIH0gZnJvbSAnLi9jb250cm9scy9hYnN0cmFjdC5jb250cm9sJztcblxuLyoqXG4gKiDmn6Xor6Llj4LmlbBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOenhRdWVyeVBhcmFtcyB7XG5cdFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxudHlwZSBDb250cm9sVHlwZSA9XG5cdHwgJ2lucHV0J1xuXHR8ICdzZWxlY3QnXG5cdHwgJ2RhdGVQaWNrZXInXG5cdHwgJ3JhbmdlUGlja2VyJ1xuXHR8ICdUZW1wbGF0ZSdcblx0fCBzdHJpbmc7XG5cbi8qKlxuICog6YWN572u6aG5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnp4UXVlcnlDb250cm9sT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiDmjqfku7blkI3lr7nlupTmn6Xor6Llj4LmlbDnmoRrZXlcblx0ICovXG5cdGNvbnRyb2xOYW1lPzogc3RyaW5nO1xuXHQvKipcblx0ICog5o6n5Lu257G75Z6LXG5cdCAqL1xuXHRjb250cm9sVHlwZT86IENvbnRyb2xUeXBlO1xuXG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZsYWJlbFxuXHQgKi9cblx0bGFiZWw/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmn6Xor6LmoYZwbGFjZWhvbGRlclxuXHQgKi9cblx0cGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7bkuIvmi4npm4blkIhcblx0ICovXG5cdG1lbnVMaXN0PzogQXJyYXk8Tnp4T3B0aW9uczxhbnk+Pjtcblx0LyoqXG5cdCAqIOaOp+S7tuS4unNlbGVjdOaXtuWFgeiuuOWNleeLrOa4heepulxuXHQgKi9cblx0bnp4QWxsb3dDbGVhcj86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiDmjqfku7bkuLpzZWxlY3Tml7blhYHorrjliY3nq6/mkJzntKJcblx0ICovXG5cdG56eFNob3dTZWFyY2g/OiBib29sZWFuO1xuXHQvKipcblx0ICog5p+l6K+i6aG55omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5o6n5Lu26buY6K6k5YC877yM5rOo5oSP6buY6K6k5YC86YeN572u5pe25LiN5Lya5riF56m6XG5cdCAqL1xuXHRkZWZhdWx0PzogYW55O1xuXHQvKipcblx0ICog5p+l6K+i6aG5bGFiZWzmiYDljaDmoIXmoLzmlbBcblx0ICovXG5cdG56eExTcGFuPzogbnVtYmVyO1xuXHQvKipcblx0ICog5p+l6K+i6aG55o6n5Lu25omA5Y2g5qCF5qC85pWwXG5cdCAqL1xuXHRuenhSU3Bhbj86IG51bWJlcjtcblx0LyoqXG5cdCAqIOagoemqjOmUmeivr+aPkOekulxuXHQgKi9cblx0ZXJyb3JUaXA/OiBzdHJpbmc7XG5cdC8qKlxuXHQgKiDmipjlj6Bcblx0ICovXG5cdGNvbGxhcHNlPzogYm9vbGVhbjtcblx0LyoqXG5cdCAqIOmakOiXj+aOp+S7tijkuLvopoHnlKjmnaXmkLrluKbmn6Xor6Llj4LmlbDkvYbnlYzpnaLkuI3lj6/op4EpXG5cdCAqL1xuXHRoaWRkZW4/OiBib29sZWFuO1xuXHQvKipcblx0ICog5o6n5Lu25a6e5L6L77yM5Y+v6YCJXG5cdCAqL1xuXHRjb250cm9sSW5zdGFuY2U/OiBBYnN0cmFjdENvbnRyb2w7XG5cdC8qKlxuXHQgKiDoh6rlrprkuYnmqKHmnb9cblx0ICovXG5cdHRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cblx0W2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29udHJvbFR5cGUge1xuXHRrZXk6IHN0cmluZztcblx0Y29tcG9uZW50OiB0eXBlb2YgTnp4QWJzdHJhY3RDb250cm9sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56eFF1ZXJ5Q29uZmlnIHtcblx0Y29udHJvbFR5cGVzOiBOenhRdWVyeUNvbnRyb2xUeXBlW107XG59XG4iXX0=
|
|
@@ -385,6 +385,7 @@ class NzxConfigurableQueryComponent {
|
|
|
385
385
|
this.collapseIcon = 'down';
|
|
386
386
|
this.collapseText = '';
|
|
387
387
|
this._queryParams = {};
|
|
388
|
+
/** 重置时用来给查询框默认值 */
|
|
388
389
|
this.defaultValue = {};
|
|
389
390
|
this.cacheParams = {};
|
|
390
391
|
this.destroy$ = new Subject();
|
|
@@ -445,29 +446,34 @@ class NzxConfigurableQueryComponent {
|
|
|
445
446
|
}
|
|
446
447
|
/**
|
|
447
448
|
* 根据controlName设置config值
|
|
449
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
448
450
|
*/
|
|
449
|
-
setControl(controlName, config) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}, 0);
|
|
451
|
+
setControl(controlName, config, defaultValueResettable = false) {
|
|
452
|
+
const control = this.getControl(controlName);
|
|
453
|
+
if (control) {
|
|
454
|
+
Object.keys(config).forEach((key) => {
|
|
455
|
+
control[key] = config[key];
|
|
456
|
+
});
|
|
457
|
+
this.generateControl(control, defaultValueResettable);
|
|
458
|
+
this.cd.markForCheck();
|
|
459
|
+
}
|
|
459
460
|
}
|
|
460
461
|
/**
|
|
461
462
|
* 动态添加控件
|
|
462
463
|
* @param config 配置项
|
|
463
464
|
* @param position 添加位置 不传为末尾
|
|
465
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
464
466
|
*/
|
|
465
|
-
addControl(config, position) {
|
|
467
|
+
addControl(config, position, defaultValueResettable = false) {
|
|
466
468
|
const control = this.getControl(config.controlName);
|
|
467
469
|
if (!control) {
|
|
468
|
-
if (config
|
|
469
|
-
|
|
470
|
+
if (config && config['hasOwnProperty']('collapse')) {
|
|
471
|
+
const hasCollapseProperty = this.controls.some((i) => i['hasOwnProperty']('collapse'));
|
|
472
|
+
if (hasCollapseProperty) {
|
|
473
|
+
config.collapse = this.controls.some((i) => i.collapse === true);
|
|
474
|
+
}
|
|
470
475
|
}
|
|
476
|
+
this.generateControl(config, defaultValueResettable);
|
|
471
477
|
if (position === void 0 || position === null) {
|
|
472
478
|
this.controls.push(config);
|
|
473
479
|
}
|
|
@@ -517,10 +523,6 @@ class NzxConfigurableQueryComponent {
|
|
|
517
523
|
}
|
|
518
524
|
/** 重置 */
|
|
519
525
|
reset() {
|
|
520
|
-
// if (this.queryForm.invalid) {
|
|
521
|
-
// updateControlStatus(this.queryForm);
|
|
522
|
-
// return;
|
|
523
|
-
// }
|
|
524
526
|
this.queryForm.reset(this.defaultValue);
|
|
525
527
|
this.resetChange.emit(this._queryParams);
|
|
526
528
|
}
|
|
@@ -528,11 +530,11 @@ class NzxConfigurableQueryComponent {
|
|
|
528
530
|
toggleCollapse() {
|
|
529
531
|
for (let index = 0; index < this.controls.length; index++) {
|
|
530
532
|
const config = this.controls[index];
|
|
531
|
-
|
|
533
|
+
const hasProperty = config.hasOwnProperty('collapse');
|
|
534
|
+
if (hasProperty && config.collapse) {
|
|
532
535
|
config.collapse = false;
|
|
533
536
|
}
|
|
534
|
-
else if (config.
|
|
535
|
-
config.collapse === false) {
|
|
537
|
+
else if (hasProperty && !config.collapse) {
|
|
536
538
|
config.collapse = true;
|
|
537
539
|
}
|
|
538
540
|
}
|
|
@@ -559,19 +561,11 @@ class NzxConfigurableQueryComponent {
|
|
|
559
561
|
this.queryForm.removeControl(key);
|
|
560
562
|
});
|
|
561
563
|
}
|
|
562
|
-
/**
|
|
564
|
+
/** 生成 queryForm 表单 */
|
|
563
565
|
generateForm(controlConfigs) {
|
|
564
566
|
this.clearFormControl();
|
|
565
567
|
for (const config of controlConfigs) {
|
|
566
|
-
|
|
567
|
-
const item = this.controlTemplateList.find((directive) => directive.nzxControl === config.controlName);
|
|
568
|
-
if (item) {
|
|
569
|
-
config.templateRef = item.templateRef;
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
if (config.controlName) {
|
|
573
|
-
this.queryForm.addControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
574
|
-
}
|
|
568
|
+
this.generateControl(config);
|
|
575
569
|
}
|
|
576
570
|
this.defaultValue = this.queryForm.getRawValue();
|
|
577
571
|
if (this.cacheParams) {
|
|
@@ -580,12 +574,39 @@ class NzxConfigurableQueryComponent {
|
|
|
580
574
|
}
|
|
581
575
|
this.calculateText();
|
|
582
576
|
}
|
|
577
|
+
/**
|
|
578
|
+
*
|
|
579
|
+
* @param controlConfig control配置
|
|
580
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
581
|
+
*
|
|
582
|
+
* 1. 生成单个表单控件并将其添加到queryForm中
|
|
583
|
+
* 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值
|
|
584
|
+
*
|
|
585
|
+
**/
|
|
586
|
+
generateControl(config, defaultValueResettable = false) {
|
|
587
|
+
if (config.controlName) {
|
|
588
|
+
if (!config?.templateRef) {
|
|
589
|
+
const d = this.controlTemplateList.find((d) => d.nzxControl === config.controlName);
|
|
590
|
+
if (d) {
|
|
591
|
+
config.templateRef = d.templateRef;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
this.queryForm.setControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
595
|
+
if (!defaultValueResettable) {
|
|
596
|
+
const control = this.queryForm.get(config.controlName);
|
|
597
|
+
this.defaultValue = {
|
|
598
|
+
...this.defaultValue,
|
|
599
|
+
[config.controlName]: control.value,
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
583
604
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NzxConfigurableQueryComponent, deps: [{ token: i1$1.NzI18nService }, { token: i2.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
584
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], viewQueries: [{ propertyName: "queyFormEl", first: true, predicate: ["queyForm"], descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [
|
|
605
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NzxConfigurableQueryComponent, selector: "nzx-configurable-query", inputs: { controls: "controls", nzxJustify: "nzxJustify", nzxGutter: "nzxGutter", lineNumber: "lineNumber", nzxBtnSpan: "nzxBtnSpan", initQuery: "initQuery", fixedParams: "fixedParams" }, outputs: { queryChange: "queryChange", resetChange: "resetChange" }, queries: [{ propertyName: "controlTemplateList", predicate: NzxControlDirective, descendants: true }], viewQueries: [{ propertyName: "queyFormEl", first: true, predicate: ["queyForm"], descendants: true }], exportAs: ["NzxConfigurableQuery"], usesOnChanges: true, ngImport: i0, template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n [nzOrder]=\"controls.length\"\n class=\"nzx-query-btn\"\n nz-col\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i4.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "directive", type: i9.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: ["form", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
585
606
|
}
|
|
586
607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NzxConfigurableQueryComponent, decorators: [{
|
|
587
608
|
type: Component,
|
|
588
|
-
args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [
|
|
609
|
+
args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n [nzOrder]=\"controls.length\"\n class=\"nzx-query-btn\"\n nz-col\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n", styles: [".nzx-query-container{padding:12px;background-color:#fff;border-radius:8px}.nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}.nzx-query-container .nzx-query-btn button{margin:0 4px}\n"] }]
|
|
589
610
|
}], ctorParameters: () => [{ type: i1$1.NzI18nService }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { controls: [{
|
|
590
611
|
type: Input
|
|
591
612
|
}], nzxJustify: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-zorro-antd-extension-configurable-query.mjs","sources":["../../../components/configurable-query/control.directive.ts","../../../components/configurable-query/controls/abstract.control.ts","../../../components/configurable-query/controls/date-picker.control.ts","../../../components/configurable-query/controls/input.control.ts","../../../components/configurable-query/controls/range-picker.control.ts","../../../components/configurable-query/controls/select.control.ts","../../../components/configurable-query/controls/template.control.ts","../../../components/configurable-query/query-config.service.ts","../../../components/configurable-query/configurable-query-item/configurable-query-item.component.ts","../../../components/configurable-query/configurable-query.component.ts","../../../components/configurable-query/configurable-query.component.html","../../../components/configurable-query/configurable-query.module.ts","../../../components/configurable-query/ng-zorro-antd-extension-configurable-query.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[nzxControl]',\r\n})\r\nexport class NzxControlDirective {\r\n @Input() nzxControl!: string;\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { Directive, Input } from '@angular/core';\nimport { NzxQueryControlOptions } from '../type';\nimport { FormGroup } from '@angular/forms';\n\n/**\n * 用来动态添加control type类型控件,类型控件需要继承此控件\n */\n@Directive()\nexport abstract class NzxAbstractControl {\n @Input() form!: FormGroup<any>;\n @Input() control!: NzxQueryControlOptions;\n}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-date-picker\n [ngStyle]=\"{ width: '100%' }\"\n [formControlName]=\"control.controlName!\"\n [nzPlaceHolder]=\"control.placeholder!\"\n >\n </nz-date-picker>\n </ng-container>\n `,\n})\nexport class NzxDatePickerControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <input\n nz-input\n type=\"text\"\n [placeholder]=\"control.placeholder\"\n [formControlName]=\"control.controlName!\"\n />\n </ng-container>\n `,\n})\nexport class NzxInputControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-range-picker\n [ngStyle]=\"{ width: '100%' }\"\n [formControlName]=\"control.controlName!\"\n >\n </nz-range-picker>\n </ng-container>\n `,\n})\nexport class NzxRangePickerControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-select\n [formControlName]=\"control.controlName!\"\n [nzShowSearch]=\"control.nzxShowSearch ?? true\"\n [nzAllowClear]=\"control.nzxAllowClear ?? true\"\n [nzPlaceHolder]=\"control.placeholder!\"\n >\n <nz-option\n *ngFor=\"let item of control.menuList\"\n [nzValue]=\"item.value\"\n [nzLabel]=\"item.label\"\n >\n </nz-option>\n </nz-select>\n </ng-container>\n `,\n})\nexport class NzxSelectControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container\n *ngTemplateOutlet=\"\n control.templateRef!;\n context: { $implicit: form.get(control.controlName!), formGroup: form }\n \"\n >\n </ng-container>\n `,\n})\nexport class NzxTemplateControlComponent extends NzxAbstractControl {}\n","import { Inject, InjectionToken, Optional } from '@angular/core';\nimport { NzxQueryConfig, NzxQueryControlType } from './type';\n\nexport const QUERY_CONFIG = new InjectionToken<NzxQueryControlType[]>(\n 'QUERY_CONFIG'\n);\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { NzxDatePickerControlComponent } from './controls/date-picker.control';\nimport { NzxInputControlComponent } from './controls/input.control';\nimport { NzxRangePickerControlComponent } from './controls/range-picker.control';\nimport { NzxSelectControlComponent } from './controls/select.control';\nimport { NzxTemplateControlComponent } from './controls/template.control';\n\n/**\n * 用来动态添加control type类型控件\n */\n@Injectable({ providedIn: 'root' })\nexport class NzxQueryConfigService {\n private controlTypePoll: NzxQueryControlType[] = [\n { key: 'input', component: NzxInputControlComponent },\n { key: 'select', component: NzxSelectControlComponent },\n { key: 'Template', component: NzxTemplateControlComponent },\n { key: 'datePicker', component: NzxDatePickerControlComponent },\n { key: 'rangePicker', component: NzxRangePickerControlComponent },\n ];\n\n controlTypes$ = new BehaviorSubject<NzxQueryControlType[]>(\n this.controlTypePoll\n );\n\n constructor(\n @Optional()\n @Inject(QUERY_CONFIG)\n nzxQueryConfig: NzxQueryConfig\n ) {\n if (nzxQueryConfig) {\n if (\n nzxQueryConfig.controlTypes &&\n nzxQueryConfig.controlTypes.length > 0\n ) {\n nzxQueryConfig.controlTypes.forEach((i) => {\n this.addControlType(i);\n });\n this.refreshControlType();\n }\n }\n }\n\n addControlType(controlType: NzxQueryControlType) {\n const find = this.controlTypePoll.some((i) => i.key === controlType.key);\n if (find) {\n throw `ControlType:: ${controlType.key} already exists !`;\n }\n this.controlTypePoll.push(controlType);\n }\n\n removeControlType(key: string) {\n const find = this.controlTypePoll.some((i) => i.key === key);\n if (find) {\n this.controlTypePoll = this.controlTypePoll.filter((i) => i.key !== key);\n } else {\n throw `ControlType:: ${key} not exists !`;\n }\n }\n\n refreshControlType() {\n this.controlTypes$.next(this.controlTypePoll);\n }\n}\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { Subject, takeUntil } from 'rxjs';\nimport { NzxQueryConfigService } from '../query-config.service';\nimport { NzxQueryControlOptions, NzxQueryControlType } from '../type';\n\n@Component({\n selector: 'nzx-configurable-query-item',\n template: `\n <nz-form-item>\n <nz-form-label *ngIf=\"control.label\" [nzSpan]=\"control.nzxLSpan || 6\">\n {{ control.label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"control.nzxRSpan || 18\"\n [nzValidateStatus]=\"\n control?.controlInstance ?? $any(form.get(control.controlName!))\n \"\n [nzErrorTip]=\"control.errorTip\"\n >\n <ng-template #controlTemp></ng-template>\n </nz-form-control>\n </nz-form-item>\n `,\n})\nexport class NzxConfigurableQueryItemComponent implements OnInit, OnDestroy {\n @Input() form!: FormGroup;\n @Input() control!: NzxQueryControlOptions;\n\n @ViewChild('controlTemp', { static: true, read: ViewContainerRef })\n private controlTemplateView!: ViewContainerRef;\n\n private destroy$ = new Subject<void>();\n\n constructor(private nzxQueryConfigService: NzxQueryConfigService) {}\n\n ngOnInit(): void {\n this.nzxQueryConfigService.controlTypes$\n .pipe(takeUntil(this.destroy$))\n .subscribe((list) => {\n this.renderControl(list);\n });\n }\n\n ngOnDestroy(): void {\n if (this.destroy$) {\n this.destroy$.next();\n this.destroy$.complete();\n }\n }\n\n private renderControl(list: NzxQueryControlType[]) {\n this.controlTemplateView.clear();\n const config = list.find((i) => i.key === this.control.controlType);\n if (config) {\n const componentRef = this.controlTemplateView.createComponent(\n config.component as any\n );\n componentRef.setInput('control', this.control);\n componentRef.setInput('form', this.form);\n } else {\n throw `ControlType:: '${this.control.controlType}' is invalidate`;\n }\n }\n}\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { NzxQueryI18nInterface } from 'ng-zorro-antd-extension/i18n';\r\nimport { updateControlStatus } from 'ng-zorro-antd-extension/util';\r\nimport { NzJustify } from 'ng-zorro-antd/grid';\r\nimport { NzI18nService } from 'ng-zorro-antd/i18n';\r\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\r\nimport { NzxControlDirective } from './control.directive';\r\nimport { NzxQueryControlOptions, NzxQueryParams } from './type';\r\n\r\n/**\r\n * 查询组件\r\n * 支持模板自定义,在使用模板自定义时,要注意controlType应该设置为Template并且确保controlName与指令上的nzxControl应该相同\r\n */\r\n\r\n@Component({\r\n selector: 'nzx-configurable-query',\r\n templateUrl: './configurable-query.component.html',\r\n styleUrls: ['./configurable-query.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'NzxConfigurableQuery',\r\n})\r\nexport class NzxConfigurableQueryComponent\r\n implements OnChanges, OnInit, AfterViewInit, AfterContentInit, OnDestroy\r\n{\r\n /** 配置项 */\r\n @Input() controls: Array<NzxQueryControlOptions> = [];\r\n /** 查询表单排列方式 */\r\n @Input() nzxJustify: NzJustify = 'start';\r\n /** 查询项间隔 */\r\n @Input() nzxGutter: number = 8;\r\n /** 一行展示多少查询项 */\r\n @Input() lineNumber: number = 3;\r\n /** 操作按钮所占栅格数,24则换行 */\r\n @Input() nzxBtnSpan: number | null = null;\r\n /** 初始化时,主动查询 */\r\n @Input() initQuery = false;\r\n /** 缺省 固定参数 */\r\n @Input() fixedParams = {};\r\n\r\n /** 查询时会触发抛出查询参数 */\r\n @Output() queryChange = new EventEmitter<NzxQueryParams>();\r\n /** 重置时会触发抛出查询参数 */\r\n @Output() resetChange = new EventEmitter<NzxQueryParams>();\r\n\r\n /** 查询组件出参*/\r\n get queryParams() {\r\n return this._queryParams;\r\n }\r\n set queryParams(value: any) {\r\n this._queryParams = value;\r\n }\r\n\r\n get nzxCollapse() {\r\n return this.controls.some((i) => i.hasOwnProperty('collapse'));\r\n }\r\n\r\n /** form 表单*/\r\n queryForm!: FormGroup;\r\n locale!: NzxQueryI18nInterface;\r\n collapseIcon: string = 'down';\r\n collapseText: string = '';\r\n\r\n private _queryParams: NzxQueryParams = {};\r\n private defaultValue: NzxQueryParams = {};\r\n private cacheParams: NzxQueryParams = {};\r\n private destroy$ = new Subject<void>();\r\n\r\n @ViewChild('queyForm') private queyFormEl!: ElementRef<HTMLFormElement>;\r\n @ContentChildren(NzxControlDirective, { descendants: true })\r\n controlTemplateList!: QueryList<NzxControlDirective>;\r\n\r\n constructor(\r\n private i18n: NzI18nService,\r\n private fb: FormBuilder,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.queryForm = this.fb.group({});\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['controls'] && !changes['controls'].isFirstChange()) {\r\n const controls = changes['controls'].currentValue;\r\n if (Array.isArray(controls)) {\r\n this.generateForm(controls);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.locale = this.i18n.getLocaleData('Query');\r\n\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.queryForm.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((val) => {\r\n this._queryParams = {\r\n ...val,\r\n ...this.fixedParams,\r\n };\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.queyFormEl) {\r\n fromEvent<KeyboardEvent>(this.queyFormEl.nativeElement, 'keydown')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((event) => {\r\n if (event.key === 'Enter') {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.search();\r\n }\r\n // 检查是否同时按下了Ctrl键(在Windows/Linux上)和S键\r\n if ((event.ctrlKey || event.metaKey) && event.key === 'r') {\r\n // 注意:event.metaKey用于兼容Mac的Command键\r\n event.preventDefault(); // 阻止浏览器默认的保存行为\r\n event.stopPropagation();\r\n this.reset();\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.generateForm(this.controls);\r\n\r\n if (this.initQuery) {\r\n this.search();\r\n }\r\n }\r\n\r\n /** 设置查询值进行回显 */\r\n setQueryParams(cacheParams: NzxQueryParams): void {\r\n this.cacheParams = cacheParams;\r\n this.queryForm.patchValue(cacheParams);\r\n }\r\n\r\n /**\r\n * 根据controlName设置config值\r\n */\r\n setControl(\r\n controlName: string,\r\n config: Partial<NzxQueryControlOptions>\r\n ): void {\r\n setTimeout(() => {\r\n const control = this.getControl(controlName);\r\n if (control) {\r\n Object.keys(config).forEach((key) => {\r\n (control as any)[key] = (config as any)[key];\r\n });\r\n this.cd.markForCheck();\r\n }\r\n }, 0);\r\n }\r\n\r\n /**\r\n * 动态添加控件\r\n * @param config 配置项\r\n * @param position 添加位置 不传为末尾\r\n */\r\n addControl(\r\n config: NzxQueryControlOptions,\r\n position?: number | undefined\r\n ): void {\r\n const control = this.getControl(config.controlName);\r\n if (!control) {\r\n if (config.controlName) {\r\n this.queryForm.addControl(\r\n config.controlName,\r\n config.controlInstance ?? this.fb.control(config.default ?? null)\r\n );\r\n }\r\n if (position === void 0 || position === null) {\r\n this.controls.push(config);\r\n } else {\r\n this.controls.splice(position - 1, 0, config);\r\n }\r\n this.calculateText();\r\n } else {\r\n throw `The control name: '${config.controlName}' already exists!`;\r\n }\r\n }\r\n\r\n /**\r\n * 根据控件名删除控件\r\n */\r\n removeControl(controlName: string): void {\r\n const control = this.getControl(controlName);\r\n if (control) {\r\n this.queryForm.removeControl(controlName);\r\n this.controls = this.controls.filter(\r\n (c) => c.controlName !== controlName\r\n );\r\n\r\n this.calculateText();\r\n } else {\r\n throw `The control name: '${controlName}' not find!`;\r\n }\r\n }\r\n\r\n /**\r\n * 根据controlName获取config项\r\n */\r\n getControl(\r\n controlName: string | undefined\r\n ): NzxQueryControlOptions | undefined {\r\n return this.controls.find((config) => config.controlName === controlName);\r\n }\r\n\r\n /**\r\n * 检索给定控件名称或路径的子控件。\r\n * 这个 getFormControl 签名支持字符串和 const 数组(.getFormControl(['foo', 'bar'] as const))\r\n */\r\n getFormControl(\r\n path: string | readonly (string | number)[]\r\n ): AbstractControl<any, any> | null {\r\n return this.queryForm.get(path);\r\n }\r\n\r\n /** 查询 */\r\n search(): void {\r\n if (this.queryForm.invalid) {\r\n updateControlStatus(this.queryForm);\r\n return;\r\n }\r\n this.queryChange.emit(this._queryParams);\r\n }\r\n\r\n /** 重置 */\r\n reset(): void {\r\n // if (this.queryForm.invalid) {\r\n // updateControlStatus(this.queryForm);\r\n // return;\r\n // }\r\n this.queryForm.reset(this.defaultValue);\r\n this.resetChange.emit(this._queryParams);\r\n }\r\n\r\n /**展开、收起*/\r\n toggleCollapse(): void {\r\n for (let index = 0; index < this.controls.length; index++) {\r\n const config = this.controls[index];\r\n if (config.hasOwnProperty('collapse') && config.collapse === true) {\r\n (config.collapse as boolean) = false;\r\n } else if (\r\n config.hasOwnProperty('collapse') &&\r\n (config.collapse as boolean) === false\r\n ) {\r\n config.collapse = true;\r\n }\r\n }\r\n this.calculateText();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private calculateText() {\r\n if (this.controls.some((i) => i.collapse === true)) {\r\n this.collapseIcon = 'down';\r\n this.collapseText = this.locale.expand;\r\n } else {\r\n this.collapseIcon = 'up';\r\n this.collapseText = this.locale.collapse;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n /** 清空表单控件 */\r\n private clearFormControl(): void {\r\n Object.keys(this.queryForm.controls).forEach((key) => {\r\n this.queryForm.removeControl(key);\r\n });\r\n }\r\n\r\n /** 生成表单 */\r\n private generateForm(controlConfigs: Array<NzxQueryControlOptions>): void {\r\n this.clearFormControl();\r\n\r\n for (const config of controlConfigs) {\r\n if (config.controlType === 'Template') {\r\n const item = this.controlTemplateList.find(\r\n (directive) => directive.nzxControl === config.controlName\r\n );\r\n if (item) {\r\n config.templateRef = item.templateRef;\r\n }\r\n }\r\n if (config.controlName) {\r\n this.queryForm.addControl(\r\n config.controlName,\r\n config.controlInstance ?? this.fb.control(config.default ?? null)\r\n );\r\n }\r\n }\r\n this.defaultValue = this.queryForm.getRawValue();\r\n if (this.cacheParams) {\r\n // 缓存回显查询条件\r\n this.queryForm.patchValue(this.cacheParams);\r\n }\r\n\r\n this.calculateText();\r\n }\r\n}\r\n","<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n class=\"nzx-query-btn\"\n nz-col\n [nzOrder]=\"controls.length\"\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\n\nimport { NzxConfigurableQueryComponent } from './configurable-query.component';\nimport { NzxControlDirective } from './control.directive';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzxInputControlComponent } from './controls/input.control';\nimport { NzxTemplateControlComponent } from './controls/template.control';\nimport { NzxSelectControlComponent } from './controls/select.control';\nimport { NzxDatePickerControlComponent } from './controls/date-picker.control';\nimport { NzxRangePickerControlComponent } from './controls/range-picker.control';\nimport { NzxQueryConfig, NzxQueryControlType } from './type';\nimport { NzxQueryConfigService, QUERY_CONFIG } from './query-config.service';\nimport { NzxConfigurableQueryItemComponent } from './configurable-query-item/configurable-query-item.component';\n\n@NgModule({\n declarations: [\n NzxConfigurableQueryComponent,\n NzxControlDirective,\n NzxConfigurableQueryItemComponent,\n NzxInputControlComponent,\n NzxTemplateControlComponent,\n NzxSelectControlComponent,\n NzxDatePickerControlComponent,\n NzxRangePickerControlComponent,\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n\n NzInputModule,\n NzFormModule,\n NzGridModule,\n NzButtonModule,\n NzSelectModule,\n NzDatePickerModule,\n NzIconModule,\n NzI18nModule,\n ],\n\n exports: [NzxControlDirective, NzxConfigurableQueryComponent],\n})\nexport class NzxConfigurableQueryModule {\n static forRoot(\n nzxQueryConfig: NzxQueryConfig\n ): ModuleWithProviders<NzxConfigurableQueryModule> {\n return {\n ngModule: NzxConfigurableQueryModule,\n providers: [\n {\n provide: QUERY_CONFIG,\n useValue: nzxQueryConfig,\n },\n ],\n };\n }\n\n static forChild(\n nzxQueryConfig: NzxQueryConfig\n ): ModuleWithProviders<NzxConfigurableQueryModule> {\n return {\n ngModule: NzxConfigurableQueryModule,\n providers: [\n {\n provide: QUERY_CONFIG,\n useValue: nzxQueryConfig,\n },\n NzxQueryConfigService,\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.NzxQueryConfigService","i4","i5","i10.NzxConfigurableQueryItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-zorro-antd-extension-configurable-query.mjs","sources":["../../../components/configurable-query/control.directive.ts","../../../components/configurable-query/controls/abstract.control.ts","../../../components/configurable-query/controls/date-picker.control.ts","../../../components/configurable-query/controls/input.control.ts","../../../components/configurable-query/controls/range-picker.control.ts","../../../components/configurable-query/controls/select.control.ts","../../../components/configurable-query/controls/template.control.ts","../../../components/configurable-query/query-config.service.ts","../../../components/configurable-query/configurable-query-item/configurable-query-item.component.ts","../../../components/configurable-query/configurable-query.component.ts","../../../components/configurable-query/configurable-query.component.html","../../../components/configurable-query/configurable-query.module.ts","../../../components/configurable-query/ng-zorro-antd-extension-configurable-query.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[nzxControl]',\r\n})\r\nexport class NzxControlDirective {\r\n @Input() nzxControl!: string;\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { Directive, Input } from '@angular/core';\nimport { NzxQueryControlOptions } from '../type';\nimport { FormGroup } from '@angular/forms';\n\n/**\n * 用来动态添加control type类型控件,类型控件需要继承此控件\n */\n@Directive()\nexport abstract class NzxAbstractControl {\n @Input() form!: FormGroup<any>;\n @Input() control!: NzxQueryControlOptions;\n}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-date-picker\n [ngStyle]=\"{ width: '100%' }\"\n [formControlName]=\"control.controlName!\"\n [nzPlaceHolder]=\"control.placeholder!\"\n >\n </nz-date-picker>\n </ng-container>\n `,\n})\nexport class NzxDatePickerControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <input\n nz-input\n type=\"text\"\n [placeholder]=\"control.placeholder\"\n [formControlName]=\"control.controlName!\"\n />\n </ng-container>\n `,\n})\nexport class NzxInputControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-range-picker\n [ngStyle]=\"{ width: '100%' }\"\n [formControlName]=\"control.controlName!\"\n >\n </nz-range-picker>\n </ng-container>\n `,\n})\nexport class NzxRangePickerControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container [formGroup]=\"form\">\n <nz-select\n [formControlName]=\"control.controlName!\"\n [nzShowSearch]=\"control.nzxShowSearch ?? true\"\n [nzAllowClear]=\"control.nzxAllowClear ?? true\"\n [nzPlaceHolder]=\"control.placeholder!\"\n >\n <nz-option\n *ngFor=\"let item of control.menuList\"\n [nzValue]=\"item.value\"\n [nzLabel]=\"item.label\"\n >\n </nz-option>\n </nz-select>\n </ng-container>\n `,\n})\nexport class NzxSelectControlComponent extends NzxAbstractControl {}\n","import { Component } from '@angular/core';\nimport { NzxAbstractControl } from './abstract.control';\n\n@Component({\n template: `\n <ng-container\n *ngTemplateOutlet=\"\n control.templateRef!;\n context: { $implicit: form.get(control.controlName!), formGroup: form }\n \"\n >\n </ng-container>\n `,\n})\nexport class NzxTemplateControlComponent extends NzxAbstractControl {}\n","import { Inject, InjectionToken, Optional } from '@angular/core';\nimport { NzxQueryConfig, NzxQueryControlType } from './type';\n\nexport const QUERY_CONFIG = new InjectionToken<NzxQueryControlType[]>(\n 'QUERY_CONFIG'\n);\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { NzxDatePickerControlComponent } from './controls/date-picker.control';\nimport { NzxInputControlComponent } from './controls/input.control';\nimport { NzxRangePickerControlComponent } from './controls/range-picker.control';\nimport { NzxSelectControlComponent } from './controls/select.control';\nimport { NzxTemplateControlComponent } from './controls/template.control';\n\n/**\n * 用来动态添加control type类型控件\n */\n@Injectable({ providedIn: 'root' })\nexport class NzxQueryConfigService {\n private controlTypePoll: NzxQueryControlType[] = [\n { key: 'input', component: NzxInputControlComponent },\n { key: 'select', component: NzxSelectControlComponent },\n { key: 'Template', component: NzxTemplateControlComponent },\n { key: 'datePicker', component: NzxDatePickerControlComponent },\n { key: 'rangePicker', component: NzxRangePickerControlComponent },\n ];\n\n controlTypes$ = new BehaviorSubject<NzxQueryControlType[]>(\n this.controlTypePoll\n );\n\n constructor(\n @Optional()\n @Inject(QUERY_CONFIG)\n nzxQueryConfig: NzxQueryConfig\n ) {\n if (nzxQueryConfig) {\n if (\n nzxQueryConfig.controlTypes &&\n nzxQueryConfig.controlTypes.length > 0\n ) {\n nzxQueryConfig.controlTypes.forEach((i) => {\n this.addControlType(i);\n });\n this.refreshControlType();\n }\n }\n }\n\n addControlType(controlType: NzxQueryControlType) {\n const find = this.controlTypePoll.some((i) => i.key === controlType.key);\n if (find) {\n throw `ControlType:: ${controlType.key} already exists !`;\n }\n this.controlTypePoll.push(controlType);\n }\n\n removeControlType(key: string) {\n const find = this.controlTypePoll.some((i) => i.key === key);\n if (find) {\n this.controlTypePoll = this.controlTypePoll.filter((i) => i.key !== key);\n } else {\n throw `ControlType:: ${key} not exists !`;\n }\n }\n\n refreshControlType() {\n this.controlTypes$.next(this.controlTypePoll);\n }\n}\n","import {\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { Subject, takeUntil } from 'rxjs';\nimport { NzxQueryConfigService } from '../query-config.service';\nimport { NzxQueryControlOptions, NzxQueryControlType } from '../type';\n\n@Component({\n selector: 'nzx-configurable-query-item',\n template: `\n <nz-form-item>\n <nz-form-label *ngIf=\"control.label\" [nzSpan]=\"control.nzxLSpan || 6\">\n {{ control.label }}\n </nz-form-label>\n <nz-form-control\n [nzSpan]=\"control.nzxRSpan || 18\"\n [nzValidateStatus]=\"\n control?.controlInstance ?? $any(form.get(control.controlName!))\n \"\n [nzErrorTip]=\"control.errorTip\"\n >\n <ng-template #controlTemp></ng-template>\n </nz-form-control>\n </nz-form-item>\n `,\n})\nexport class NzxConfigurableQueryItemComponent implements OnInit, OnDestroy {\n @Input() form!: FormGroup;\n @Input() control!: NzxQueryControlOptions;\n\n @ViewChild('controlTemp', { static: true, read: ViewContainerRef })\n private controlTemplateView!: ViewContainerRef;\n\n private destroy$ = new Subject<void>();\n\n constructor(private nzxQueryConfigService: NzxQueryConfigService) {}\n\n ngOnInit(): void {\n this.nzxQueryConfigService.controlTypes$\n .pipe(takeUntil(this.destroy$))\n .subscribe((list) => {\n this.renderControl(list);\n });\n }\n\n ngOnDestroy(): void {\n if (this.destroy$) {\n this.destroy$.next();\n this.destroy$.complete();\n }\n }\n\n private renderControl(list: NzxQueryControlType[]) {\n this.controlTemplateView.clear();\n const config = list.find((i) => i.key === this.control.controlType);\n if (config) {\n const componentRef = this.controlTemplateView.createComponent(\n config.component as any\n );\n componentRef.setInput('control', this.control);\n componentRef.setInput('form', this.form);\n } else {\n throw `ControlType:: '${this.control.controlType}' is invalidate`;\n }\n }\n}\n","import {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\r\n\r\nimport { NzxQueryI18nInterface } from 'ng-zorro-antd-extension/i18n';\r\nimport { updateControlStatus } from 'ng-zorro-antd-extension/util';\r\nimport { NzJustify } from 'ng-zorro-antd/grid';\r\nimport { NzI18nService } from 'ng-zorro-antd/i18n';\r\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\r\nimport { NzxControlDirective } from './control.directive';\r\nimport { NzxQueryControlOptions, NzxQueryParams } from './type';\r\n\r\n/**\r\n * 查询组件\r\n * 支持模板自定义,在使用模板自定义时,要注意controlType应该设置为Template并且确保controlName与指令上的nzxControl应该相同\r\n */\r\n\r\n@Component({\r\n selector: 'nzx-configurable-query',\r\n templateUrl: './configurable-query.component.html',\r\n styleUrls: ['./configurable-query.component.less'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'NzxConfigurableQuery',\r\n})\r\nexport class NzxConfigurableQueryComponent\r\n implements OnChanges, OnInit, AfterViewInit, AfterContentInit, OnDestroy\r\n{\r\n /** 配置项 */\r\n @Input() controls: Array<NzxQueryControlOptions> = [];\r\n /** 查询表单排列方式 */\r\n @Input() nzxJustify: NzJustify = 'start';\r\n /** 查询项间隔 */\r\n @Input() nzxGutter: number = 8;\r\n /** 一行展示多少查询项 */\r\n @Input() lineNumber: number = 3;\r\n /** 操作按钮所占栅格数,24则换行 */\r\n @Input() nzxBtnSpan: number | null = null;\r\n /** 初始化时,主动查询 */\r\n @Input() initQuery = false;\r\n /** 缺省 固定参数 */\r\n @Input() fixedParams = {};\r\n\r\n /** 查询时会触发抛出查询参数 */\r\n @Output() queryChange = new EventEmitter<NzxQueryParams>();\r\n /** 重置时会触发抛出查询参数 */\r\n @Output() resetChange = new EventEmitter<NzxQueryParams>();\r\n\r\n /** 查询组件出参*/\r\n get queryParams() {\r\n return this._queryParams;\r\n }\r\n set queryParams(value: any) {\r\n this._queryParams = value;\r\n }\r\n\r\n get nzxCollapse() {\r\n return this.controls.some((i) => i.hasOwnProperty('collapse'));\r\n }\r\n\r\n /** form 表单*/\r\n queryForm!: FormGroup;\r\n locale!: NzxQueryI18nInterface;\r\n collapseIcon: string = 'down';\r\n collapseText: string = '';\r\n\r\n private _queryParams: NzxQueryParams = {};\r\n /** 重置时用来给查询框默认值 */\r\n private defaultValue: NzxQueryParams = {};\r\n private cacheParams: NzxQueryParams = {};\r\n private destroy$ = new Subject<void>();\r\n\r\n @ViewChild('queyForm') private queyFormEl!: ElementRef<HTMLFormElement>;\r\n @ContentChildren(NzxControlDirective, { descendants: true })\r\n controlTemplateList!: QueryList<NzxControlDirective>;\r\n\r\n constructor(\r\n private i18n: NzI18nService,\r\n private fb: FormBuilder,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.queryForm = this.fb.group({});\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['controls'] && !changes['controls'].isFirstChange()) {\r\n const controls = changes['controls'].currentValue;\r\n if (Array.isArray(controls)) {\r\n this.generateForm(controls);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {\r\n this.locale = this.i18n.getLocaleData('Query');\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.queryForm.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((val) => {\r\n this._queryParams = {\r\n ...val,\r\n ...this.fixedParams,\r\n };\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.queyFormEl) {\r\n fromEvent<KeyboardEvent>(this.queyFormEl.nativeElement, 'keydown')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((event) => {\r\n if (event.key === 'Enter') {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.search();\r\n }\r\n // 检查是否同时按下了Ctrl键(在Windows/Linux上)和S键\r\n if ((event.ctrlKey || event.metaKey) && event.key === 'r') {\r\n // 注意:event.metaKey用于兼容Mac的Command键\r\n event.preventDefault(); // 阻止浏览器默认的保存行为\r\n event.stopPropagation();\r\n this.reset();\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.generateForm(this.controls);\r\n\r\n if (this.initQuery) {\r\n this.search();\r\n }\r\n }\r\n\r\n /** 设置查询值进行回显 */\r\n setQueryParams(cacheParams: NzxQueryParams): void {\r\n this.cacheParams = cacheParams;\r\n this.queryForm.patchValue(cacheParams);\r\n }\r\n\r\n /**\r\n * 根据controlName设置config值\r\n * @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以\r\n */\r\n setControl(\r\n controlName: string,\r\n config: Partial<NzxQueryControlOptions>,\r\n defaultValueResettable = false\r\n ): void {\r\n const control = this.getControl(controlName);\r\n if (control) {\r\n Object.keys(config).forEach((key) => {\r\n (control as any)[key] = (config as any)[key];\r\n });\r\n this.generateControl(control, defaultValueResettable);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n /**\r\n * 动态添加控件\r\n * @param config 配置项\r\n * @param position 添加位置 不传为末尾\r\n * @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以\r\n */\r\n addControl(\r\n config: NzxQueryControlOptions,\r\n position?: number | undefined,\r\n defaultValueResettable = false\r\n ): void {\r\n const control = this.getControl(config.controlName);\r\n if (!control) {\r\n if (config && config['hasOwnProperty']('collapse')) {\r\n const hasCollapseProperty = this.controls.some((i) =>\r\n i['hasOwnProperty']('collapse')\r\n );\r\n if (hasCollapseProperty) {\r\n config.collapse = this.controls.some((i) => i.collapse === true);\r\n }\r\n }\r\n\r\n this.generateControl(config, defaultValueResettable);\r\n\r\n if (position === void 0 || position === null) {\r\n this.controls.push(config);\r\n } else {\r\n this.controls.splice(position - 1, 0, config);\r\n }\r\n this.calculateText();\r\n } else {\r\n throw `The control name: '${config.controlName}' already exists!`;\r\n }\r\n }\r\n\r\n /**\r\n * 根据控件名删除控件\r\n */\r\n removeControl(controlName: string): void {\r\n const control = this.getControl(controlName);\r\n if (control) {\r\n this.queryForm.removeControl(controlName);\r\n this.controls = this.controls.filter(\r\n (c) => c.controlName !== controlName\r\n );\r\n this.calculateText();\r\n } else {\r\n throw `The control name: '${controlName}' not find!`;\r\n }\r\n }\r\n\r\n /**\r\n * 根据controlName获取config项\r\n */\r\n getControl(\r\n controlName: string | undefined\r\n ): NzxQueryControlOptions | undefined {\r\n return this.controls.find((config) => config.controlName === controlName);\r\n }\r\n\r\n /**\r\n * 检索给定控件名称或路径的子控件。\r\n * 这个 getFormControl 签名支持字符串和 const 数组(.getFormControl(['foo', 'bar'] as const))\r\n */\r\n getFormControl(\r\n path: string | readonly (string | number)[]\r\n ): AbstractControl<any, any> | null {\r\n return this.queryForm.get(path);\r\n }\r\n\r\n /** 查询 */\r\n search(): void {\r\n if (this.queryForm.invalid) {\r\n updateControlStatus(this.queryForm);\r\n return;\r\n }\r\n this.queryChange.emit(this._queryParams);\r\n }\r\n\r\n /** 重置 */\r\n reset(): void {\r\n this.queryForm.reset(this.defaultValue);\r\n this.resetChange.emit(this._queryParams);\r\n }\r\n\r\n /**展开、收起*/\r\n toggleCollapse(): void {\r\n for (let index = 0; index < this.controls.length; index++) {\r\n const config = this.controls[index];\r\n const hasProperty = config.hasOwnProperty('collapse');\r\n if (hasProperty && config.collapse) {\r\n config.collapse = false;\r\n } else if (hasProperty && !config.collapse) {\r\n config.collapse = true;\r\n }\r\n }\r\n this.calculateText();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private calculateText() {\r\n if (this.controls.some((i) => i.collapse === true)) {\r\n this.collapseIcon = 'down';\r\n this.collapseText = this.locale.expand;\r\n } else {\r\n this.collapseIcon = 'up';\r\n this.collapseText = this.locale.collapse;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n /** 清空表单控件 */\r\n private clearFormControl(): void {\r\n Object.keys(this.queryForm.controls).forEach((key) => {\r\n this.queryForm.removeControl(key);\r\n });\r\n }\r\n\r\n /** 生成 queryForm 表单 */\r\n private generateForm(controlConfigs: Array<NzxQueryControlOptions>): void {\r\n this.clearFormControl();\r\n\r\n for (const config of controlConfigs) {\r\n this.generateControl(config);\r\n }\r\n this.defaultValue = this.queryForm.getRawValue();\r\n\r\n if (this.cacheParams) {\r\n // 缓存回显查询条件\r\n this.queryForm.patchValue(this.cacheParams);\r\n }\r\n\r\n this.calculateText();\r\n }\r\n\r\n /**\r\n *\r\n * @param controlConfig control配置\r\n * @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以\r\n *\r\n * 1. 生成单个表单控件并将其添加到queryForm中\r\n * 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值\r\n *\r\n **/\r\n private generateControl(\r\n config: NzxQueryControlOptions,\r\n defaultValueResettable = false\r\n ) {\r\n if (config.controlName) {\r\n if (!config?.templateRef) {\r\n const d = this.controlTemplateList.find(\r\n (d) => d.nzxControl === config.controlName\r\n );\r\n if (d) {\r\n config.templateRef = d.templateRef;\r\n }\r\n }\r\n\r\n this.queryForm.setControl(\r\n config.controlName,\r\n config.controlInstance ?? this.fb.control(config.default ?? null)\r\n );\r\n\r\n if (!defaultValueResettable) {\r\n const control = this.queryForm.get(config.controlName);\r\n this.defaultValue = {\r\n ...this.defaultValue,\r\n [config.controlName]: control.value,\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","<form #queyForm class=\"nzx-query-container\" nz-form [formGroup]=\"queryForm\">\n <div nz-row [nzGutter]=\"nzxGutter\" [nzJustify]=\"nzxJustify\">\n <ng-container *ngFor=\"let config of controls; let i = index\">\n <div\n *ngIf=\"!config.hidden\"\n nz-col\n [nzSpan]=\"config.nzxSpan || 24 / lineNumber\"\n [hidden]=\"config.collapse\"\n [nzOrder]=\"i\"\n >\n <nzx-configurable-query-item\n *ngIf=\"config.controlName\"\n [form]=\"queryForm\"\n [control]=\"config\"\n ></nzx-configurable-query-item>\n </div>\n </ng-container>\n\n <div\n [nzOrder]=\"controls.length\"\n class=\"nzx-query-btn\"\n nz-col\n [nzSpan]=\"nzxBtnSpan || 24 / lineNumber\"\n >\n <div nz-row nzJustify=\"end\" nzAlign=\"middle\">\n <button\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button nz-button type=\"button\" title=\"ctrl+r\" (click)=\"reset()\">\n {{ locale['reset'] }}\n </button>\n <ng-content></ng-content>\n <a\n *ngIf=\"nzxCollapse\"\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </div>\n </div>\n </div>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\n\nimport { NzxConfigurableQueryComponent } from './configurable-query.component';\nimport { NzxControlDirective } from './control.directive';\nimport { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzxInputControlComponent } from './controls/input.control';\nimport { NzxTemplateControlComponent } from './controls/template.control';\nimport { NzxSelectControlComponent } from './controls/select.control';\nimport { NzxDatePickerControlComponent } from './controls/date-picker.control';\nimport { NzxRangePickerControlComponent } from './controls/range-picker.control';\nimport { NzxQueryConfig, NzxQueryControlType } from './type';\nimport { NzxQueryConfigService, QUERY_CONFIG } from './query-config.service';\nimport { NzxConfigurableQueryItemComponent } from './configurable-query-item/configurable-query-item.component';\n\n@NgModule({\n declarations: [\n NzxConfigurableQueryComponent,\n NzxControlDirective,\n NzxConfigurableQueryItemComponent,\n NzxInputControlComponent,\n NzxTemplateControlComponent,\n NzxSelectControlComponent,\n NzxDatePickerControlComponent,\n NzxRangePickerControlComponent,\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n\n NzInputModule,\n NzFormModule,\n NzGridModule,\n NzButtonModule,\n NzSelectModule,\n NzDatePickerModule,\n NzIconModule,\n NzI18nModule,\n ],\n\n exports: [NzxControlDirective, NzxConfigurableQueryComponent],\n})\nexport class NzxConfigurableQueryModule {\n static forRoot(\n nzxQueryConfig: NzxQueryConfig\n ): ModuleWithProviders<NzxConfigurableQueryModule> {\n return {\n ngModule: NzxConfigurableQueryModule,\n providers: [\n {\n provide: QUERY_CONFIG,\n useValue: nzxQueryConfig,\n },\n ],\n };\n }\n\n static forChild(\n nzxQueryConfig: NzxQueryConfig\n ): ModuleWithProviders<NzxConfigurableQueryModule> {\n return {\n ngModule: NzxConfigurableQueryModule,\n providers: [\n {\n provide: QUERY_CONFIG,\n useValue: nzxQueryConfig,\n },\n NzxQueryConfigService,\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i1.NzxQueryConfigService","i4","i5","i10.NzxConfigurableQueryItemComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAAmB,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW;;+GAFnB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;gFAEU,UAAU,EAAA,CAAA;sBAAlB;;;ACFH;;AAEG;MAEmB,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBADvC;8BAEU,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;ACKG,MAAO,6BAA8B,SAAQ,kBAAkB,CAAA;+GAAxD,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAX9B,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8EAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA;;;ACCK,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;+GAAnD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAXzB,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA;;;ACAK,MAAO,8BAA+B,SAAQ,kBAAkB,CAAA;+GAAzD,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAV/B,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,8EAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAX1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA;;;ACSK,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;+GAApD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAlB1B,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAnBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACF,iBAAA;;;ACPK,MAAO,2BAA4B,SAAQ,kBAAkB,CAAA;+GAAtD,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAV5B,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA;;;MCVY,YAAY,GAAG,IAAI,cAAc,CAC5C,cAAc;AAWhB;;AAEG;MAEU,qBAAqB,CAAA;AAahC,IAAA,WAAA,CAGE,cAA8B,EAAA;AAfxB,QAAA,IAAA,CAAA,eAAe,GAA0B;AAC/C,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE;AACrD,YAAA,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,yBAAyB,EAAE;AACvD,YAAA,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,2BAA2B,EAAE;AAC3D,YAAA,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,6BAA6B,EAAE;AAC/D,YAAA,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,8BAA8B,EAAE;SAClE;QAED,IAAa,CAAA,aAAA,GAAG,IAAI,eAAe,CACjC,IAAI,CAAC,eAAe,CACrB;AAOC,QAAA,IAAI,cAAc,EAAE;YAClB,IACE,cAAc,CAAC,YAAY;AAC3B,gBAAA,cAAc,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EACtC;gBACA,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxC,oBAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AACxB,iBAAC,CAAC;gBACF,IAAI,CAAC,kBAAkB,EAAE;AAC1B;AACF;;AAGH,IAAA,cAAc,CAAC,WAAgC,EAAA;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC;AACxE,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,CAAiB,cAAA,EAAA,WAAW,CAAC,GAAG,mBAAmB;AAC1D;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGxC,IAAA,iBAAiB,CAAC,GAAW,EAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC5D,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AACzE;AAAM,aAAA;YACL,MAAM,CAAA,cAAA,EAAiB,GAAG,CAAA,aAAA,CAAe;AAC1C;;IAGH,kBAAkB,GAAA;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;;AAjDpC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAetB,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAfX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;4FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAe7B;;0BACA,MAAM;2BAAC,YAAY;;;MCDX,iCAAiC,CAAA;AAS5C,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB;AAFjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;;IAItC,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,CAAC;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC1B,SAAC,CAAC;;IAGN,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACzB;;AAGK,IAAA,aAAa,CAAC,IAA2B,EAAA;AAC/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACnE,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC3D,MAAM,CAAC,SAAgB,CACxB;YACD,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;YAC9C,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;AACzC;AAAM,aAAA;AACL,YAAA,MAAM,kBAAkB,IAAI,CAAC,OAAO,CAAC,WAAW,iBAAiB;AAClE;;+GArCQ,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjC,iCAAiC,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAII,gBAAgB,EArBtD,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAnB7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACF,iBAAA;uFAEU,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAGO,mBAAmB,EAAA,CAAA;sBAD1B,SAAS;uBAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE;;;ACTpE;;;AAGG;MASU,6BAA6B,CAAA;;AAwBxC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;IAE1B,IAAI,WAAW,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;;AAG3B,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;;AAmBhE,IAAA,WAAA,CACU,IAAmB,EACnB,EAAe,EACf,EAAqB,EAAA;QAFrB,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAE,CAAA,EAAA,GAAF,EAAE;;QAlDH,IAAQ,CAAA,QAAA,GAAkC,EAAE;;QAE5C,IAAU,CAAA,UAAA,GAAc,OAAO;;QAE/B,IAAS,CAAA,SAAA,GAAW,CAAC;;QAErB,IAAU,CAAA,UAAA,GAAW,CAAC;;QAEtB,IAAU,CAAA,UAAA,GAAkB,IAAI;;QAEhC,IAAS,CAAA,SAAA,GAAG,KAAK;;QAEjB,IAAW,CAAA,WAAA,GAAG,EAAE;;AAGf,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB;;AAEhD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB;QAiB1D,IAAY,CAAA,YAAA,GAAW,MAAM;QAC7B,IAAY,CAAA,YAAA,GAAW,EAAE;QAEjB,IAAY,CAAA,YAAA,GAAmB,EAAE;;QAEjC,IAAY,CAAA,YAAA,GAAmB,EAAE;QACjC,IAAW,CAAA,WAAA,GAAmB,EAAE;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;QAWpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;;AAGpC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,EAAE;YAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY;AACjD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC5B;AACF;;IAGH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9C,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACxB,SAAC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC;AACZ,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;YACjB,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,GAAG,GAAG;gBACN,GAAG,IAAI,CAAC,WAAW;aACpB;AACH,SAAC,CAAC;;IAGN,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,SAAS,CAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS;AAC9D,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;oBACzB,KAAK,CAAC,eAAe,EAAE;oBACvB,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,MAAM,EAAE;AACd;;AAED,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;;AAEzD,oBAAA,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE;oBACvB,IAAI,CAAC,KAAK,EAAE;AACb;AACH,aAAC,CAAC;AACL;;IAGH,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE;AACd;;;AAIH,IAAA,cAAc,CAAC,WAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC;;AAGxC;;;AAGG;AACH,IAAA,UAAU,CACR,WAAmB,EACnB,MAAuC,EACvC,sBAAsB,GAAG,KAAK,EAAA;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5C,QAAA,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBACjC,OAAe,CAAC,GAAG,CAAC,GAAI,MAAc,CAAC,GAAG,CAAC;AAC9C,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,sBAAsB,CAAC;AACrD,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AACvB;;AAGH;;;;;AAKG;AACH,IAAA,UAAU,CACR,MAA8B,EAC9B,QAA6B,EAC7B,sBAAsB,GAAG,KAAK,EAAA;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,EAAE;gBAClD,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAC/C,CAAC,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAChC;AACD,gBAAA,IAAI,mBAAmB,EAAE;oBACvB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;AACjE;AACF;AAED,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC;YAEpD,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC5C,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;AAC9C;YACD,IAAI,CAAC,aAAa,EAAE;AACrB;AAAM,aAAA;AACL,YAAA,MAAM,CAAsB,mBAAA,EAAA,MAAM,CAAC,WAAW,mBAAmB;AAClE;;AAGH;;AAEG;AACH,IAAA,aAAa,CAAC,WAAmB,EAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5C,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,WAAW,CACrC;YACD,IAAI,CAAC,aAAa,EAAE;AACrB;AAAM,aAAA;YACL,MAAM,CAAA,mBAAA,EAAsB,WAAW,CAAA,WAAA,CAAa;AACrD;;AAGH;;AAEG;AACH,IAAA,UAAU,CACR,WAA+B,EAAA;AAE/B,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC;;AAG3E;;;AAGG;AACH,IAAA,cAAc,CACZ,IAA2C,EAAA;QAE3C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;;;IAIjC,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC1B,YAAA,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC;AACD;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;;IAI1C,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;;IAI1C,cAAc,GAAA;AACZ,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;AACrD,YAAA,IAAI,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClC,gBAAA,MAAM,CAAC,QAAQ,GAAG,KAAK;AACxB;AAAM,iBAAA,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC1C,gBAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;AACvB;AACF;QACD,IAAI,CAAC,aAAa,EAAE;;IAGtB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;IAGlB,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;AACzC;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;;IAIhB,gBAAgB,GAAA;AACtB,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACnD,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;AACnC,SAAC,CAAC;;;AAII,IAAA,YAAY,CAAC,cAA6C,EAAA;QAChE,IAAI,CAAC,gBAAgB,EAAE;AAEvB,QAAA,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AAC7B;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;QAEhD,IAAI,IAAI,CAAC,WAAW,EAAE;;YAEpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5C;QAED,IAAI,CAAC,aAAa,EAAE;;AAGtB;;;;;;;;AAQI;AACI,IAAA,eAAe,CACrB,MAA8B,EAC9B,sBAAsB,GAAG,KAAK,EAAA;QAE9B,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACrC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,WAAW,CAC3C;AACD,gBAAA,IAAI,CAAC,EAAE;AACL,oBAAA,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;AACnC;AACF;YAED,IAAI,CAAC,SAAS,CAAC,UAAU,CACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAClE;YAED,IAAI,CAAC,sBAAsB,EAAE;AAC3B,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtD,IAAI,CAAC,YAAY,GAAG;oBAClB,GAAG,IAAI,CAAC,YAAY;AACpB,oBAAA,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK;iBACpC;AACF;AACF;;+GAxTQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAgDvB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxFtC,o+CAmDA,EAAA,MAAA,EAAA,CAAA,2PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDXa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGjB,eAAA,EAAA,uBAAuB,CAAC,MAAM,YACrC,sBAAsB,EAAA,QAAA,EAAA,o+CAAA,EAAA,MAAA,EAAA,CAAA,2PAAA,CAAA,EAAA;8IAMvB,QAAQ,EAAA,CAAA;sBAAhB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,WAAW,EAAA,CAAA;sBAAnB;gBAGS,WAAW,EAAA,CAAA;sBAApB;gBAES,WAAW,EAAA,CAAA;sBAApB;gBA0B8B,UAAU,EAAA,CAAA;sBAAxC,SAAS;uBAAC,UAAU;gBAErB,mBAAmB,EAAA,CAAA;sBADlB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;MErChD,0BAA0B,CAAA;IACrC,OAAO,OAAO,CACZ,cAA8B,EAAA;QAE9B,OAAO;AACL,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;AACF,aAAA;SACF;;IAGH,OAAO,QAAQ,CACb,cAA8B,EAAA;QAE9B,OAAO;AACL,YAAA,QAAQ,EAAE,0BAA0B;AACpC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA;gBACD,qBAAqB;AACtB,aAAA;SACF;;+GA3BQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,iBAzBnC,6BAA6B;YAC7B,mBAAmB;YACnB,iCAAiC;YACjC,wBAAwB;YACxB,2BAA2B;YAC3B,yBAAyB;YACzB,6BAA6B;AAC7B,YAAA,8BAA8B,aAG9B,YAAY;YACZ,mBAAmB;YAEnB,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,YAAY,CAAA,EAAA,OAAA,EAAA,CAGJ,mBAAmB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAEjD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAfnC,YAAY;YACZ,mBAAmB;YAEnB,aAAa;YACb,YAAY;YACZ,YAAY;YACZ,cAAc;YACd,cAAc;YACd,kBAAkB;YAClB,YAAY;YACZ,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAKH,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBA3BtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,6BAA6B;wBAC7B,mBAAmB;wBACnB,iCAAiC;wBACjC,wBAAwB;wBACxB,2BAA2B;wBAC3B,yBAAyB;wBACzB,6BAA6B;wBAC7B,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,mBAAmB;wBAEnB,aAAa;wBACb,YAAY;wBACZ,YAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,kBAAkB;wBAClB,YAAY;wBACZ,YAAY;AACb,qBAAA;AAED,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;AAC9D,iBAAA;;;AClDD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-zorro-antd-extension",
|
|
3
|
-
"version": "17.4.
|
|
3
|
+
"version": "17.4.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "An extension based on ng-zorro-antd",
|
|
6
6
|
"keywords": [
|
|
@@ -58,18 +58,18 @@
|
|
|
58
58
|
"esm": "./esm2022/blank-field/ng-zorro-antd-extension-blank-field.mjs",
|
|
59
59
|
"default": "./fesm2022/ng-zorro-antd-extension-blank-field.mjs"
|
|
60
60
|
},
|
|
61
|
-
"./checkbox": {
|
|
62
|
-
"types": "./checkbox/index.d.ts",
|
|
63
|
-
"esm2022": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
64
|
-
"esm": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
65
|
-
"default": "./fesm2022/ng-zorro-antd-extension-checkbox.mjs"
|
|
66
|
-
},
|
|
67
61
|
"./configurable-query": {
|
|
68
62
|
"types": "./configurable-query/index.d.ts",
|
|
69
63
|
"esm2022": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
70
64
|
"esm": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
71
65
|
"default": "./fesm2022/ng-zorro-antd-extension-configurable-query.mjs"
|
|
72
66
|
},
|
|
67
|
+
"./checkbox": {
|
|
68
|
+
"types": "./checkbox/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
70
|
+
"esm": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
71
|
+
"default": "./fesm2022/ng-zorro-antd-extension-checkbox.mjs"
|
|
72
|
+
},
|
|
73
73
|
"./editable": {
|
|
74
74
|
"types": "./editable/index.d.ts",
|
|
75
75
|
"esm2022": "./esm2022/editable/ng-zorro-antd-extension-editable.mjs",
|