imm-element-ui 2.0.3 → 2.0.5
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 +6 -6
- package/fesm2022/imm-element-ui.mjs +180 -161
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/crumb-action/crumb-action.component.d.ts +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 +2 -195
- package/lib/grid/grid-utils.d.ts +61 -724
- package/lib/search/pop-date/pop-date.component.d.ts +1 -1
- 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?.label;
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC1lZGl0L2NlbGwtZWRpdC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFpRTlDLE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsTUFBTSxDQUFDLE1BQXlCO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQzdDLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUc7WUFDbEIsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsTUFBTTtZQUNqQixLQUFLLEVBQUUsR0FBRyxTQUFTLElBQUk7WUFDdkIsVUFBVSxFQUFFLDRCQUE0QjtTQUN6QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUc7WUFDdkIsS0FBSyxFQUFFLEdBQUcsU0FBUyxJQUFJO1NBQ3hCLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDaEQsa0NBQWtDO1FBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBYyxFQUFFLEtBQVU7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM3QixNQUFNLElBQUksR0FBa0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBUTtZQUNYLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFFBQVE7WUFDUixRQUFRO1lBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDbkMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDL0MsQ0FBQzsrR0FuRFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsbUpBSU4sZ0JBQWdCLDZCQWpFbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRFQsMkRBQ1MsV0FBVyxpZ0JBQUUsbUJBQW1CLDhCQUFFLFlBQVk7OzRGQUU3Qyx1QkFBdUI7a0JBL0RuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRFQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFlBQVksQ0FBQztpQkFDMUQ7OEJBS3dELEtBQUs7c0JBQTNELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIHsgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgdHlwZSB7IElDZWxsRWRpdG9yUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgR3JpZENvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgIDxwLXNlbGVjdFxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtzY3JvbGxIZWlnaHRdPVwicGFyYW1zLnNjcm9sbEhlaWdodCB8fCAnMjAwcHgnXCJcbiAgICBbZmlsdGVyXT1cInBhcmFtcy5maWx0ZXJcIlxuICAgIFtuYW1lXT1cInBhcmFtcy5uYW1lXCJcbiAgICBbb3B0aW9uc109XCJwYXJhbXMub3B0aW9uc1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBhcmFtcy5wbGFjZWhvbGRlclwiXG4gICAgW2NsYXNzXT1cInBhcmFtcy5jbGFzc1wiXG4gICAgW3N0eWxlXT1cInBhcmFtcy5zdHlsZVwiXG4gICAgW3BhbmVsU3R5bGVdPVwicGFyYW1zLnBhbmVsU3R5bGVcIlxuICAgIFtwYW5lbFN0eWxlQ2xhc3NdPVwicGFyYW1zLnBhbmVsU3R5bGVDbGFzc1wiXG4gICAgW3JlYWRvbmx5XT1cInBhcmFtcy5yZWFkb25seVwiXG4gICAgW2VkaXRhYmxlXT1cInBhcmFtcy5lZGl0YWJsZVwiXG4gICAgW2FwcGVuZFRvXT1cInBhcmFtcy5hcHBlbmRUbyB8fCAnYm9keSdcIlxuICAgIFt0YWJpbmRleF09XCJwYXJhbXMudGFiaW5kZXhcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwYXJhbXMucGxhY2Vob2xkZXJcIlxuICAgIFtsb2FkaW5nSWNvbl09XCJwYXJhbXMubG9hZGluZ0ljb25cIlxuICAgIFtmaWx0ZXJQbGFjZWhvbGRlcl09XCJwYXJhbXMuZmlsdGVyUGxhY2Vob2xkZXJcIlxuICAgIFtmaWx0ZXJMb2NhbGVdPVwicGFyYW1zLmZpbHRlckxvY2FsZVwiXG4gICAgW3ZhcmlhbnRdPVwicGFyYW1zLnZhcmlhbnRcIlxuICAgIFtpbnB1dElkXT1cInBhcmFtcy5pbnB1dElkXCJcbiAgICBbZGF0YUtleV09XCJwYXJhbXMuZGF0YUtleVwiXG4gICAgW2ZpbHRlckJ5XT1cInBhcmFtcy5maWx0ZXJCeVwiXG4gICAgW2ZpbHRlckZpZWxkc109XCJwYXJhbXMuZmlsdGVyRmllbGRzXCJcbiAgICBbYXV0b2ZvY3VzXT1cInBhcmFtcy5hdXRvZm9jdXMgPz8gdHJ1ZVwiXG4gICAgW3Jlc2V0RmlsdGVyT25IaWRlXT1cInBhcmFtcy5yZXNldEZpbHRlck9uSGlkZVwiXG4gICAgW2NoZWNrbWFya109XCJwYXJhbXMuY2hlY2ttYXJrXCJcbiAgICBbZHJvcGRvd25JY29uXT1cInBhcmFtcy5kcm9wZG93bkljb25cIlxuICAgIFtsb2FkaW5nXT1cInBhcmFtcy5sb2FkaW5nXCJcbiAgICBbb3B0aW9uTGFiZWxdPVwicGFyYW1zLm9wdGlvbkxhYmVsXCJcbiAgICBbb3B0aW9uVmFsdWVdPVwicGFyYW1zLm9wdGlvblZhbHVlXCJcbiAgICBbb3B0aW9uRGlzYWJsZWRdPVwicGFyYW1zLm9wdGlvbkRpc2FibGVkXCJcbiAgICBbb3B0aW9uR3JvdXBMYWJlbF09XCJwYXJhbXMub3B0aW9uR3JvdXBMYWJlbFwiXG4gICAgW29wdGlvbkdyb3VwQ2hpbGRyZW5dPVwicGFyYW1zLm9wdGlvbkdyb3VwQ2hpbGRyZW4gfHwgJ2l0ZW1zJ1wiXG4gICAgW2dyb3VwXT1cInBhcmFtcy5ncm91cFwiXG4gICAgW3Nob3dDbGVhcl09XCJwYXJhbXMuc2hvd0NsZWFyXCJcbiAgICBbZW1wdHlGaWx0ZXJNZXNzYWdlXT1cInBhcmFtcy5lbXB0eUZpbHRlck1lc3NhZ2VcIlxuICAgIFtlbXB0eU1lc3NhZ2VdPVwicGFyYW1zLmVtcHR5TWVzc2FnZVwiXG4gICAgW2xhenldPVwicGFyYW1zLmxhenlcIlxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInBhcmFtcy52aXJ0dWFsU2Nyb2xsXCJcbiAgICBbdmlydHVhbFNjcm9sbEl0ZW1TaXplXT1cInBhcmFtcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICAgIFt2aXJ0dWFsU2Nyb2xsT3B0aW9uc109XCJwYXJhbXMudmlydHVhbFNjcm9sbE9wdGlvbnNcIlxuICAgIFtvdmVybGF5T3B0aW9uc109XCJwYXJhbXMub3ZlcmxheU9wdGlvbnNcIlxuICAgIFtzaXplXT1cInBhcmFtcy5zaXplXCJcbiAgICBbYXJpYUZpbHRlckxhYmVsXT1cInBhcmFtcy5hcmlhRmlsdGVyTGFiZWxcIlxuICAgIFthcmlhTGFiZWxdPVwicGFyYW1zLmFyaWFMYWJlbFwiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cInBhcmFtcy5hcmlhTGFiZWxsZWRCeVwiXG4gICAgW2ZpbHRlck1hdGNoTW9kZV09XCJwYXJhbXMuZmlsdGVyTWF0Y2hNb2RlXCJcbiAgICBbbWF4bGVuZ3RoXT1cInBhcmFtcy5tYXhsZW5ndGhcIlxuICAgIFt0b29sdGlwXT1cInBhcmFtcy50b29sdGlwXCJcbiAgICBbdG9vbHRpcFBvc2l0aW9uXT1cInBhcmFtcy50b29sdGlwUG9zaXRpb24gfHwgJ3JpZ2h0J1wiXG4gICAgW3Rvb2x0aXBQb3NpdGlvblN0eWxlXT1cInBhcmFtcy50b29sdGlwUG9zaXRpb25TdHlsZSB8fCAnYWJzb2x1dGUnXCJcbiAgICBbdG9vbHRpcFN0eWxlQ2xhc3NdPVwicGFyYW1zLnRvb2x0aXBTdHlsZUNsYXNzXCJcbiAgICBbZm9jdXNPbkhvdmVyXT1cInBhcmFtcy5mb2N1c09uSG92ZXIgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHBhcmFtcy5mb2N1c09uSG92ZXJcIlxuICAgIFtmbHVpZF09XCJwYXJhbXMuZmx1aWQgPT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHBhcmFtcy5mbHVpZFwiXG4gICAgW2ZpbHRlclZhbHVlXT1cInBhcmFtcy5maWx0ZXJWYWx1ZVwiXG4gICAgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIiAvPlxuICBgLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFNlbGVjdE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENlbGxFZGl0U2VsZWN0Q29tcG9uZW50ICBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXAge1xuICBwYXJhbXMhOiBhbnk7XG4gIHZhbHVlOiBhbnk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHVibGljIGlucHV0ITogVmlld0NvbnRhaW5lclJlZjtcblxuICBhZ0luaXQocGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMucGFyYW1zLm9wdGlvbnMgPSB0aGlzLnBhcmFtcy5yYXdPcHRpb25zO1xuICAgIC8vIGNvbnNvbGUubG9nKCdwYXJhbXMtLS0nLHRoaXMucGFyYW1zKVxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnBhcmFtcy5kYXRhW3RoaXMucGFyYW1zLmNvbERlZi5maWVsZF07XG5cbiAgICBjb25zdCBjZWxsV2lkdGggPSBwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5wYXJhbXMuc3R5bGUgPSB7XG4gICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgd2lkdGg6IGAke2NlbGxXaWR0aH1weGAsXG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tYWctYmFja2dyb3VuZC1jb2xvciknLFxuICAgIH07XG4gICAgdGhpcy5wYXJhbXMucGFuZWxTdHlsZSA9IHtcbiAgICAgIHdpZHRoOiBgJHtjZWxsV2lkdGh9cHhgLFxuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBhbnkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICByZXR1cm4gdmFsdWUgPT09ICcnIHx8IHZhbHVlID09IG51bGwgPyBudWxsIDogU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBuYW1lRmllbGRzID0gdGhpcy5wYXJhbXMubmFtZUZpZWxkcyB8fCBbXTtcbiAgICAvLyBjb25zb2xlLmxvZygnZXZlbnQtLS0tLScsZXZlbnQpXG4gICAgbmFtZUZpZWxkcy5mb3JFYWNoKChuYW1lRmllbGQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVOYW1lRmllbGQobmFtZUZpZWxkLCBldmVudCk7XG4gICAgfSk7XG4gIH1cbiAgXG4gIHVwZGF0ZU5hbWVGaWVsZChuYW1lRmllbGQ6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5wYXJhbXMuZGF0YVtuYW1lRmllbGQuZmllbGRdO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnBhcmFtcy5yYXdPcHRpb25zLmZpbmQoKG9wOiBhbnkpID0+IG9wLnZhbHVlID09PSBldmVudC52YWx1ZSlcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGl0ZW0/LmxhYmVsO1xuICAgIGNvbnN0IGdyaWQ6IEdyaWRDb21wb25lbnQgPSB0aGlzLnBhcmFtcy5ncmlkKCk7XG4gICAgbGV0IGU6IGFueSA9IHtcbiAgICAgIGNvbERlZjogbmFtZUZpZWxkLFxuICAgICAgb2xkVmFsdWUsXG4gICAgICBuZXdWYWx1ZSxcbiAgICAgIHJvd0luZGV4OiB0aGlzLnBhcmFtcy5ub2RlLnJvd0luZGV4LFxuICAgICAgZGF0YTogeyBpZDogdGhpcy5wYXJhbXMuZGF0YS5pZCB9LFxuICAgIH07XG4gICAgZ3JpZC5jZWxsVmFsdWVDaGFuZ2VkKGUpO1xuICAgIHRoaXMucGFyYW1zLmRhdGFbbmFtZUZpZWxkLmZpZWxkXSA9IG5ld1ZhbHVlO1xuICB9XG59Il19
|