@skyux/ag-grid 5.1.0 → 5.1.4

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.
Files changed (76) hide show
  1. package/bundles/skyux-ag-grid.umd.js +485 -364
  2. package/bundles/skyux-ag-grid.umd.js.map +1 -1
  3. package/documentation.json +125 -5785
  4. package/esm2015/modules/ag-grid/ag-grid-adapter.service.js +10 -7
  5. package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +48 -22
  6. package/esm2015/modules/ag-grid/ag-grid-row-delete.component.js +16 -16
  7. package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +36 -26
  8. package/esm2015/modules/ag-grid/ag-grid-wrapper.component.js +17 -10
  9. package/esm2015/modules/ag-grid/ag-grid.module.js +11 -11
  10. package/esm2015/modules/ag-grid/ag-grid.service.js +66 -37
  11. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +9 -6
  12. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +8 -22
  13. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +15 -8
  14. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +8 -22
  15. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +15 -9
  16. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +8 -19
  17. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +9 -9
  18. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +8 -8
  19. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +11 -7
  20. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +8 -19
  21. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +11 -7
  22. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +8 -19
  23. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +9 -6
  24. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +10 -6
  25. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +10 -10
  26. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +7 -7
  27. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +6 -6
  28. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +10 -7
  29. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +8 -22
  30. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +9 -6
  31. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +8 -16
  32. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +15 -9
  33. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +8 -22
  34. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js +1 -1
  35. package/esm2015/modules/ag-grid/types/{ag-gird-row-delete-config.js → ag-grid-row-delete-config.js} +1 -1
  36. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js +1 -1
  37. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-contents.js +1 -1
  38. package/esm2015/modules/ag-grid/types/autocomplete-properties.js +1 -1
  39. package/esm2015/modules/ag-grid/types/cell-class.js +4 -1
  40. package/esm2015/modules/ag-grid/types/cell-editor-autocomplete-params.js +1 -1
  41. package/esm2015/modules/ag-grid/types/cell-editor-currency-params.js +1 -1
  42. package/esm2015/modules/ag-grid/types/cell-editor-datepicker-params.js +1 -1
  43. package/esm2015/modules/ag-grid/types/cell-renderer-currency-params.js +1 -1
  44. package/esm2015/modules/ag-grid/types/cell-type.js +71 -1
  45. package/esm2015/modules/ag-grid/types/datepicker-properties.js +1 -1
  46. package/esm2015/modules/ag-grid/types/header-class.js +4 -1
  47. package/esm2015/modules/ag-grid/types/lookup-properties.js +2 -2
  48. package/esm2015/modules/ag-grid/types/sky-grid-options.js +1 -1
  49. package/esm2015/modules/ag-grid/types/validator-options.js +1 -1
  50. package/esm2015/modules/shared/ag-grid-resources.module.js +39 -12
  51. package/fesm2015/skyux-ag-grid.js +487 -363
  52. package/fesm2015/skyux-ag-grid.js.map +1 -1
  53. package/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +5 -0
  54. package/modules/ag-grid/ag-grid-row-delete.directive.d.ts +4 -1
  55. package/modules/ag-grid/ag-grid-wrapper.component.d.ts +3 -0
  56. package/modules/ag-grid/ag-grid.service.d.ts +12 -3
  57. package/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.d.ts +3 -0
  58. package/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.d.ts +3 -0
  59. package/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.d.ts +3 -0
  60. package/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.d.ts +3 -0
  61. package/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.d.ts +3 -0
  62. package/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.d.ts +3 -0
  63. package/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.d.ts +3 -0
  64. package/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.d.ts +3 -0
  65. package/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.d.ts +3 -0
  66. package/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.d.ts +3 -0
  67. package/modules/ag-grid/types/ag-grid-row-delete-cancel-args.d.ts +1 -0
  68. package/modules/ag-grid/types/{ag-gird-row-delete-config.d.ts → ag-grid-row-delete-config.d.ts} +0 -0
  69. package/modules/ag-grid/types/ag-grid-row-delete-confirm-args.d.ts +1 -0
  70. package/modules/ag-grid/types/autocomplete-properties.d.ts +3 -0
  71. package/modules/ag-grid/types/cell-class.d.ts +3 -0
  72. package/modules/ag-grid/types/cell-type.d.ts +70 -0
  73. package/modules/ag-grid/types/datepicker-properties.d.ts +3 -0
  74. package/modules/ag-grid/types/header-class.d.ts +3 -0
  75. package/modules/ag-grid/types/sky-grid-options.d.ts +2 -2
  76. package/package.json +12 -12
@@ -58,19 +58,21 @@ function dateComparator(date1, date2) {
58
58
  function getValidatorCellRendererSelector(component, fallback) {
59
59
  return (params) => {
60
60
  var _a, _b;
61
- if (params.colDef && typeof ((_b = (_a = params.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
61
+ if (params.colDef &&
62
+ typeof ((_b = (_a = params.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
62
63
  if (!params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params.rowIndex)) {
63
64
  return {
64
65
  component,
65
- params: Object.assign({}, params.colDef.cellRendererParams)
66
+ params: Object.assign({}, params.colDef.cellRendererParams),
66
67
  };
67
68
  }
68
69
  }
69
70
  return fallback;
70
71
  };
71
72
  }
73
+ let rowNodeId = 1;
72
74
  /**
73
- * A service that provides default styling and behavior for agGrids in SKY UX SPAs.
75
+ * `SkyAgGridService` provides methods to get AG Grid `gridOptions` to ensure grids match SKY UX functionality. The `gridOptions` can be overridden, and include registered SKY UX column types.
74
76
  */
75
77
  export class SkyAgGridService {
76
78
  constructor(agGridAdapterService, themeSvc, resources) {
@@ -82,7 +84,7 @@ export class SkyAgGridService {
82
84
  if (this.themeSvc) {
83
85
  this.themeSvc.settingsChange
84
86
  .pipe(takeUntil(this.ngUnsubscribe))
85
- .subscribe(settingsChange => this.currentTheme = settingsChange.currentSettings);
87
+ .subscribe((settingsChange) => (this.currentTheme = settingsChange.currentSettings));
86
88
  }
87
89
  }
88
90
  ngOnDestroy() {
@@ -90,14 +92,20 @@ export class SkyAgGridService {
90
92
  this.ngUnsubscribe.complete();
91
93
  }
92
94
  /**
93
- * Get SKY UX gridOptions to create your agGrid with default SKY styling and behavior.
94
- * @param args options to be applied to the default SKY UX agGrid gridOptions.
95
+ * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell renderers registered for read-only grids.
96
+ * @param args
97
+ * @returns
95
98
  */
96
99
  getGridOptions(args) {
97
100
  const defaultGridOptions = this.getDefaultGridOptions(args);
98
101
  const mergedGridOptions = this.mergeGridOptions(defaultGridOptions, args.gridOptions);
99
102
  return mergedGridOptions;
100
103
  }
104
+ /**
105
+ * Returns [AG Grid `gridOptions`](https://www.ag-grid.com/javascript-grid-properties/) with default SKY UX options, styling, and cell editors registered for editable grids.
106
+ * @param args
107
+ * @returns
108
+ */
101
109
  getEditableGridOptions(args) {
102
110
  const defaultGridOptions = this.getDefaultEditableGridOptions(args);
103
111
  const mergedGridOptions = this.mergeGridOptions(defaultGridOptions, args.gridOptions);
@@ -125,19 +133,20 @@ export class SkyAgGridService {
125
133
  }
126
134
  const editableCellClassRules = {
127
135
  [SkyCellClass.Editable]: getEditableFn(),
128
- [SkyCellClass.Uneditable]: getEditableFn(true)
136
+ [SkyCellClass.Uneditable]: getEditableFn(true),
129
137
  };
130
138
  function getValidatorFn() {
131
139
  return function (param) {
132
140
  var _a, _b;
133
- if (param.colDef && typeof ((_b = (_a = param.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
141
+ if (param.colDef &&
142
+ typeof ((_b = (_a = param.colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.skyComponentProperties) === null || _b === void 0 ? void 0 : _b.validator) === 'function') {
134
143
  return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.rowIndex);
135
144
  }
136
145
  return false;
137
146
  };
138
147
  }
139
148
  const validatorCellClassRules = {
140
- [SkyCellClass.Invalid]: getValidatorFn()
149
+ [SkyCellClass.Invalid]: getValidatorFn(),
141
150
  };
142
151
  const defaultSkyGridOptions = {
143
152
  columnTypes: {
@@ -146,21 +155,21 @@ export class SkyAgGridService {
146
155
  cellEditorFramework: SkyAgGridCellEditorAutocompleteComponent,
147
156
  valueFormatter: autocompleteFormatter,
148
157
  comparator: autocompleteComparator,
149
- minWidth: 185
158
+ minWidth: 185,
150
159
  },
151
160
  [SkyCellType.Currency]: {
152
161
  cellClassRules: Object.assign(Object.assign({ [SkyCellClass.Currency]: cellClassRuleTrueExpression }, validatorCellClassRules), editableCellClassRules),
153
162
  cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-currency-validator', { component: 'sky-ag-grid-cell-renderer-currency' }),
154
163
  cellEditorFramework: SkyAgGridCellEditorCurrencyComponent,
155
164
  headerClass: SkyHeaderClass.RightAligned,
156
- minWidth: 185
165
+ minWidth: 185,
157
166
  },
158
167
  [SkyCellType.Date]: {
159
168
  cellClassRules: Object.assign({ [SkyCellClass.Date]: cellClassRuleTrueExpression }, editableCellClassRules),
160
169
  cellEditorFramework: SkyAgGridCellEditorDatepickerComponent,
161
170
  comparator: dateComparator,
162
171
  minWidth: ((_b = (_a = this.currentTheme) === null || _a === void 0 ? void 0 : _a.theme) === null || _b === void 0 ? void 0 : _b.name) === 'modern' ? 180 : 160,
163
- valueFormatter: (params) => this.dateFormatter(params, args.locale)
172
+ valueFormatter: (params) => this.dateFormatter(params, args.locale),
164
173
  },
165
174
  [SkyCellType.Lookup]: {
166
175
  cellClassRules: Object.assign({ [SkyCellClass.Lookup]: cellClassRuleTrueExpression }, editableCellClassRules),
@@ -175,47 +184,61 @@ export class SkyAgGridService {
175
184
  .filter((value) => value !== '' && value !== undefined)
176
185
  .join('; ');
177
186
  },
178
- minWidth: 185
187
+ minWidth: 185,
179
188
  },
180
189
  [SkyCellType.Number]: {
181
190
  cellClassRules: Object.assign({ [SkyCellClass.Number]: cellClassRuleTrueExpression }, editableCellClassRules),
182
191
  cellEditorFramework: SkyAgGridCellEditorNumberComponent,
183
- headerClass: SkyHeaderClass.RightAligned
192
+ headerClass: SkyHeaderClass.RightAligned,
184
193
  },
185
194
  [SkyCellType.RowSelector]: {
186
195
  cellClassRules: {
187
196
  [SkyCellClass.RowSelector]: cellClassRuleTrueExpression,
188
- [SkyCellClass.Uneditable]: cellClassRuleTrueExpression
197
+ [SkyCellClass.Uneditable]: cellClassRuleTrueExpression,
189
198
  },
190
199
  cellRendererFramework: SkyAgGridCellRendererRowSelectorComponent,
191
200
  headerName: '',
192
201
  minWidth: 55,
193
202
  maxWidth: 55,
194
203
  sortable: false,
195
- width: 55
204
+ width: 55,
196
205
  },
197
206
  [SkyCellType.Text]: {
198
207
  cellClassRules: Object.assign({ [SkyCellClass.Text]: cellClassRuleTrueExpression }, editableCellClassRules),
199
- cellEditorFramework: SkyAgGridCellEditorTextComponent
208
+ cellEditorFramework: SkyAgGridCellEditorTextComponent,
200
209
  },
201
210
  [SkyCellType.Validator]: {
202
211
  cellClassRules: Object.assign(Object.assign({}, validatorCellClassRules), editableCellClassRules),
203
- cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip')
204
- }
212
+ cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-validator-tooltip'),
213
+ },
205
214
  },
206
215
  defaultColDef: {
207
216
  cellClassRules: editableCellClassRules,
208
217
  minWidth: 100,
209
218
  resizable: true,
210
219
  sortable: true,
211
- suppressKeyboardEvent: (keypress) => this.suppressTab(keypress)
220
+ suppressKeyboardEvent: (keypress) => this.suppressTab(keypress),
212
221
  },
213
222
  domLayout: 'autoHeight',
214
223
  enterMovesDownAfterEdit: true,
215
224
  frameworkComponents: {
216
225
  'sky-ag-grid-cell-renderer-currency': SkyAgGridCellRendererCurrencyComponent,
217
226
  'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,
218
- 'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent
227
+ 'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent,
228
+ },
229
+ getRowNodeId(data) {
230
+ if ('id' in data && data.id) {
231
+ return `${data.id}`;
232
+ }
233
+ return `${rowNodeId++}`;
234
+ },
235
+ getRowClass: (params) => {
236
+ if (params.node.id) {
237
+ return `sky-ag-grid-row-${params.node.id}`;
238
+ }
239
+ else {
240
+ return undefined;
241
+ }
219
242
  },
220
243
  headerHeight: ((_d = (_c = this.currentTheme) === null || _c === void 0 ? void 0 : _c.theme) === null || _d === void 0 ? void 0 : _d.name) === 'modern' ? 60 : 37,
221
244
  icons: {
@@ -225,7 +248,7 @@ export class SkyAgGridService {
225
248
  columnMoveHide: this.getIconTemplate('arrows'),
226
249
  columnMoveLeft: this.getIconTemplate('arrows'),
227
250
  columnMoveRight: this.getIconTemplate('arrows'),
228
- columnMovePin: this.getIconTemplate('arrows')
251
+ columnMovePin: this.getIconTemplate('arrows'),
229
252
  },
230
253
  onCellFocused: () => this.onCellFocused(),
231
254
  rowHeight: ((_f = (_e = this.currentTheme) === null || _e === void 0 ? void 0 : _e.theme) === null || _f === void 0 ? void 0 : _f.name) === 'modern' ? 60 : 38,
@@ -236,33 +259,38 @@ export class SkyAgGridService {
236
259
  sortingOrder: ['desc', 'asc', null],
237
260
  stopEditingWhenGridLosesFocus: false,
238
261
  suppressRowClickSelection: true,
239
- suppressDragLeaveHidesColumns: true
262
+ suppressDragLeaveHidesColumns: true,
240
263
  };
241
264
  defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator] = Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Currency]), { cellRendererParams: {
242
265
  skyComponentProperties: {
243
266
  validator: (value, data, rowIndex) => {
244
267
  return !!`${value || ''}`.match(/^[^0-9]*(\d+[,.]?)+\d*[^0-9]*$/);
245
268
  },
246
- validatorMessage: 'Please enter a valid currency'
247
- }
269
+ validatorMessage: 'Please enter a valid currency',
270
+ },
248
271
  } });
249
272
  /*istanbul ignore else*/
250
273
  if (this.resources) {
251
- this.resources.getString('sky_ag_grid_cell_renderer_currency_validator_message').subscribe((value) => {
274
+ this.resources
275
+ .getString('sky_ag_grid_cell_renderer_currency_validator_message')
276
+ .subscribe((value) => {
252
277
  defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
253
278
  });
254
279
  }
255
- defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator] = Object.assign(Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator]), defaultSkyGridOptions.columnTypes[SkyCellType.Number]), { cellClassRules: Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator].cellClassRules), defaultSkyGridOptions.columnTypes[SkyCellType.Number].cellClassRules), cellRendererParams: {
280
+ defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator] = Object.assign(Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator]), defaultSkyGridOptions.columnTypes[SkyCellType.Number]), { cellClassRules: Object.assign(Object.assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator]
281
+ .cellClassRules), defaultSkyGridOptions.columnTypes[SkyCellType.Number].cellClassRules), cellRendererParams: {
256
282
  skyComponentProperties: {
257
283
  validator: (value, data, rowIndex) => {
258
284
  return !!value && !isNaN(parseFloat(value));
259
285
  },
260
- validatorMessage: 'Please enter a valid number'
261
- }
286
+ validatorMessage: 'Please enter a valid number',
287
+ },
262
288
  } });
263
289
  /*istanbul ignore else*/
264
290
  if (this.resources) {
265
- this.resources.getString('sky_ag_grid_cell_renderer_number_validator_message').subscribe((value) => {
291
+ this.resources
292
+ .getString('sky_ag_grid_cell_renderer_number_validator_message')
293
+ .subscribe((value) => {
266
294
  defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
267
295
  });
268
296
  }
@@ -283,8 +311,9 @@ export class SkyAgGridService {
283
311
  if (date && typeof date === 'string') {
284
312
  date = new Date(params.value);
285
313
  }
286
- // @ts-ignore
287
- let formattedDate = date && date.toLocaleDateString && date.toLocaleDateString(locale, dateConfig);
314
+ let formattedDate = date &&
315
+ date.toLocaleDateString &&
316
+ date.toLocaleDateString(locale, dateConfig);
288
317
  if (date && date.getTime && !isNaN(date.getTime())) {
289
318
  return formattedDate;
290
319
  }
@@ -308,16 +337,16 @@ export class SkyAgGridService {
308
337
  return false;
309
338
  }
310
339
  }
311
- SkyAgGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridService, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i2.SkyThemeService, optional: true }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
312
- SkyAgGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridService, providedIn: 'root' });
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridService, decorators: [{
340
+ SkyAgGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridService, deps: [{ token: i1.SkyAgGridAdapterService }, { token: i2.SkyThemeService, optional: true }, { token: i3.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
341
+ SkyAgGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridService, providedIn: 'root' });
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridService, decorators: [{
314
343
  type: Injectable,
315
344
  args: [{
316
- providedIn: 'root'
345
+ providedIn: 'root',
317
346
  }]
318
347
  }], ctorParameters: function () { return [{ type: i1.SkyAgGridAdapterService }, { type: i2.SkyThemeService, decorators: [{
319
348
  type: Optional
320
349
  }] }, { type: i3.SkyLibResourcesService, decorators: [{
321
350
  type: Optional
322
351
  }] }]; } });
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWctZ3JpZC9zcmMvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQWtCdkIsT0FBTyxFQUNMLE9BQU8sRUFDUixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFDTCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQU94QixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sNEVBQTRFLENBQUM7QUFFcEYsT0FBTyxFQUNMLHNDQUFzQyxFQUN2QyxNQUFNLHdFQUF3RSxDQUFDO0FBRWhGLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbkMsTUFBTSxnRUFBZ0UsQ0FBQztBQUV4RSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ25DLE1BQU0sZ0VBQWdFLENBQUM7QUFFeEUsT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLDREQUE0RCxDQUFDO0FBRXBFLE9BQU8sRUFDTCwrQ0FBK0MsRUFDaEQsTUFBTSxvRkFBb0YsQ0FBQztBQUU1RixPQUFPLEVBQ0wsb0NBQW9DLEVBQ3JDLE1BQU0sc0VBQXNFLENBQUM7QUFFOUUsT0FBTyxFQUNMLHlDQUF5QyxFQUMxQyxNQUFNLGtGQUFrRixDQUFDO0FBRTFGLE9BQU8sRUFDTCw4Q0FBOEMsRUFDL0MsTUFBTSw0RkFBNEYsQ0FBQztBQUVwRyxPQUFPLEVBQ0wsWUFBWSxFQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNMLFdBQVcsRUFDWixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFDTCxjQUFjLEVBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVU3RSxPQUFPLEVB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SyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RyxPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzhHQTlUVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQge1xuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIEdyaWRPcHRpb25zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHtcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtc1xufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eS9kaXN0L2xpYi9lbnRpdGllcy9jb2xEZWYnO1xuXG5pbXBvcnQge1xuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICB0YWtlVW50aWxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3Ncbn0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUNlbGxDbGFzc1xufSBmcm9tICcuL3R5cGVzL2NlbGwtY2xhc3MnO1xuXG5pbXBvcnQge1xuICBTa3lDZWxsVHlwZVxufSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmltcG9ydCB7XG4gIFNreUhlYWRlckNsYXNzXG59IGZyb20gJy4vdHlwZXMvaGVhZGVyLWNsYXNzJztcbmltcG9ydCB7IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzIH0gZnJvbSAnLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbmltcG9ydCB7XG4gIFNreUdldEdyaWRPcHRpb25zQXJnc1xufSBmcm9tICcuL3R5cGVzL3NreS1ncmlkLW9wdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IodmFsdWUxOiB7IG5hbWU6IHN0cmluZyB9LCB2YWx1ZTI6IHsgbmFtZTogc3RyaW5nIH0pOiBudW1iZXIge1xuICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xuICAgIGlmICh2YWx1ZTEubmFtZSA+IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUxLm5hbWUgPCB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlMSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcGFyYW1zLnZhbHVlICYmIHBhcmFtcy52YWx1ZS5uYW1lO1xufVxuXG5mdW5jdGlvbiBkYXRlQ29tcGFyYXRvcihkYXRlMTogYW55LCBkYXRlMjogYW55KTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoY29tcG9uZW50OiBzdHJpbmcsIGZhbGxiYWNrPzogYW55KSB7XG4gIHJldHVybiAocGFyYW1zOiBJQ2VsbFJlbmRlcmVyUGFyYW1zKSA9PiB7XG4gICAgaWYgKHBhcmFtcy5jb2xEZWYgJiYgdHlwZW9mIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICghcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IocGFyYW1zLnZhbHVlLCBwYXJhbXMuZGF0YSwgcGFyYW1zLnJvd0luZGV4KSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH07XG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgcHJvdmlkZXMgZGVmYXVsdCBzdHlsaW5nIGFuZCBiZWhhdmlvciBmb3IgYWdHcmlkcyBpbiBTS1kgVVggU1BBcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3M7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlc291cmNlcz86IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMudGhlbWVTdmMpIHtcbiAgICAgIHRoaXMudGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzZXR0aW5nc0NoYW5nZSA9PiB0aGlzLmN1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFNLWSBVWCBncmlkT3B0aW9ucyB0byBjcmVhdGUgeW91ciBhZ0dyaWQgd2l0aCBkZWZhdWx0IFNLWSBzdHlsaW5nIGFuZCBiZWhhdmlvci5cbiAgICogQHBhcmFtIGFyZ3Mgb3B0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBkZWZhdWx0IFNLWSBVWCBhZ0dyaWQgZ3JpZE9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy5tZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9ucywgYXJncy5ncmlkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy5nZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhkZWZhdWx0R3JpZE9wdGlvbnMsIGFyZ3MuZ3JpZE9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsIHByb3ZpZGVkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBtZXJnZWRHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYuY2VsbENsYXNzUnVsZXNcbiAgICAgIH0sXG4gICAgICBpY29uczoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuaWNvbnMsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuaWNvbnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gJ3RydWUnO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihpc1VuZWRpdGFibGU/OiBib29sZWFuKTogKChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNFZGl0YWJsZSA9IHBhcmFtcy5jb2xEZWYuZWRpdGFibGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpc0VkaXRhYmxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gcGFyYW1zLmNvbHVtbkFwaS5nZXRDb2x1bW4ocGFyYW1zLmNvbERlZi5maWVsZCk7XG4gICAgICAgICAgaXNFZGl0YWJsZSA9IGlzRWRpdGFibGUoeyAuLi5wYXJhbXMsIGNvbHVtbiB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6ICgocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW06IENlbGxDbGFzc1BhcmFtcykge1xuICAgICAgICBpZiAocGFyYW0uY29sRGVmICYmIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IocGFyYW0udmFsdWUsIHBhcmFtLmRhdGEsIHBhcmFtLnJvd0luZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvckNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5JbnZhbGlkXTogZ2V0VmFsaWRhdG9yRm4oKVxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBhdXRvY29tcGxldGVGb3JtYXR0ZXIsXG4gICAgICAgICAgY29tcGFyYXRvcjogYXV0b2NvbXBsZXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogMTg1XG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfVxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWQsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgICAgICAgY29tcGFyYXRvcjogZGF0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IHRoaXMuY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB0aGlzLmRhdGVGb3JtYXR0ZXIocGFyYW1zLCBhcmdzLmxvY2FsZSlcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkxvb2t1cF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Mb29rdXBdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMocGFyYW1zKTtcbiAgICAgICAgICAgIHJldHVybiAocGFyYW1zLnZhbHVlIHx8IFtdKVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVtsb29rdXBQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eV07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLk51bWJlcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5OdW1iZXJdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICAgIG1pbldpZHRoOiA1NSxcbiAgICAgICAgICBtYXhXaWR0aDogNTUsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVGV4dF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZXh0XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT4gdGhpcy5zdXBwcmVzc1RhYihrZXlwcmVzcylcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVudGVyTW92ZXNEb3duQWZ0ZXJFZGl0OiB0cnVlLFxuICAgICAgZnJhbWV3b3JrQ29tcG9uZW50czoge1xuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSc6IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAgaGVhZGVySGVpZ2h0OiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzNyxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnY2FyZXQtZG93bicpLFxuICAgICAgICBzb3J0QXNjZW5kaW5nOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnY2FyZXQtdXAnKSxcbiAgICAgICAgY29sdW1uTW92ZU1vdmU6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZUhpZGU6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZUxlZnQ6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZVJpZ2h0OiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKVxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6ICgpID0+IHRoaXMub25DZWxsRm9jdXNlZCgpLFxuICAgICAgcm93SGVpZ2h0OiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzOCxcbiAgICAgIHJvd011bHRpU2VsZWN0V2l0aENsaWNrOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnbXVsdGlwbGUnLFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcbiAgICAgIHNvcnRpbmdPcmRlcjogWydkZXNjJywgJ2FzYycsIG51bGxdLFxuICAgICAgc3RvcEVkaXRpbmdXaGVuR3JpZExvc2VzRm9jdXM6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zOiB0cnVlXG4gICAgfTtcblxuICAgIGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogYW55LCBkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIWAke3ZhbHVlIHx8ICcnfWAubWF0Y2goL15bXjAtOV0qKFxcZCtbLC5dPykrXFxkKlteMC05XSokLyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgY3VycmVuY3knXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnJlc291cmNlcykge1xuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX2N1cnJlbmN5X3ZhbGlkYXRvcl9tZXNzYWdlJykuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0sXG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXS5jZWxsQ2xhc3NSdWxlc1xuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSwgZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcidcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMucmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLnJlc291cmNlcy5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJykuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNlbGxGb2N1c2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuXG4gICAgdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5mb2N1c09uRm9jdXNhYmxlQ2hpbGRyZW4oY3VycmVudEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgbGV0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9ICdub25lJztcblxuICAgIHJldHVybiBkZWZhdWx0R3JpZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGRhdGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcywgbG9jYWxlOiBzdHJpbmcgPSAnZW4tdXMnKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRlQ29uZmlnID0geyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH07XG4gICAgbGV0IGRhdGU6IERhdGUgPSBwYXJhbXMudmFsdWU7XG5cbiAgICBpZiAoZGF0ZSAmJiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IGRhdGUgJiYgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcgJiYgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBkYXRlQ29uZmlnKTtcblxuICAgIGlmIChkYXRlICYmIGRhdGUuZ2V0VGltZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEljb25UZW1wbGF0ZShpY29uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYDxpIGNsYXNzPVwiZmEgZmEtJHtpY29uTmFtZX1cIj48L2k+YDtcbiAgfVxuXG4gIHByaXZhdGUgc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhjdXJyZW50bHlGb2N1c2VkRWwsICdhZy1jZWxsJyk7XG4gICAgICAgIGNvbnN0IHBvcHVwRWwgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhjdXJyZW50bHlGb2N1c2VkRWwsICdhZy1wb3B1cC1lZGl0b3InKTtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSBjZWxsRWwgfHwgcG9wdXBFbDtcblxuICAgICAgICBjb25zdCBuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbCA9XG4gICAgICAgICAgdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChjdXJyZW50bHlGb2N1c2VkRWwsIHBhcmVudEVsLCBwYXJhbXMuZXZlbnQuc2hpZnRLZXkpO1xuICAgICAgICByZXR1cm4gISFuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWctZ3JpZC9zcmMvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdCaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFFdEksT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFFaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFFcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFFcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFFckosT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFFNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFFN0ksT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFFNUosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNN0UsT0FBTyxFQUFFLHNDQUFz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QUksS0FBSyxLQUFLLEVBQUU7WUFDL0IsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNsQixNQUFNLGtCQUFrQixHQUN0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDaEQscUdBQXFHO2dCQUNyRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQ2xFLGtCQUFrQixFQUNsQixTQUFTLENBQ1YsQ0FBQztnQkFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQ25FLGtCQUFrQixFQUNsQixpQkFBaUIsQ0FDbEIsQ0FBQztnQkFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksT0FBTyxDQUFDO2dCQUVuQyxNQUFNLDBCQUEwQixHQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQy9DLGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ3RCLENBQUM7Z0JBQ0osT0FBTyxDQUFDLENBQUMsMEJBQTBCLENBQUM7YUFDckM7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs4R0EvWVUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7XG4gIENlbGxDbGFzc1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIElDZWxsUmVuZGVyZXJQYXJhbXMsXG4gIFJvd0NsYXNzUGFyYW1zLFxuICBSb3dOb2RlLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7IEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eS9kaXN0L2xpYi9lbnRpdGllcy9jb2xEZWYnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlLCBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWxvb2t1cC9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWxvb2t1cC9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreUNlbGxDbGFzcyB9IGZyb20gJy4vdHlwZXMvY2VsbC1jbGFzcyc7XG5cbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5pbXBvcnQgeyBTa3lIZWFkZXJDbGFzcyB9IGZyb20gJy4vdHlwZXMvaGVhZGVyLWNsYXNzJztcbmltcG9ydCB7IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzIH0gZnJvbSAnLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbmltcG9ydCB7IFNreUdldEdyaWRPcHRpb25zQXJncyB9IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmltcG9ydCB7IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlQ29tcGFyYXRvcihcbiAgdmFsdWUxOiB7IG5hbWU6IHN0cmluZyB9LFxuICB2YWx1ZTI6IHsgbmFtZTogc3RyaW5nIH1cbik6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIoXG4gIHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBhbnksIGRhdGUyOiBhbnkpOiBudW1iZXIge1xuICBsZXQgZGF0ZTF2YWx1ZSA9IGRhdGUxO1xuICBsZXQgZGF0ZTJ2YWx1ZSA9IGRhdGUyO1xuXG4gIGlmICh0eXBlb2YgZGF0ZTF2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMXZhbHVlID0gbmV3IERhdGUoZGF0ZTEpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlMnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUydmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XG4gIH1cblxuICBpZiAoZGF0ZTF2YWx1ZSAmJiBkYXRlMnZhbHVlKSB7XG4gICAgaWYgKGRhdGUxdmFsdWUgPiBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZTF2YWx1ZSA8IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBkYXRlMXZhbHVlID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBhbnkpIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXJhbXMuY29sRGVmICYmXG4gICAgICB0eXBlb2YgcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXNcbiAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICBwYXJhbXMuZGF0YSxcbiAgICAgICAgICBwYXJhbXMucm93SW5kZXhcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gMTtcblxuLyoqXG4gKiBgU2t5QWdHcmlkU2VydmljZWAgcHJvdmlkZXMgbWV0aG9kcyB0byBnZXQgQUcgR3JpZCBgZ3JpZE9wdGlvbnNgIHRvIGVuc3VyZSBncmlkcyBtYXRjaCBTS1kgVVggZnVuY3Rpb25hbGl0eS4gVGhlIGBncmlkT3B0aW9uc2AgY2FuIGJlIG92ZXJyaWRkZW4sIGFuZCBpbmNsdWRlIHJlZ2lzdGVyZWQgU0tZIFVYIGNvbHVtbiB0eXBlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChzZXR0aW5nc0NoYW5nZSkgPT5cbiAgICAgICAgICAgICh0aGlzLmN1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncylcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCByZW5kZXJlcnMgcmVnaXN0ZXJlZCBmb3IgcmVhZC1vbmx5IGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLmdldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIGVkaXRvcnMgcmVnaXN0ZXJlZCBmb3IgZWRpdGFibGUgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy5nZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUdyaWRPcHRpb25zKFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnNcbiAgKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBtZXJnZWRHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAvLyBhbGxvdyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgYWxsIGRlZmF1bHRDb2xEZWYgcHJvcGVydGllcyBleGNlcHQgY2VsbENsYXNzUnVsZXMsIHdoaWNoIHdlIHJlc2VydmUgZm9yIHN0eWxpbmdcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICAvLyBjZWxsQ2xhc3NSdWxlcyBjYW4gYmUgZnVuY3Rpb25zIG9yIHN0cmluZyBleHByZXNzaW9uc1xuICAgIGNvbnN0IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbiA9ICd0cnVlJztcblxuICAgIGZ1bmN0aW9uIGdldEVkaXRhYmxlRm4oXG4gICAgICBpc1VuZWRpdGFibGU/OiBib29sZWFuXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5jb2x1bW5BcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYuZmllbGQpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbS5jb2xEZWYgJiZcbiAgICAgICAgICB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgICAgcGFyYW0udmFsdWUsXG4gICAgICAgICAgICBwYXJhbS5kYXRhLFxuICAgICAgICAgICAgcGFyYW0ucm93SW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfVxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWQsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDE4MCA6IDE2MCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXR0ZXIocGFyYW1zLCBhcmdzLmxvY2FsZSksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvb2t1cFByb3BlcnRpZXMgPSBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhwYXJhbXMpO1xuICAgICAgICAgICAgcmV0dXJuIChwYXJhbXMudmFsdWUgfHwgW10pXG4gICAgICAgICAgICAgIC5tYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5WYWxpZGF0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT5cbiAgICAgICAgICB0aGlzLnN1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVudGVyTW92ZXNEb3duQWZ0ZXJFZGl0OiB0cnVlLFxuICAgICAgZnJhbWV3b3JrQ29tcG9uZW50czoge1xuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcic6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQsXG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGdldFJvd05vZGVJZChkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoJ2lkJyBpbiBkYXRhICYmIGRhdGEuaWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7ZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtyb3dOb2RlSWQrK31gO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLm5vZGUuaWQpIHtcbiAgICAgICAgICByZXR1cm4gYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhlYWRlckhlaWdodDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzcsXG4gICAgICBpY29uczoge1xuICAgICAgICBzb3J0RGVzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LWRvd24nKSxcbiAgICAgICAgc29ydEFzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LXVwJyksXG4gICAgICAgIGNvbHVtbk1vdmVNb3ZlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVIaWRlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVMZWZ0OiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVSaWdodDogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2Fycm93cycpLFxuICAgICAgICBjb2x1bW5Nb3ZlUGluOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICB9LFxuICAgICAgb25DZWxsRm9jdXNlZDogKCkgPT4gdGhpcy5vbkNlbGxGb2N1c2VkKCksXG4gICAgICByb3dIZWlnaHQ6IHRoaXMuY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyA2MCA6IDM4LFxuICAgICAgcm93TXVsdGlTZWxlY3RXaXRoQ2xpY2s6IHRydWUsXG4gICAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXG4gICAgICBzaW5nbGVDbGlja0VkaXQ6IHRydWUsXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLW51bGwta2V5d29yZFxuICAgICAgc29ydGluZ09yZGVyOiBbJ2Rlc2MnLCAnYXNjJywgbnVsbF0sXG4gICAgICBzdG9wRWRpdGluZ1doZW5HcmlkTG9zZXNGb2N1czogZmFsc2UsXG4gICAgICBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgfTtcblxuICAgIGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogYW55LCBkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIWAke3ZhbHVlIHx8ICcnfWAubWF0Y2goL15bXjAtOV0qKFxcZCtbLC5dPykrXFxkKlteMC05XSokLyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgY3VycmVuY3knLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnJlc291cmNlcykge1xuICAgICAgdGhpcy5yZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JcbiAgICAgICAgICBdLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXSxcbiAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLFxuICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl1cbiAgICAgICAgICAuY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSwgZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMucmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLnJlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0U2t5R3JpZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIG9uQ2VsbEZvY3VzZWQoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihjdXJyZW50RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKFxuICAgIGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJnc1xuICApOiBHcmlkT3B0aW9ucyB7XG4gICAgbGV0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9ICdub25lJztcblxuICAgIHJldHVybiBkZWZhdWx0R3JpZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGRhdGVGb3JtYXR0ZXIoXG4gICAgcGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbiAgICBsb2NhbGU6IHN0cmluZyA9ICdlbi11cydcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRlQ29uZmlnID0geyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH07XG4gICAgbGV0IGRhdGU6IERhdGUgPSBwYXJhbXMudmFsdWU7XG5cbiAgICBpZiAoZGF0ZSAmJiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgIH1cblxuICAgIGxldCBmb3JtYXR0ZWREYXRlID1cbiAgICAgIGRhdGUgJiZcbiAgICAgIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nICYmXG4gICAgICBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGRhdGVDb25maWcgYXMgSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpO1xuXG4gICAgaWYgKGRhdGUgJiYgZGF0ZS5nZXRUaW1lICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWNvblRlbXBsYXRlKGljb25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGkgY2xhc3M9XCJmYSBmYS0ke2ljb25OYW1lfVwiPjwvaT5gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdXBwcmVzc1RhYihwYXJhbXM6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGlmIChwYXJhbXMuZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcbiAgICAgIGlmIChwYXJhbXMuZWRpdGluZykge1xuICAgICAgICBjb25zdCBjdXJyZW50bHlGb2N1c2VkRWwgPVxuICAgICAgICAgIHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1jZWxsJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwb3B1cEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1wb3B1cC1lZGl0b3InXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsID0gY2VsbEVsIHx8IHBvcHVwRWw7XG5cbiAgICAgICAgY29uc3QgbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGwgPVxuICAgICAgICAgIHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0TmV4dEZvY3VzYWJsZUVsZW1lbnQoXG4gICAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgICBwYXJlbnRFbCxcbiAgICAgICAgICAgIHBhcmFtcy5ldmVudC5zaGlmdEtleVxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -1,8 +1,11 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, ViewChild, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@skyux/lookup";
4
4
  import * as i2 from "@angular/forms";
5
5
  import * as i3 from "@skyux/i18n";
6
+ /**
7
+ * @internal
8
+ */
6
9
  export class SkyAgGridCellEditorAutocompleteComponent {
7
10
  constructor() {
8
11
  this.skyComponentProperties = {};
@@ -21,18 +24,18 @@ export class SkyAgGridCellEditorAutocompleteComponent {
21
24
  return this.currentSelection;
22
25
  }
23
26
  }
24
- SkyAgGridCellEditorAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- SkyAgGridCellEditorAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: SkyAgGridCellEditorAutocompleteComponent, selector: "sky-ag-grid-cell-editor-autocomplete", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorAutocomplete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-ag-grid-cell-editor-autocomplete\"\n>\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"skyComponentProperties.searchTextMinimumCharacters\"\n (selectionChange)=\"skyComponentProperties.selectionChange && skyComponentProperties.selectionChange($event)\"\n >\n <input\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [(ngModel)]=\"currentSelection\"\n [attr.aria-label]=\"'sky_ag_grid_cell_editor_autocomplete_aria_label' | skyLibResources:columnHeader:rowNumber\"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"], components: [{ type: i1.λ2, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText"], outputs: ["addClick", "showMoreClick", "selectionChange"] }], directives: [{ type: i1.λ1, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{
27
+ SkyAgGridCellEditorAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ SkyAgGridCellEditorAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyAgGridCellEditorAutocompleteComponent, selector: "sky-ag-grid-cell-editor-autocomplete", viewQueries: [{ propertyName: "input", first: true, predicate: ["skyCellEditorAutocomplete"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"sky-ag-grid-cell-editor-autocomplete\">\n <sky-autocomplete\n [data]=\"skyComponentProperties.data\"\n [debounceTime]=\"skyComponentProperties.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties.descriptorProperty\"\n [propertiesToSearch]=\"skyComponentProperties.propertiesToSearch\"\n [search]=\"skyComponentProperties.search\"\n [searchFilters]=\"skyComponentProperties.searchFilters\"\n [searchResultsLimit]=\"skyComponentProperties.searchResultsLimit\"\n [searchResultTemplate]=\"skyComponentProperties.searchResultTemplate\"\n [searchTextMinimumCharacters]=\"\n skyComponentProperties.searchTextMinimumCharacters\n \"\n (selectionChange)=\"\n skyComponentProperties.selectionChange &&\n skyComponentProperties.selectionChange($event)\n \"\n >\n <input\n skyAutocomplete\n #skyCellEditorAutocomplete\n type=\"text\"\n [(ngModel)]=\"currentSelection\"\n [attr.aria-label]=\"\n 'sky_ag_grid_cell_editor_autocomplete_aria_label'\n | skyLibResources: columnHeader:rowNumber\n \"\n />\n </sky-autocomplete>\n</div>\n", styles: ["sky-autocomplete input{border:none;box-shadow:none}\n"], components: [{ type: i1.λ2, selector: "sky-autocomplete", inputs: ["ariaLabelledBy", "data", "debounceTime", "descriptorProperty", "enableShowMore", "messageStream", "wrapperClass", "propertiesToSearch", "search", "searchResultTemplate", "searchTextMinimumCharacters", "searchFilters", "searchResultsLimit", "showAddButton", "noResultsFoundText"], outputs: ["addClick", "showMoreClick", "selectionChange"] }], directives: [{ type: i1.λ1, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: ["autocompleteAttribute", "disabled"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteComponent, decorators: [{
27
30
  type: Component,
28
31
  args: [{
29
32
  selector: 'sky-ag-grid-cell-editor-autocomplete',
30
33
  templateUrl: './cell-editor-autocomplete.component.html',
31
34
  styleUrls: ['./cell-editor-autocomplete.component.scss'],
32
- changeDetection: ChangeDetectionStrategy.OnPush
35
+ changeDetection: ChangeDetectionStrategy.OnPush,
33
36
  }]
34
37
  }], propDecorators: { input: [{
35
38
  type: ViewChild,
36
39
  args: ['skyCellEditorAutocomplete', { read: ElementRef }]
37
40
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLWdyaWQvc3JjL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFvQnZCLE1BQU0sT0FBTyx3Q0FBd0M7SUFOckQ7UUFVUywyQkFBc0IsR0FBOEIsRUFBRSxDQUFDO0tBcUIvRDtJQWZRLE1BQU0sQ0FBQyxNQUF1QztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLElBQUksRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDOztzSUF4QlUsd0NBQXdDOzBIQUF4Qyx3Q0FBd0MsMktBT0osVUFBVSw2QkNoQzNELGdrQ0F3QkE7NEZEQ2Esd0NBQXdDO2tCQU5wRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFdBQVcsRUFBRSwyQ0FBMkM7b0JBQ3hELFNBQVMsRUFBRSxDQUFDLDJDQUEyQyxDQUFDO29CQUN4RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBU1EsS0FBSztzQkFEWCxTQUFTO3VCQUFDLDJCQUEyQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxufSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuXG5pbXBvcnQge1xuICBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zXG59IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuXG5pbXBvcnQge1xuICBTa3lBdXRvY29tcGxldGVQcm9wZXJ0aWVzXG59IGZyb20gJy4uLy4uL3R5cGVzL2F1dG9jb21wbGV0ZS1wcm9wZXJ0aWVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcCB7XG4gIHB1YmxpYyBjdXJyZW50U2VsZWN0aW9uOiBhbnk7XG4gIHB1YmxpYyBjb2x1bW5IZWFkZXI6IHN0cmluZztcbiAgcHVibGljIHJvd051bWJlcjogbnVtYmVyO1xuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllczogU2t5QXV0b2NvbXBsZXRlUHJvcGVydGllcyA9IHt9O1xuICBwcml2YXRlIHBhcmFtczogU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcztcblxuICBAVmlld0NoaWxkKCdza3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLnBhcmFtcy52YWx1ZTtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMucGFyYW1zLmNvbERlZiAmJiB0aGlzLnBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMucGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLnBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlXCJcbj5cbiAgPHNreS1hdXRvY29tcGxldGVcbiAgICBbZGF0YV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLmRhdGFcIlxuICAgIFtkZWJvdW5jZVRpbWVdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kZWJvdW5jZVRpbWVcIlxuICAgIFtkZXNjcmlwdG9yUHJvcGVydHldPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kZXNjcmlwdG9yUHJvcGVydHlcIlxuICAgIFtwcm9wZXJ0aWVzVG9TZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5wcm9wZXJ0aWVzVG9TZWFyY2hcIlxuICAgIFtzZWFyY2hdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hcIlxuICAgIFtzZWFyY2hGaWx0ZXJzXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoRmlsdGVyc1wiXG4gICAgW3NlYXJjaFJlc3VsdHNMaW1pdF09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFJlc3VsdHNMaW1pdFwiXG4gICAgW3NlYXJjaFJlc3VsdFRlbXBsYXRlXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoUmVzdWx0VGVtcGxhdGVcIlxuICAgIFtzZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UgJiYgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIHNreUF1dG9jb21wbGV0ZVxuICAgICAgI3NreUNlbGxFZGl0b3JBdXRvY29tcGxldGVcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFNlbGVjdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXM6Y29sdW1uSGVhZGVyOnJvd051bWJlclwiXG4gICAgLz5cbiAgPC9za3ktYXV0b2NvbXBsZXRlPlxuPC9kaXY+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLWdyaWQvc3JjL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sd0NBQXdDO0lBTnJEO1FBWVMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztLQXFCL0Q7SUFmUSxNQUFNLENBQUMsTUFBdUM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQzs7c0lBMUJVLHdDQUF3QzswSEFBeEMsd0NBQXdDLDJLQVNILFVBQVUsNkJDL0I1RCw4bkNBOEJBOzRGRFJhLHdDQUF3QztrQkFOcEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxTQUFTLEVBQUUsQ0FBQywyQ0FBMkMsQ0FBQztvQkFDeEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQVdRLEtBQUs7c0JBRFgsU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJQ2VsbEVkaXRvckFuZ3VsYXJDb21wIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcblxuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS1wYXJhbXMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0b2NvbXBsZXRlLXByb3BlcnRpZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRvci1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSUNlbGxFZGl0b3JBbmd1bGFyQ29tcFxue1xuICBwdWJsaWMgY3VycmVudFNlbGVjdGlvbjogYW55O1xuICBwdWJsaWMgY29sdW1uSGVhZGVyOiBzdHJpbmc7XG4gIHB1YmxpYyByb3dOdW1iZXI6IG51bWJlcjtcbiAgcHVibGljIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IFNreUF1dG9jb21wbGV0ZVByb3BlcnRpZXMgPSB7fTtcbiAgcHJpdmF0ZSBwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXM7XG5cbiAgQFZpZXdDaGlsZCgnc2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXMpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLnBhcmFtcy52YWx1ZTtcbiAgICB0aGlzLmNvbHVtbkhlYWRlciA9IHRoaXMucGFyYW1zLmNvbERlZiAmJiB0aGlzLnBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcbiAgICB0aGlzLnJvd051bWJlciA9IHRoaXMucGFyYW1zLnJvd0luZGV4ICsgMTtcbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLnBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGFmdGVyR3VpQXR0YWNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2VsZWN0aW9uO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWFnLWdyaWQtY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlXCI+XG4gIDxza3ktYXV0b2NvbXBsZXRlXG4gICAgW2RhdGFdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5kYXRhXCJcbiAgICBbZGVib3VuY2VUaW1lXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVib3VuY2VUaW1lXCJcbiAgICBbZGVzY3JpcHRvclByb3BlcnR5XT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5XCJcbiAgICBbcHJvcGVydGllc1RvU2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMucHJvcGVydGllc1RvU2VhcmNoXCJcbiAgICBbc2VhcmNoXT1cInNreUNvbXBvbmVudFByb3BlcnRpZXMuc2VhcmNoXCJcbiAgICBbc2VhcmNoRmlsdGVyc109XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaEZpbHRlcnNcIlxuICAgIFtzZWFyY2hSZXN1bHRzTGltaXRdPVwic2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hSZXN1bHRzTGltaXRcIlxuICAgIFtzZWFyY2hSZXN1bHRUZW1wbGF0ZV09XCJza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlYXJjaFJlc3VsdFRlbXBsYXRlXCJcbiAgICBbc2VhcmNoVGV4dE1pbmltdW1DaGFyYWN0ZXJzXT1cIlxuICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllcy5zZWFyY2hUZXh0TWluaW11bUNoYXJhY3RlcnNcbiAgICBcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiXG4gICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlbGVjdGlvbkNoYW5nZSAmJlxuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXG4gICAgXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgc2t5QXV0b2NvbXBsZXRlXG4gICAgICAjc2t5Q2VsbEVkaXRvckF1dG9jb21wbGV0ZVxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50U2VsZWN0aW9uXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdza3lfYWdfZ3JpZF9jZWxsX2VkaXRvcl9hdXRvY29tcGxldGVfYXJpYV9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogY29sdW1uSGVhZGVyOnJvd051bWJlclxuICAgICAgXCJcbiAgICAvPlxuICA8L3NreS1hdXRvY29tcGxldGU+XG48L2Rpdj5cbiJdfQ==
@@ -6,29 +6,15 @@ import { AgGridResourcesModule } from '../../../shared/ag-grid-resources.module'
6
6
  import * as i0 from "@angular/core";
7
7
  export class SkyAgGridCellEditorAutocompleteModule {
8
8
  }
9
- SkyAgGridCellEditorAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SkyAgGridCellEditorAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, declarations: [SkyAgGridCellEditorAutocompleteComponent], imports: [FormsModule,
11
- AgGridResourcesModule,
12
- SkyAutocompleteModule], exports: [SkyAgGridCellEditorAutocompleteComponent] });
13
- SkyAgGridCellEditorAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, imports: [[
14
- FormsModule,
15
- AgGridResourcesModule,
16
- SkyAutocompleteModule
17
- ]] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, decorators: [{
9
+ SkyAgGridCellEditorAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SkyAgGridCellEditorAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, declarations: [SkyAgGridCellEditorAutocompleteComponent], imports: [FormsModule, AgGridResourcesModule, SkyAutocompleteModule], exports: [SkyAgGridCellEditorAutocompleteComponent] });
11
+ SkyAgGridCellEditorAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, imports: [[FormsModule, AgGridResourcesModule, SkyAutocompleteModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAgGridCellEditorAutocompleteModule, decorators: [{
19
13
  type: NgModule,
20
14
  args: [{
21
- imports: [
22
- FormsModule,
23
- AgGridResourcesModule,
24
- SkyAutocompleteModule
25
- ],
26
- declarations: [
27
- SkyAgGridCellEditorAutocompleteComponent
28
- ],
29
- exports: [
30
- SkyAgGridCellEditorAutocompleteComponent
31
- ]
15
+ imports: [FormsModule, AgGridResourcesModule, SkyAutocompleteModule],
16
+ declarations: [SkyAgGridCellEditorAutocompleteComponent],
17
+ exports: [SkyAgGridCellEditorAutocompleteComponent],
32
18
  }]
33
19
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLWdyaWQvc3JjL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsd0NBQXdDLEVBQ3pDLE1BQU0sZ0VBQWdFLENBQUM7QUFFeEUsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDBDQUEwQyxDQUFDOztBQWVsRCxNQUFNLE9BQU8scUNBQXFDOzttSUFBckMscUNBQXFDO29JQUFyQyxxQ0FBcUMsaUJBTjlDLHdDQUF3QyxhQUx4QyxXQUFXO1FBQ1gscUJBQXFCO1FBQ3JCLHFCQUFxQixhQU1yQix3Q0FBd0M7b0lBRy9CLHFDQUFxQyxZQVp2QztZQUNQLFdBQVc7WUFDWCxxQkFBcUI7WUFDckIscUJBQXFCO1NBQ3RCOzRGQVFVLHFDQUFxQztrQkFiakQsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHdDQUF3QztxQkFDekM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdDQUF3QztxQkFDekM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ01vZHVsZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1xuICBTa3lBdXRvY29tcGxldGVNb2R1bGVcbn0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbn0gZnJvbSAnLi4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBBZ0dyaWRSZXNvdXJjZXNNb2R1bGVcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2FnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBZ0dyaWRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5QXV0b2NvbXBsZXRlTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlTW9kdWxlIHtcbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FnLWdyaWQvc3JjL21vZHVsZXMvYWctZ3JpZC9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBRTFILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQU9qRixNQUFNLE9BQU8scUNBQXFDOzttSUFBckMscUNBQXFDO29JQUFyQyxxQ0FBcUMsaUJBSGpDLHdDQUF3QyxhQUQ3QyxXQUFXLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLGFBRXpELHdDQUF3QztvSUFFdkMscUNBQXFDLFlBSnZDLENBQUMsV0FBVyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDOzRGQUl6RCxxQ0FBcUM7a0JBTGpELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO29CQUNwRSxZQUFZLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztvQkFDeEQsT0FBTyxFQUFFLENBQUMsd0NBQXdDLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreUF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYWctZ3JpZC1yZXNvdXJjZXMubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBBZ0dyaWRSZXNvdXJjZXNNb2R1bGUsIFNreUF1dG9jb21wbGV0ZU1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1NreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVNb2R1bGUge31cbiJdfQ==