imm-element-ui 2.6.4 → 2.6.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.
@@ -1,70 +1,296 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { AutoCompleteModule } from 'primeng/autocomplete';
3
3
  import { FormsModule } from '@angular/forms';
4
+ import { isObservable, lastValueFrom } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "primeng/autocomplete";
6
7
  import * as i2 from "@angular/forms";
7
8
  export class CellEditAutoCompleteComponent {
9
+ constructor() {
10
+ this.params = {};
11
+ this.suggestions = [];
12
+ }
13
+ get displaySuggestions() {
14
+ return this.normalizeOptions(this.params.suggestions ?? this.params.options ?? this.params.colDef?.cellEditorParams?.suggestions ?? this.params.colDef?.cellEditorParams?.options ?? this.suggestions);
15
+ }
8
16
  agInit(params) {
9
- this.params = params;
10
- this.value = params.value;
11
- const { dataMap, optionLabel, optionValue, options = [] } = params.colDef.cellEditorParams;
12
- if (this.isKeyValue()) {
13
- this.value = dataMap[this.value][optionLabel];
14
- }
15
- this.options = options;
17
+ const editorParams = this.resolveEditorParams(params);
18
+ this.params = {
19
+ ...editorParams,
20
+ ...params,
21
+ optionLabel: editorParams.optionLabel || 'label',
22
+ optionValue: editorParams.optionValue || 'value',
23
+ };
24
+ this.suggestions = this.normalizeOptions(editorParams.suggestions ?? editorParams.options ?? []);
25
+ this.params.suggestions = this.suggestions;
26
+ this.setEditorSize(params);
27
+ this.value = this.resolveInitialValue(params.value);
16
28
  }
17
29
  getValue() {
18
- // console.log('this.value',this.value)
19
- return this.value;
20
- }
21
- // refresh(param:any){
22
- // this.options = param.options
23
- // }
24
- onChange(e) {
25
- // console.log(e)
26
- // e.stop
27
- }
28
- isKeyValue() {
29
- const { dataMap, optionLabel, optionValue } = this.params.colDef.cellEditorParams;
30
- return dataMap && optionLabel && optionValue && optionValue !== optionLabel;
31
- }
32
- search(e) {
33
- this.params.search(e).subscribe((res) => {
34
- this.options = res.data;
35
- if (this.isKeyValue() && res.data.length > 0) {
36
- this.params.colDef.cellEditorParams.dataMap = res.data.reduce((p, n) => {
37
- if (!p[n.id]) {
38
- p[n.id] = n;
39
- }
40
- return p;
41
- }, {});
42
- }
43
- if (res.data.length === 0) {
44
- this.params.colDef.cellEditorParams.hasOwnProperty('dataMap') && delete this.params.colDef.cellEditorParams.dataMap;
45
- }
46
- });
47
- // this.options = ['2',2,4]
30
+ if (this.params.multiple) {
31
+ return Array.isArray(this.value) ? this.value.map((item) => this.resolveOptionValue(item)) : this.value;
32
+ }
33
+ return this.resolveOptionValue(this.value);
48
34
  }
49
- focusIn() {
35
+ async search(e) {
36
+ const completeMethodResult = this.params.completeMethod?.(this.params, e);
37
+ if (completeMethodResult !== undefined) {
38
+ await this.applyOptionsResult(completeMethodResult);
39
+ }
40
+ if (typeof this.params.search === 'function') {
41
+ await this.applyOptionsResult(this.params.search(e));
42
+ }
43
+ this.syncSuggestionsFromParams();
50
44
  }
51
45
  select(e) {
52
- this.params.api.stopEditing();
46
+ if (this.params.multiple) {
47
+ this.value = this.toValueArray(this.value).map((item) => this.findOptionByValue(item) ?? item);
48
+ }
49
+ else {
50
+ this.value = e.value;
51
+ }
52
+ this.updateNameFields(e);
53
+ this.emitEvent('onSelect', e);
54
+ if (this.params.stopEditingOnSelect !== false) {
55
+ this.params.api.stopEditing();
56
+ }
57
+ }
58
+ unselect(e) {
59
+ this.updateNameFields(e);
60
+ this.emitEvent('onUnselect', e);
61
+ }
62
+ clear(e) {
63
+ this.value = this.params.multiple ? [] : null;
64
+ this.updateNameFields({ ...e, value: this.value });
65
+ this.emitEvent('onClear', e);
66
+ }
67
+ emitEvent(name, event) {
68
+ const callback = this.params[name];
69
+ if (typeof callback === 'function') {
70
+ callback(this.params, event);
71
+ }
72
+ }
73
+ setEditorSize(params) {
74
+ const cellWidth = params.column.getActualWidth();
75
+ this.params.style = {
76
+ border: 'none',
77
+ boxShadow: 'none',
78
+ width: `${cellWidth}px`,
79
+ background: 'var(--ag-background-color)',
80
+ ...(this.params.style || {}),
81
+ };
82
+ this.params.panelStyle = {
83
+ width: `${cellWidth}px`,
84
+ ...(this.params.panelStyle || {}),
85
+ };
86
+ }
87
+ updateNameFields(event) {
88
+ const nameFields = this.params.nameFields || [];
89
+ nameFields.forEach((nameField) => {
90
+ this.updateNameField(nameField, event);
91
+ });
92
+ }
93
+ updateNameField(nameField, event) {
94
+ const oldValue = this.params.data?.[nameField.field];
95
+ const newValue = this.resolveNameFieldValue(nameField, event?.value);
96
+ const grid = typeof this.params.grid === 'function' ? this.params.grid() : undefined;
97
+ if (grid?.cellValueChanged) {
98
+ const e = {
99
+ colDef: nameField,
100
+ oldValue,
101
+ newValue,
102
+ rowIndex: this.params.node?.rowIndex,
103
+ data: { id: this.params.data?.id },
104
+ };
105
+ grid.cellValueChanged(e);
106
+ }
107
+ if (this.params.data) {
108
+ this.params.data[nameField.field] = newValue;
109
+ }
110
+ }
111
+ resolveNameFieldValue(nameField, value) {
112
+ if (this.params.multiple) {
113
+ const values = this.toValueArray(this.getValue());
114
+ return this.displaySuggestions
115
+ .filter((op) => values.some((selectedValue) => this.valueEquals(selectedValue, this.resolveOptionValue(op))))
116
+ .map((op) => op?.[nameField.key])
117
+ .filter((item) => item !== undefined && item !== null && item !== '')
118
+ .join(',');
119
+ }
120
+ const selectedOption = typeof value === 'object' && value !== null ? value : this.findOptionByValue(value);
121
+ return selectedOption ? selectedOption[nameField.key] : null;
122
+ }
123
+ resolveInitialValue(value) {
124
+ if (this.params.multiple) {
125
+ const values = Array.isArray(value) ? value : this.toValueArray(value);
126
+ return values.map((item) => this.findOptionByValue(item) ?? item);
127
+ }
128
+ return this.findOptionByValue(value) ?? value ?? null;
129
+ }
130
+ resolveOptionValue(option) {
131
+ if (option === '' || option == null) {
132
+ return null;
133
+ }
134
+ if (typeof option !== 'object') {
135
+ return option;
136
+ }
137
+ const optionValue = this.params.optionValue;
138
+ if (typeof optionValue === 'function') {
139
+ return optionValue(option);
140
+ }
141
+ return optionValue ? option?.[optionValue] : option;
142
+ }
143
+ findOptionByValue(value) {
144
+ return this.displaySuggestions.find((option) => this.valueEquals(this.resolveOptionValue(option), value));
145
+ }
146
+ valueEquals(a, b) {
147
+ return a === b || (a != null && b != null && String(a) === String(b));
148
+ }
149
+ async applyOptionsResult(result) {
150
+ const resolved = await this.resolveResult(result);
151
+ if (resolved === undefined) {
152
+ return;
153
+ }
154
+ const options = this.extractOptions(resolved);
155
+ if (options) {
156
+ this.setSuggestions(options);
157
+ }
158
+ }
159
+ async resolveResult(result) {
160
+ if (isObservable(result)) {
161
+ return lastValueFrom(result);
162
+ }
163
+ if (result && typeof result.then === 'function') {
164
+ return result;
165
+ }
166
+ return result;
167
+ }
168
+ extractOptions(result) {
169
+ if (Array.isArray(result)) {
170
+ return result;
171
+ }
172
+ if (Array.isArray(result?.data)) {
173
+ return result.data;
174
+ }
175
+ if (Array.isArray(result?.suggestions)) {
176
+ return result.suggestions;
177
+ }
178
+ if (Array.isArray(result?.options)) {
179
+ return result.options;
180
+ }
181
+ return undefined;
182
+ }
183
+ setSuggestions(options) {
184
+ this.suggestions = this.normalizeOptions(options);
185
+ this.params.suggestions = this.suggestions;
186
+ if (this.params.colDef?.cellEditorParams) {
187
+ this.params.colDef.cellEditorParams.suggestions = this.suggestions;
188
+ this.params.colDef.cellEditorParams.options = this.suggestions;
189
+ }
190
+ }
191
+ syncSuggestionsFromParams() {
192
+ const options = this.params.suggestions ?? this.params.options ?? this.params.colDef?.cellEditorParams?.suggestions ?? this.params.colDef?.cellEditorParams?.options;
193
+ if (options !== undefined && options !== this.suggestions) {
194
+ this.setSuggestions(options);
195
+ }
196
+ }
197
+ normalizeOptions(options) {
198
+ return Array.isArray(options) ? options : [];
199
+ }
200
+ resolveEditorParams(params) {
201
+ const cellEditorParams = params.colDef.cellEditorParams;
202
+ if (typeof cellEditorParams === 'function') {
203
+ return cellEditorParams(params) || {};
204
+ }
205
+ return cellEditorParams || {};
206
+ }
207
+ toValueArray(value) {
208
+ if (Array.isArray(value)) {
209
+ return value;
210
+ }
211
+ if (value === '' || value == null) {
212
+ return [];
213
+ }
214
+ return String(value).split(',').filter((item) => item !== '');
53
215
  }
54
216
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAutoCompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
217
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CellEditAutoCompleteComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
56
218
  <p-autocomplete
57
219
  [(ngModel)]="value"
58
- [suggestions]="options"
220
+ [suggestions]="displaySuggestions"
221
+ [minLength]="params.minLength ?? 1"
222
+ [delay]="params.delay ?? 300"
223
+ [panelStyle]="params.panelStyle"
224
+ [panelStyleClass]="params.panelStyleClass"
225
+ [styleClass]="params.styleClass"
226
+ [inputStyle]="params.inputStyle"
227
+ [inputStyleClass]="params.inputStyleClass"
59
228
  [placeholder]="params.placeholder"
60
- [size]="'large'"
61
- appendTo="body"
229
+ [readonly]="params.readonly"
230
+ [disabled]="params.disabled"
231
+ [scrollHeight]="params.scrollHeight ?? '200px'"
232
+ [lazy]="params.lazy"
233
+ [virtualScroll]="params.virtualScroll"
234
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
235
+ [virtualScrollOptions]="params.virtualScrollOptions"
236
+ [maxlength]="params.maxlength"
237
+ [name]="params.name"
238
+ [size]="params.size"
239
+ [appendTo]="params.appendTo ?? 'body'"
240
+ [autoHighlight]="params.autoHighlight"
241
+ [forceSelection]="params.forceSelection"
242
+ [type]="params.type ?? 'text'"
243
+ [autoZIndex]="params.autoZIndex ?? true"
244
+ [baseZIndex]="params.baseZIndex ?? 0"
245
+ [ariaLabel]="params.ariaLabel"
246
+ [ariaLabelledBy]="params.ariaLabelledBy"
247
+ [dropdownAriaLabel]="params.dropdownAriaLabel"
248
+ [dropdownIcon]="params.dropdownIcon"
249
+ [unique]="params.unique ?? true"
250
+ [group]="params.group"
251
+ [completeOnFocus]="params.completeOnFocus"
252
+ [showClear]="params.showClear"
253
+ [dropdown]="params.dropdown"
254
+ [showEmptyMessage]="params.showEmptyMessage ?? true"
255
+ [dropdownMode]="params.dropdownMode ?? 'blank'"
256
+ [multiple]="params.multiple"
257
+ [tabindex]="params.tabindex"
258
+ [dataKey]="params.dataKey"
259
+ [emptyMessage]="params.emptyMessage"
260
+ [showTransitionOptions]="params.showTransitionOptions"
261
+ [hideTransitionOptions]="params.hideTransitionOptions"
262
+ [autofocus]="params.autofocus ?? true"
263
+ [autocomplete]="params.autocomplete ?? 'off'"
264
+ [optionGroupChildren]="params.optionGroupChildren ?? 'items'"
265
+ [optionGroupLabel]="params.optionGroupLabel ?? 'label'"
266
+ [overlayOptions]="params.overlayOptions"
62
267
  [optionLabel]="params.optionLabel"
63
268
  [optionValue]="params.optionValue"
64
- [autofocus]="true"
269
+ [searchMessage]="params.searchMessage"
270
+ [emptySelectionMessage]="params.emptySelectionMessage"
271
+ [selectionMessage]="params.selectionMessage"
272
+ [autoOptionFocus]="params.autoOptionFocus"
273
+ [selectOnFocus]="params.selectOnFocus"
274
+ [searchLocale]="params.searchLocale"
275
+ [optionDisabled]="params.optionDisabled"
276
+ [focusOnHover]="params.focusOnHover ?? true"
277
+ [typeahead]="params.typeahead ?? true"
278
+ [variant]="params.variant"
279
+ [fluid]="params.fluid ?? true"
280
+ [class]="params.class"
281
+ [style]="params.style"
65
282
  (completeMethod)="search($event)"
66
- (onSelect)="select($event)" />
67
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
283
+ (onSelect)="select($event)"
284
+ (onUnselect)="unselect($event)"
285
+ (onFocus)="emitEvent('onFocus', $event)"
286
+ (onBlur)="emitEvent('onBlur', $event)"
287
+ (onDropdownClick)="emitEvent('onDropdownClick', $event)"
288
+ (onClear)="clear($event)"
289
+ (onKeyUp)="emitEvent('onKeyUp', $event)"
290
+ (onShow)="emitEvent('onShow', $event)"
291
+ (onHide)="emitEvent('onHide', $event)"
292
+ (onLazyLoad)="emitEvent('onLazyLoad', $event)" />
293
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "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"] }] }); }
68
294
  }
69
295
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CellEditAutoCompleteComponent, decorators: [{
70
296
  type: Component,
@@ -74,16 +300,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
74
300
  template: `
75
301
  <p-autocomplete
76
302
  [(ngModel)]="value"
77
- [suggestions]="options"
303
+ [suggestions]="displaySuggestions"
304
+ [minLength]="params.minLength ?? 1"
305
+ [delay]="params.delay ?? 300"
306
+ [panelStyle]="params.panelStyle"
307
+ [panelStyleClass]="params.panelStyleClass"
308
+ [styleClass]="params.styleClass"
309
+ [inputStyle]="params.inputStyle"
310
+ [inputStyleClass]="params.inputStyleClass"
78
311
  [placeholder]="params.placeholder"
79
- [size]="'large'"
80
- appendTo="body"
312
+ [readonly]="params.readonly"
313
+ [disabled]="params.disabled"
314
+ [scrollHeight]="params.scrollHeight ?? '200px'"
315
+ [lazy]="params.lazy"
316
+ [virtualScroll]="params.virtualScroll"
317
+ [virtualScrollItemSize]="params.virtualScrollItemSize"
318
+ [virtualScrollOptions]="params.virtualScrollOptions"
319
+ [maxlength]="params.maxlength"
320
+ [name]="params.name"
321
+ [size]="params.size"
322
+ [appendTo]="params.appendTo ?? 'body'"
323
+ [autoHighlight]="params.autoHighlight"
324
+ [forceSelection]="params.forceSelection"
325
+ [type]="params.type ?? 'text'"
326
+ [autoZIndex]="params.autoZIndex ?? true"
327
+ [baseZIndex]="params.baseZIndex ?? 0"
328
+ [ariaLabel]="params.ariaLabel"
329
+ [ariaLabelledBy]="params.ariaLabelledBy"
330
+ [dropdownAriaLabel]="params.dropdownAriaLabel"
331
+ [dropdownIcon]="params.dropdownIcon"
332
+ [unique]="params.unique ?? true"
333
+ [group]="params.group"
334
+ [completeOnFocus]="params.completeOnFocus"
335
+ [showClear]="params.showClear"
336
+ [dropdown]="params.dropdown"
337
+ [showEmptyMessage]="params.showEmptyMessage ?? true"
338
+ [dropdownMode]="params.dropdownMode ?? 'blank'"
339
+ [multiple]="params.multiple"
340
+ [tabindex]="params.tabindex"
341
+ [dataKey]="params.dataKey"
342
+ [emptyMessage]="params.emptyMessage"
343
+ [showTransitionOptions]="params.showTransitionOptions"
344
+ [hideTransitionOptions]="params.hideTransitionOptions"
345
+ [autofocus]="params.autofocus ?? true"
346
+ [autocomplete]="params.autocomplete ?? 'off'"
347
+ [optionGroupChildren]="params.optionGroupChildren ?? 'items'"
348
+ [optionGroupLabel]="params.optionGroupLabel ?? 'label'"
349
+ [overlayOptions]="params.overlayOptions"
81
350
  [optionLabel]="params.optionLabel"
82
351
  [optionValue]="params.optionValue"
83
- [autofocus]="true"
352
+ [searchMessage]="params.searchMessage"
353
+ [emptySelectionMessage]="params.emptySelectionMessage"
354
+ [selectionMessage]="params.selectionMessage"
355
+ [autoOptionFocus]="params.autoOptionFocus"
356
+ [selectOnFocus]="params.selectOnFocus"
357
+ [searchLocale]="params.searchLocale"
358
+ [optionDisabled]="params.optionDisabled"
359
+ [focusOnHover]="params.focusOnHover ?? true"
360
+ [typeahead]="params.typeahead ?? true"
361
+ [variant]="params.variant"
362
+ [fluid]="params.fluid ?? true"
363
+ [class]="params.class"
364
+ [style]="params.style"
84
365
  (completeMethod)="search($event)"
85
- (onSelect)="select($event)" />
366
+ (onSelect)="select($event)"
367
+ (onUnselect)="unselect($event)"
368
+ (onFocus)="emitEvent('onFocus', $event)"
369
+ (onBlur)="emitEvent('onBlur', $event)"
370
+ (onDropdownClick)="emitEvent('onDropdownClick', $event)"
371
+ (onClear)="clear($event)"
372
+ (onKeyUp)="emitEvent('onKeyUp', $event)"
373
+ (onShow)="emitEvent('onShow', $event)"
374
+ (onHide)="emitEvent('onHide', $event)"
375
+ (onLazyLoad)="emitEvent('onLazyLoad', $event)" />
86
376
  `
87
377
  }]
88
378
  }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0LWF1dG9Db21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC1lZGl0L2NlbGwtZWRpdC1hdXRvQ29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFtQjdDLE1BQU0sT0FBTyw2QkFBNkI7SUFNdkMsTUFBTSxDQUFDLE1BQXlCO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtRQUN6QixNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxXQUFXLEVBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUE7UUFDeEYsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDL0MsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQ3hCLENBQUM7SUFDRCxRQUFRO1FBQ04sdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNuQixDQUFDO0lBQ0Qsc0JBQXNCO0lBQ3RCLGlDQUFpQztJQUNqQyxJQUFJO0lBQ0osUUFBUSxDQUFDLENBQUs7UUFDWixpQkFBaUI7UUFDakIsU0FBUztJQUNYLENBQUM7SUFDRCxVQUFVO1FBQ1IsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUMsV0FBVyxFQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUE7UUFDL0UsT0FBTyxPQUFPLElBQUksV0FBVyxJQUFJLFdBQVcsSUFBSSxXQUFXLEtBQUssV0FBVyxDQUFBO0lBQzdFLENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBSztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQTtZQUN2QixJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBSyxFQUFDLENBQUssRUFBRSxFQUFFO29CQUM1RSxJQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDO3dCQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNiLENBQUM7b0JBQ0QsT0FBTyxDQUFDLENBQUE7Z0JBQ1YsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ1AsQ0FBQztZQUNELElBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQTtZQUNySCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRiwyQkFBMkI7SUFDN0IsQ0FBQztJQUNELE9BQU87SUFFUCxDQUFDO0lBRUQsTUFBTSxDQUFDLENBQXlCO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7K0dBckRRLDZCQUE2QjttR0FBN0IsNkJBQTZCLHdFQWYvQjs7Ozs7Ozs7Ozs7O0dBWVIsMkRBYlMsa0JBQWtCLG93Q0FBQyxXQUFXOzs0RkFnQjdCLDZCQUE2QjtrQkFsQnpDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFDLFdBQVcsQ0FBQztvQkFDekMsUUFBUSxFQUFDOzs7Ozs7Ozs7Ozs7R0FZUjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5L2Rpc3QvdHlwZXMvc3JjL2ludGVyZmFjZXMvaUNlbGxFZGl0b3InO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlLCBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBdXRvQ29tcGxldGVNb2R1bGUsRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTpgXG4gICAgPHAtYXV0b2NvbXBsZXRlIFxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIFxuICAgICAgW3N1Z2dlc3Rpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBhcmFtcy5wbGFjZWhvbGRlclwiXG4gICAgICBbc2l6ZV09XCInbGFyZ2UnXCJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICBbb3B0aW9uTGFiZWxdPVwicGFyYW1zLm9wdGlvbkxhYmVsXCJcbiAgICAgIFtvcHRpb25WYWx1ZV09XCJwYXJhbXMub3B0aW9uVmFsdWVcIlxuICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAob25TZWxlY3QpPVwic2VsZWN0KCRldmVudClcIiAvPlxuICBgXG59KVxuXG5leHBvcnQgY2xhc3MgQ2VsbEVkaXRBdXRvQ29tcGxldGVDb21wb25lbnQge1xuICBwdWJsaWMgcGFyYW1zITogYW55O1xuICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgcHVibGljIHZhbHVlczphbnlcbiAgb3B0aW9uczphbnkgXG5cbiAgIGFnSW5pdChwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zKTogdm9pZCB7XG4gICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgIHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICAgIGNvbnN0IHsgZGF0YU1hcCwgb3B0aW9uTGFiZWwsb3B0aW9uVmFsdWUsb3B0aW9ucyA9IFtdIH0gPSBwYXJhbXMuY29sRGVmLmNlbGxFZGl0b3JQYXJhbXNcbiAgICAgIGlmKHRoaXMuaXNLZXlWYWx1ZSgpKXtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGFNYXBbdGhpcy52YWx1ZV1bb3B0aW9uTGFiZWxdXG4gICAgICB9XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXG4gICAgfVxuICAgIGdldFZhbHVlKCl7XG4gICAgICAvLyBjb25zb2xlLmxvZygndGhpcy52YWx1ZScsdGhpcy52YWx1ZSlcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgfVxuICAgIC8vIHJlZnJlc2gocGFyYW06YW55KXtcbiAgICAvLyAgIHRoaXMub3B0aW9ucyA9IHBhcmFtLm9wdGlvbnNcbiAgICAvLyB9XG4gICAgb25DaGFuZ2UoZTphbnkpe1xuICAgICAgLy8gY29uc29sZS5sb2coZSlcbiAgICAgIC8vIGUuc3RvcFxuICAgIH1cbiAgICBpc0tleVZhbHVlKCl7XG4gICAgICBjb25zdCB7IGRhdGFNYXAsIG9wdGlvbkxhYmVsLG9wdGlvblZhbHVlfSA9IHRoaXMucGFyYW1zLmNvbERlZi5jZWxsRWRpdG9yUGFyYW1zXG4gICAgICByZXR1cm4gZGF0YU1hcCAmJiBvcHRpb25MYWJlbCAmJiBvcHRpb25WYWx1ZSAmJiBvcHRpb25WYWx1ZSAhPT0gb3B0aW9uTGFiZWxcbiAgICB9XG4gICAgc2VhcmNoKGU6YW55KXtcbiAgICAgIHRoaXMucGFyYW1zLnNlYXJjaChlKS5zdWJzY3JpYmUoKHJlczphbnkpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gcmVzLmRhdGFcbiAgICAgICAgaWYodGhpcy5pc0tleVZhbHVlKCkgJiYgcmVzLmRhdGEubGVuZ3RoID4gMCl7XG4gICAgICAgICAgdGhpcy5wYXJhbXMuY29sRGVmLmNlbGxFZGl0b3JQYXJhbXMuZGF0YU1hcCA9IHJlcy5kYXRhLnJlZHVjZSgocDphbnksbjphbnkpID0+IHtcbiAgICAgICAgICAgIGlmKCFwW24uaWRdKXtcbiAgICAgICAgICAgICAgcFtuLmlkXSA9IG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwXG4gICAgICAgICAgfSx7fSlcbiAgICAgICAgfVxuICAgICAgICBpZihyZXMuZGF0YS5sZW5ndGggPT09IDApe1xuICAgICAgICAgIHRoaXMucGFyYW1zLmNvbERlZi5jZWxsRWRpdG9yUGFyYW1zLmhhc093blByb3BlcnR5KCdkYXRhTWFwJykgJiYgZGVsZXRlIHRoaXMucGFyYW1zLmNvbERlZi5jZWxsRWRpdG9yUGFyYW1zLmRhdGFNYXBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC8vIHRoaXMub3B0aW9ucyA9IFsnMicsMiw0XVxuICAgIH1cbiAgICBmb2N1c0luKCl7XG5cbiAgICB9XG5cbiAgICBzZWxlY3QoZTpBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkuc3RvcEVkaXRpbmcoKTsgXG4gICAgfVxuICAgIC8vIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICAgIC8vIG9uRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyAgIHRoaXMucGFyYW1zLmFwaS5zdG9wRWRpdGluZygpO1xuICAgIC8vIH1cbn0iXX0=
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0LWF1dG9Db21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvY2VsbC1lZGl0L2NlbGwtZWRpdC1hdXRvQ29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFFLGtCQUFrQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQXFGbkQsTUFBTSxPQUFPLDZCQUE2QjtJQWxGMUM7UUFtRlMsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUV4QixnQkFBVyxHQUFTLEVBQUUsQ0FBQztLQXFPeEI7SUFuT0MsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDek0sQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUF5QjtRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsWUFBWTtZQUNmLEdBQUcsTUFBTTtZQUNULFdBQVcsRUFBRSxZQUFZLENBQUMsV0FB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QztvQkFDekMsUUFBUSxFQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEVSO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbEVkaXRvclBhcmFtcyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU1vZHVsZSwgQXV0b0NvbXBsZXRlU2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQXV0b0NvbXBsZXRlTW9kdWxlLEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGU6YFxuICAgIDxwLWF1dG9jb21wbGV0ZSBcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiBcbiAgICAgIFtzdWdnZXN0aW9uc109XCJkaXNwbGF5U3VnZ2VzdGlvbnNcIlxuICAgICAgW21pbkxlbmd0aF09XCJwYXJhbXMubWluTGVuZ3RoID8/IDFcIlxuICAgICAgW2RlbGF5XT1cInBhcmFtcy5kZWxheSA/PyAzMDBcIlxuICAgICAgW3BhbmVsU3R5bGVdPVwicGFyYW1zLnBhbmVsU3R5bGVcIlxuICAgICAgW3BhbmVsU3R5bGVDbGFzc109XCJwYXJhbXMucGFuZWxTdHlsZUNsYXNzXCJcbiAgICAgIFtzdHlsZUNsYXNzXT1cInBhcmFtcy5zdHlsZUNsYXNzXCJcbiAgICAgIFtpbnB1dFN0eWxlXT1cInBhcmFtcy5pbnB1dFN0eWxlXCJcbiAgICAgIFtpbnB1dFN0eWxlQ2xhc3NdPVwicGFyYW1zLmlucHV0U3R5bGVDbGFzc1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGFyYW1zLnBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZWFkb25seV09XCJwYXJhbXMucmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cInBhcmFtcy5kaXNhYmxlZFwiXG4gICAgICBbc2Nyb2xsSGVpZ2h0XT1cInBhcmFtcy5zY3JvbGxIZWlnaHQgPz8gJzIwMHB4J1wiXG4gICAgICBbbGF6eV09XCJwYXJhbXMubGF6eVwiXG4gICAgICBbdmlydHVhbFNjcm9sbF09XCJwYXJhbXMudmlydHVhbFNjcm9sbFwiXG4gICAgICBbdmlydHVhbFNjcm9sbEl0ZW1TaXplXT1cInBhcmFtcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxuICAgICAgW3ZpcnR1YWxTY3JvbGxPcHRpb25zXT1cInBhcmFtcy52aXJ0dWFsU2Nyb2xsT3B0aW9uc1wiXG4gICAgICBbbWF4bGVuZ3RoXT1cInBhcmFtcy5tYXhsZW5ndGhcIlxuICAgICAgW25hbWVdPVwicGFyYW1zLm5hbWVcIlxuICAgICAgW3NpemVdPVwicGFyYW1zLnNpemVcIlxuICAgICAgW2FwcGVuZFRvXT1cInBhcmFtcy5hcHBlbmRUbyA/PyAnYm9keSdcIlxuICAgICAgW2F1dG9IaWdobGlnaHRdPVwicGFyYW1zLmF1dG9IaWdobGlnaHRcIlxuICAgICAgW2ZvcmNlU2VsZWN0aW9uXT1cInBhcmFtcy5mb3JjZVNlbGVjdGlvblwiXG4gICAgICBbdHlwZV09XCJwYXJhbXMudHlwZSA/PyAndGV4dCdcIlxuICAgICAgW2F1dG9aSW5kZXhdPVwicGFyYW1zLmF1dG9aSW5kZXggPz8gdHJ1ZVwiXG4gICAgICBbYmFzZVpJbmRleF09XCJwYXJhbXMuYmFzZVpJbmRleCA/PyAwXCJcbiAgICAgIFthcmlhTGFiZWxdPVwicGFyYW1zLmFyaWFMYWJlbFwiXG4gICAgICBbYXJpYUxhYmVsbGVkQnldPVwicGFyYW1zLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgIFtkcm9wZG93bkFyaWFMYWJlbF09XCJwYXJhbXMuZHJvcGRvd25BcmlhTGFiZWxcIlxuICAgICAgW2Ryb3Bkb3duSWNvbl09XCJwYXJhbXMuZHJvcGRvd25JY29uXCJcbiAgICAgIFt1bmlxdWVdPVwicGFyYW1zLnVuaXF1ZSA/PyB0cnVlXCJcbiAgICAgIFtncm91cF09XCJwYXJhbXMuZ3JvdXBcIlxuICAgICAgW2NvbXBsZXRlT25Gb2N1c109XCJwYXJhbXMuY29tcGxldGVPbkZvY3VzXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwicGFyYW1zLnNob3dDbGVhclwiXG4gICAgICBbZHJvcGRvd25dPVwicGFyYW1zLmRyb3Bkb3duXCJcbiAgICAgIFtzaG93RW1wdHlNZXNzYWdlXT1cInBhcmFtcy5zaG93RW1wdHlNZXNzYWdlID8/IHRydWVcIlxuICAgICAgW2Ryb3Bkb3duTW9kZV09XCJwYXJhbXMuZHJvcGRvd25Nb2RlID8/ICdibGFuaydcIlxuICAgICAgW211bHRpcGxlXT1cInBhcmFtcy5tdWx0aXBsZVwiXG4gICAgICBbdGFiaW5kZXhdPVwicGFyYW1zLnRhYmluZGV4XCJcbiAgICAgIFtkYXRhS2V5XT1cInBhcmFtcy5kYXRhS2V5XCJcbiAgICAgIFtlbXB0eU1lc3NhZ2VdPVwicGFyYW1zLmVtcHR5TWVzc2FnZVwiXG4gICAgICBbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cInBhcmFtcy5zaG93VHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgW2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJwYXJhbXMuaGlkZVRyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgIFthdXRvZm9jdXNdPVwicGFyYW1zLmF1dG9mb2N1cyA/PyB0cnVlXCJcbiAgICAgIFthdXRvY29tcGxldGVdPVwicGFyYW1zLmF1dG9jb21wbGV0ZSA/PyAnb2ZmJ1wiXG4gICAgICBbb3B0aW9uR3JvdXBDaGlsZHJlbl09XCJwYXJhbXMub3B0aW9uR3JvdXBDaGlsZHJlbiA/PyAnaXRlbXMnXCJcbiAgICAgIFtvcHRpb25Hcm91cExhYmVsXT1cInBhcmFtcy5vcHRpb25Hcm91cExhYmVsID8/ICdsYWJlbCdcIlxuICAgICAgW292ZXJsYXlPcHRpb25zXT1cInBhcmFtcy5vdmVybGF5T3B0aW9uc1wiXG4gICAgICBbb3B0aW9uTGFiZWxdPVwicGFyYW1zLm9wdGlvbkxhYmVsXCJcbiAgICAgIFtvcHRpb25WYWx1ZV09XCJwYXJhbXMub3B0aW9uVmFsdWVcIlxuICAgICAgW3NlYXJjaE1lc3NhZ2VdPVwicGFyYW1zLnNlYXJjaE1lc3NhZ2VcIlxuICAgICAgW2VtcHR5U2VsZWN0aW9uTWVzc2FnZV09XCJwYXJhbXMuZW1wdHlTZWxlY3Rpb25NZXNzYWdlXCJcbiAgICAgIFtzZWxlY3Rpb25NZXNzYWdlXT1cInBhcmFtcy5zZWxlY3Rpb25NZXNzYWdlXCJcbiAgICAgIFthdXRvT3B0aW9uRm9jdXNdPVwicGFyYW1zLmF1dG9PcHRpb25Gb2N1c1wiXG4gICAgICBbc2VsZWN0T25Gb2N1c109XCJwYXJhbXMuc2VsZWN0T25Gb2N1c1wiXG4gICAgICBbc2VhcmNoTG9jYWxlXT1cInBhcmFtcy5zZWFyY2hMb2NhbGVcIlxuICAgICAgW29wdGlvbkRpc2FibGVkXT1cInBhcmFtcy5vcHRpb25EaXNhYmxlZFwiXG4gICAgICBbZm9jdXNPbkhvdmVyXT1cInBhcmFtcy5mb2N1c09uSG92ZXIgPz8gdHJ1ZVwiXG4gICAgICBbdHlwZWFoZWFkXT1cInBhcmFtcy50eXBlYWhlYWQgPz8gdHJ1ZVwiXG4gICAgICBbdmFyaWFudF09XCJwYXJhbXMudmFyaWFudFwiXG4gICAgICBbZmx1aWRdPVwicGFyYW1zLmZsdWlkID8/IHRydWVcIlxuICAgICAgW2NsYXNzXT1cInBhcmFtcy5jbGFzc1wiXG4gICAgICBbc3R5bGVdPVwicGFyYW1zLnN0eWxlXCJcbiAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAob25TZWxlY3QpPVwic2VsZWN0KCRldmVudClcIlxuICAgICAgKG9uVW5zZWxlY3QpPVwidW5zZWxlY3QoJGV2ZW50KVwiXG4gICAgICAob25Gb2N1cyk9XCJlbWl0RXZlbnQoJ29uRm9jdXMnLCAkZXZlbnQpXCJcbiAgICAgIChvbkJsdXIpPVwiZW1pdEV2ZW50KCdvbkJsdXInLCAkZXZlbnQpXCJcbiAgICAgIChvbkRyb3Bkb3duQ2xpY2spPVwiZW1pdEV2ZW50KCdvbkRyb3Bkb3duQ2xpY2snLCAkZXZlbnQpXCJcbiAgICAgIChvbkNsZWFyKT1cImNsZWFyKCRldmVudClcIlxuICAgICAgKG9uS2V5VXApPVwiZW1pdEV2ZW50KCdvbktleVVwJywgJGV2ZW50KVwiXG4gICAgICAob25TaG93KT1cImVtaXRFdmVudCgnb25TaG93JywgJGV2ZW50KVwiXG4gICAgICAob25IaWRlKT1cImVtaXRFdmVudCgnb25IaWRlJywgJGV2ZW50KVwiXG4gICAgICAob25MYXp5TG9hZCk9XCJlbWl0RXZlbnQoJ29uTGF6eUxvYWQnLCAkZXZlbnQpXCIgLz5cbiAgYFxufSlcblxuZXhwb3J0IGNsYXNzIENlbGxFZGl0QXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB7XG4gIHB1YmxpYyBwYXJhbXM6IGFueSA9IHt9O1xuICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgc3VnZ2VzdGlvbnM6YW55W10gPSBbXTtcblxuICBnZXQgZGlzcGxheVN1Z2dlc3Rpb25zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVPcHRpb25zKHRoaXMucGFyYW1zLnN1Z2dlc3Rpb25zID8/IHRoaXMucGFyYW1zLm9wdGlvbnMgPz8gdGhpcy5wYXJhbXMuY29sRGVmPy5jZWxsRWRpdG9yUGFyYW1zPy5zdWdnZXN0aW9ucyA/PyB0aGlzLnBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/Lm9wdGlvbnMgPz8gdGhpcy5zdWdnZXN0aW9ucyk7XG4gIH1cblxuICBhZ0luaXQocGFyYW1zOiBJQ2VsbEVkaXRvclBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvclBhcmFtcyA9IHRoaXMucmVzb2x2ZUVkaXRvclBhcmFtcyhwYXJhbXMpO1xuICAgIHRoaXMucGFyYW1zID0ge1xuICAgICAgLi4uZWRpdG9yUGFyYW1zLFxuICAgICAgLi4ucGFyYW1zLFxuICAgICAgb3B0aW9uTGFiZWw6IGVkaXRvclBhcmFtcy5vcHRpb25MYWJlbCB8fCAnbGFiZWwnLFxuICAgICAgb3B0aW9uVmFsdWU6IGVkaXRvclBhcmFtcy5vcHRpb25WYWx1ZSB8fCAndmFsdWUnLFxuICAgIH07XG4gICAgdGhpcy5zdWdnZXN0aW9ucyA9IHRoaXMubm9ybWFsaXplT3B0aW9ucyhlZGl0b3JQYXJhbXMuc3VnZ2VzdGlvbnMgPz8gZWRpdG9yUGFyYW1zLm9wdGlvbnMgPz8gW10pO1xuICAgIHRoaXMucGFyYW1zLnN1Z2dlc3Rpb25zID0gdGhpcy5zdWdnZXN0aW9ucztcbiAgICB0aGlzLnNldEVkaXRvclNpemUocGFyYW1zKTtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5yZXNvbHZlSW5pdGlhbFZhbHVlKHBhcmFtcy52YWx1ZSk7XG4gIH1cblxuICBnZXRWYWx1ZSgpe1xuICAgIGlmICh0aGlzLnBhcmFtcy5tdWx0aXBsZSkge1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlLm1hcCgoaXRlbSkgPT4gdGhpcy5yZXNvbHZlT3B0aW9uVmFsdWUoaXRlbSkpIDogdGhpcy52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZU9wdGlvblZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgYXN5bmMgc2VhcmNoKGU6YW55KXtcbiAgICBjb25zdCBjb21wbGV0ZU1ldGhvZFJlc3VsdCA9IHRoaXMucGFyYW1zLmNvbXBsZXRlTWV0aG9kPy4odGhpcy5wYXJhbXMsIGUpO1xuICAgIGlmIChjb21wbGV0ZU1ldGhvZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmFwcGx5T3B0aW9uc1Jlc3VsdChjb21wbGV0ZU1ldGhvZFJlc3VsdCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnBhcmFtcy5zZWFyY2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGF3YWl0IHRoaXMuYXBwbHlPcHRpb25zUmVzdWx0KHRoaXMucGFyYW1zLnNlYXJjaChlKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zeW5jU3VnZ2VzdGlvbnNGcm9tUGFyYW1zKCk7XG4gIH1cblxuICBzZWxlY3QoZTpBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgaWYgKHRoaXMucGFyYW1zLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy50b1ZhbHVlQXJyYXkodGhpcy52YWx1ZSkubWFwKChpdGVtKSA9PiB0aGlzLmZpbmRPcHRpb25CeVZhbHVlKGl0ZW0pID8/IGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gZS52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVOYW1lRmllbGRzKGUpO1xuICAgIHRoaXMuZW1pdEV2ZW50KCdvblNlbGVjdCcsIGUpO1xuICAgIGlmICh0aGlzLnBhcmFtcy5zdG9wRWRpdGluZ09uU2VsZWN0ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5wYXJhbXMuYXBpLnN0b3BFZGl0aW5nKCk7IFxuICAgIH1cbiAgfVxuXG4gIHVuc2VsZWN0KGU6YW55KXtcbiAgICB0aGlzLnVwZGF0ZU5hbWVGaWVsZHMoZSk7XG4gICAgdGhpcy5lbWl0RXZlbnQoJ29uVW5zZWxlY3QnLCBlKTtcbiAgfVxuXG4gIGNsZWFyKGU6YW55KXtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5wYXJhbXMubXVsdGlwbGUgPyBbXSA6IG51bGw7XG4gICAgdGhpcy51cGRhdGVOYW1lRmllbGRzKHsgLi4uZSwgdmFsdWU6IHRoaXMudmFsdWUgfSk7XG4gICAgdGhpcy5lbWl0RXZlbnQoJ29uQ2xlYXInLCBlKTtcbiAgfVxuXG4gIGVtaXRFdmVudChuYW1lOnN0cmluZywgZXZlbnQ6YW55KXtcbiAgICBjb25zdCBjYWxsYmFjayA9IHRoaXMucGFyYW1zW25hbWVdO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMucGFyYW1zLCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFZGl0b3JTaXplKHBhcmFtczogSUNlbGxFZGl0b3JQYXJhbXMpIHtcbiAgICBjb25zdCBjZWxsV2lkdGggPSBwYXJhbXMuY29sdW1uLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgdGhpcy5wYXJhbXMuc3R5bGUgPSB7XG4gICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgd2lkdGg6IGAke2NlbGxXaWR0aH1weGAsXG4gICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tYWctYmFja2dyb3VuZC1jb2xvciknLFxuICAgICAgLi4uKHRoaXMucGFyYW1zLnN0eWxlIHx8IHt9KSxcbiAgICB9O1xuICAgIHRoaXMucGFyYW1zLnBhbmVsU3R5bGUgPSB7XG4gICAgICB3aWR0aDogYCR7Y2VsbFdpZHRofXB4YCxcbiAgICAgIC4uLih0aGlzLnBhcmFtcy5wYW5lbFN0eWxlIHx8IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVOYW1lRmllbGRzKGV2ZW50OmFueSkge1xuICAgIGNvbnN0IG5hbWVGaWVsZHMgPSB0aGlzLnBhcmFtcy5uYW1lRmllbGRzIHx8IFtdO1xuICAgIG5hbWVGaWVsZHMuZm9yRWFjaCgobmFtZUZpZWxkOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlTmFtZUZpZWxkKG5hbWVGaWVsZCwgZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVOYW1lRmllbGQobmFtZUZpZWxkOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMucGFyYW1zLmRhdGE/LltuYW1lRmllbGQuZmllbGRdO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5yZXNvbHZlTmFtZUZpZWxkVmFsdWUobmFtZUZpZWxkLCBldmVudD8udmFsdWUpO1xuICAgIGNvbnN0IGdyaWQ6IEdyaWRDb21wb25lbnQgfCB1bmRlZmluZWQgPSB0eXBlb2YgdGhpcy5wYXJhbXMuZ3JpZCA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMucGFyYW1zLmdyaWQoKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoZ3JpZD8uY2VsbFZhbHVlQ2hhbmdlZCkge1xuICAgICAgY29uc3QgZTogYW55ID0ge1xuICAgICAgICBjb2xEZWY6IG5hbWVGaWVsZCxcbiAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgIG5ld1ZhbHVlLFxuICAgICAgICByb3dJbmRleDogdGhpcy5wYXJhbXMubm9kZT8ucm93SW5kZXgsXG4gICAgICAgIGRhdGE6IHsgaWQ6IHRoaXMucGFyYW1zLmRhdGE/LmlkIH0sXG4gICAgICB9O1xuICAgICAgZ3JpZC5jZWxsVmFsdWVDaGFuZ2VkKGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wYXJhbXMuZGF0YSkge1xuICAgICAgdGhpcy5wYXJhbXMuZGF0YVtuYW1lRmllbGQuZmllbGRdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlTmFtZUZpZWxkVmFsdWUobmFtZUZpZWxkOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMudG9WYWx1ZUFycmF5KHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwbGF5U3VnZ2VzdGlvbnNcbiAgICAgICAgLmZpbHRlcigob3A6IGFueSkgPT4gdmFsdWVzLnNvbWUoKHNlbGVjdGVkVmFsdWU6IGFueSkgPT4gdGhpcy52YWx1ZUVxdWFscyhzZWxlY3RlZFZhbHVlLCB0aGlzLnJlc29sdmVPcHRpb25WYWx1ZShvcCkpKSlcbiAgICAgICAgLm1hcCgob3A6IGFueSkgPT4gb3A/LltuYW1lRmllbGQua2V5XSlcbiAgICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSAnJylcbiAgICAgICAgLmpvaW4oJywnKTtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsID8gdmFsdWUgOiB0aGlzLmZpbmRPcHRpb25CeVZhbHVlKHZhbHVlKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24gPyBzZWxlY3RlZE9wdGlvbltuYW1lRmllbGQua2V5XSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJbml0aWFsVmFsdWUodmFsdWU6YW55KSB7XG4gICAgaWYgKHRoaXMucGFyYW1zLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdGhpcy50b1ZhbHVlQXJyYXkodmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKGl0ZW0pID0+IHRoaXMuZmluZE9wdGlvbkJ5VmFsdWUoaXRlbSkgPz8gaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbmRPcHRpb25CeVZhbHVlKHZhbHVlKSA/PyB2YWx1ZSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlT3B0aW9uVmFsdWUob3B0aW9uOmFueSkge1xuICAgIGlmIChvcHRpb24gPT09ICcnIHx8IG9wdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb24gIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb25WYWx1ZSA9IHRoaXMucGFyYW1zLm9wdGlvblZhbHVlO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBvcHRpb25WYWx1ZShvcHRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9uVmFsdWUgPyBvcHRpb24/LltvcHRpb25WYWx1ZV0gOiBvcHRpb247XG4gIH1cblxuICBwcml2YXRlIGZpbmRPcHRpb25CeVZhbHVlKHZhbHVlOmFueSkge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXlTdWdnZXN0aW9ucy5maW5kKChvcHRpb24pID0+IHRoaXMudmFsdWVFcXVhbHModGhpcy5yZXNvbHZlT3B0aW9uVmFsdWUob3B0aW9uKSwgdmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVFcXVhbHMoYTphbnksIGI6YW55KSB7XG4gICAgcmV0dXJuIGEgPT09IGIgfHwgKGEgIT0gbnVsbCAmJiBiICE9IG51bGwgJiYgU3RyaW5nKGEpID09PSBTdHJpbmcoYikpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhcHBseU9wdGlvbnNSZXN1bHQocmVzdWx0OmFueSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlUmVzdWx0KHJlc3VsdCk7XG4gICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZXh0cmFjdE9wdGlvbnMocmVzb2x2ZWQpO1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVJlc3VsdChyZXN1bHQ6YW55KSB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShyZXN1bHQpO1xuICAgIH1cbiAgICBpZiAocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE9wdGlvbnMocmVzdWx0OmFueSk6IGFueVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQ/LmRhdGEpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LmRhdGE7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdD8uc3VnZ2VzdGlvbnMpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0LnN1Z2dlc3Rpb25zO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQ/Lm9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0Lm9wdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHNldFN1Z2dlc3Rpb25zKG9wdGlvbnM6YW55W10pIHtcbiAgICB0aGlzLnN1Z2dlc3Rpb25zID0gdGhpcy5ub3JtYWxpemVPcHRpb25zKG9wdGlvbnMpO1xuICAgIHRoaXMucGFyYW1zLnN1Z2dlc3Rpb25zID0gdGhpcy5zdWdnZXN0aW9ucztcbiAgICBpZiAodGhpcy5wYXJhbXMuY29sRGVmPy5jZWxsRWRpdG9yUGFyYW1zKSB7XG4gICAgICB0aGlzLnBhcmFtcy5jb2xEZWYuY2VsbEVkaXRvclBhcmFtcy5zdWdnZXN0aW9ucyA9IHRoaXMuc3VnZ2VzdGlvbnM7XG4gICAgICB0aGlzLnBhcmFtcy5jb2xEZWYuY2VsbEVkaXRvclBhcmFtcy5vcHRpb25zID0gdGhpcy5zdWdnZXN0aW9ucztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNTdWdnZXN0aW9uc0Zyb21QYXJhbXMoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucGFyYW1zLnN1Z2dlc3Rpb25zID8/IHRoaXMucGFyYW1zLm9wdGlvbnMgPz8gdGhpcy5wYXJhbXMuY29sRGVmPy5jZWxsRWRpdG9yUGFyYW1zPy5zdWdnZXN0aW9ucyA/PyB0aGlzLnBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/Lm9wdGlvbnM7XG4gICAgaWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zICE9PSB0aGlzLnN1Z2dlc3Rpb25zKSB7XG4gICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zKG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplT3B0aW9ucyhvcHRpb25zOmFueSk6IGFueVtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShvcHRpb25zKSA/IG9wdGlvbnMgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUVkaXRvclBhcmFtcyhwYXJhbXM6IElDZWxsRWRpdG9yUGFyYW1zKSB7XG4gICAgY29uc3QgY2VsbEVkaXRvclBhcmFtcyA9IHBhcmFtcy5jb2xEZWYuY2VsbEVkaXRvclBhcmFtcztcbiAgICBpZiAodHlwZW9mIGNlbGxFZGl0b3JQYXJhbXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjZWxsRWRpdG9yUGFyYW1zKHBhcmFtcykgfHwge307XG4gICAgfVxuICAgIHJldHVybiBjZWxsRWRpdG9yUGFyYW1zIHx8IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSB0b1ZhbHVlQXJyYXkodmFsdWU6YW55KTogYW55W10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkuc3BsaXQoJywnKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09ICcnKTtcbiAgfVxufVxuIl19
@@ -1,10 +1,12 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, inject } from '@angular/core';
2
2
  import { resolveAsyncSelectOptions } from '../cell-utils/async-select-options';
3
+ import { AsyncSelectOptionsCacheService } from '../cell-utils/async-select-options-cache.service';
3
4
  import * as i0 from "@angular/core";
4
5
  export class AsyncSelectLabelRenderer {
5
6
  constructor() {
6
7
  this.label = '';
7
8
  this.loadId = 0;
9
+ this.cacheService = inject(AsyncSelectOptionsCacheService);
8
10
  }
9
11
  agInit(params) {
10
12
  this.refresh(params);
@@ -97,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
97
99
  template: `{{ label }}`,
98
100
  }]
99
101
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2VsZWN0LWxhYmVsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9ncmlkL2NlbGwtcmVuZGVyL2FzeW5jLXNlbGVjdC1sYWJlbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBc0IseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFNbkcsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQUtDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFSCxXQUFNLEdBQUcsQ0FBQyxDQUFDO0tBMEZuQjtJQXhGQSxNQUFNLENBQUMsTUFBMkI7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQTJCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUN0QixNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87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dEIsQ0FBQzsrR0E1Rlcsd0JBQXdCO21HQUF4Qix3QkFBd0Isd0VBRjFCLGFBQWE7OzRGQUVYLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGFBQWE7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgdHlwZSB7IElDZWxsUmVuZGVyZXJQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBBc3luY1NlbGVjdENvbnRleHQsIHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnMgfSBmcm9tICcuLi9jZWxsLXV0aWxzL2FzeW5jLXNlbGVjdC1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBge3sgbGFiZWwgfX1gLFxufSlcbmV4cG9ydCBjbGFzcyBBc3luY1NlbGVjdExhYmVsUmVuZGVyZXIgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuXHRsYWJlbCA9ICcnO1xuXHRwYXJhbXMhOiBhbnk7XG5cdHByaXZhdGUgbG9hZElkID0gMDtcblxuXHRhZ0luaXQocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogdm9pZCB7XG5cdFx0dGhpcy5yZWZyZXNoKHBhcmFtcyk7XG5cdH1cblxuXHRyZWZyZXNoKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGJvb2xlYW4ge1xuXHRcdHRoaXMucGFyYW1zID0gdGhpcy5tZXJnZVBhcmFtcyhwYXJhbXMpO1xuXHRcdHZvaWQgdGhpcy5sb2FkTGFiZWwoKTtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgbG9hZExhYmVsKCkge1xuXHRcdGNvbnN0IGxvYWRJZCA9ICsrdGhpcy5sb2FkSWQ7XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnBhcmFtcy52YWx1ZSA/PyB0aGlzLnBhcmFtcy5kYXRhPy5bdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcblx0XHRpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09IG51bGwpIHtcblx0XHRcdHRoaXMubGFiZWwgPSAnJztcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBjb250ZXh0ID0gdGhpcy5jcmVhdGVDb250ZXh0KHZhbHVlKTtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3Qgb3B0aW9ucyA9IGF3YWl0IHJlc29sdmVBc3luY1NlbGVjdE9wdGlvbnModGhpcy5wYXJhbXMsIGNvbnRleHQpO1xuXHRcdFx0aWYgKGxvYWRJZCAhPT0gdGhpcy5sb2FkSWQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5sYWJlbCA9IHRoaXMuZm9ybWF0TGFiZWwodmFsdWUsIG9wdGlvbnMpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0aWYgKGxvYWRJZCA9PT0gdGhpcy5sb2FkSWQpIHtcblx0XHRcdFx0dGhpcy5sYWJlbCA9IFN0cmluZyh2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBtZXJnZVBhcmFtcyhwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpIHtcblx0XHRjb25zdCBjZWxsRWRpdG9yUGFyYW1zID0gKHBhcmFtcy5jb2xEZWYgYXMgYW55KT8uY2VsbEVkaXRvclBhcmFtcyB8fCB7fTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4uY2VsbEVkaXRvclBhcmFtcyxcblx0XHRcdC4uLnBhcmFtcyxcblx0XHRcdG9wdGlvbkxhYmVsOiAocGFyYW1zIGFzIGFueSkub3B0aW9uTGFiZWwgfHwgY2VsbEVkaXRvclBhcmFtcy5vcHRpb25MYWJlbCB8fCAnbGFiZWwnLFxuXHRcdFx0b3B0aW9uVmFsdWU6IChwYXJhbXMgYXMgYW55KS5vcHRpb25WYWx1ZSB8fCBjZWxsRWRpdG9yUGFyYW1zLm9wdGlvblZhbHVlIHx8ICd2YWx1ZScsXG5cdFx0XHRtdWx0aXBsZTogKHBhcmFtcyBhcyBhbnkpLm11bHRpcGxlID8/IGNlbGxFZGl0b3JQYXJhbXMubXVsdGlwbGUsXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlQ29udGV4dCh2YWx1ZTogYW55KTogQXN5bmNTZWxlY3RDb250ZXh0IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGF0YTogdGhpcy5wYXJhbXMuZGF0YSxcblx0XHRcdHZhbHVlOiB0aGlzLnBhcmFtcy5tdWx0aXBsZSA/IHRoaXMudG9WYWx1ZVN0cmluZyh2YWx1ZSkgOiB2YWx1ZSxcblx0XHRcdHBhcmFtczogdGhpcy5wYXJhbXMsXG5cdFx0XHRmaWVsZDogdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkLFxuXHRcdFx0Y29sRGVmOiB0aGlzLnBhcmFtcy5jb2xEZWYsXG5cdFx0XHRyb3dJbmRleDogdGhpcy5wYXJhbXMubm9kZT8ucm93SW5kZXgsXG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgZm9ybWF0TGFiZWwodmFsdWU6IGFueSwgb3B0aW9uczogYW55W10pIHtcblx0XHRjb25zdCB2YWx1ZUZpZWxkID0gdGhpcy5wYXJhbXMub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJztcblx0XHRjb25zdCBsYWJlbEZpZWxkID0gdGhpcy5wYXJhbXMub3B0aW9uTGFiZWwgfHwgJ2xhYmVsJztcblx0XHRpZiAodGhpcy5wYXJhbXMubXVsdGlwbGUpIHtcblx0XHRcdGNvbnN0IHZhbHVlcyA9IHRoaXMudG9WYWx1ZUFycmF5KHZhbHVlKTtcblx0XHRcdGNvbnN0IGxhYmVscyA9IHZhbHVlcy5tYXAoKGl0ZW0pID0+IHtcblx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQ6IGFueSkgPT4gb3B0Py5bdmFsdWVGaWVsZF0gPT0gaXRlbSk7XG5cdFx0XHRcdHJldHVybiBvcHRpb24gPyBvcHRpb24/LltsYWJlbEZpZWxkXSA6IGl0ZW07XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBsYWJlbHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSAnJykuam9pbignLCcpO1xuXHRcdH1cblx0XHRjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdDogYW55KSA9PiBvcHQ/Llt2YWx1ZUZpZWxkXSA9PSB2YWx1ZSk7XG5cdFx0cmV0dXJuIG9wdGlvbiA/IG9wdGlvbj8uW2xhYmVsRmllbGRdIDogU3RyaW5nKHZhbHVlKTtcblx0fVxuXG5cdHByaXZhdGUgdG9WYWx1ZUFycmF5KHZhbHVlOiBhbnkpOiBhbnlbXSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKS5zcGxpdCgnLCcpLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1ZhbHVlU3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0cmV0dXJuIHZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gJycgJiYgaXRlbSAhPSBudWxsKS5qb2luKCcsJyk7XG5cdFx0fVxuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gU3RyaW5nKHZhbHVlKTtcblx0fVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2VsZWN0LWxhYmVsLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9ncmlkL2NlbGwtcmVuZGVyL2FzeW5jLXNlbGVjdC1sYWJlbC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQXNCLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0RBQWtELENBQUM7O0FBTWxHLE1BQU0sT0FBTyx3QkFBd0I7SUFKckM7UUFLQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRUgsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNGLGlCQUFZLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7S0EwRnZFO0lBeEZBLE1BQU0sQ0FBQyxNQUEyQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBMkI7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVPLEtBQUssQ0FBQyxTQUFTO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hG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QUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDOytHQTdGVyx3QkFBd0I7bUdBQXhCLHdCQUF3Qix3RUFGMUIsYUFBYTs7NEZBRVgsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgQXN5bmNTZWxlY3RDb250ZXh0LCByZXNvbHZlQXN5bmNTZWxlY3RPcHRpb25zIH0gZnJvbSAnLi4vY2VsbC11dGlscy9hc3luYy1zZWxlY3Qtb3B0aW9ucyc7XG5pbXBvcnQgeyBBc3luY1NlbGVjdE9wdGlvbnNDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi9jZWxsLXV0aWxzL2FzeW5jLXNlbGVjdC1vcHRpb25zLWNhY2hlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGB7eyBsYWJlbCB9fWAsXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jU2VsZWN0TGFiZWxSZW5kZXJlciBpbXBsZW1lbnRzIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB7XG5cdGxhYmVsID0gJyc7XG5cdHBhcmFtcyE6IGFueTtcblx0cHJpdmF0ZSBsb2FkSWQgPSAwO1xuXHRwcml2YXRlIHJlYWRvbmx5IGNhY2hlU2VydmljZSA9IGluamVjdChBc3luY1NlbGVjdE9wdGlvbnNDYWNoZVNlcnZpY2UpO1xuXG5cdGFnSW5pdChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiB2b2lkIHtcblx0XHR0aGlzLnJlZnJlc2gocGFyYW1zKTtcblx0fVxuXG5cdHJlZnJlc2gocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKTogYm9vbGVhbiB7XG5cdFx0dGhpcy5wYXJhbXMgPSB0aGlzLm1lcmdlUGFyYW1zKHBhcmFtcyk7XG5cdFx0dm9pZCB0aGlzLmxvYWRMYWJlbCgpO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBsb2FkTGFiZWwoKSB7XG5cdFx0Y29uc3QgbG9hZElkID0gKyt0aGlzLmxvYWRJZDtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMucGFyYW1zLnZhbHVlID8/IHRoaXMucGFyYW1zLmRhdGE/Llt0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGRdO1xuXHRcdGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT0gbnVsbCkge1xuXHRcdFx0dGhpcy5sYWJlbCA9ICcnO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvbnRleHQgPSB0aGlzLmNyZWF0ZUNvbnRleHQodmFsdWUpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBvcHRpb25zID0gYXdhaXQgcmVzb2x2ZUFzeW5jU2VsZWN0T3B0aW9ucyh0aGlzLnBhcmFtcywgY29udGV4dCk7XG5cdFx0XHRpZiAobG9hZElkICE9PSB0aGlzLmxvYWRJZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmxhYmVsID0gdGhpcy5mb3JtYXRMYWJlbCh2YWx1ZSwgb3B0aW9ucyk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRpZiAobG9hZElkID09PSB0aGlzLmxvYWRJZCkge1xuXHRcdFx0XHR0aGlzLmxhYmVsID0gU3RyaW5nKHZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIG1lcmdlUGFyYW1zKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcykge1xuXHRcdGNvbnN0IGNlbGxFZGl0b3JQYXJhbXMgPSAocGFyYW1zLmNvbERlZiBhcyBhbnkpPy5jZWxsRWRpdG9yUGFyYW1zIHx8IHt9O1xuXHRcdHJldHVybiB7XG5cdFx0XHQuLi5jZWxsRWRpdG9yUGFyYW1zLFxuXHRcdFx0Li4ucGFyYW1zLFxuXHRcdFx0b3B0aW9uTGFiZWw6IChwYXJhbXMgYXMgYW55KS5vcHRpb25MYWJlbCB8fCBjZWxsRWRpdG9yUGFyYW1zLm9wdGlvbkxhYmVsIHx8ICdsYWJlbCcsXG5cdFx0XHRvcHRpb25WYWx1ZTogKHBhcmFtcyBhcyBhbnkpLm9wdGlvblZhbHVlIHx8IGNlbGxFZGl0b3JQYXJhbXMub3B0aW9uVmFsdWUgfHwgJ3ZhbHVlJyxcblx0XHRcdG11bHRpcGxlOiAocGFyYW1zIGFzIGFueSkubXVsdGlwbGUgPz8gY2VsbEVkaXRvclBhcmFtcy5tdWx0aXBsZSxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBjcmVhdGVDb250ZXh0KHZhbHVlOiBhbnkpOiBBc3luY1NlbGVjdENvbnRleHQge1xuXHRcdHJldHVybiB7XG5cdFx0XHRkYXRhOiB0aGlzLnBhcmFtcy5kYXRhLFxuXHRcdFx0dmFsdWU6IHRoaXMucGFyYW1zLm11bHRpcGxlID8gdGhpcy50b1ZhbHVlU3RyaW5nKHZhbHVlKSA6IHZhbHVlLFxuXHRcdFx0cGFyYW1zOiB0aGlzLnBhcmFtcyxcblx0XHRcdGZpZWxkOiB0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGQsXG5cdFx0XHRjb2xEZWY6IHRoaXMucGFyYW1zLmNvbERlZixcblx0XHRcdHJvd0luZGV4OiB0aGlzLnBhcmFtcy5ub2RlPy5yb3dJbmRleCxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBmb3JtYXRMYWJlbCh2YWx1ZTogYW55LCBvcHRpb25zOiBhbnlbXSkge1xuXHRcdGNvbnN0IHZhbHVlRmllbGQgPSB0aGlzLnBhcmFtcy5vcHRpb25WYWx1ZSB8fCAndmFsdWUnO1xuXHRcdGNvbnN0IGxhYmVsRmllbGQgPSB0aGlzLnBhcmFtcy5vcHRpb25MYWJlbCB8fCAnbGFiZWwnO1xuXHRcdGlmICh0aGlzLnBhcmFtcy5tdWx0aXBsZSkge1xuXHRcdFx0Y29uc3QgdmFsdWVzID0gdGhpcy50b1ZhbHVlQXJyYXkodmFsdWUpO1xuXHRcdFx0Y29uc3QgbGFiZWxzID0gdmFsdWVzLm1hcCgoaXRlbSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdDogYW55KSA9PiBvcHQ/Llt2YWx1ZUZpZWxkXSA9PSBpdGVtKTtcblx0XHRcdFx0cmV0dXJuIG9wdGlvbiA/IG9wdGlvbj8uW2xhYmVsRmllbGRdIDogaXRlbTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGxhYmVscy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IHVuZGVmaW5lZCAmJiBpdGVtICE9PSBudWxsICYmIGl0ZW0gIT09ICcnKS5qb2luKCcsJyk7XG5cdFx0fVxuXHRcdGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0OiBhbnkpID0+IG9wdD8uW3ZhbHVlRmllbGRdID09IHZhbHVlKTtcblx0XHRyZXR1cm4gb3B0aW9uID8gb3B0aW9uPy5bbGFiZWxGaWVsZF0gOiBTdHJpbmcodmFsdWUpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1ZhbHVlQXJyYXkodmFsdWU6IGFueSk6IGFueVtdIHtcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdHJldHVybiBTdHJpbmcodmFsdWUpLnNwbGl0KCcsJykuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSAnJyk7XG5cdH1cblxuXHRwcml2YXRlIHRvVmFsdWVTdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSAnJyAmJiBpdGVtICE9IG51bGwpLmpvaW4oJywnKTtcblx0XHR9XG5cdFx0aWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdHJldHVybiBTdHJpbmcodmFsdWUpO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationStart } from '@angular/router';
3
+ import { filter } from 'rxjs';
4
+ import { clearAsyncSelectOptionsCache } from './async-select-options';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ export class AsyncSelectOptionsCacheService {
8
+ constructor(router) {
9
+ router.events
10
+ .pipe(filter((event) => event instanceof NavigationStart))
11
+ .subscribe(() => clearAsyncSelectOptionsCache());
12
+ }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
14
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, providedIn: 'root' }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncSelectOptionsCacheService, decorators: [{
17
+ type: Injectable,
18
+ args: [{ providedIn: 'root' }]
19
+ }], ctorParameters: () => [{ type: i1.Router }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc2VsZWN0LW9wdGlvbnMtY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9jZWxsLXV0aWxzL2FzeW5jLXNlbGVjdC1vcHRpb25zLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBR3RFLE1BQU0sT0FBTyw4QkFBOEI7SUFDMUMsWUFBWSxNQUFjO1FBQ3pCLE1BQU0sQ0FBQyxNQUFNO2FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBNEIsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FBQzthQUNuRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBTFcsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FEakIsTUFBTTs7NEZBQ25CLDhCQUE4QjtrQkFEMUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNsZWFyQXN5bmNTZWxlY3RPcHRpb25zQ2FjaGUgfSBmcm9tICcuL2FzeW5jLXNlbGVjdC1vcHRpb25zJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBc3luY1NlbGVjdE9wdGlvbnNDYWNoZVNlcnZpY2Uge1xuXHRjb25zdHJ1Y3Rvcihyb3V0ZXI6IFJvdXRlcikge1xuXHRcdHJvdXRlci5ldmVudHNcblx0XHRcdC5waXBlKGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBOYXZpZ2F0aW9uU3RhcnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpKVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiBjbGVhckFzeW5jU2VsZWN0T3B0aW9uc0NhY2hlKCkpO1xuXHR9XG59XG4iXX0=