imm-element-ui 2.0.4 → 2.0.6
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/esm2022/lib/grid/cell-edit/cell-edit-select.component.mjs +157 -138
- package/esm2022/lib/grid/grid/grid.component.mjs +3 -3
- package/fesm2022/imm-element-ui.mjs +177 -158
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/grid/actions/actions.component.d.ts +1 -1
- package/lib/grid/cell-edit/cell-edit-select.component.d.ts +6 -4
- package/lib/grid/grid/grid.component.d.ts +1 -194
- package/lib/grid/grid-utils.d.ts +61 -724
- package/lib/service/themeConfig.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
4
|
import { SelectModule } from 'primeng/select';
|
|
4
|
-
import { getFilterMatchMode as _getFilterMatchMode } from '../../share/utils';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
// 废弃组件无法直接集成ag-grid
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "primeng/select";
|
|
9
8
|
export class CellEditSelectComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.getFilterMatchMode = _getFilterMatchMode;
|
|
12
|
-
}
|
|
13
9
|
agInit(params) {
|
|
14
10
|
this.params = params;
|
|
15
|
-
this.
|
|
11
|
+
this.params.options = this.params.rawOptions;
|
|
12
|
+
console.log('params---', this.params);
|
|
13
|
+
this.value = this.params.data[this.params.colDef.field];
|
|
16
14
|
const cellWidth = params.column.getActualWidth();
|
|
17
15
|
this.params.style = {
|
|
18
16
|
border: 'none',
|
|
@@ -25,138 +23,159 @@ export class CellEditSelectComponent {
|
|
|
25
23
|
};
|
|
26
24
|
}
|
|
27
25
|
getValue() {
|
|
28
|
-
|
|
29
|
-
return
|
|
26
|
+
const value = this.value;
|
|
27
|
+
return value === '' || value == null ? null : String(value);
|
|
28
|
+
}
|
|
29
|
+
onChange(event) {
|
|
30
|
+
const nameFields = this.params.nameFields || [];
|
|
31
|
+
// console.log('event-----',event)
|
|
32
|
+
nameFields.forEach((nameField) => {
|
|
33
|
+
this.updateNameField(nameField, event);
|
|
34
|
+
});
|
|
30
35
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
updateNameField(nameField, event) {
|
|
37
|
+
const oldValue = this.params.data[nameField.field];
|
|
38
|
+
const item = this.params.rawOptions.find((op) => op.value === event.value);
|
|
39
|
+
const newValue = item ? item[nameField.key] : null;
|
|
40
|
+
const grid = this.params.grid();
|
|
41
|
+
let e = {
|
|
42
|
+
colDef: nameField,
|
|
43
|
+
oldValue,
|
|
44
|
+
newValue,
|
|
45
|
+
rowIndex: this.params.node.rowIndex,
|
|
46
|
+
data: { id: this.params.data.id },
|
|
47
|
+
};
|
|
48
|
+
grid.cellValueChanged(e);
|
|
49
|
+
this.params.data[nameField.field] = newValue;
|
|
34
50
|
}
|
|
35
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CellEditSelectComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
/>
|
|
96
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CellEditSelectComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: `
|
|
53
|
+
<p-select
|
|
54
|
+
[(ngModel)]="value"
|
|
55
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
56
|
+
[filter]="params.filter"
|
|
57
|
+
[name]="params.name"
|
|
58
|
+
[options]="params.options"
|
|
59
|
+
[placeholder]="params.placeholder"
|
|
60
|
+
[class]="params.class"
|
|
61
|
+
[style]="params.style"
|
|
62
|
+
[panelStyle]="params.panelStyle"
|
|
63
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
64
|
+
[readonly]="params.readonly"
|
|
65
|
+
[editable]="params.editable"
|
|
66
|
+
[appendTo]="params.appendTo || 'body'"
|
|
67
|
+
[tabindex]="params.tabindex"
|
|
68
|
+
[placeholder]="params.placeholder"
|
|
69
|
+
[loadingIcon]="params.loadingIcon"
|
|
70
|
+
[filterPlaceholder]="params.filterPlaceholder"
|
|
71
|
+
[filterLocale]="params.filterLocale"
|
|
72
|
+
[variant]="params.variant"
|
|
73
|
+
[inputId]="params.inputId"
|
|
74
|
+
[dataKey]="params.dataKey"
|
|
75
|
+
[filterBy]="params.filterBy"
|
|
76
|
+
[filterFields]="params.filterFields"
|
|
77
|
+
[autofocus]="params.autofocus ?? true"
|
|
78
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
79
|
+
[checkmark]="params.checkmark"
|
|
80
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
81
|
+
[loading]="params.loading"
|
|
82
|
+
[optionLabel]="params.optionLabel"
|
|
83
|
+
[optionValue]="params.optionValue"
|
|
84
|
+
[optionDisabled]="params.optionDisabled"
|
|
85
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
86
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
87
|
+
[group]="params.group"
|
|
88
|
+
[showClear]="params.showClear"
|
|
89
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
90
|
+
[emptyMessage]="params.emptyMessage"
|
|
91
|
+
[lazy]="params.lazy"
|
|
92
|
+
[virtualScroll]="params.virtualScroll"
|
|
93
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
94
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
95
|
+
[overlayOptions]="params.overlayOptions"
|
|
96
|
+
[size]="params.size"
|
|
97
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
98
|
+
[ariaLabel]="params.ariaLabel"
|
|
99
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
100
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
101
|
+
[maxlength]="params.maxlength"
|
|
102
|
+
[tooltip]="params.tooltip"
|
|
103
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
104
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
105
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
106
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
107
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
108
|
+
[filterValue]="params.filterValue"
|
|
109
|
+
(onChange)="onChange($event)" />
|
|
110
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i2.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] }); }
|
|
97
111
|
}
|
|
98
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditSelectComponent, decorators: [{
|
|
99
113
|
type: Component,
|
|
100
|
-
args: [{
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
/>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
114
|
+
args: [{
|
|
115
|
+
standalone: true,
|
|
116
|
+
template: `
|
|
117
|
+
<p-select
|
|
118
|
+
[(ngModel)]="value"
|
|
119
|
+
[scrollHeight]="params.scrollHeight || '200px'"
|
|
120
|
+
[filter]="params.filter"
|
|
121
|
+
[name]="params.name"
|
|
122
|
+
[options]="params.options"
|
|
123
|
+
[placeholder]="params.placeholder"
|
|
124
|
+
[class]="params.class"
|
|
125
|
+
[style]="params.style"
|
|
126
|
+
[panelStyle]="params.panelStyle"
|
|
127
|
+
[panelStyleClass]="params.panelStyleClass"
|
|
128
|
+
[readonly]="params.readonly"
|
|
129
|
+
[editable]="params.editable"
|
|
130
|
+
[appendTo]="params.appendTo || 'body'"
|
|
131
|
+
[tabindex]="params.tabindex"
|
|
132
|
+
[placeholder]="params.placeholder"
|
|
133
|
+
[loadingIcon]="params.loadingIcon"
|
|
134
|
+
[filterPlaceholder]="params.filterPlaceholder"
|
|
135
|
+
[filterLocale]="params.filterLocale"
|
|
136
|
+
[variant]="params.variant"
|
|
137
|
+
[inputId]="params.inputId"
|
|
138
|
+
[dataKey]="params.dataKey"
|
|
139
|
+
[filterBy]="params.filterBy"
|
|
140
|
+
[filterFields]="params.filterFields"
|
|
141
|
+
[autofocus]="params.autofocus ?? true"
|
|
142
|
+
[resetFilterOnHide]="params.resetFilterOnHide"
|
|
143
|
+
[checkmark]="params.checkmark"
|
|
144
|
+
[dropdownIcon]="params.dropdownIcon"
|
|
145
|
+
[loading]="params.loading"
|
|
146
|
+
[optionLabel]="params.optionLabel"
|
|
147
|
+
[optionValue]="params.optionValue"
|
|
148
|
+
[optionDisabled]="params.optionDisabled"
|
|
149
|
+
[optionGroupLabel]="params.optionGroupLabel"
|
|
150
|
+
[optionGroupChildren]="params.optionGroupChildren || 'items'"
|
|
151
|
+
[group]="params.group"
|
|
152
|
+
[showClear]="params.showClear"
|
|
153
|
+
[emptyFilterMessage]="params.emptyFilterMessage"
|
|
154
|
+
[emptyMessage]="params.emptyMessage"
|
|
155
|
+
[lazy]="params.lazy"
|
|
156
|
+
[virtualScroll]="params.virtualScroll"
|
|
157
|
+
[virtualScrollItemSize]="params.virtualScrollItemSize"
|
|
158
|
+
[virtualScrollOptions]="params.virtualScrollOptions"
|
|
159
|
+
[overlayOptions]="params.overlayOptions"
|
|
160
|
+
[size]="params.size"
|
|
161
|
+
[ariaFilterLabel]="params.ariaFilterLabel"
|
|
162
|
+
[ariaLabel]="params.ariaLabel"
|
|
163
|
+
[ariaLabelledBy]="params.ariaLabelledBy"
|
|
164
|
+
[filterMatchMode]="params.filterMatchMode"
|
|
165
|
+
[maxlength]="params.maxlength"
|
|
166
|
+
[tooltip]="params.tooltip"
|
|
167
|
+
[tooltipPosition]="params.tooltipPosition || 'right'"
|
|
168
|
+
[tooltipPositionStyle]="params.tooltipPositionStyle || 'absolute'"
|
|
169
|
+
[tooltipStyleClass]="params.tooltipStyleClass"
|
|
170
|
+
[focusOnHover]="params.focusOnHover == undefined ? true : params.focusOnHover"
|
|
171
|
+
[fluid]="params.fluid == undefined ? true : params.fluid"
|
|
172
|
+
[filterValue]="params.filterValue"
|
|
173
|
+
(onChange)="onChange($event)" />
|
|
174
|
+
`,
|
|
175
|
+
imports: [FormsModule, ReactiveFormsModule, SelectModule],
|
|
176
|
+
}]
|
|
177
|
+
}], propDecorators: { input: [{
|
|
178
|
+
type: ViewChild,
|
|
179
|
+
args: ['input', { read: ViewContainerRef }]
|
|
180
|
+
}] } });
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC1lZGl0L2NlbGwtZWRpdC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFpRTlDLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsTUFBTSxDQUFDLE1BQXlCO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUc7WUFDbEIsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsTUFBTTtZQUNqQixLQUFLLEVBQUUsR0FBRyxTQUFTLElBQUk7WUFDdkIsVUFBVSxFQUFFLDRCQUE0QjtTQUN6QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUc7WUFDdkIsS0FBSyxFQUFFLEdBQUcsU0FBUyxJQUFJO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDaEQsa0NBQWtDO1FBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBYyxFQUFFLEtBQVU7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQWtCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQVE7WUFDWCxNQUFNLEVBQUUsU0FBUztZQUNqQixRQUFRO1lBQ1IsUUFBUTtZQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ25DLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7U0FDbEMsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQy9DLENBQUM7K0dBbkRVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG1KQUlOLGdCQUFnQiw2QkFqRWxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMERULDJEQUNTLFdBQVcsaWdCQUFFLG1CQUFtQiw4QkFBRSxZQUFZOzs0RkFFN0MsdUJBQXVCO2tCQS9EbkMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMERUO29CQUNELE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUM7aUJBQzFEOzhCQUt3RCxLQUFLO3NCQUEzRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEdyaWRDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2VsZWN0JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICA8cC1zZWxlY3RcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInBhcmFtcy5zY3JvbGxIZWlnaHQgfHwgJzIwMHB4J1wiXG4gICAgW2ZpbHRlcl09XCJwYXJhbXMuZmlsdGVyXCJcbiAgICBbbmFtZV09XCJwYXJhbXMubmFtZVwiXG4gICAgW29wdGlvbnNdPVwicGFyYW1zLm9wdGlvbnNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwYXJhbXMucGxhY2Vob2xkZXJcIlxuICAgIFtjbGFzc109XCJwYXJhbXMuY2xhc3NcIlxuICAgIFtzdHlsZV09XCJwYXJhbXMuc3R5bGVcIlxuICAgIFtwYW5lbFN0eWxlXT1cInBhcmFtcy5wYW5lbFN0eWxlXCJcbiAgICBbcGFuZWxTdHlsZUNsYXNzXT1cInBhcmFtcy5wYW5lbFN0eWxlQ2xhc3NcIlxuICAgIFtyZWFkb25seV09XCJwYXJhbXMucmVhZG9ubHlcIlxuICAgIFtlZGl0YWJsZV09XCJwYXJhbXMuZWRpdGFibGVcIlxuICAgIFthcHBlbmRUb109XCJwYXJhbXMuYXBwZW5kVG8gfHwgJ2JvZHknXCJcbiAgICBbdGFiaW5kZXhdPVwicGFyYW1zLnRhYmluZGV4XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGFyYW1zLnBsYWNlaG9sZGVyXCJcbiAgICBbbG9hZGluZ0ljb25dPVwicGFyYW1zLmxvYWRpbmdJY29uXCJcbiAgICBbZmlsdGVyUGxhY2Vob2xkZXJdPVwicGFyYW1zLmZpbHRlclBsYWNlaG9sZGVyXCJcbiAgICBbZmlsdGVyTG9jYWxlXT1cInBhcmFtcy5maWx0ZXJMb2NhbGVcIlxuICAgIFt2YXJpYW50XT1cInBhcmFtcy52YXJpYW50XCJcbiAgICBbaW5wdXRJZF09XCJwYXJhbXMuaW5wdXRJZFwiXG4gICAgW2RhdGFLZXldPVwicGFyYW1zLmRhdGFLZXlcIlxuICAgIFtmaWx0ZXJCeV09XCJwYXJhbXMuZmlsdGVyQnlcIlxuICAgIFtmaWx0ZXJGaWVsZHNdPVwicGFyYW1zLmZpbHRlckZpZWxkc1wiXG4gICAgW2F1dG9mb2N1c109XCJwYXJhbXMuYXV0b2ZvY3VzID8/IHRydWVcIlxuICAgIFtyZXNldEZpbHRlck9uSGlkZV09XCJwYXJhbXMucmVzZXRGaWx0ZXJPbkhpZGVcIlxuICAgIFtjaGVja21hcmtdPVwicGFyYW1zLmNoZWNrbWFya1wiXG4gICAgW2Ryb3Bkb3duSWNvbl09XCJwYXJhbXMuZHJvcGRvd25JY29uXCJcbiAgICBbbG9hZGluZ109XCJwYXJhbXMubG9hZGluZ1wiXG4gICAgW29wdGlvbkxhYmVsXT1cInBhcmFtcy5vcHRpb25MYWJlbFwiXG4gICAgW29wdGlvblZhbHVlXT1cInBhcmFtcy5vcHRpb25WYWx1ZVwiXG4gICAgW29wdGlvbkRpc2FibGVkXT1cInBhcmFtcy5vcHRpb25EaXNhYmxlZFwiXG4gICAgW29wdGlvbkdyb3VwTGFiZWxdPVwicGFyYW1zLm9wdGlvbkdyb3VwTGFiZWxcIlxuICAgIFtvcHRpb25Hcm91cENoaWxkcmVuXT1cInBhcmFtcy5vcHRpb25Hcm91cENoaWxkcmVuIHx8ICdpdGVtcydcIlxuICAgIFtncm91cF09XCJwYXJhbXMuZ3JvdXBcIlxuICAgIFtzaG93Q2xlYXJdPVwicGFyYW1zLnNob3dDbGVhclwiXG4gICAgW2VtcHR5RmlsdGVyTWVzc2FnZV09XCJwYXJhbXMuZW1wdHlGaWx0ZXJNZXNzYWdlXCJcbiAgICBbZW1wdHlNZXNzYWdlXT1cInBhcmFtcy5lbXB0eU1lc3NhZ2VcIlxuICAgIFtsYXp5XT1cInBhcmFtcy5sYXp5XCJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJwYXJhbXMudmlydHVhbFNjcm9sbFwiXG4gICAgW3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJwYXJhbXMudmlydHVhbFNjcm9sbEl0ZW1TaXplXCJcbiAgICBbdmlydHVhbFNjcm9sbE9wdGlvbnNdPVwicGFyYW1zLnZpcnR1YWxTY3JvbGxPcHRpb25zXCJcbiAgICBbb3ZlcmxheU9wdGlvbnNdPVwicGFyYW1zLm92ZXJsYXlPcHRpb25zXCJcbiAgICBbc2l6ZV09XCJwYXJhbXMuc2l6ZVwiXG4gICAgW2FyaWFGaWx0ZXJMYWJlbF09XCJwYXJhbXMuYXJpYUZpbHRlckxhYmVsXCJcbiAgICBbYXJpYUxhYmVsXT1cInBhcmFtcy5hcmlhTGFiZWxcIlxuICAgIFthcmlhTGFiZWxsZWRCeV09XCJwYXJhbXMuYXJpYUxhYmVsbGVkQnlcIlxuICAgIFtmaWx0ZXJNYXRjaE1vZGVdPVwicGFyYW1zLmZpbHRlck1hdGNoTW9kZVwiXG4gICAgW21heGxlbmd0aF09XCJwYXJhbXMubWF4bGVuZ3RoXCJcbiAgICBbdG9vbHRpcF09XCJwYXJhbXMudG9vbHRpcFwiXG4gICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJwYXJhbXMudG9vbHRpcFBvc2l0aW9uIHx8ICdyaWdodCdcIlxuICAgIFt0b29sdGlwUG9zaXRpb25TdHlsZV09XCJwYXJhbXMudG9vbHRpcFBvc2l0aW9uU3R5bGUgfHwgJ2Fic29sdXRlJ1wiXG4gICAgW3Rvb2x0aXBTdHlsZUNsYXNzXT1cInBhcmFtcy50b29sdGlwU3R5bGVDbGFzc1wiXG4gICAgW2ZvY3VzT25Ib3Zlcl09XCJwYXJhbXMuZm9jdXNPbkhvdmVyID09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuZm9jdXNPbkhvdmVyXCJcbiAgICBbZmx1aWRdPVwicGFyYW1zLmZsdWlkID09IHVuZGVmaW5lZCA/IHRydWUgOiBwYXJhbXMuZmx1aWRcIlxuICAgIFtmaWx0ZXJWYWx1ZV09XCJwYXJhbXMuZmlsdGVyVmFsdWVcIlxuICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgYCxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBTZWxlY3RNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDZWxsRWRpdFNlbGVjdENvbXBvbmVudCAgaW1wbGVtZW50cyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIHtcbiAgcGFyYW1zITogYW55O1xuICB2YWx1ZTogYW55O1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHB1YmxpYyBpbnB1dCE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgYWdJbml0KHBhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLnBhcmFtcy5vcHRpb25zID0gdGhpcy5wYXJhbXMucmF3T3B0aW9ucztcbiAgICBjb25zb2xlLmxvZygncGFyYW1zLS0tJyx0aGlzLnBhcmFtcylcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5wYXJhbXMuZGF0YVt0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGRdO1xuXG4gICAgY29uc3QgY2VsbFdpZHRoID0gcGFyYW1zLmNvbHVtbi5nZXRBY3R1YWxXaWR0aCgpO1xuICAgIHRoaXMucGFyYW1zLnN0eWxlID0ge1xuICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgIHdpZHRoOiBgJHtjZWxsV2lkdGh9cHhgLFxuICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWFnLWJhY2tncm91bmQtY29sb3IpJyxcbiAgICB9O1xuICAgIHRoaXMucGFyYW1zLnBhbmVsU3R5bGUgPSB7XG4gICAgICB3aWR0aDogYCR7Y2VsbFdpZHRofXB4YCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VmFsdWUoKTogYW55IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PSBudWxsID8gbnVsbCA6IFN0cmluZyh2YWx1ZSk7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgY29uc3QgbmFtZUZpZWxkcyA9IHRoaXMucGFyYW1zLm5hbWVGaWVsZHMgfHwgW107XG4gICAgLy8gY29uc29sZS5sb2coJ2V2ZW50LS0tLS0nLGV2ZW50KVxuICAgIG5hbWVGaWVsZHMuZm9yRWFjaCgobmFtZUZpZWxkOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlTmFtZUZpZWxkKG5hbWVGaWVsZCwgZXZlbnQpO1xuICAgIH0pO1xuICB9XG4gIFxuICB1cGRhdGVOYW1lRmllbGQobmFtZUZpZWxkOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMucGFyYW1zLmRhdGFbbmFtZUZpZWxkLmZpZWxkXTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5wYXJhbXMucmF3T3B0aW9ucy5maW5kKChvcDogYW55KSA9PiBvcC52YWx1ZSA9PT0gZXZlbnQudmFsdWUpXG4gICAgY29uc3QgbmV3VmFsdWUgPSBpdGVtID8gaXRlbVtuYW1lRmllbGQua2V5XSA6IG51bGw7XG4gICAgY29uc3QgZ3JpZDogR3JpZENvbXBvbmVudCA9IHRoaXMucGFyYW1zLmdyaWQoKTtcbiAgICBsZXQgZTogYW55ID0ge1xuICAgICAgY29sRGVmOiBuYW1lRmllbGQsXG4gICAgICBvbGRWYWx1ZSxcbiAgICAgIG5ld1ZhbHVlLFxuICAgICAgcm93SW5kZXg6IHRoaXMucGFyYW1zLm5vZGUucm93SW5kZXgsXG4gICAgICBkYXRhOiB7IGlkOiB0aGlzLnBhcmFtcy5kYXRhLmlkIH0sXG4gICAgfTtcbiAgICBncmlkLmNlbGxWYWx1ZUNoYW5nZWQoZSk7XG4gICAgdGhpcy5wYXJhbXMuZGF0YVtuYW1lRmllbGQuZmllbGRdID0gbmV3VmFsdWU7XG4gIH1cbn0iXX0=
|