ng-zorro-antd-extension 18.1.0 → 18.1.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 +13 -13
- package/table-select/abstract-table-select.d.ts +1 -1
|
@@ -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: "18.2.13", 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: "18.2.13", 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: "18.2.13", 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: "18.2.13", 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: "18.2.13", ngImpo
|
|
|
279
300
|
type: ContentChildren,
|
|
280
301
|
args: [NzxControlDirective, { descendants: true }]
|
|
281
302
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7OztBQUcxRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4QyxZQUFZO0lBQ1osSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQWlCRCxZQUNVLElBQW1CLEVBQ25CLEVBQWUsRUFDZixFQUFxQjtRQUZyQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25C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U0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQTlSVSw2QkFBNkI7bUdBQTdCLDZCQUE2QixtV0ErQ3ZCLG1CQUFtQixpTkN2RnRDLG8rQ0FtREE7OzRGRFhhLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsc0JBQXNCOzRJQU12QixRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkF5QndCLFVBQVU7c0JBQXhDLFNBQVM7dUJBQUMsVUFBVTtnQkFFckIsbUJBQW1CO3NCQURsQixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTnp4UXVlcnlJMThuSW50ZXJmYWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vaTE4bic7XHJcbmltcG9ydCB7IHVwZGF0ZUNvbnRyb2xTdGF0dXMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcclxuaW1wb3J0IHsgTnpKdXN0aWZ5IH0gZnJvbSAnbmctem9ycm8tYW50ZC9ncmlkJztcclxuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE56eENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2wuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTnp4UXVlcnlDb250cm9sT3B0aW9ucywgTnp4UXVlcnlQYXJhbXMgfSBmcm9tICcuL3R5cGUnO1xyXG5cclxuLyoqXHJcbiAqIOafpeivoue7hOS7tlxyXG4gKiDmlK/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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QkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQTBCd0IsVUFBVTtzQkFBeEMsU0FBUzt1QkFBQyxVQUFVO2dCQUVyQixtQkFBbUI7c0JBRGxCLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBOenhRdWVyeUkxOG5JbnRlcmZhY2UgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi9pMThuJztcclxuaW1wb3J0IHsgdXBkYXRlQ29udHJvbFN0YXR1cyB9IGZyb20gJ25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uL3V0aWwnO1xyXG5pbXBvcnQgeyBOekp1c3RpZnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2dyaWQnO1xyXG5pbXBvcnQgeyBOekkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pMThuJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTnp4Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOenhRdWVyeUNvbnRyb2xPcHRpb25zLCBOenhRdWVyeVBhcmFtcyB9IGZyb20gJy4vdHlwZSc7XHJcblxyXG4vKipcclxuICog5p+l6K+i57uE5Lu2XHJcbiAqIOaUr+aMgeaooeadv+iHquWumuS5ie+8jOWcqOS9v+eUqOaooeadv+iHquWumuS5ieaXtu+8jOimgeazqOaEj2NvbnRyb2xUeXBl5bqU6K+l6K6+572u5Li6VGVtcGxhdGXlubbkuJTnoa7kv51jb250cm9sTmFtZeS4juaMh+S7pOS4iueahG56eENvbnRyb2zlupTor6Xnm7jlkIxcclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256eC1jb25maWd1cmFibGUtcXVlcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGV4cG9ydEFzOiAnTnp4Q29uZmlndXJhYmxlUXVlcnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4Q29uZmlndXJhYmxlUXVlcnlDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8qKiDphY3nva7pobkgKi9cclxuICBASW5wdXQoKSBjb250cm9sczogQXJyYXk8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4gPSBbXTtcclxuICAvKiog5p+l6K+i6KGo5Y2V5o6S5YiX5pa55byPICovXHJcbiAgQElucHV0KCkgbnp4SnVzdGlmeTogTnpKdXN0aWZ5ID0gJ3N0YXJ0JztcclxuICAvKiog5p+l6K+i6aG56Ze06ZqUICovXHJcbiAgQElucHV0KCkgbnp4R3V0dGVyOiBudW1iZXIgPSA4O1xyXG4gIC8qKiDkuIDooYzlsZXnpLrlpJrlsJHmn6Xor6LpobkgKi9cclxuICBASW5wdXQoKSBsaW5lTnVtYmVyOiBudW1iZXIgPSAzO1xyXG4gIC8qKiDmk43kvZzmjInpkq7miYDljaDmoIXmoLzmlbDvvIwyNOWImeaNouihjCAqL1xyXG4gIEBJbnB1dCgpIG56eEJ0blNwYW46IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiDliJ3lp4vljJbml7bvvIzkuLvliqjmn6Xor6IgKi9cclxuICBASW5wdXQoKSBpbml0UXVlcnkgPSBmYWxzZTtcclxuICAvKiog57y655yBIOWbuuWumuWPguaVsCAqL1xyXG4gIEBJbnB1dCgpIGZpeGVkUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiDmn6Xor6Lml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG4gIC8qKiDph43nva7ml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcmVzZXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG5cclxuICAvKiog5p+l6K+i57uE5Lu25Ye65Y+CKi9cclxuICBnZXQgcXVlcnlQYXJhbXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXM7XHJcbiAgfVxyXG4gIHNldCBxdWVyeVBhcmFtcyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG56eENvbGxhcHNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT4gaS5oYXNPd25Qcm9wZXJ0eSgnY29sbGFwc2UnKSk7XHJcbiAgfVxyXG5cclxuICAvKiogZm9ybSDooajljZUqL1xyXG4gIHF1ZXJ5Rm9ybSE6IEZvcm1Hcm91cDtcclxuICBsb2NhbGUhOiBOenhRdWVyeUkxOG5JbnRlcmZhY2U7XHJcbiAgY29sbGFwc2VJY29uOiBzdHJpbmcgPSAnZG93bic7XHJcbiAgY29sbGFwc2VUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfcXVlcnlQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgLyoqIOmHjee9ruaXtueUqOadpee7meafpeivouahhum7mOiupOWAvCAqL1xyXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zID0ge307XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3F1ZXlGb3JtJykgcHJpdmF0ZSBxdWV5Rm9ybUVsITogRWxlbWVudFJlZjxIVE1MRm9ybUVsZW1lbnQ+O1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4Q29udHJvbERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIGNvbnRyb2xUZW1wbGF0ZUxpc3QhOiBRdWVyeUxpc3Q8Tnp4Q29udHJvbERpcmVjdGl2ZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpMThuOiBOekkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5xdWVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydjb250cm9scyddICYmICFjaGFuZ2VzWydjb250cm9scyddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICBjb25zdCBjb250cm9scyA9IGNoYW5nZXNbJ2NvbnRyb2xzJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250cm9scykpIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybShjb250cm9scyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmkxOG4uZ2V0TG9jYWxlRGF0YSgnUXVlcnknKTtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucXVlcnlGb3JtLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAgICAgLi4udmFsLFxyXG4gICAgICAgICAgLi4udGhpcy5maXhlZFBhcmFtcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnF1ZXlGb3JtRWwpIHtcclxuICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMucXVleUZvcm1FbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8g5qOA5p+l5piv5ZCm5ZCM5pe25oyJ5LiL5LqGQ3RybOmUru+8iOWcqFdpbmRvd3MvTGludXjkuIrvvInlkoxT6ZSuXHJcbiAgICAgICAgICBpZiAoKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQua2V5ID09PSAncicpIHtcclxuICAgICAgICAgICAgLy8g5rOo5oSP77yaZXZlbnQubWV0YUtleeeUqOS6juWFvOWuuU1hY+eahENvbW1hbmTplK5cclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8g6Zi75q2i5rWP6KeI5Zmo6buY6K6k55qE5L+d5a2Y6KGM5Li6XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybSh0aGlzLmNvbnRyb2xzKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbml0UXVlcnkpIHtcclxuICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiDorr7nva7mn6Xor6LlgLzov5vooYzlm57mmL4gKi9cclxuICBzZXRRdWVyeVBhcmFtcyhjYWNoZVBhcmFtczogTnp4UXVlcnlQYXJhbXMpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FjaGVQYXJhbXMgPSBjYWNoZVBhcmFtcztcclxuICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUoY2FjaGVQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uY29udHJvbE5hbWXorr7nva5jb25maWflgLxcclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSDmt7vliqDnmoTooajljZXmjqfku7bpu5jorqTlgLzmmK/lkKblj6/ku6Xph43nva7vvIzpu5jorqTkuI3lj6/ku6VcclxuICAgKi9cclxuICBzZXRDb250cm9sKFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyxcclxuICAgIGNvbmZpZzogUGFydGlhbDxOenhRdWVyeUNvbnRyb2xPcHRpb25zPixcclxuICAgIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUgPSBmYWxzZVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICBPYmplY3Qua2V5cyhjb25maWcpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIChjb250cm9sIGFzIGFueSlba2V5XSA9IChjb25maWcgYXMgYW55KVtrZXldO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvbnRyb2woY29udHJvbCwgZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSk7XHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDliqjmgIHmt7vliqDmjqfku7ZcclxuICAgKiBAcGFyYW0gY29uZmlnIOmFjee9rumhuVxyXG4gICAqIEBwYXJhbSBwb3NpdGlvbiDmt7vliqDkvY3nva4g5LiN5Lyg5Li65pyr5bC+XHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUg5re75Yqg55qE6KGo5Y2V5o6n5Lu26buY6K6k5YC85piv5ZCm5Y+v5Lul6YeN572u77yM6buY6K6k5LiN5Y+v5LulXHJcbiAgICovXHJcbiAgYWRkQ29udHJvbChcclxuICAgIGNvbmZpZzogTnp4UXVlcnlDb250cm9sT3B0aW9ucyxcclxuICAgIHBvc2l0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkLFxyXG4gICAgZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSA9IGZhbHNlXHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbmZpZy5jb250cm9sTmFtZSk7XHJcbiAgICBpZiAoIWNvbnRyb2wpIHtcclxuICAgICAgaWYgKGNvbmZpZyAmJiBjb25maWdbJ2hhc093blByb3BlcnR5J10oJ2NvbGxhcHNlJykpIHtcclxuICAgICAgICBjb25zdCBoYXNDb2xsYXBzZVByb3BlcnR5ID0gdGhpcy5jb250cm9scy5zb21lKChpKSA9PlxyXG4gICAgICAgICAgaVsnaGFzT3duUHJvcGVydHknXSgnY29sbGFwc2UnKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGhhc0NvbGxhcHNlUHJvcGVydHkpIHtcclxuICAgICAgICAgIGNvbmZpZy5jb2xsYXBzZSA9IHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT4gaS5jb2xsYXBzZSA9PT0gdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29udHJvbChjb25maWcsIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUpO1xyXG5cclxuICAgICAgaWYgKHBvc2l0aW9uID09PSB2b2lkIDAgfHwgcG9zaXRpb24gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLnB1c2goY29uZmlnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2xzLnNwbGljZShwb3NpdGlvbiAtIDEsIDAsIGNvbmZpZyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBgVGhlIGNvbnRyb2wgbmFtZTogJyR7Y29uZmlnLmNvbnRyb2xOYW1lfScgYWxyZWFkeSBleGlzdHMhYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNruaOp+S7tuWQjeWIoOmZpOaOp+S7tlxyXG4gICAqL1xyXG4gIHJlbW92ZUNvbnRyb2woY29udHJvbE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICB0aGlzLnF1ZXJ5Rm9ybS5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICAgICAgdGhpcy5jb250cm9scyA9IHRoaXMuY29udHJvbHMuZmlsdGVyKFxyXG4gICAgICAgIChjKSA9PiBjLmNvbnRyb2xOYW1lICE9PSBjb250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZVRleHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IGBUaGUgY29udHJvbCBuYW1lOiAnJHtjb250cm9sTmFtZX0nIG5vdCBmaW5kIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja5jb250cm9sTmFtZeiOt+WPlmNvbmZpZ+mhuVxyXG4gICAqL1xyXG4gIGdldENvbnRyb2woXHJcbiAgICBjb250cm9sTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXHJcbiAgKTogTnp4UXVlcnlDb250cm9sT3B0aW9ucyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9scy5maW5kKChjb25maWcpID0+IGNvbmZpZy5jb250cm9sTmFtZSA9PT0gY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qOA57Si57uZ5a6a5o6n5Lu25ZCN56ew5oiW6Lev5b6E55qE5a2Q5o6n5Lu244CCXHJcbiAgICog6L+Z5LiqIGdldEZvcm1Db250cm9sIOetvuWQjeaUr+aMgeWtl+espuS4suWSjCBjb25zdCDmlbDnu4TvvIguZ2V0Rm9ybUNvbnRyb2woWydmb28nLCAnYmFyJ10gYXMgY29uc3Qp77yJXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUNvbnRyb2woXHJcbiAgICBwYXRoOiBzdHJpbmcgfCByZWFkb25seSAoc3RyaW5nIHwgbnVtYmVyKVtdXHJcbiAgKTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMucXVlcnlGb3JtLmdldChwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKiDmn6Xor6IgKi9cclxuICBzZWFyY2goKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWVyeUZvcm0uaW52YWxpZCkge1xyXG4gICAgICB1cGRhdGVDb250cm9sU3RhdHVzKHRoaXMucXVlcnlGb3JtKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5xdWVyeUNoYW5nZS5lbWl0KHRoaXMuX3F1ZXJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKiDph43nva4gKi9cclxuICByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlGb3JtLnJlc2V0KHRoaXMuZGVmYXVsdFZhbHVlKTtcclxuICAgIHRoaXMucmVzZXRDaGFuZ2UuZW1pdCh0aGlzLl9xdWVyeVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICAvKirlsZXlvIDjgIHmlLbotbcqL1xyXG4gIHRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuY29udHJvbHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29udHJvbHNbaW5kZXhdO1xyXG4gICAgICBjb25zdCBoYXNQcm9wZXJ0eSA9IGNvbmZpZy5oYXNPd25Qcm9wZXJ0eSgnY29sbGFwc2UnKTtcclxuICAgICAgaWYgKGhhc1Byb3BlcnR5ICYmIGNvbmZpZy5jb2xsYXBzZSkge1xyXG4gICAgICAgIGNvbmZpZy5jb2xsYXBzZSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2UgaWYgKGhhc1Byb3BlcnR5ICYmICFjb25maWcuY29sbGFwc2UpIHtcclxuICAgICAgICBjb25maWcuY29sbGFwc2UgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVRleHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVRleHQoKSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9scy5zb21lKChpKSA9PiBpLmNvbGxhcHNlID09PSB0cnVlKSkge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlSWNvbiA9ICdkb3duJztcclxuICAgICAgdGhpcy5jb2xsYXBzZVRleHQgPSB0aGlzLmxvY2FsZS5leHBhbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlSWNvbiA9ICd1cCc7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VUZXh0ID0gdGhpcy5sb2NhbGUuY29sbGFwc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOa4heepuuihqOWNleaOp+S7tiAqL1xyXG4gIHByaXZhdGUgY2xlYXJGb3JtQ29udHJvbCgpOiB2b2lkIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMucXVlcnlGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5xdWVyeUZvcm0ucmVtb3ZlQ29udHJvbChrZXkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiog55Sf5oiQIHF1ZXJ5Rm9ybSDooajljZUgKi9cclxuICBwcml2YXRlIGdlbmVyYXRlRm9ybShjb250cm9sQ29uZmlnczogQXJyYXk8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJGb3JtQ29udHJvbCgpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbnRyb2xDb25maWdzKSB7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb250cm9sKGNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMucXVlcnlGb3JtLmdldFJhd1ZhbHVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FjaGVQYXJhbXMpIHtcclxuICAgICAgLy8g57yT5a2Y5Zue5pi+5p+l6K+i5p2h5Lu2XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUodGhpcy5jYWNoZVBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb250cm9sQ29uZmlnIGNvbnRyb2zphY3nva5cclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSDmt7vliqDnmoTooajljZXmjqfku7bpu5jorqTlgLzmmK/lkKblj6/ku6Xph43nva7vvIzpu5jorqTkuI3lj6/ku6VcclxuICAgKlxyXG4gICAqIDEuIOeUn+aIkOWNleS4quihqOWNleaOp+S7tuW5tuWwhuWFtua3u+WKoOWIsHF1ZXJ5Rm9ybeS4rVxyXG4gICAqIDIuIOWmguaenOayoeaciXRlbXBsYXRlUmVm5qC55o2uY29udHJvbE5hbWXojrflj5bmipXlvbHnmoR0ZW1wbGF0ZUxpc3TkuK3nmoR0ZW1wbGF0ZVJlZue7mSB0ZW1wbGF0ZVJlZiDotYvlgLxcclxuICAgKlxyXG4gICAqKi9cclxuICBwcml2YXRlIGdlbmVyYXRlQ29udHJvbChcclxuICAgIGNvbmZpZzogTnp4UXVlcnlDb250cm9sT3B0aW9ucyxcclxuICAgIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUgPSBmYWxzZVxyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZy5jb250cm9sTmFtZSkge1xyXG4gICAgICBpZiAoIWNvbmZpZz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgICBjb25zdCBkID0gdGhpcy5jb250cm9sVGVtcGxhdGVMaXN0LmZpbmQoXHJcbiAgICAgICAgICAoZCkgPT4gZC5uenhDb250cm9sID09PSBjb25maWcuY29udHJvbE5hbWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChkKSB7XHJcbiAgICAgICAgICBjb25maWcudGVtcGxhdGVSZWYgPSBkLnRlbXBsYXRlUmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5xdWVyeUZvcm0uc2V0Q29udHJvbChcclxuICAgICAgICBjb25maWcuY29udHJvbE5hbWUsXHJcbiAgICAgICAgY29uZmlnLmNvbnRyb2xJbnN0YW5jZSA/PyB0aGlzLmZiLmNvbnRyb2woY29uZmlnLmRlZmF1bHQgPz8gbnVsbClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICghZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnF1ZXJ5Rm9ybS5nZXQoY29uZmlnLmNvbnRyb2xOYW1lKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHtcclxuICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdFZhbHVlLFxyXG4gICAgICAgICAgW2NvbmZpZy5jb250cm9sTmFtZV06IGNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSAjcXVleUZvcm0gY2xhc3M9XCJuengtcXVlcnktY29udGFpbmVyXCIgbnotZm9ybSBbZm9ybUdyb3VwXT1cInF1ZXJ5Rm9ybVwiPlxuICA8ZGl2IG56LXJvdyBbbnpHdXR0ZXJdPVwibnp4R3V0dGVyXCIgW256SnVzdGlmeV09XCJuenhKdXN0aWZ5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29uZmlnIG9mIGNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWNvbmZpZy5oaWRkZW5cIlxuICAgICAgICBuei1jb2xcbiAgICAgICAgW256U3Bhbl09XCJjb25maWcubnp4U3BhbiB8fCAyNCAvIGxpbmVOdW1iZXJcIlxuICAgICAgICBbaGlkZGVuXT1cImNvbmZpZy5jb2xsYXBzZVwiXG4gICAgICAgIFtuek9yZGVyXT1cImlcIlxuICAgICAgPlxuICAgICAgICA8bnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtXT1cInF1ZXJ5Rm9ybVwiXG4gICAgICAgICAgW2NvbnRyb2xdPVwiY29uZmlnXCJcbiAgICAgICAgPjwvbnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICBbbnpPcmRlcl09XCJjb250cm9scy5sZW5ndGhcIlxuICAgICAgY2xhc3M9XCJuengtcXVlcnktYnRuXCJcbiAgICAgIG56LWNvbFxuICAgICAgW256U3Bhbl09XCJuenhCdG5TcGFuIHx8IDI0IC8gbGluZU51bWJlclwiXG4gICAgPlxuICAgICAgPGRpdiBuei1yb3cgbnpKdXN0aWZ5PVwiZW5kXCIgbnpBbGlnbj1cIm1pZGRsZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgbnpUeXBlPVwicHJpbWFyeVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGl0bGU9XCJFbnRlclwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlYXJjaCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxvY2FsZVsncXVlcnknXSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBuei1idXR0b24gdHlwZT1cImJ1dHRvblwiIHRpdGxlPVwiY3RybCtyXCIgKGNsaWNrKT1cInJlc2V0KClcIj5cbiAgICAgICAgICB7eyBsb2NhbGVbJ3Jlc2V0J10gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdJZj1cIm56eENvbGxhcHNlXCJcbiAgICAgICAgICBuei1idXR0b25cbiAgICAgICAgICBuelR5cGU9XCJsaW5rXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBjb2xsYXBzZVRleHQgfX1cbiAgICAgICAgICA8aSBuei1pY29uIFtuelR5cGVdPVwiY29sbGFwc2VJY29uXCI+PC9pPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -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=
|
|
@@ -390,6 +390,7 @@ class NzxConfigurableQueryComponent {
|
|
|
390
390
|
this.collapseIcon = 'down';
|
|
391
391
|
this.collapseText = '';
|
|
392
392
|
this._queryParams = {};
|
|
393
|
+
/** 重置时用来给查询框默认值 */
|
|
393
394
|
this.defaultValue = {};
|
|
394
395
|
this.cacheParams = {};
|
|
395
396
|
this.destroy$ = new Subject();
|
|
@@ -450,29 +451,34 @@ class NzxConfigurableQueryComponent {
|
|
|
450
451
|
}
|
|
451
452
|
/**
|
|
452
453
|
* 根据controlName设置config值
|
|
454
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
453
455
|
*/
|
|
454
|
-
setControl(controlName, config) {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}, 0);
|
|
456
|
+
setControl(controlName, config, defaultValueResettable = false) {
|
|
457
|
+
const control = this.getControl(controlName);
|
|
458
|
+
if (control) {
|
|
459
|
+
Object.keys(config).forEach((key) => {
|
|
460
|
+
control[key] = config[key];
|
|
461
|
+
});
|
|
462
|
+
this.generateControl(control, defaultValueResettable);
|
|
463
|
+
this.cd.markForCheck();
|
|
464
|
+
}
|
|
464
465
|
}
|
|
465
466
|
/**
|
|
466
467
|
* 动态添加控件
|
|
467
468
|
* @param config 配置项
|
|
468
469
|
* @param position 添加位置 不传为末尾
|
|
470
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
469
471
|
*/
|
|
470
|
-
addControl(config, position) {
|
|
472
|
+
addControl(config, position, defaultValueResettable = false) {
|
|
471
473
|
const control = this.getControl(config.controlName);
|
|
472
474
|
if (!control) {
|
|
473
|
-
if (config
|
|
474
|
-
|
|
475
|
+
if (config && config['hasOwnProperty']('collapse')) {
|
|
476
|
+
const hasCollapseProperty = this.controls.some((i) => i['hasOwnProperty']('collapse'));
|
|
477
|
+
if (hasCollapseProperty) {
|
|
478
|
+
config.collapse = this.controls.some((i) => i.collapse === true);
|
|
479
|
+
}
|
|
475
480
|
}
|
|
481
|
+
this.generateControl(config, defaultValueResettable);
|
|
476
482
|
if (position === void 0 || position === null) {
|
|
477
483
|
this.controls.push(config);
|
|
478
484
|
}
|
|
@@ -522,10 +528,6 @@ class NzxConfigurableQueryComponent {
|
|
|
522
528
|
}
|
|
523
529
|
/** 重置 */
|
|
524
530
|
reset() {
|
|
525
|
-
// if (this.queryForm.invalid) {
|
|
526
|
-
// updateControlStatus(this.queryForm);
|
|
527
|
-
// return;
|
|
528
|
-
// }
|
|
529
531
|
this.queryForm.reset(this.defaultValue);
|
|
530
532
|
this.resetChange.emit(this._queryParams);
|
|
531
533
|
}
|
|
@@ -533,11 +535,11 @@ class NzxConfigurableQueryComponent {
|
|
|
533
535
|
toggleCollapse() {
|
|
534
536
|
for (let index = 0; index < this.controls.length; index++) {
|
|
535
537
|
const config = this.controls[index];
|
|
536
|
-
|
|
538
|
+
const hasProperty = config.hasOwnProperty('collapse');
|
|
539
|
+
if (hasProperty && config.collapse) {
|
|
537
540
|
config.collapse = false;
|
|
538
541
|
}
|
|
539
|
-
else if (config.
|
|
540
|
-
config.collapse === false) {
|
|
542
|
+
else if (hasProperty && !config.collapse) {
|
|
541
543
|
config.collapse = true;
|
|
542
544
|
}
|
|
543
545
|
}
|
|
@@ -564,19 +566,11 @@ class NzxConfigurableQueryComponent {
|
|
|
564
566
|
this.queryForm.removeControl(key);
|
|
565
567
|
});
|
|
566
568
|
}
|
|
567
|
-
/**
|
|
569
|
+
/** 生成 queryForm 表单 */
|
|
568
570
|
generateForm(controlConfigs) {
|
|
569
571
|
this.clearFormControl();
|
|
570
572
|
for (const config of controlConfigs) {
|
|
571
|
-
|
|
572
|
-
const item = this.controlTemplateList.find((directive) => directive.nzxControl === config.controlName);
|
|
573
|
-
if (item) {
|
|
574
|
-
config.templateRef = item.templateRef;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
if (config.controlName) {
|
|
578
|
-
this.queryForm.addControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
579
|
-
}
|
|
573
|
+
this.generateControl(config);
|
|
580
574
|
}
|
|
581
575
|
this.defaultValue = this.queryForm.getRawValue();
|
|
582
576
|
if (this.cacheParams) {
|
|
@@ -585,12 +579,39 @@ class NzxConfigurableQueryComponent {
|
|
|
585
579
|
}
|
|
586
580
|
this.calculateText();
|
|
587
581
|
}
|
|
582
|
+
/**
|
|
583
|
+
*
|
|
584
|
+
* @param controlConfig control配置
|
|
585
|
+
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
586
|
+
*
|
|
587
|
+
* 1. 生成单个表单控件并将其添加到queryForm中
|
|
588
|
+
* 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值
|
|
589
|
+
*
|
|
590
|
+
**/
|
|
591
|
+
generateControl(config, defaultValueResettable = false) {
|
|
592
|
+
if (config.controlName) {
|
|
593
|
+
if (!config?.templateRef) {
|
|
594
|
+
const d = this.controlTemplateList.find((d) => d.nzxControl === config.controlName);
|
|
595
|
+
if (d) {
|
|
596
|
+
config.templateRef = d.templateRef;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
this.queryForm.setControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
600
|
+
if (!defaultValueResettable) {
|
|
601
|
+
const control = this.queryForm.get(config.controlName);
|
|
602
|
+
this.defaultValue = {
|
|
603
|
+
...this.defaultValue,
|
|
604
|
+
[config.controlName]: control.value,
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
588
609
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxConfigurableQueryComponent, deps: [{ token: i1$1.NzI18nService }, { token: i2.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
589
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 [
|
|
610
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", 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 }); }
|
|
590
611
|
}
|
|
591
612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxConfigurableQueryComponent, decorators: [{
|
|
592
613
|
type: Component,
|
|
593
|
-
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 [
|
|
614
|
+
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"] }]
|
|
594
615
|
}], ctorParameters: () => [{ type: i1$1.NzI18nService }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { controls: [{
|
|
595
616
|
type: Input
|
|
596
617
|
}], 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 selector: 'nzx-date-picker-control',\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 selector: 'nzx-input-control',\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 selector: 'nzx-range-picker-control',\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 selector: 'nzx-select-control',\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 selector: 'nzx-template-control',\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 { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzxConfigurableQueryItemComponent } from './configurable-query-item/configurable-query-item.component';\nimport { NzxConfigurableQueryComponent } from './configurable-query.component';\nimport { NzxControlDirective } from './control.directive';\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';\nimport { NzxQueryConfigService, QUERY_CONFIG } from './query-config.service';\nimport { NzxQueryConfig } from './type';\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,CAAsB;KAAI;+GAF7C,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;gFAEU,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;ACFR;;AAEG;MAEmB,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;8BAEC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;ACMF,MAAO,6BAA8B,SAAQ,kBAAkB,CAAA;+GAAxD,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;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,gGAAA,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,EAAA;;4FAEU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAbzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA,CAAA;;;ACCK,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;+GAAnD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;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,EAAA;;4FAEU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,EAAA,CAAA;AACF,iBAAA,CAAA;;;ACAK,MAAO,8BAA+B,SAAQ,kBAAkB,CAAA;+GAAzD,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;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,gGAAA,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,EAAA;;4FAEU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAZ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA,CAAA;;;ACSK,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;+GAApD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,oBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;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,EAAA;;4FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACF,iBAAA,CAAA;;;ACPK,MAAO,2BAA4B,SAAQ,kBAAkB,CAAA;+GAAtD,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;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,EAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAZvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA,CAAA;;;MCXY,YAAY,GAAG,IAAI,cAAc,CAC5C,cAAc,EACd;AAUF;;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,CAAC;QAEF,IAAa,CAAA,aAAA,GAAG,IAAI,eAAe,CACjC,IAAI,CAAC,eAAe,CACrB,CAAC;QAOA,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,CAAC;AACzB,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;KACF;AAED,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,CAAC;QACzE,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,CAAiB,cAAA,EAAA,WAAW,CAAC,GAAG,mBAAmB,CAAC;SAC3D;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACxC;AAED,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,CAAC;QAC7D,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;SAC1E;aAAM;YACL,MAAM,CAAA,cAAA,EAAiB,GAAG,CAAA,aAAA,CAAe,CAAC;SAC3C;KACF;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC/C;AAlDU,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,EAAA;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,EAAA;;4FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;0BAe7B,QAAQ;;0BACR,MAAM;2BAAC,YAAY,CAAA;;;MCDX,iCAAiC,CAAA;AAS5C,IAAA,WAAA,CAAoB,qBAA4C,EAAA;QAA5C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;AAFxD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAE6B;IAEpE,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,CAAC,aAAa;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B;KACF;AAEO,IAAA,aAAa,CAAC,IAA2B,EAAA;AAC/C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAC3D,MAAM,CAAC,SAAgB,CACxB,CAAC;YACF,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/C,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1C;aAAM;AACL,YAAA,MAAM,kBAAkB,IAAI,CAAC,OAAO,CAAC,WAAW,iBAAiB,CAAC;SACnE;KACF;+GAtCU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,CAAA;;;;;;;;;;;;;;;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,EAAA;;4FAEU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAnB7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACF,iBAAA,CAAA;uFAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGE,mBAAmB,EAAA,CAAA;sBAD1B,SAAS;uBAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;;;ACTpE;;;AAGG;MASU,6BAA6B,CAAA;;AAwBxC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;IACD,IAAI,WAAW,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAChE;AAiBD,IAAA,WAAA,CACU,IAAmB,EACnB,EAAe,EACf,EAAqB,EAAA;QAFrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;QACnB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;;QAjDtB,IAAQ,CAAA,QAAA,GAAkC,EAAE,CAAC;;QAE7C,IAAU,CAAA,UAAA,GAAc,OAAO,CAAC;;QAEhC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;;QAEtB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;;QAEvB,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;;QAEjC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAElB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;;AAGhB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;;AAEjD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;QAiB3D,IAAY,CAAA,YAAA,GAAW,MAAM,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAElB,IAAY,CAAA,YAAA,GAAmB,EAAE,CAAC;QAClC,IAAY,CAAA,YAAA,GAAmB,EAAE,CAAC;QAClC,IAAW,CAAA,WAAA,GAAmB,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAWrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACpC;AAED,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,CAAC;AAClD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAC7B;SACF;KACF;IAED,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,CAAC;AAE/C,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,YAAY;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;YACjB,IAAI,CAAC,YAAY,GAAG;AAClB,gBAAA,GAAG,GAAG;gBACN,GAAG,IAAI,CAAC,WAAW;aACpB,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,SAAS,CAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;AAC/D,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,gBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;oBACzB,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,EAAE,CAAC;iBACf;;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,CAAC;oBACxB,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;AACH,aAAC,CAAC,CAAC;SACN;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;;AAGD,IAAA,cAAc,CAAC,WAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;KACxC;AAED;;AAEG;IACH,UAAU,CACR,WAAmB,EACnB,MAAuC,EAAA;QAEvC,UAAU,CAAC,MAAK;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;oBACjC,OAAe,CAAC,GAAG,CAAC,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;AAC/C,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;aACxB;SACF,EAAE,CAAC,CAAC,CAAC;KACP;AAED;;;;AAIG;IACH,UAAU,CACR,MAA8B,EAC9B,QAA6B,EAAA;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,MAAM,CAAC,WAAW,EAAE;gBACtB,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,CAAC;aACH;YACD,IAAI,QAAQ,KAAK,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC5C,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B;iBAAM;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;aAC/C;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;AACL,YAAA,MAAM,CAAsB,mBAAA,EAAA,MAAM,CAAC,WAAW,mBAAmB,CAAC;SACnE;KACF;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,WAAmB,EAAA;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,WAAW,CACrC,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM;YACL,MAAM,CAAA,mBAAA,EAAsB,WAAW,CAAA,WAAA,CAAa,CAAC;SACtD;KACF;AAED;;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,CAAC;KAC3E;AAED;;;AAGG;AACH,IAAA,cAAc,CACZ,IAA2C,EAAA;QAE3C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACjC;;IAGD,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC1B,YAAA,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;;IAGD,KAAK,GAAA;;;;;QAKH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;;IAGD,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,CAAC;AACpC,YAAA,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AAChE,gBAAA,MAAM,CAAC,QAAoB,GAAG,KAAK,CAAC;aACtC;AAAM,iBAAA,IACL,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC;AAChC,gBAAA,MAAM,CAAC,QAAoB,KAAK,KAAK,EACtC;AACA,gBAAA,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aACxB;SACF;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;IAEO,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,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SACxC;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC1C;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;;IAGO,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,CAAC;AACpC,SAAC,CAAC,CAAC;KACJ;;AAGO,IAAA,YAAY,CAAC,cAA6C,EAAA;QAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;AACnC,YAAA,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACxC,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,WAAW,CAC3D,CAAC;gBACF,IAAI,IAAI,EAAE;AACR,oBAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;iBACvC;aACF;AACD,YAAA,IAAI,MAAM,CAAC,WAAW,EAAE;gBACtB,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,CAAC;aACH;SACF;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;YAEpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;+GA9RU,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,EAAA;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,EA+CvB,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,ECvFtC,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,EAAA;;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,CAAA;8IAMvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAyBwB,UAAU,EAAA,CAAA;sBAAxC,SAAS;uBAAC,UAAU,CAAA;gBAErB,mBAAmB,EAAA,CAAA;sBADlB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;MEpChD,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,CAAC;KACH;IAED,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,CAAC;KACH;+GA5BU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;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,EAAA;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,EAAA;;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,CAAA;;;AClDD;;AAEG;;;;"}
|
|
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 selector: 'nzx-date-picker-control',\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 selector: 'nzx-input-control',\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 selector: 'nzx-range-picker-control',\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 selector: 'nzx-select-control',\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 selector: 'nzx-template-control',\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 { NzI18nModule } from 'ng-zorro-antd/i18n';\nimport { NzxConfigurableQueryItemComponent } from './configurable-query-item/configurable-query-item.component';\nimport { NzxConfigurableQueryComponent } from './configurable-query.component';\nimport { NzxControlDirective } from './control.directive';\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';\nimport { NzxQueryConfigService, QUERY_CONFIG } from './query-config.service';\nimport { NzxQueryConfig } from './type';\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-zorro-antd-extension",
|
|
3
|
-
"version": "18.1.
|
|
3
|
+
"version": "18.1.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "An extension based on ng-zorro-antd",
|
|
6
6
|
"keywords": [
|
|
@@ -58,6 +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
|
+
"./configurable-query": {
|
|
62
|
+
"types": "./configurable-query/index.d.ts",
|
|
63
|
+
"esm2022": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
64
|
+
"esm": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
65
|
+
"default": "./fesm2022/ng-zorro-antd-extension-configurable-query.mjs"
|
|
66
|
+
},
|
|
67
|
+
"./i18n": {
|
|
68
|
+
"types": "./i18n/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/i18n/ng-zorro-antd-extension-i18n.mjs",
|
|
70
|
+
"esm": "./esm2022/i18n/ng-zorro-antd-extension-i18n.mjs",
|
|
71
|
+
"default": "./fesm2022/ng-zorro-antd-extension-i18n.mjs"
|
|
72
|
+
},
|
|
61
73
|
"./checkbox": {
|
|
62
74
|
"types": "./checkbox/index.d.ts",
|
|
63
75
|
"esm2022": "./esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs",
|
|
@@ -70,18 +82,6 @@
|
|
|
70
82
|
"esm": "./esm2022/editable/ng-zorro-antd-extension-editable.mjs",
|
|
71
83
|
"default": "./fesm2022/ng-zorro-antd-extension-editable.mjs"
|
|
72
84
|
},
|
|
73
|
-
"./i18n": {
|
|
74
|
-
"types": "./i18n/index.d.ts",
|
|
75
|
-
"esm2022": "./esm2022/i18n/ng-zorro-antd-extension-i18n.mjs",
|
|
76
|
-
"esm": "./esm2022/i18n/ng-zorro-antd-extension-i18n.mjs",
|
|
77
|
-
"default": "./fesm2022/ng-zorro-antd-extension-i18n.mjs"
|
|
78
|
-
},
|
|
79
|
-
"./configurable-query": {
|
|
80
|
-
"types": "./configurable-query/index.d.ts",
|
|
81
|
-
"esm2022": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
82
|
-
"esm": "./esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs",
|
|
83
|
-
"default": "./fesm2022/ng-zorro-antd-extension-configurable-query.mjs"
|
|
84
|
-
},
|
|
85
85
|
"./jigsaw": {
|
|
86
86
|
"types": "./jigsaw/index.d.ts",
|
|
87
87
|
"esm2022": "./esm2022/jigsaw/ng-zorro-antd-extension-jigsaw.mjs",
|
|
@@ -16,7 +16,7 @@ export declare abstract class NzxAbstractTableSelect<T extends PageTableRequire>
|
|
|
16
16
|
nzxBtnSpan: number;
|
|
17
17
|
nzxCollapse: boolean;
|
|
18
18
|
list: T[];
|
|
19
|
-
nzxQueryParamsChange: EventEmitter<
|
|
19
|
+
nzxQueryParamsChange: EventEmitter<NzxQueryParams | NzxTableQueryParams>;
|
|
20
20
|
/**
|
|
21
21
|
* 组件模式,支持多选单选,默认单选
|
|
22
22
|
* - single 单选
|