ng-zorro-antd-extension 18.1.3 → 19.0.0
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/README.md +2 -1
- package/acl/nzx-acl.directive.d.ts +1 -1
- package/acl/nzx-acl.module.d.ts +1 -2
- package/blank-field/blank-field.component.d.ts +1 -1
- package/blank-field/blank-field.module.d.ts +1 -2
- package/checkbox/checkbox-group.component.d.ts +5 -16
- package/checkbox/checkbox.module.d.ts +1 -4
- package/configurable-query/configurable-query-item/configurable-query-item.component.d.ts +1 -1
- package/configurable-query/configurable-query.component.d.ts +1 -1
- package/configurable-query/configurable-query.module.d.ts +3 -21
- package/configurable-query/control.directive.d.ts +1 -1
- package/configurable-query/controls/abstract.control.d.ts +3 -2
- package/configurable-query/controls/date-picker.control.d.ts +1 -1
- package/configurable-query/controls/input.control.d.ts +1 -1
- package/configurable-query/controls/range-picker.control.d.ts +1 -1
- package/configurable-query/controls/select.control.d.ts +1 -1
- package/configurable-query/controls/template.control.d.ts +1 -1
- package/dynamic-form/config/dynamic-form-config.d.ts +18 -0
- package/dynamic-form/controls/abstract.control.d.ts +11 -0
- package/dynamic-form/controls/date-picker.control.d.ts +6 -0
- package/dynamic-form/controls/input.control.d.ts +6 -0
- package/dynamic-form/controls/range-picker.control.d.ts +6 -0
- package/dynamic-form/controls/select.control.d.ts +6 -0
- package/dynamic-form/controls/template.control.d.ts +6 -0
- package/dynamic-form/dynamic-form-item/dynamic-form-item.component.d.ts +12 -0
- package/dynamic-form/dynamic-form.component.d.ts +5 -0
- package/dynamic-form/dynamic-form.module.d.ts +17 -0
- package/dynamic-form/public-api.d.ts +3 -1
- package/dynamic-form/wrapper/control/abstract-control-wrapper.d.ts +12 -0
- package/dynamic-form/wrapper/control/built-in-control-wrapper.d.ts +7 -0
- package/dynamic-form/wrapper/item/abstract-item-wrapper.d.ts +14 -0
- package/dynamic-form/wrapper/item/built-in-item-wrapper.d.ts +6 -0
- package/dynamic-form/wrapper/label/abstract-label-wrapper.d.ts +5 -0
- package/dynamic-form/wrapper/label/built-in-label-wrapper.d.ts +6 -0
- package/editable/editable.component.d.ts +1 -1
- package/editable/editable.module.d.ts +1 -6
- package/fesm2022/ng-zorro-antd-extension-acl.mjs +11 -13
- package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +19 -17
- package/fesm2022/ng-zorro-antd-extension-blank-field.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +28 -37
- package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +98 -127
- package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs +3 -3
- package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs +423 -10
- package/fesm2022/ng-zorro-antd-extension-dynamic-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-editable.mjs +23 -33
- package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +9 -10
- package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs +26 -26
- package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-print.mjs +23 -21
- package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +22 -22
- package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +11 -12
- package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs +36 -53
- package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs +38 -40
- package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +8 -10
- package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-trim.mjs +8 -9
- package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +11 -13
- package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
- package/jigsaw/jigsaw.component.d.ts +1 -1
- package/jigsaw/jigsaw.module.d.ts +1 -3
- package/package.json +9 -51
- package/pipes/map.pipe.d.ts +1 -1
- package/pipes/pipes.module.d.ts +1 -1
- package/pipes/safe-html.pipe.d.ts +1 -1
- package/pipes/safe-null.pipe.d.ts +1 -1
- package/pipes/safe-resource-url.pipe.d.ts +1 -1
- package/pipes/safe-script.pipe.d.ts +1 -1
- package/pipes/safe-style.pipe.d.ts +1 -1
- package/pipes/safe-url.pipe.d.ts +1 -1
- package/print/nzx-print-content.directive.d.ts +1 -1
- package/print/nzx-print-v.component.d.ts +1 -1
- package/print/nzx-print.component.d.ts +1 -1
- package/print/nzx-print.directive.d.ts +1 -1
- package/print/nzx-print.module.d.ts +1 -4
- package/schematics/ng-add/index.js +1 -2
- package/schematics/ng-add/index.js.map +1 -1
- package/simple-table/directive/expand.directive.d.ts +1 -1
- package/simple-table/directive/td.directive.d.ts +1 -1
- package/simple-table/directive/th.directive.d.ts +1 -1
- package/simple-table/simple-table.component.d.ts +1 -1
- package/simple-table/simple-table.module.d.ts +1 -3
- package/table-adaptor/page-table-basic.d.ts +1 -1
- package/table-adaptor/table-adaptor.directive.d.ts +1 -1
- package/table-adaptor/table-adaptor.module.d.ts +1 -1
- package/table-form/directive/table-expand.directive.d.ts +1 -1
- package/table-form/directive/table-td.directive.d.ts +1 -1
- package/table-form/directive/table-th.directive.d.ts +1 -1
- package/table-form/table-form.component.d.ts +1 -1
- package/table-form/table-form.module.d.ts +1 -10
- package/table-select/abstract-table-select.d.ts +2 -2
- package/table-select/key.directive.d.ts +1 -1
- package/table-select/nzx-table-select.module.d.ts +1 -6
- package/table-select/page-table-select/page-table-select.component.d.ts +1 -1
- package/table-select/table-select/table-select.component.d.ts +1 -1
- package/timer-button/timer-button.directive.d.ts +1 -1
- package/timer-button/timer-button.module.d.ts +1 -2
- package/trim/trim.directive.d.ts +1 -1
- package/trim/trim.module.d.ts +1 -1
- package/wang-editor/wang-editor.component.d.ts +1 -1
- package/wang-editor/wang-editor.module.d.ts +1 -2
- package/wang-editor/wang-toolbar.component.d.ts +1 -1
- package/dynamic-form/nzx-dynamic-form.module.d.ts +0 -9
- package/esm2022/acl/ng-zorro-antd-extension-acl.mjs +0 -5
- package/esm2022/acl/nzx-acl.directive.mjs +0 -80
- package/esm2022/acl/nzx-acl.module.mjs +0 -25
- package/esm2022/acl/nzx-acl.service.mjs +0 -45
- package/esm2022/acl/public-api.mjs +0 -8
- package/esm2022/blank-field/blank-field.component.mjs +0 -52
- package/esm2022/blank-field/blank-field.module.mjs +0 -18
- package/esm2022/blank-field/ng-zorro-antd-extension-blank-field.mjs +0 -5
- package/esm2022/blank-field/public-api.mjs +0 -7
- package/esm2022/checkbox/checkbox-group.component.mjs +0 -108
- package/esm2022/checkbox/checkbox.module.mjs +0 -20
- package/esm2022/checkbox/ng-zorro-antd-extension-checkbox.mjs +0 -5
- package/esm2022/checkbox/public-api.mjs +0 -7
- package/esm2022/configurable-query/configurable-query-item/configurable-query-item.component.mjs +0 -85
- package/esm2022/configurable-query/configurable-query.component.mjs +0 -309
- package/esm2022/configurable-query/configurable-query.module.mjs +0 -111
- package/esm2022/configurable-query/control.directive.mjs +0 -18
- package/esm2022/configurable-query/controls/abstract.control.mjs +0 -17
- package/esm2022/configurable-query/controls/date-picker.control.mjs +0 -36
- package/esm2022/configurable-query/controls/input.control.mjs +0 -35
- package/esm2022/configurable-query/controls/range-picker.control.mjs +0 -34
- package/esm2022/configurable-query/controls/select.control.mjs +0 -50
- package/esm2022/configurable-query/controls/template.control.mjs +0 -32
- package/esm2022/configurable-query/ng-zorro-antd-extension-configurable-query.mjs +0 -5
- package/esm2022/configurable-query/public-api.mjs +0 -7
- package/esm2022/configurable-query/query-config.service.mjs +0 -68
- package/esm2022/configurable-query/type.mjs +0 -2
- package/esm2022/core/config/config.mjs +0 -6
- package/esm2022/core/config/config.service.mjs +0 -84
- package/esm2022/core/config/ng-zorro-antd-extension-core-config.mjs +0 -5
- package/esm2022/core/config/public-api.mjs +0 -3
- package/esm2022/dynamic-form/ng-zorro-antd-extension-dynamic-form.mjs +0 -5
- package/esm2022/dynamic-form/nzx-dynamic-form.module.mjs +0 -23
- package/esm2022/dynamic-form/public-api.mjs +0 -6
- package/esm2022/editable/editable.component.mjs +0 -140
- package/esm2022/editable/editable.module.mjs +0 -36
- package/esm2022/editable/ng-zorro-antd-extension-editable.mjs +0 -5
- package/esm2022/editable/public-api.mjs +0 -3
- package/esm2022/i18n/languages/en_US.mjs +0 -10
- package/esm2022/i18n/languages/zh_CN.mjs +0 -10
- package/esm2022/i18n/ng-zorro-antd-extension-i18n.mjs +0 -5
- package/esm2022/i18n/nz-i18n.interface.mjs +0 -2
- package/esm2022/i18n/public-api.mjs +0 -4
- package/esm2022/jigsaw/jigsaw.component.mjs +0 -257
- package/esm2022/jigsaw/jigsaw.module.mjs +0 -19
- package/esm2022/jigsaw/ng-zorro-antd-extension-jigsaw.mjs +0 -5
- package/esm2022/jigsaw/public-api.mjs +0 -7
- package/esm2022/ng-zorro-antd-extension.mjs +0 -5
- package/esm2022/pipes/map.pipe.mjs +0 -24
- package/esm2022/pipes/ng-zorro-antd-extension-pipes.mjs +0 -5
- package/esm2022/pipes/pipes.module.mjs +0 -50
- package/esm2022/pipes/public-api.mjs +0 -13
- package/esm2022/pipes/safe-html.pipe.mjs +0 -20
- package/esm2022/pipes/safe-null.pipe.mjs +0 -30
- package/esm2022/pipes/safe-resource-url.pipe.mjs +0 -20
- package/esm2022/pipes/safe-script.pipe.mjs +0 -20
- package/esm2022/pipes/safe-style.pipe.mjs +0 -20
- package/esm2022/pipes/safe-url.pipe.mjs +0 -34
- package/esm2022/print/ng-zorro-antd-extension-print.mjs +0 -5
- package/esm2022/print/nzx-print-content.directive.mjs +0 -22
- package/esm2022/print/nzx-print-v.component.mjs +0 -301
- package/esm2022/print/nzx-print.component.mjs +0 -190
- package/esm2022/print/nzx-print.directive.mjs +0 -92
- package/esm2022/print/nzx-print.module.mjs +0 -39
- package/esm2022/print/public-api.mjs +0 -10
- package/esm2022/public-api.mjs +0 -5
- package/esm2022/simple-table/directive/expand.directive.mjs +0 -16
- package/esm2022/simple-table/directive/td.directive.mjs +0 -18
- package/esm2022/simple-table/directive/th.directive.mjs +0 -19
- package/esm2022/simple-table/ng-zorro-antd-extension-simple-table.mjs +0 -5
- package/esm2022/simple-table/public-api.mjs +0 -10
- package/esm2022/simple-table/simple-table.component.mjs +0 -229
- package/esm2022/simple-table/simple-table.module.mjs +0 -38
- package/esm2022/table-adaptor/ng-zorro-antd-extension-table-adaptor.mjs +0 -5
- package/esm2022/table-adaptor/page-table-basic.mjs +0 -22
- package/esm2022/table-adaptor/public-api.mjs +0 -8
- package/esm2022/table-adaptor/table-adaptor.directive.mjs +0 -173
- package/esm2022/table-adaptor/table-adaptor.module.mjs +0 -17
- package/esm2022/table-form/directive/table-expand.directive.mjs +0 -18
- package/esm2022/table-form/directive/table-td.directive.mjs +0 -18
- package/esm2022/table-form/directive/table-th.directive.mjs +0 -20
- package/esm2022/table-form/ng-zorro-antd-extension-table-form.mjs +0 -5
- package/esm2022/table-form/public-api.mjs +0 -11
- package/esm2022/table-form/table-form.component.mjs +0 -370
- package/esm2022/table-form/table-form.module.mjs +0 -71
- package/esm2022/table-form/type.mjs +0 -2
- package/esm2022/table-select/abstract-table-select.mjs +0 -140
- package/esm2022/table-select/key.directive.mjs +0 -21
- package/esm2022/table-select/ng-zorro-antd-extension-table-select.mjs +0 -5
- package/esm2022/table-select/nzx-table-select.module.mjs +0 -50
- package/esm2022/table-select/page-table-select/page-table-select.component.mjs +0 -58
- package/esm2022/table-select/public-api.mjs +0 -11
- package/esm2022/table-select/table-select/table-select.component.mjs +0 -39
- package/esm2022/table-select/type.mjs +0 -2
- package/esm2022/timer-button/ng-zorro-antd-extension-timer-button.mjs +0 -5
- package/esm2022/timer-button/public-api.mjs +0 -7
- package/esm2022/timer-button/timer-button.directive.mjs +0 -69
- package/esm2022/timer-button/timer-button.module.mjs +0 -18
- package/esm2022/trim/ng-zorro-antd-extension-trim.mjs +0 -5
- package/esm2022/trim/public-api.mjs +0 -7
- package/esm2022/trim/trim.directive.mjs +0 -123
- package/esm2022/trim/trim.module.mjs +0 -17
- package/esm2022/types/common.mjs +0 -2
- package/esm2022/types/ng-zorro-antd-extension-types.mjs +0 -5
- package/esm2022/types/public-api.mjs +0 -6
- package/esm2022/util/lib/cloneDeep.mjs +0 -49
- package/esm2022/util/lib/fileUtil.mjs +0 -51
- package/esm2022/util/lib/getElementByTag.mjs +0 -38
- package/esm2022/util/lib/isArray.mjs +0 -17
- package/esm2022/util/lib/isDate.mjs +0 -4
- package/esm2022/util/lib/isEmpty.mjs +0 -19
- package/esm2022/util/lib/isNumber.mjs +0 -12
- package/esm2022/util/lib/isObject.mjs +0 -10
- package/esm2022/util/lib/isString.mjs +0 -11
- package/esm2022/util/lib/toNumber.mjs +0 -18
- package/esm2022/util/lib/toString.mjs +0 -16
- package/esm2022/util/lib/trimObject.mjs +0 -15
- package/esm2022/util/lib/updateControlStatus.mjs +0 -47
- package/esm2022/util/ng-zorro-antd-extension-util.mjs +0 -5
- package/esm2022/util/public-api.mjs +0 -18
- package/esm2022/wang-editor/ng-zorro-antd-extension-wang-editor.mjs +0 -5
- package/esm2022/wang-editor/public-api.mjs +0 -9
- package/esm2022/wang-editor/type.mjs +0 -2
- package/esm2022/wang-editor/wang-editor.component.mjs +0 -235
- package/esm2022/wang-editor/wang-editor.module.mjs +0 -19
- package/esm2022/wang-editor/wang-toolbar.component.mjs +0 -57
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, Input, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/forms";
|
|
5
|
-
import * as i2 from "ng-zorro-antd/checkbox";
|
|
6
|
-
/**
|
|
7
|
-
* nzx-checkbox-group
|
|
8
|
-
* 自定义选择框,选择时传出的值为数组形式如:[1,2]
|
|
9
|
-
*/
|
|
10
|
-
export class NzxCheckboxGroupComponent {
|
|
11
|
-
set checkOptions(value) {
|
|
12
|
-
this._checkOptions = value.map((i) => {
|
|
13
|
-
return { ...i, checked: false };
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
constructor(cd) {
|
|
17
|
-
this.cd = cd;
|
|
18
|
-
this._checkOptions = [];
|
|
19
|
-
/**
|
|
20
|
-
* 自定义函数用来格式化输输入内容用来回显
|
|
21
|
-
*/
|
|
22
|
-
this.customFormateInFn = (value) => value;
|
|
23
|
-
/**
|
|
24
|
-
* 自定义函数用来格式化输出内容用来接口入参
|
|
25
|
-
*/
|
|
26
|
-
this.customFormateOutFn = (checkedList) => checkedList;
|
|
27
|
-
this.nzDisabled = false;
|
|
28
|
-
this.propagateChange = (_) => { };
|
|
29
|
-
}
|
|
30
|
-
writeValue(v) {
|
|
31
|
-
this._checkOptions.forEach((i) => (i['checked'] = false));
|
|
32
|
-
this.templateValue = v;
|
|
33
|
-
this._updateView();
|
|
34
|
-
}
|
|
35
|
-
/**更新视图 */
|
|
36
|
-
updateView() {
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
this._updateView();
|
|
39
|
-
}, 0);
|
|
40
|
-
}
|
|
41
|
-
registerOnChange(fn) {
|
|
42
|
-
this.propagateChange = fn;
|
|
43
|
-
}
|
|
44
|
-
registerOnTouched(fn) { }
|
|
45
|
-
setDisabledState(isDisabled) {
|
|
46
|
-
this.nzDisabled = isDisabled;
|
|
47
|
-
this.cd.markForCheck();
|
|
48
|
-
}
|
|
49
|
-
valueChange(value) {
|
|
50
|
-
const checkedList = value.filter((i) => i['checked']).map((i) => i.value);
|
|
51
|
-
this.propagateChange(this.customFormateOutFn(checkedList));
|
|
52
|
-
}
|
|
53
|
-
_updateView() {
|
|
54
|
-
let list = this.customFormateInFn(this.templateValue) || [];
|
|
55
|
-
list.forEach((value) => {
|
|
56
|
-
const index = this._checkOptions.findIndex((i) => i.value === value);
|
|
57
|
-
if (index > -1) {
|
|
58
|
-
this._checkOptions[index]['checked'] = true;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
this.cd.markForCheck();
|
|
62
|
-
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxCheckboxGroupComponent, selector: "nzx-checkbox-group", inputs: { checkOptions: "checkOptions", customFormateInFn: "customFormateInFn", customFormateOutFn: "customFormateOutFn" }, providers: [
|
|
65
|
-
{
|
|
66
|
-
provide: NG_VALUE_ACCESSOR,
|
|
67
|
-
useExisting: forwardRef(() => NzxCheckboxGroupComponent),
|
|
68
|
-
multi: true,
|
|
69
|
-
},
|
|
70
|
-
], exportAs: ["NzxCheckboxGroup"], ngImport: i0, template: `
|
|
71
|
-
<nz-checkbox-group
|
|
72
|
-
[nzDisabled]="nzDisabled"
|
|
73
|
-
[ngModel]="_checkOptions"
|
|
74
|
-
(ngModelChange)="valueChange($event)"
|
|
75
|
-
>
|
|
76
|
-
</nz-checkbox-group>
|
|
77
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzDisabled"], exportAs: ["nzCheckboxGroup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
|
-
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxGroupComponent, decorators: [{
|
|
80
|
-
type: Component,
|
|
81
|
-
args: [{
|
|
82
|
-
selector: 'nzx-checkbox-group',
|
|
83
|
-
exportAs: 'NzxCheckboxGroup',
|
|
84
|
-
template: `
|
|
85
|
-
<nz-checkbox-group
|
|
86
|
-
[nzDisabled]="nzDisabled"
|
|
87
|
-
[ngModel]="_checkOptions"
|
|
88
|
-
(ngModelChange)="valueChange($event)"
|
|
89
|
-
>
|
|
90
|
-
</nz-checkbox-group>
|
|
91
|
-
`,
|
|
92
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
93
|
-
providers: [
|
|
94
|
-
{
|
|
95
|
-
provide: NG_VALUE_ACCESSOR,
|
|
96
|
-
useExisting: forwardRef(() => NzxCheckboxGroupComponent),
|
|
97
|
-
multi: true,
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
}]
|
|
101
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { checkOptions: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], customFormateInFn: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], customFormateOutFn: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFJekU7OztHQUdHO0FBcUJILE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsSUFBYSxZQUFZLENBQUMsS0FBeUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUF5QkQsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUF2QnpDLGtCQUFhLEdBS1IsRUFBRSxDQUFDO1FBRVI7O1dBRUc7UUFDTSxzQkFBaUIsR0FBK0IsQ0FDdkQsS0FBVSxFQUNFLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDdkI7O1dBRUc7UUFDTSx1QkFBa0IsR0FBd0IsQ0FBQyxXQUFnQixFQUFFLEVBQUUsQ0FDdEUsV0FBVyxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVYLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUVHLENBQUM7SUFFN0MsVUFBVSxDQUFDLENBQTRCO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVTtJQUNWLFVBQVU7UUFDUixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPLElBQVMsQ0FBQztJQUVuQyxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQ1QsS0FJRTtRQUVGLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNyRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0E5RVUseUJBQXlCO21HQUF6Qix5QkFBeUIseUtBUnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBEQWZTOzs7Ozs7O0dBT1Q7OzRGQVVVLHlCQUF5QjtrQkFwQnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFOzs7Ozs7O0dBT1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7c0ZBSWMsWUFBWTtzQkFBeEIsS0FBSztnQkFnQkcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQU1HLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE56eE9wdGlvbnMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi90eXBlcyc7XG5cbi8qKlxuICogbnp4LWNoZWNrYm94LWdyb3VwXG4gKiDoh6rlrprkuYnpgInmi6nmoYYs6YCJ5oup5pe25Lyg5Ye655qE5YC85Li65pWw57uE5b2i5byP5aaC77yaWzEsMl1cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LWNoZWNrYm94LWdyb3VwJyxcbiAgZXhwb3J0QXM6ICdOenhDaGVja2JveEdyb3VwJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bnotY2hlY2tib3gtZ3JvdXBcbiAgICAgIFtuekRpc2FibGVkXT1cIm56RGlzYWJsZWRcIlxuICAgICAgW25nTW9kZWxdPVwiX2NoZWNrT3B0aW9uc1wiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9uei1jaGVja2JveC1ncm91cD5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTnp4Q2hlY2tib3hHcm91cENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOenhDaGVja2JveEdyb3VwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgQElucHV0KCkgc2V0IGNoZWNrT3B0aW9ucyh2YWx1ZTogQXJyYXk8Tnp4T3B0aW9uczxzdHJpbmcgfCBudW1iZXI+Pikge1xuICAgIHRoaXMuX2NoZWNrT3B0aW9ucyA9IHZhbHVlLm1hcCgoaSkgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4uaSwgY2hlY2tlZDogZmFsc2UgfTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jaGVja09wdGlvbnM6IEFycmF5PHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGNoZWNrZWQ/OiBib29sZWFuO1xuICB9PiA9IFtdO1xuXG4gIC8qKlxuICAgKiDoh6rlrprkuYnlh73mlbDnlKjmnaXmoLzlvI/ljJbovpPovpPlhaXlhoXlrrnnlKjmnaXlm57mmL5cbiAgICovXG4gIEBJbnB1dCgpIGN1c3RvbUZvcm1hdGVJbkZuOiAodmFsdWU6IGFueSkgPT4gQXJyYXk8YW55PiA9IChcbiAgICB2YWx1ZTogYW55XG4gICk6IEFycmF5PGFueT4gPT4gdmFsdWU7XG4gIC8qKlxuICAgKiDoh6rlrprkuYnlh73mlbDnlKjmnaXmoLzlvI/ljJbovpPlh7rlhoXlrrnnlKjmnaXmjqXlj6PlhaXlj4JcbiAgICovXG4gIEBJbnB1dCgpIGN1c3RvbUZvcm1hdGVPdXRGbjogKHZhbHVlOiBhbnkpID0+IGFueSA9IChjaGVja2VkTGlzdDogYW55KSA9PlxuICAgIGNoZWNrZWRMaXN0O1xuXG4gIG56RGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVZhbHVlOiBhbnk7XG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgd3JpdGVWYWx1ZSh2OiAoc3RyaW5nIHwgbnVtYmVyKVtdIHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5fY2hlY2tPcHRpb25zLmZvckVhY2goKGkpID0+IChpWydjaGVja2VkJ10gPSBmYWxzZSkpO1xuICAgIHRoaXMudGVtcGxhdGVWYWx1ZSA9IHY7XG4gICAgdGhpcy5fdXBkYXRlVmlldygpO1xuICB9XG5cbiAgLyoq5pu05paw6KeG5Zu+ICovXG4gIHVwZGF0ZVZpZXcoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVWaWV3KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5uekRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2UoXG4gICAgdmFsdWU6IEFycmF5PHtcbiAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuICAgICAgY2hlY2tlZD86IGJvb2xlYW47XG4gICAgfT5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2hlY2tlZExpc3QgPSB2YWx1ZS5maWx0ZXIoKGkpID0+IGlbJ2NoZWNrZWQnXSkubWFwKChpKSA9PiBpLnZhbHVlKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmN1c3RvbUZvcm1hdGVPdXRGbihjaGVja2VkTGlzdCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmlldygpIHtcbiAgICBsZXQgbGlzdCA9IHRoaXMuY3VzdG9tRm9ybWF0ZUluRm4odGhpcy50ZW1wbGF0ZVZhbHVlKSB8fCBbXTtcbiAgICBsaXN0LmZvckVhY2goKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY2hlY2tPcHRpb25zLmZpbmRJbmRleCgoaSkgPT4gaS52YWx1ZSA9PT0gdmFsdWUpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tPcHRpb25zW2luZGV4XVsnY2hlY2tlZCddID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FormsModule } from '@angular/forms';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
|
|
5
|
-
import { NzxCheckboxGroupComponent } from './checkbox-group.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class NzxCheckboxModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxModule, declarations: [NzxCheckboxGroupComponent], imports: [CommonModule, FormsModule, NzCheckboxModule], exports: [NzxCheckboxGroupComponent] }); }
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxModule, imports: [CommonModule, FormsModule, NzCheckboxModule] }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxCheckboxModule, decorators: [{
|
|
13
|
-
type: NgModule,
|
|
14
|
-
args: [{
|
|
15
|
-
declarations: [NzxCheckboxGroupComponent],
|
|
16
|
-
imports: [CommonModule, FormsModule, NzCheckboxModule],
|
|
17
|
-
exports: [NzxCheckboxGroupComponent],
|
|
18
|
-
}]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU92RSxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFKYix5QkFBeUIsYUFDOUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsYUFDM0MseUJBQXlCO2dIQUV4QixpQkFBaUIsWUFIbEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0I7OzRGQUcxQyxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE56Q2hlY2tib3hNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NoZWNrYm94JztcblxuaW1wb3J0IHsgTnp4Q2hlY2tib3hHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTnp4Q2hlY2tib3hHcm91cENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBOekNoZWNrYm94TW9kdWxlXSxcbiAgZXhwb3J0czogW056eENoZWNrYm94R3JvdXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOenhDaGVja2JveE1vZHVsZSB7fVxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctem9ycm8tYW50ZC1leHRlbnNpb24tY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NoZWNrYm94L25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uLWNoZWNrYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
3
|
-
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
|
|
4
|
-
*/
|
|
5
|
-
export * from './checkbox-group.component';
|
|
6
|
-
export * from './checkbox.module';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY2hlY2tib3gvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFHSCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5cbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gtZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gubW9kdWxlJztcbiJdfQ==
|
package/esm2022/configurable-query/configurable-query-item/configurable-query-item.component.mjs
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
2
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../query-config.service";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "ng-zorro-antd/grid";
|
|
7
|
-
import * as i4 from "ng-zorro-antd/form";
|
|
8
|
-
export class NzxConfigurableQueryItemComponent {
|
|
9
|
-
constructor(nzxQueryConfigService) {
|
|
10
|
-
this.nzxQueryConfigService = nzxQueryConfigService;
|
|
11
|
-
this.destroy$ = new Subject();
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
this.nzxQueryConfigService.controlTypes$
|
|
15
|
-
.pipe(takeUntil(this.destroy$))
|
|
16
|
-
.subscribe((list) => {
|
|
17
|
-
this.renderControl(list);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
ngOnDestroy() {
|
|
21
|
-
if (this.destroy$) {
|
|
22
|
-
this.destroy$.next();
|
|
23
|
-
this.destroy$.complete();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
renderControl(list) {
|
|
27
|
-
this.controlTemplateView.clear();
|
|
28
|
-
const config = list.find((i) => i.key === this.control.controlType);
|
|
29
|
-
if (config) {
|
|
30
|
-
const componentRef = this.controlTemplateView.createComponent(config.component);
|
|
31
|
-
componentRef.setInput('control', this.control);
|
|
32
|
-
componentRef.setInput('form', this.form);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
throw `ControlType:: '${this.control.controlType}' is invalidate`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxConfigurableQueryItemComponent, deps: [{ token: i1.NzxQueryConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: { form: "form", control: "control" }, viewQueries: [{ propertyName: "controlTemplateView", first: true, predicate: ["controlTemp"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: `
|
|
40
|
-
<nz-form-item>
|
|
41
|
-
<nz-form-label *ngIf="control.label" [nzSpan]="control.nzxLSpan || 6">
|
|
42
|
-
{{ control.label }}
|
|
43
|
-
</nz-form-label>
|
|
44
|
-
<nz-form-control
|
|
45
|
-
[nzSpan]="control.nzxRSpan || 18"
|
|
46
|
-
[nzValidateStatus]="
|
|
47
|
-
control?.controlInstance ?? $any(form.get(control.controlName!))
|
|
48
|
-
"
|
|
49
|
-
[nzErrorTip]="control.errorTip"
|
|
50
|
-
>
|
|
51
|
-
<ng-template #controlTemp></ng-template>
|
|
52
|
-
</nz-form-control>
|
|
53
|
-
</nz-form-item>
|
|
54
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }] }); }
|
|
55
|
-
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxConfigurableQueryItemComponent, decorators: [{
|
|
57
|
-
type: Component,
|
|
58
|
-
args: [{
|
|
59
|
-
selector: 'nzx-configurable-query-item',
|
|
60
|
-
template: `
|
|
61
|
-
<nz-form-item>
|
|
62
|
-
<nz-form-label *ngIf="control.label" [nzSpan]="control.nzxLSpan || 6">
|
|
63
|
-
{{ control.label }}
|
|
64
|
-
</nz-form-label>
|
|
65
|
-
<nz-form-control
|
|
66
|
-
[nzSpan]="control.nzxRSpan || 18"
|
|
67
|
-
[nzValidateStatus]="
|
|
68
|
-
control?.controlInstance ?? $any(form.get(control.controlName!))
|
|
69
|
-
"
|
|
70
|
-
[nzErrorTip]="control.errorTip"
|
|
71
|
-
>
|
|
72
|
-
<ng-template #controlTemp></ng-template>
|
|
73
|
-
</nz-form-control>
|
|
74
|
-
</nz-form-item>
|
|
75
|
-
`,
|
|
76
|
-
}]
|
|
77
|
-
}], ctorParameters: () => [{ type: i1.NzxQueryConfigService }], propDecorators: { form: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], control: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], controlTemplateView: [{
|
|
82
|
-
type: ViewChild,
|
|
83
|
-
args: ['controlTemp', { static: true, read: ViewContainerRef }]
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb25maWd1cmFibGUtcXVlcnkvY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW0vY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQXVCMUMsTUFBTSxPQUFPLGlDQUFpQztJQVM1QyxZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUZ4RCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUU0QixDQUFDO0lBRXBFLFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYTthQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBMkI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FDM0QsTUFBTSxDQUFDLFNBQWdCLENBQ3hCLENBQUM7WUFDRixZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxrQkFBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLGlCQUFpQixDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDOytHQXRDVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxnTkFJSSxnQkFBZ0IsMkNBckJ0RDs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7OzRGQUVVLGlDQUFpQztrQkFuQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtpQkFDRjswRkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdFLG1CQUFtQjtzQkFEMUIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE56eFF1ZXJ5Q29uZmlnU2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5LWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMsIE56eFF1ZXJ5Q29udHJvbFR5cGUgfSBmcm9tICcuLi90eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bnotZm9ybS1pdGVtPlxuICAgICAgPG56LWZvcm0tbGFiZWwgKm5nSWY9XCJjb250cm9sLmxhYmVsXCIgW256U3Bhbl09XCJjb250cm9sLm56eExTcGFuIHx8IDZcIj5cbiAgICAgICAge3sgY29udHJvbC5sYWJlbCB9fVxuICAgICAgPC9uei1mb3JtLWxhYmVsPlxuICAgICAgPG56LWZvcm0tY29udHJvbFxuICAgICAgICBbbnpTcGFuXT1cImNvbnRyb2wubnp4UlNwYW4gfHwgMThcIlxuICAgICAgICBbbnpWYWxpZGF0ZVN0YXR1c109XCJcbiAgICAgICAgICBjb250cm9sPy5jb250cm9sSW5zdGFuY2UgPz8gJGFueShmb3JtLmdldChjb250cm9sLmNvbnRyb2xOYW1lISkpXG4gICAgICAgIFwiXG4gICAgICAgIFtuekVycm9yVGlwXT1cImNvbnRyb2wuZXJyb3JUaXBcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRyb2xUZW1wPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L256LWZvcm0tY29udHJvbD5cbiAgICA8L256LWZvcm0taXRlbT5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTnp4Q29uZmlndXJhYmxlUXVlcnlJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBmb3JtITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBjb250cm9sITogTnp4UXVlcnlDb250cm9sT3B0aW9ucztcblxuICBAVmlld0NoaWxkKCdjb250cm9sVGVtcCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIHByaXZhdGUgY29udHJvbFRlbXBsYXRlVmlldyE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuenhRdWVyeUNvbmZpZ1NlcnZpY2U6IE56eFF1ZXJ5Q29uZmlnU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm56eFF1ZXJ5Q29uZmlnU2VydmljZS5jb250cm9sVHlwZXMkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChsaXN0KSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyQ29udHJvbChsaXN0KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVzdHJveSQpIHtcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29udHJvbChsaXN0OiBOenhRdWVyeUNvbnRyb2xUeXBlW10pIHtcbiAgICB0aGlzLmNvbnRyb2xUZW1wbGF0ZVZpZXcuY2xlYXIoKTtcbiAgICBjb25zdCBjb25maWcgPSBsaXN0LmZpbmQoKGkpID0+IGkua2V5ID09PSB0aGlzLmNvbnRyb2wuY29udHJvbFR5cGUpO1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29udHJvbFRlbXBsYXRlVmlldy5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIGNvbmZpZy5jb21wb25lbnQgYXMgYW55XG4gICAgICApO1xuICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KCdjb250cm9sJywgdGhpcy5jb250cm9sKTtcbiAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgnZm9ybScsIHRoaXMuZm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGBDb250cm9sVHlwZTo6ICcke3RoaXMuY29udHJvbC5jb250cm9sVHlwZX0nIGlzIGludmFsaWRhdGVgO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { updateControlStatus } from 'ng-zorro-antd-extension/util';
|
|
3
|
-
import { Subject, fromEvent, takeUntil } from 'rxjs';
|
|
4
|
-
import { NzxControlDirective } from './control.directive';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "ng-zorro-antd/i18n";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
import * as i4 from "ng-zorro-antd/grid";
|
|
10
|
-
import * as i5 from "ng-zorro-antd/form";
|
|
11
|
-
import * as i6 from "ng-zorro-antd/button";
|
|
12
|
-
import * as i7 from "ng-zorro-antd/core/transition-patch";
|
|
13
|
-
import * as i8 from "ng-zorro-antd/core/wave";
|
|
14
|
-
import * as i9 from "ng-zorro-antd/card";
|
|
15
|
-
import * as i10 from "ng-zorro-antd/space";
|
|
16
|
-
import * as i11 from "ng-zorro-antd/icon";
|
|
17
|
-
import * as i12 from "./configurable-query-item/configurable-query-item.component";
|
|
18
|
-
/**
|
|
19
|
-
* 查询组件
|
|
20
|
-
* 支持模板自定义,在使用模板自定义时,要注意controlType应该设置为Template并且确保controlName与指令上的nzxControl应该相同
|
|
21
|
-
*/
|
|
22
|
-
export class NzxConfigurableQueryComponent {
|
|
23
|
-
/** 组件最终的查询参数 */
|
|
24
|
-
get queryParams() {
|
|
25
|
-
return this._queryParams;
|
|
26
|
-
}
|
|
27
|
-
set queryParams(value) {
|
|
28
|
-
this._queryParams = value;
|
|
29
|
-
}
|
|
30
|
-
/** 判断当前组件是否展示展开折叠按钮 */
|
|
31
|
-
get nzxCollapse() {
|
|
32
|
-
return this.controls.some((i) => i.hasOwnProperty('collapse'));
|
|
33
|
-
}
|
|
34
|
-
constructor(i18n, fb, cd) {
|
|
35
|
-
this.i18n = i18n;
|
|
36
|
-
this.fb = fb;
|
|
37
|
-
this.cd = cd;
|
|
38
|
-
/**
|
|
39
|
-
* 配置项用来生成查询表单
|
|
40
|
-
*/
|
|
41
|
-
this.controls = [];
|
|
42
|
-
/** 查询表单排列方式默认start */
|
|
43
|
-
this.nzxJustify = 'start';
|
|
44
|
-
/** 查询项间隔默认为8 */
|
|
45
|
-
this.nzxGutter = 8;
|
|
46
|
-
/** 一行展示多少查询项默认展示3个 */
|
|
47
|
-
this.lineNumber = 3;
|
|
48
|
-
/** 操作按钮所占栅格数,24则换行 */
|
|
49
|
-
this.nzxBtnSpan = null;
|
|
50
|
-
/** 初始化时,是否主动触发查询 */
|
|
51
|
-
this.initQuery = false;
|
|
52
|
-
/** 缺省 固定参数会固定携带在抛出事件中 */
|
|
53
|
-
this.fixedParams = {};
|
|
54
|
-
/** 查询时会触发抛出查询参数 */
|
|
55
|
-
this.queryChange = new EventEmitter();
|
|
56
|
-
/** 重置时会触发抛出查询参数 */
|
|
57
|
-
this.resetChange = new EventEmitter();
|
|
58
|
-
this.collapseIcon = 'down';
|
|
59
|
-
this.collapseText = '';
|
|
60
|
-
this._queryParams = {};
|
|
61
|
-
/** 重置时用来给查询框默认值 */
|
|
62
|
-
this.defaultValue = {};
|
|
63
|
-
this.cacheParams = {};
|
|
64
|
-
this.destroy$ = new Subject();
|
|
65
|
-
this.queryForm = this.fb.group({});
|
|
66
|
-
}
|
|
67
|
-
ngOnChanges(changes) {
|
|
68
|
-
if (changes['controls'] && !changes['controls'].isFirstChange()) {
|
|
69
|
-
const controls = changes['controls'].currentValue;
|
|
70
|
-
if (Array.isArray(controls)) {
|
|
71
|
-
this.generateForm(controls);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
ngOnInit() {
|
|
76
|
-
this.i18n.localeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
77
|
-
this.locale = this.i18n.getLocaleData('Query');
|
|
78
|
-
this.cd.markForCheck();
|
|
79
|
-
});
|
|
80
|
-
this.queryForm.valueChanges
|
|
81
|
-
.pipe(takeUntil(this.destroy$))
|
|
82
|
-
.subscribe((val) => {
|
|
83
|
-
this._queryParams = {
|
|
84
|
-
...val,
|
|
85
|
-
...this.fixedParams,
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
ngAfterViewInit() {
|
|
90
|
-
if (this.queyFormEl) {
|
|
91
|
-
fromEvent(this.queyFormEl.nativeElement, 'keydown')
|
|
92
|
-
.pipe(takeUntil(this.destroy$))
|
|
93
|
-
.subscribe((event) => {
|
|
94
|
-
if (event.key === 'Enter') {
|
|
95
|
-
event.stopPropagation();
|
|
96
|
-
event.preventDefault();
|
|
97
|
-
this.search();
|
|
98
|
-
}
|
|
99
|
-
// 检查是否同时按下了Ctrl键(在Windows/Linux上)和S键
|
|
100
|
-
if ((event.ctrlKey || event.metaKey) && event.key === 'r') {
|
|
101
|
-
// 注意:event.metaKey用于兼容Mac的Command键
|
|
102
|
-
event.preventDefault(); // 阻止浏览器默认的保存行为
|
|
103
|
-
event.stopPropagation();
|
|
104
|
-
this.reset();
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
ngAfterContentInit() {
|
|
110
|
-
this.generateForm(this.controls);
|
|
111
|
-
if (this.initQuery) {
|
|
112
|
-
this.search();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/** 设置查询值进行回显 */
|
|
116
|
-
setQueryParams(cacheParams) {
|
|
117
|
-
this.cacheParams = cacheParams;
|
|
118
|
-
this.queryForm.patchValue(cacheParams);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* 根据controlName设置config值
|
|
122
|
-
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
123
|
-
*/
|
|
124
|
-
setControl(controlName, config, defaultValueResettable = false) {
|
|
125
|
-
const control = this.getControl(controlName);
|
|
126
|
-
if (control) {
|
|
127
|
-
Object.keys(config).forEach((key) => {
|
|
128
|
-
control[key] = config[key];
|
|
129
|
-
});
|
|
130
|
-
this.generateControl(control, defaultValueResettable);
|
|
131
|
-
this.cd.markForCheck();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* 动态添加控件
|
|
136
|
-
* @param config 配置项
|
|
137
|
-
* @param position 添加位置 不传为末尾
|
|
138
|
-
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
139
|
-
*/
|
|
140
|
-
addControl(config, position, defaultValueResettable = false) {
|
|
141
|
-
const control = this.getControl(config.controlName);
|
|
142
|
-
if (!control) {
|
|
143
|
-
if (config && config['hasOwnProperty']('collapse')) {
|
|
144
|
-
const hasCollapseProperty = this.controls.some((i) => i['hasOwnProperty']('collapse'));
|
|
145
|
-
if (hasCollapseProperty) {
|
|
146
|
-
config.collapse = this.controls.some((i) => i.collapse === true);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
this.generateControl(config, defaultValueResettable);
|
|
150
|
-
if (position === void 0 || position === null) {
|
|
151
|
-
this.controls.push(config);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this.controls.splice(position - 1, 0, config);
|
|
155
|
-
}
|
|
156
|
-
this.calculateText();
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
throw `The control name: '${config.controlName}' already exists!`;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* 根据控件名删除控件
|
|
164
|
-
*/
|
|
165
|
-
removeControl(controlName) {
|
|
166
|
-
const control = this.getControl(controlName);
|
|
167
|
-
if (control) {
|
|
168
|
-
this.queryForm.removeControl(controlName);
|
|
169
|
-
this.controls = this.controls.filter((c) => c.controlName !== controlName);
|
|
170
|
-
this.calculateText();
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
throw `The control name: '${controlName}' not find!`;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* 根据controlName获取config项
|
|
178
|
-
*/
|
|
179
|
-
getControl(controlName) {
|
|
180
|
-
return this.controls.find((config) => config.controlName === controlName);
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* 检索给定控件名称或路径的子控件。
|
|
184
|
-
* 这个 getFormControl 签名支持字符串和 const 数组(.getFormControl(['foo', 'bar'] as const))
|
|
185
|
-
*/
|
|
186
|
-
getFormControl(path) {
|
|
187
|
-
return this.queryForm.get(path);
|
|
188
|
-
}
|
|
189
|
-
/** 查询 */
|
|
190
|
-
search() {
|
|
191
|
-
if (this.queryForm.invalid) {
|
|
192
|
-
updateControlStatus(this.queryForm);
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
this.queryChange.emit(this._queryParams);
|
|
196
|
-
}
|
|
197
|
-
/** 重置 */
|
|
198
|
-
reset() {
|
|
199
|
-
this.queryForm.reset(this.defaultValue);
|
|
200
|
-
this.resetChange.emit(this._queryParams);
|
|
201
|
-
}
|
|
202
|
-
/**展开、收起*/
|
|
203
|
-
toggleCollapse() {
|
|
204
|
-
for (let index = 0; index < this.controls.length; index++) {
|
|
205
|
-
const config = this.controls[index];
|
|
206
|
-
const hasProperty = config.hasOwnProperty('collapse');
|
|
207
|
-
if (hasProperty && config.collapse) {
|
|
208
|
-
config.collapse = false;
|
|
209
|
-
}
|
|
210
|
-
else if (hasProperty && !config.collapse) {
|
|
211
|
-
config.collapse = true;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
this.calculateText();
|
|
215
|
-
}
|
|
216
|
-
ngOnDestroy() {
|
|
217
|
-
this.destroy$.next();
|
|
218
|
-
this.destroy$.complete();
|
|
219
|
-
}
|
|
220
|
-
/** 计算展开收起icon、文案 */
|
|
221
|
-
calculateText() {
|
|
222
|
-
if (this.controls.some((i) => i.collapse === true)) {
|
|
223
|
-
this.collapseIcon = 'down';
|
|
224
|
-
this.collapseText = this.locale.expand;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
this.collapseIcon = 'up';
|
|
228
|
-
this.collapseText = this.locale.collapse;
|
|
229
|
-
}
|
|
230
|
-
this.cd.markForCheck();
|
|
231
|
-
}
|
|
232
|
-
/** 清空表单控件 */
|
|
233
|
-
clearFormControl() {
|
|
234
|
-
Object.keys(this.queryForm.controls).forEach((key) => {
|
|
235
|
-
this.queryForm.removeControl(key);
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
/** 生成 queryForm 表单 */
|
|
239
|
-
generateForm(controlConfigs) {
|
|
240
|
-
this.clearFormControl();
|
|
241
|
-
for (const config of controlConfigs) {
|
|
242
|
-
this.generateControl(config);
|
|
243
|
-
}
|
|
244
|
-
this.defaultValue = this.queryForm.getRawValue();
|
|
245
|
-
if (this.cacheParams) {
|
|
246
|
-
// 缓存回显查询条件
|
|
247
|
-
this.queryForm.patchValue(this.cacheParams);
|
|
248
|
-
}
|
|
249
|
-
this.calculateText();
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
*
|
|
253
|
-
* @param controlConfig control配置
|
|
254
|
-
* @param defaultValueResettable 添加的表单控件默认值是否可以重置,默认不可以
|
|
255
|
-
*
|
|
256
|
-
* 1. 生成单个表单控件并将其添加到queryForm中
|
|
257
|
-
* 2. 如果没有templateRef根据controlName获取投影的templateList中的templateRef给 templateRef 赋值
|
|
258
|
-
*
|
|
259
|
-
**/
|
|
260
|
-
generateControl(config, defaultValueResettable = false) {
|
|
261
|
-
if (config.controlName) {
|
|
262
|
-
if (!config?.templateRef) {
|
|
263
|
-
const d = this.controlTemplateList.find((d) => d.nzxControl === config.controlName);
|
|
264
|
-
if (d) {
|
|
265
|
-
config.templateRef = d.templateRef;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
this.queryForm.setControl(config.controlName, config.controlInstance ?? this.fb.control(config.default ?? null));
|
|
269
|
-
if (!defaultValueResettable) {
|
|
270
|
-
const control = this.queryForm.get(config.controlName);
|
|
271
|
-
this.defaultValue = {
|
|
272
|
-
...this.defaultValue,
|
|
273
|
-
[config.controlName]: control.value,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
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 }); }
|
|
279
|
-
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: "<nz-card>\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 <nz-space>\n <button\n *nzSpaceItem\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button\n *nzSpaceItem\n nz-button\n type=\"button\"\n title=\"ctrl+r\"\n (click)=\"reset()\"\n >\n {{ locale['reset'] }}\n </button>\n <ng-container *nzSpaceItem>\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngIf=\"nzxCollapse\">\n <a\n *nzSpaceItem\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </ng-container>\n </nz-space>\n </div>\n </div>\n </div>\n </form>\n</nz-card>\n", styles: [".nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}\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: "component", type: i9.NzCardComponent, selector: "nz-card", inputs: ["nzBordered", "nzBorderless", "nzLoading", "nzHoverable", "nzBodyStyle", "nzCover", "nzActions", "nzType", "nzSize", "nzTitle", "nzExtra"], exportAs: ["nzCard"] }, { kind: "component", type: i10.NzSpaceComponent, selector: "nz-space, [nz-space]", inputs: ["nzDirection", "nzAlign", "nzSplit", "nzWrap", "nzSize"], exportAs: ["NzSpace"] }, { kind: "directive", type: i10.NzSpaceItemDirective, selector: "[nzSpaceItem]" }, { kind: "directive", type: i11.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i12.NzxConfigurableQueryItemComponent, selector: "nzx-configurable-query-item", inputs: ["form", "control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
280
|
-
}
|
|
281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NzxConfigurableQueryComponent, decorators: [{
|
|
282
|
-
type: Component,
|
|
283
|
-
args: [{ selector: 'nzx-configurable-query', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'NzxConfigurableQuery', template: "<nz-card>\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 <nz-space>\n <button\n *nzSpaceItem\n nz-button\n nzType=\"primary\"\n type=\"button\"\n title=\"Enter\"\n (click)=\"search()\"\n >\n {{ locale['query'] }}\n </button>\n <button\n *nzSpaceItem\n nz-button\n type=\"button\"\n title=\"ctrl+r\"\n (click)=\"reset()\"\n >\n {{ locale['reset'] }}\n </button>\n <ng-container *nzSpaceItem>\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngIf=\"nzxCollapse\">\n <a\n *nzSpaceItem\n nz-button\n nzType=\"link\"\n (click)=\"toggleCollapse()\"\n >\n {{ collapseText }}\n <i nz-icon [nzType]=\"collapseIcon\"></i>\n </a>\n </ng-container>\n </nz-space>\n </div>\n </div>\n </div>\n </form>\n</nz-card>\n", styles: [".nzx-query-container [nz-form-label]{overflow:visible}.nzx-query-container .nzx-query-btn{flex-grow:2;max-width:none}\n"] }]
|
|
284
|
-
}], ctorParameters: () => [{ type: i1.NzI18nService }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { controls: [{
|
|
285
|
-
type: Input
|
|
286
|
-
}], nzxJustify: [{
|
|
287
|
-
type: Input
|
|
288
|
-
}], nzxGutter: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}], lineNumber: [{
|
|
291
|
-
type: Input
|
|
292
|
-
}], nzxBtnSpan: [{
|
|
293
|
-
type: Input
|
|
294
|
-
}], initQuery: [{
|
|
295
|
-
type: Input
|
|
296
|
-
}], fixedParams: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], queryChange: [{
|
|
299
|
-
type: Output
|
|
300
|
-
}], resetChange: [{
|
|
301
|
-
type: Output
|
|
302
|
-
}], queyFormEl: [{
|
|
303
|
-
type: ViewChild,
|
|
304
|
-
args: ['queyForm']
|
|
305
|
-
}], controlTemplateList: [{
|
|
306
|
-
type: ContentChildren,
|
|
307
|
-
args: [NzxControlDirective, { descendants: true }]
|
|
308
|
-
}] } });
|
|
309
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLXF1ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29uZmlndXJhYmxlLXF1ZXJ5L2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbmZpZ3VyYWJsZS1xdWVyeS9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRzFEOzs7R0FHRztBQVNILE1BQU0sT0FBTyw2QkFBNkI7SUF5QnhDLGdCQUFnQjtJQUNoQixJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQWtCRCxZQUNVLElBQW1CLEVBQ25CLEVBQWUsRUFDZixFQUFxQjtRQUZyQixTQUFJLEdB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QUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQTJCd0IsVUFBVTtzQkFBeEMsU0FBUzt1QkFBQyxVQUFVO2dCQUVyQixtQkFBbUI7c0JBRGxCLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBOenhRdWVyeUkxOG5JbnRlcmZhY2UgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi9pMThuJztcclxuaW1wb3J0IHsgdXBkYXRlQ29udHJvbFN0YXR1cyB9IGZyb20gJ25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uL3V0aWwnO1xyXG5pbXBvcnQgeyBOekp1c3RpZnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2dyaWQnO1xyXG5pbXBvcnQgeyBOekkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pMThuJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTnp4Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOenhRdWVyeUNvbnRyb2xPcHRpb25zLCBOenhRdWVyeVBhcmFtcyB9IGZyb20gJy4vdHlwZSc7XHJcblxyXG4vKipcclxuICog5p+l6K+i57uE5Lu2XHJcbiAqIOaUr+aMgeaooeadv+iHquWumuS5ie+8jOWcqOS9v+eUqOaooeadv+iHquWumuS5ieaXtu+8jOimgeazqOaEj2NvbnRyb2xUeXBl5bqU6K+l6K6+572u5Li6VGVtcGxhdGXlubbkuJTnoa7kv51jb250cm9sTmFtZeS4juaMh+S7pOS4iueahG56eENvbnRyb2zlupTor6Xnm7jlkIxcclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ256eC1jb25maWd1cmFibGUtcXVlcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmFibGUtcXVlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYWJsZS1xdWVyeS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGV4cG9ydEFzOiAnTnp4Q29uZmlndXJhYmxlUXVlcnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4Q29uZmlndXJhYmxlUXVlcnlDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8qKlxyXG4gICAqIOmFjee9rumhueeUqOadpeeUn+aIkOafpeivouihqOWNlVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xzOiBBcnJheTxOenhRdWVyeUNvbnRyb2xPcHRpb25zPiA9IFtdO1xyXG4gIC8qKiDmn6Xor6LooajljZXmjpLliJfmlrnlvI/pu5jorqRzdGFydCAqL1xyXG4gIEBJbnB1dCgpIG56eEp1c3RpZnk6IE56SnVzdGlmeSA9ICdzdGFydCc7XHJcbiAgLyoqIOafpeivoumhuemXtOmalOm7mOiupOS4ujggKi9cclxuICBASW5wdXQoKSBuenhHdXR0ZXI6IG51bWJlciA9IDg7XHJcbiAgLyoqIOS4gOihjOWxleekuuWkmuWwkeafpeivoumhuem7mOiupOWxleekujPkuKogKi9cclxuICBASW5wdXQoKSBsaW5lTnVtYmVyOiBudW1iZXIgPSAzO1xyXG4gIC8qKiDmk43kvZzmjInpkq7miYDljaDmoIXmoLzmlbDvvIwyNOWImeaNouihjCAqL1xyXG4gIEBJbnB1dCgpIG56eEJ0blNwYW46IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiDliJ3lp4vljJbml7bvvIzmmK/lkKbkuLvliqjop6blj5Hmn6Xor6IgKi9cclxuICBASW5wdXQoKSBpbml0UXVlcnkgPSBmYWxzZTtcclxuICAvKiog57y655yBIOWbuuWumuWPguaVsOS8muWbuuWumuaQuuW4puWcqOaKm+WHuuS6i+S7tuS4rSAqL1xyXG4gIEBJbnB1dCgpIGZpeGVkUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiDmn6Xor6Lml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG4gIC8qKiDph43nva7ml7bkvJrop6blj5Hmipvlh7rmn6Xor6Llj4LmlbAgKi9cclxuICBAT3V0cHV0KCkgcmVzZXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eFF1ZXJ5UGFyYW1zPigpO1xyXG5cclxuICAvKiog57uE5Lu25pyA57uI55qE5p+l6K+i5Y+C5pWwICovXHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zO1xyXG4gIH1cclxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fcXVlcnlQYXJhbXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiDliKTmlq3lvZPliY3nu4Tku7bmmK/lkKblsZXnpLrlsZXlvIDmipjlj6DmjInpkq4gKi9cclxuICBnZXQgbnp4Q29sbGFwc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9scy5zb21lKChpKSA9PiBpLmhhc093blByb3BlcnR5KCdjb2xsYXBzZScpKTtcclxuICB9XHJcblxyXG4gIC8qKiDlhoXnva4gZm9ybSDmn6Xor6LooajljZXlrp7kvosgKi9cclxuICBxdWVyeUZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgbG9jYWxlITogTnp4UXVlcnlJMThuSW50ZXJmYWNlO1xyXG4gIGNvbGxhcHNlSWNvbjogc3RyaW5nID0gJ2Rvd24nO1xyXG4gIGNvbGxhcHNlVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX3F1ZXJ5UGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIC8qKiDph43nva7ml7bnlKjmnaXnu5nmn6Xor6LmoYbpu5jorqTlgLwgKi9cclxuICBwcml2YXRlIGRlZmF1bHRWYWx1ZTogTnp4UXVlcnlQYXJhbXMgPSB7fTtcclxuICBwcml2YXRlIGNhY2hlUGFyYW1zOiBOenhRdWVyeVBhcmFtcyA9IHt9O1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdxdWV5Rm9ybScpIHByaXZhdGUgcXVleUZvcm1FbCE6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PjtcclxuICBAQ29udGVudENoaWxkcmVuKE56eENvbnRyb2xEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcclxuICBjb250cm9sVGVtcGxhdGVMaXN0ITogUXVlcnlMaXN0PE56eENvbnRyb2xEaXJlY3RpdmU+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaTE4bjogTnpJMThuU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMucXVlcnlGb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snY29udHJvbHMnXSAmJiAhY2hhbmdlc1snY29udHJvbHMnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgY29uc3QgY29udHJvbHMgPSBjaGFuZ2VzWydjb250cm9scyddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbHMpKSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0oY29udHJvbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5pMThuLmdldExvY2FsZURhdGEoJ1F1ZXJ5Jyk7XHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcclxuICAgICAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgIC4uLnZhbCxcclxuICAgICAgICAgIC4uLnRoaXMuZml4ZWRQYXJhbXMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWV5Rm9ybUVsKSB7XHJcbiAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLnF1ZXlGb3JtRWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIOajgOafpeaYr+WQpuWQjOaXtuaMieS4i+S6hkN0cmzplK7vvIjlnKhXaW5kb3dzL0xpbnV45LiK77yJ5ZKMU+mUrlxyXG4gICAgICAgICAgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmIGV2ZW50LmtleSA9PT0gJ3InKSB7XHJcbiAgICAgICAgICAgIC8vIOazqOaEj++8mmV2ZW50Lm1ldGFLZXnnlKjkuo7lhbzlrrlNYWPnmoRDb21tYW5k6ZSuXHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIOmYu+atoua1j+iniOWZqOm7mOiupOeahOS/neWtmOihjOS4ulxyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0odGhpcy5jb250cm9scyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5pdFF1ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiog6K6+572u5p+l6K+i5YC86L+b6KGM5Zue5pi+ICovXHJcbiAgc2V0UXVlcnlQYXJhbXMoY2FjaGVQYXJhbXM6IE56eFF1ZXJ5UGFyYW1zKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhY2hlUGFyYW1zID0gY2FjaGVQYXJhbXM7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5wYXRjaFZhbHVlKGNhY2hlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmNvbnRyb2xOYW1l6K6+572uY29uZmln5YC8XHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUg5re75Yqg55qE6KGo5Y2V5o6n5Lu26buY6K6k5YC85piv5ZCm5Y+v5Lul6YeN572u77yM6buY6K6k5LiN5Y+v5LulXHJcbiAgICovXHJcbiAgc2V0Q29udHJvbChcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmcsXHJcbiAgICBjb25maWc6IFBhcnRpYWw8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4sXHJcbiAgICBkZWZhdWx0VmFsdWVSZXNldHRhYmxlID0gZmFsc2VcclxuICApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgT2JqZWN0LmtleXMoY29uZmlnKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAoY29udHJvbCBhcyBhbnkpW2tleV0gPSAoY29uZmlnIGFzIGFueSlba2V5XTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb250cm9sKGNvbnRyb2wsIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUpO1xyXG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Yqo5oCB5re75Yqg5o6n5Lu2XHJcbiAgICogQHBhcmFtIGNvbmZpZyDphY3nva7poblcclxuICAgKiBAcGFyYW0gcG9zaXRpb24g5re75Yqg5L2N572uIOS4jeS8oOS4uuacq+WwvlxyXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVSZXNldHRhYmxlIOa3u+WKoOeahOihqOWNleaOp+S7tum7mOiupOWAvOaYr+WQpuWPr+S7pemHjee9ru+8jOm7mOiupOS4jeWPr+S7pVxyXG4gICAqL1xyXG4gIGFkZENvbnRyb2woXHJcbiAgICBjb25maWc6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMsXHJcbiAgICBwb3NpdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZCxcclxuICAgIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUgPSBmYWxzZVxyXG4gICk6IHZvaWQge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb25maWcuY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKCFjb250cm9sKSB7XHJcbiAgICAgIGlmIChjb25maWcgJiYgY29uZmlnWydoYXNPd25Qcm9wZXJ0eSddKCdjb2xsYXBzZScpKSB7XHJcbiAgICAgICAgY29uc3QgaGFzQ29sbGFwc2VQcm9wZXJ0eSA9IHRoaXMuY29udHJvbHMuc29tZSgoaSkgPT5cclxuICAgICAgICAgIGlbJ2hhc093blByb3BlcnR5J10oJ2NvbGxhcHNlJylcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChoYXNDb2xsYXBzZVByb3BlcnR5KSB7XHJcbiAgICAgICAgICBjb25maWcuY29sbGFwc2UgPSB0aGlzLmNvbnRyb2xzLnNvbWUoKGkpID0+IGkuY29sbGFwc2UgPT09IHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvbnRyb2woY29uZmlnLCBkZWZhdWx0VmFsdWVSZXNldHRhYmxlKTtcclxuXHJcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwIHx8IHBvc2l0aW9uID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5wdXNoKGNvbmZpZyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scy5zcGxpY2UocG9zaXRpb24gLSAxLCAwLCBjb25maWcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2FsY3VsYXRlVGV4dCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgYFRoZSBjb250cm9sIG5hbWU6ICcke2NvbmZpZy5jb250cm9sTmFtZX0nIGFscmVhZHkgZXhpc3RzIWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja7mjqfku7blkI3liKDpmaTmjqfku7ZcclxuICAgKi9cclxuICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woY29udHJvbE5hbWUpO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5xdWVyeUZvcm0ucmVtb3ZlQ29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgICAgIHRoaXMuY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzLmZpbHRlcihcclxuICAgICAgICAoYykgPT4gYy5jb250cm9sTmFtZSAhPT0gY29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBgVGhlIGNvbnRyb2wgbmFtZTogJyR7Y29udHJvbE5hbWV9JyBub3QgZmluZCFgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uY29udHJvbE5hbWXojrflj5Zjb25maWfpoblcclxuICAgKi9cclxuICBnZXRDb250cm9sKFxyXG4gICAgY29udHJvbE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxyXG4gICk6IE56eFF1ZXJ5Q29udHJvbE9wdGlvbnMgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHMuZmluZCgoY29uZmlnKSA9PiBjb25maWcuY29udHJvbE5hbWUgPT09IGNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOajgOe0oue7meWumuaOp+S7tuWQjeensOaIlui3r+W+hOeahOWtkOaOp+S7tuOAglxyXG4gICAqIOi/meS4qiBnZXRGb3JtQ29udHJvbCDnrb7lkI3mlK/mjIHlrZfnrKbkuLLlkowgY29uc3Qg5pWw57uE77yILmdldEZvcm1Db250cm9sKFsnZm9vJywgJ2JhciddIGFzIGNvbnN0Ke+8iVxyXG4gICAqL1xyXG4gIGdldEZvcm1Db250cm9sKFxyXG4gICAgcGF0aDogc3RyaW5nIHwgcmVhZG9ubHkgKHN0cmluZyB8IG51bWJlcilbXVxyXG4gICk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnF1ZXJ5Rm9ybS5nZXQocGF0aCk7XHJcbiAgfVxyXG5cclxuICAvKiog5p+l6K+iICovXHJcbiAgc2VhcmNoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlcnlGb3JtLmludmFsaWQpIHtcclxuICAgICAgdXBkYXRlQ29udHJvbFN0YXR1cyh0aGlzLnF1ZXJ5Rm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucXVlcnlDaGFuZ2UuZW1pdCh0aGlzLl9xdWVyeVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICAvKiog6YeN572uICovXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnF1ZXJ5Rm9ybS5yZXNldCh0aGlzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICB0aGlzLnJlc2V0Q2hhbmdlLmVtaXQodGhpcy5fcXVlcnlQYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoq5bGV5byA44CB5pS26LW3Ki9cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmNvbnRyb2xzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbnRyb2xzW2luZGV4XTtcclxuICAgICAgY29uc3QgaGFzUHJvcGVydHkgPSBjb25maWcuaGFzT3duUHJvcGVydHkoJ2NvbGxhcHNlJyk7XHJcbiAgICAgIGlmIChoYXNQcm9wZXJ0eSAmJiBjb25maWcuY29sbGFwc2UpIHtcclxuICAgICAgICBjb25maWcuY29sbGFwc2UgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIGlmIChoYXNQcm9wZXJ0eSAmJiAhY29uZmlnLmNvbGxhcHNlKSB7XHJcbiAgICAgICAgY29uZmlnLmNvbGxhcHNlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOiuoeeul+WxleW8gOaUtui1t2ljb27jgIHmlofmoYggKi9cclxuICBwcml2YXRlIGNhbGN1bGF0ZVRleHQoKSB7XHJcbiAgICBpZiAodGhpcy5jb250cm9scy5zb21lKChpKSA9PiBpLmNvbGxhcHNlID09PSB0cnVlKSkge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlSWNvbiA9ICdkb3duJztcclxuICAgICAgdGhpcy5jb2xsYXBzZVRleHQgPSB0aGlzLmxvY2FsZS5leHBhbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlSWNvbiA9ICd1cCc7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VUZXh0ID0gdGhpcy5sb2NhbGUuY29sbGFwc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIOa4heepuuihqOWNleaOp+S7tiAqL1xyXG4gIHByaXZhdGUgY2xlYXJGb3JtQ29udHJvbCgpOiB2b2lkIHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMucXVlcnlGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5xdWVyeUZvcm0ucmVtb3ZlQ29udHJvbChrZXkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiog55Sf5oiQIHF1ZXJ5Rm9ybSDooajljZUgKi9cclxuICBwcml2YXRlIGdlbmVyYXRlRm9ybShjb250cm9sQ29uZmlnczogQXJyYXk8Tnp4UXVlcnlDb250cm9sT3B0aW9ucz4pOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJGb3JtQ29udHJvbCgpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY29uZmlnIG9mIGNvbnRyb2xDb25maWdzKSB7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb250cm9sKGNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHRoaXMucXVlcnlGb3JtLmdldFJhd1ZhbHVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FjaGVQYXJhbXMpIHtcclxuICAgICAgLy8g57yT5a2Y5Zue5pi+5p+l6K+i5p2h5Lu2XHJcbiAgICAgIHRoaXMucXVlcnlGb3JtLnBhdGNoVmFsdWUodGhpcy5jYWNoZVBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYWxjdWxhdGVUZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb250cm9sQ29uZmlnIGNvbnRyb2zphY3nva5cclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSDmt7vliqDnmoTooajljZXmjqfku7bpu5jorqTlgLzmmK/lkKblj6/ku6Xph43nva7vvIzpu5jorqTkuI3lj6/ku6VcclxuICAgKlxyXG4gICAqIDEuIOeUn+aIkOWNleS4quihqOWNleaOp+S7tuW5tuWwhuWFtua3u+WKoOWIsHF1ZXJ5Rm9ybeS4rVxyXG4gICAqIDIuIOWmguaenOayoeaciXRlbXBsYXRlUmVm5qC55o2uY29udHJvbE5hbWXojrflj5bmipXlvbHnmoR0ZW1wbGF0ZUxpc3TkuK3nmoR0ZW1wbGF0ZVJlZue7mSB0ZW1wbGF0ZVJlZiDotYvlgLxcclxuICAgKlxyXG4gICAqKi9cclxuICBwcml2YXRlIGdlbmVyYXRlQ29udHJvbChcclxuICAgIGNvbmZpZzogTnp4UXVlcnlDb250cm9sT3B0aW9ucyxcclxuICAgIGRlZmF1bHRWYWx1ZVJlc2V0dGFibGUgPSBmYWxzZVxyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZy5jb250cm9sTmFtZSkge1xyXG4gICAgICBpZiAoIWNvbmZpZz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgICBjb25zdCBkID0gdGhpcy5jb250cm9sVGVtcGxhdGVMaXN0LmZpbmQoXHJcbiAgICAgICAgICAoZCkgPT4gZC5uenhDb250cm9sID09PSBjb25maWcuY29udHJvbE5hbWVcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChkKSB7XHJcbiAgICAgICAgICBjb25maWcudGVtcGxhdGVSZWYgPSBkLnRlbXBsYXRlUmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5xdWVyeUZvcm0uc2V0Q29udHJvbChcclxuICAgICAgICBjb25maWcuY29udHJvbE5hbWUsXHJcbiAgICAgICAgY29uZmlnLmNvbnRyb2xJbnN0YW5jZSA/PyB0aGlzLmZiLmNvbnRyb2woY29uZmlnLmRlZmF1bHQgPz8gbnVsbClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICghZGVmYXVsdFZhbHVlUmVzZXR0YWJsZSkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnF1ZXJ5Rm9ybS5nZXQoY29uZmlnLmNvbnRyb2xOYW1lKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHtcclxuICAgICAgICAgIC4uLnRoaXMuZGVmYXVsdFZhbHVlLFxyXG4gICAgICAgICAgW2NvbmZpZy5jb250cm9sTmFtZV06IGNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bnotY2FyZD5cbiAgPGZvcm0gI3F1ZXlGb3JtIGNsYXNzPVwibnp4LXF1ZXJ5LWNvbnRhaW5lclwiIG56LWZvcm0gW2Zvcm1Hcm91cF09XCJxdWVyeUZvcm1cIj5cbiAgICA8ZGl2IG56LXJvdyBbbnpHdXR0ZXJdPVwibnp4R3V0dGVyXCIgW256SnVzdGlmeV09XCJuenhKdXN0aWZ5XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb25maWcgb2YgY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiIWNvbmZpZy5oaWRkZW5cIlxuICAgICAgICAgIG56LWNvbFxuICAgICAgICAgIFtuelNwYW5dPVwiY29uZmlnLm56eFNwYW4gfHwgMjQgLyBsaW5lTnVtYmVyXCJcbiAgICAgICAgICBbaGlkZGVuXT1cImNvbmZpZy5jb2xsYXBzZVwiXG4gICAgICAgICAgW256T3JkZXJdPVwiaVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bnp4LWNvbmZpZ3VyYWJsZS1xdWVyeS1pdGVtXG4gICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5jb250cm9sTmFtZVwiXG4gICAgICAgICAgICBbZm9ybV09XCJxdWVyeUZvcm1cIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiY29uZmlnXCJcbiAgICAgICAgICA+PC9uengtY29uZmlndXJhYmxlLXF1ZXJ5LWl0ZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJuengtcXVlcnktYnRuXCJcbiAgICAgICAgbnotY29sXG4gICAgICAgIFtuek9yZGVyXT1cImNvbnRyb2xzLmxlbmd0aFwiXG4gICAgICAgIFtuelNwYW5dPVwibnp4QnRuU3BhbiB8fCAyNCAvIGxpbmVOdW1iZXJcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IG56LXJvdyBuekp1c3RpZnk9XCJlbmRcIiBuekFsaWduPVwibWlkZGxlXCI+XG4gICAgICAgICAgPG56LXNwYWNlPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbnpTcGFjZUl0ZW1cbiAgICAgICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgICAgIG56VHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJFbnRlclwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2goKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGxvY2FsZVsncXVlcnknXSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuelNwYWNlSXRlbVxuICAgICAgICAgICAgICBuei1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiY3RybCtyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBsb2NhbGVbJ3Jlc2V0J10gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbnpTcGFjZUl0ZW0+XG4gICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm56eENvbGxhcHNlXCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm56U3BhY2VJdGVtXG4gICAgICAgICAgICAgICAgbnotYnV0dG9uXG4gICAgICAgICAgICAgICAgbnpUeXBlPVwibGlua1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY29sbGFwc2VUZXh0IH19XG4gICAgICAgICAgICAgICAgPGkgbnotaWNvbiBbbnpUeXBlXT1cImNvbGxhcHNlSWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uei1zcGFjZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uei1jYXJkPlxuIl19
|