@skyux/ag-grid 4.11.0 → 4.12.3

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 (56) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/bundles/skyux-ag-grid.umd.js +287 -53
  3. package/bundles/skyux-ag-grid.umd.js.map +1 -1
  4. package/bundles/skyux-ag-grid.umd.min.js +2 -2
  5. package/bundles/skyux-ag-grid.umd.min.js.map +1 -1
  6. package/css/sky-ag-grid.css +56 -8
  7. package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +49 -14
  8. package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +5 -2
  9. package/esm2015/modules/ag-grid/ag-grid.module.js +9 -1
  10. package/esm2015/modules/ag-grid/ag-grid.service.js +53 -13
  11. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +68 -0
  12. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +25 -0
  13. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +32 -0
  14. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +16 -0
  15. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +3 -3
  16. package/esm2015/modules/ag-grid/types/cell-class.js +2 -1
  17. package/esm2015/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
  18. package/esm2015/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
  19. package/esm2015/modules/ag-grid/types/cell-type.js +2 -1
  20. package/esm2015/modules/ag-grid/types/lookup-properties.js +24 -0
  21. package/esm2015/plugin-resources/ag-grid-resources-provider.js +2 -2
  22. package/esm2015/skyux-ag-grid.js +20 -16
  23. package/esm5/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +51 -14
  24. package/esm5/modules/ag-grid/ag-grid-row-delete.directive.js +2 -2
  25. package/esm5/modules/ag-grid/ag-grid.module.js +9 -1
  26. package/esm5/modules/ag-grid/ag-grid.service.js +63 -23
  27. package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +69 -0
  28. package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +28 -0
  29. package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +33 -0
  30. package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +19 -0
  31. package/esm5/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +3 -3
  32. package/esm5/modules/ag-grid/types/cell-class.js +2 -1
  33. package/esm5/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
  34. package/esm5/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
  35. package/esm5/modules/ag-grid/types/cell-type.js +2 -1
  36. package/esm5/modules/ag-grid/types/lookup-properties.js +24 -0
  37. package/esm5/plugin-resources/ag-grid-resources-provider.js +2 -2
  38. package/esm5/skyux-ag-grid.js +20 -16
  39. package/fesm2015/skyux-ag-grid.js +256 -33
  40. package/fesm2015/skyux-ag-grid.js.map +1 -1
  41. package/fesm5/skyux-ag-grid.js +273 -43
  42. package/fesm5/skyux-ag-grid.js.map +1 -1
  43. package/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +3 -1
  44. package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +22 -0
  45. package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.d.ts +2 -0
  46. package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.d.ts +11 -0
  47. package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.d.ts +2 -0
  48. package/modules/ag-grid/types/cell-class.d.ts +1 -0
  49. package/modules/ag-grid/types/cell-editor-lookup-params.d.ts +5 -0
  50. package/modules/ag-grid/types/cell-renderer-lookup-params.d.ts +5 -0
  51. package/modules/ag-grid/types/cell-type.d.ts +1 -0
  52. package/modules/ag-grid/types/lookup-properties.d.ts +44 -0
  53. package/package.json +3 -3
  54. package/skyux-ag-grid.d.ts +19 -15
  55. package/skyux-ag-grid.metadata.json +1 -1
  56. package/src/assets/locales/resources_en_US.json +4 -0
@@ -6,14 +6,17 @@ import { takeUntil } from 'rxjs/operators';
6
6
  import { SkyThemeService, SkyThemeSettings } from '@skyux/theme';
7
7
  import { SkyAgGridCellEditorAutocompleteComponent } from './cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';
8
8
  import { SkyAgGridCellEditorDatepickerComponent } from './cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';
9
+ import { SkyAgGridCellEditorLookupComponent } from './cell-editors/cell-editor-lookup/cell-editor-lookup.component';
9
10
  import { SkyAgGridCellEditorNumberComponent } from './cell-editors/cell-editor-number/cell-editor-number.component';
10
11
  import { SkyAgGridCellEditorTextComponent } from './cell-editors/cell-editor-text/cell-editor-text.component';
11
12
  import { SkyAgGridCellRendererCurrencyValidatorComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';
13
+ import { SkyAgGridCellRendererLookupComponent } from './cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component';
12
14
  import { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';
13
15
  import { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';
14
16
  import { SkyCellClass } from './types/cell-class';
15
17
  import { SkyCellType } from './types/cell-type';
16
18
  import { SkyHeaderClass } from './types/header-class';
19
+ import { applySkyLookupPropertiesDefaults } from './types/lookup-properties';
17
20
  import { SkyAgGridAdapterService } from './ag-grid-adapter.service';
18
21
  import { SkyAgGridCellRendererCurrencyComponent } from './cell-renderers/cell-renderer-currency/cell-renderer-currency.component';
19
22
  import { SkyAgGridCellEditorCurrencyComponent } from './cell-editors/cell-editor-currency/cell-editor-currency.component';
@@ -54,18 +57,19 @@ function dateComparator(date1, date2) {
54
57
  }
55
58
  function getValidatorCellRendererSelector(component, fallback) {
56
59
  return function (params) {
57
- var _a, _b, _c, _d;
58
- if (typeof ((_c = (_b = (_a = params.colDef) === null || _a === void 0 ? void 0 : _a.cellRendererParams) === null || _b === void 0 ? void 0 : _b.skyComponentProperties) === null || _c === void 0 ? void 0 : _c.validator) === 'function') {
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') {
59
62
  if (!params.colDef.cellRendererParams.skyComponentProperties.validator(params.value, params.data, params.rowIndex)) {
60
63
  return {
61
64
  component: component,
62
- params: __assign({}, (_d = params.colDef) === null || _d === void 0 ? void 0 : _d.cellRendererParams)
65
+ params: __assign({}, params.colDef.cellRendererParams)
63
66
  };
64
67
  }
65
68
  }
66
69
  return fallback;
67
70
  };
68
71
  }
72
+ var rowNodeId = 1;
69
73
  /**
70
74
  * A service that provides default styling and behavior for agGrids in SKY UX SPAs.
71
75
  */
@@ -108,9 +112,9 @@ var SkyAgGridService = /** @class */ (function () {
108
112
  return mergedGridOptions;
109
113
  };
110
114
  SkyAgGridService.prototype.getDefaultGridOptions = function (args) {
111
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
115
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
112
116
  var _this = this;
113
- var _k, _l, _m, _o, _p, _q, _r, _s;
117
+ var _l, _m, _o, _p, _q, _r;
114
118
  // cellClassRules can be functions or string expressions
115
119
  var cellClassRuleTrueExpression = 'true';
116
120
  function getEditableFn(isUneditable) {
@@ -129,8 +133,8 @@ var SkyAgGridService = /** @class */ (function () {
129
133
  _a);
130
134
  function getValidatorFn() {
131
135
  return function (param) {
132
- var _a, _b, _c;
133
- if (typeof ((_c = (_b = (_a = param.colDef) === null || _a === void 0 ? void 0 : _a.cellRendererParams) === null || _b === void 0 ? void 0 : _b.skyComponentProperties) === null || _c === void 0 ? void 0 : _c.validator) === 'function') {
136
+ var _a, _b;
137
+ 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') {
134
138
  return !param.colDef.cellRendererParams.skyComponentProperties.validator(param.value, param.data, param.rowIndex);
135
139
  }
136
140
  return false;
@@ -159,19 +163,34 @@ var SkyAgGridService = /** @class */ (function () {
159
163
  cellClassRules: __assign((_f = {}, _f[SkyCellClass.Date] = cellClassRuleTrueExpression, _f), editableCellClassRules),
160
164
  cellEditorFramework: SkyAgGridCellEditorDatepickerComponent,
161
165
  comparator: dateComparator,
162
- minWidth: ((_l = (_k = this.currentTheme) === null || _k === void 0 ? void 0 : _k.theme) === null || _l === void 0 ? void 0 : _l.name) === 'modern' ? 180 : 160,
166
+ minWidth: ((_m = (_l = this.currentTheme) === null || _l === void 0 ? void 0 : _l.theme) === null || _m === void 0 ? void 0 : _m.name) === 'modern' ? 180 : 160,
163
167
  valueFormatter: function (params) { return _this.dateFormatter(params, args.locale); }
164
168
  },
169
+ _c[SkyCellType.Lookup] = {
170
+ cellClassRules: __assign((_g = {}, _g[SkyCellClass.Lookup] = cellClassRuleTrueExpression, _g), editableCellClassRules),
171
+ cellEditorFramework: SkyAgGridCellEditorLookupComponent,
172
+ cellRendererFramework: SkyAgGridCellRendererLookupComponent,
173
+ valueFormatter: function (params) {
174
+ var lookupProperties = applySkyLookupPropertiesDefaults(params);
175
+ return (params.value || [])
176
+ .map(function (value) {
177
+ return value[lookupProperties.descriptorProperty];
178
+ })
179
+ .filter(function (value) { return value !== '' && value !== undefined; })
180
+ .join('; ');
181
+ },
182
+ minWidth: 185
183
+ },
165
184
  _c[SkyCellType.Number] = {
166
- cellClassRules: __assign((_g = {}, _g[SkyCellClass.Number] = cellClassRuleTrueExpression, _g), editableCellClassRules),
185
+ cellClassRules: __assign((_h = {}, _h[SkyCellClass.Number] = cellClassRuleTrueExpression, _h), editableCellClassRules),
167
186
  cellEditorFramework: SkyAgGridCellEditorNumberComponent,
168
187
  headerClass: SkyHeaderClass.RightAligned
169
188
  },
170
189
  _c[SkyCellType.RowSelector] = {
171
- cellClassRules: (_h = {},
172
- _h[SkyCellClass.RowSelector] = cellClassRuleTrueExpression,
173
- _h[SkyCellClass.Uneditable] = cellClassRuleTrueExpression,
174
- _h),
190
+ cellClassRules: (_j = {},
191
+ _j[SkyCellClass.RowSelector] = cellClassRuleTrueExpression,
192
+ _j[SkyCellClass.Uneditable] = cellClassRuleTrueExpression,
193
+ _j),
175
194
  cellRendererFramework: SkyAgGridCellRendererRowSelectorComponent,
176
195
  headerName: '',
177
196
  minWidth: 55,
@@ -180,7 +199,7 @@ var SkyAgGridService = /** @class */ (function () {
180
199
  width: 55
181
200
  },
182
201
  _c[SkyCellType.Text] = {
183
- cellClassRules: __assign((_j = {}, _j[SkyCellClass.Text] = cellClassRuleTrueExpression, _j), editableCellClassRules),
202
+ cellClassRules: __assign((_k = {}, _k[SkyCellClass.Text] = cellClassRuleTrueExpression, _k), editableCellClassRules),
184
203
  cellEditorFramework: SkyAgGridCellEditorTextComponent
185
204
  },
186
205
  _c[SkyCellType.Validator] = {
@@ -202,7 +221,21 @@ var SkyAgGridService = /** @class */ (function () {
202
221
  'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,
203
222
  'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent
204
223
  },
205
- headerHeight: ((_o = (_m = this.currentTheme) === null || _m === void 0 ? void 0 : _m.theme) === null || _o === void 0 ? void 0 : _o.name) === 'modern' ? 60 : 37,
224
+ getRowNodeId: function (data) {
225
+ if ('id' in data && data.id) {
226
+ return "" + data.id;
227
+ }
228
+ return "" + rowNodeId++;
229
+ },
230
+ getRowClass: function (params) {
231
+ if (params.node.id) {
232
+ return "sky-ag-grid-row-" + params.node.id;
233
+ }
234
+ else {
235
+ return undefined;
236
+ }
237
+ },
238
+ headerHeight: ((_p = (_o = this.currentTheme) === null || _o === void 0 ? void 0 : _o.theme) === null || _p === void 0 ? void 0 : _p.name) === 'modern' ? 60 : 37,
206
239
  icons: {
207
240
  sortDescending: this.getIconTemplate('caret-down'),
208
241
  sortAscending: this.getIconTemplate('caret-up'),
@@ -213,7 +246,7 @@ var SkyAgGridService = /** @class */ (function () {
213
246
  columnMovePin: this.getIconTemplate('arrows')
214
247
  },
215
248
  onCellFocused: function () { return _this.onCellFocused(); },
216
- rowHeight: ((_q = (_p = this.currentTheme) === null || _p === void 0 ? void 0 : _p.theme) === null || _q === void 0 ? void 0 : _q.name) === 'modern' ? 60 : 38,
249
+ rowHeight: ((_r = (_q = this.currentTheme) === null || _q === void 0 ? void 0 : _q.theme) === null || _r === void 0 ? void 0 : _r.name) === 'modern' ? 60 : 38,
217
250
  rowMultiSelectWithClick: true,
218
251
  rowSelection: 'multiple',
219
252
  singleClickEdit: true,
@@ -231,9 +264,12 @@ var SkyAgGridService = /** @class */ (function () {
231
264
  validatorMessage: 'Please enter a valid currency'
232
265
  }
233
266
  } });
234
- (_r = this.resources) === null || _r === void 0 ? void 0 : _r.getString('sky_ag_grid_cell_renderer_currency_validator_message').subscribe(function (value) {
235
- defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
236
- });
267
+ /*istanbul ignore else*/
268
+ if (this.resources) {
269
+ this.resources.getString('sky_ag_grid_cell_renderer_currency_validator_message').subscribe(function (value) {
270
+ defaultSkyGridOptions.columnTypes[SkyCellType.CurrencyValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
271
+ });
272
+ }
237
273
  defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator] = __assign(__assign(__assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator]), defaultSkyGridOptions.columnTypes[SkyCellType.Number]), { cellClassRules: __assign(__assign({}, defaultSkyGridOptions.columnTypes[SkyCellType.Validator].cellClassRules), defaultSkyGridOptions.columnTypes[SkyCellType.Number].cellClassRules), cellRendererParams: {
238
274
  skyComponentProperties: {
239
275
  validator: function (value, data, rowIndex) {
@@ -242,9 +278,12 @@ var SkyAgGridService = /** @class */ (function () {
242
278
  validatorMessage: 'Please enter a valid number'
243
279
  }
244
280
  } });
245
- (_s = this.resources) === null || _s === void 0 ? void 0 : _s.getString('sky_ag_grid_cell_renderer_number_validator_message').subscribe(function (value) {
246
- defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
247
- });
281
+ /*istanbul ignore else*/
282
+ if (this.resources) {
283
+ this.resources.getString('sky_ag_grid_cell_renderer_number_validator_message').subscribe(function (value) {
284
+ defaultSkyGridOptions.columnTypes[SkyCellType.NumberValidator].cellRendererParams.skyComponentProperties.validatorMessage = value;
285
+ });
286
+ }
248
287
  return defaultSkyGridOptions;
249
288
  };
250
289
  SkyAgGridService.prototype.onCellFocused = function () {
@@ -263,6 +302,7 @@ var SkyAgGridService = /** @class */ (function () {
263
302
  if (date && typeof date === 'string') {
264
303
  date = new Date(params.value);
265
304
  }
305
+ // @ts-ignore
266
306
  var formattedDate = date && date.toLocaleDateString && date.toLocaleDateString(locale, dateConfig);
267
307
  if (date && date.getTime && !isNaN(date.getTime())) {
268
308
  return formattedDate;
@@ -299,4 +339,4 @@ var SkyAgGridService = /** @class */ (function () {
299
339
  return SkyAgGridService;
300
340
  }());
301
341
  export { SkyAgGridService };
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sYUFBYSxDQUFDO0FBY3JCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNMLHdDQUF3QyxFQUN6QyxNQUFNLDRFQUE0RSxDQUFDO0FBRXBGLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdkMsTUFBTSx3RUFBd0UsQ0FBQztBQUVoRixPQUFPLEVBQ0wsa0NBQWtDLEVBQ25DLE1BQU0sZ0VBQWdFLENBQUM7QUFFeEUsT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLDREQUE0RCxDQUFDO0FBRXBFLE9BQU8sRUFDTCwrQ0FBK0MsRUFDaEQsTUFBTSxvRkFBb0YsQ0FBQztBQUU1RixPQUFPLEVBQ0wseUNBQXlDLEVBQzFDLE1BQU0sa0ZBQWtGLENBQUM7QUFFMUYsT0FBTyxFQUNMLDhDQUE4QyxFQUMvQyxNQUFNLDRGQUE0RixDQUFDO0FBRXBHLE9BQU8sRUFDTCxZQUFZLEVBQ2IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0wsV0FBVyxFQUNaLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGNBQWMsRUFDZixNQUFNLHNCQUFzQixDQUFDO0FBTTlCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQ0wsc0NBQXND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QUFNLDBCQUEwQixHQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pHLE9BQU8sQ0FBQyxDQUFDLDBCQUEwQixDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Z0JBaFMrQix1QkFBdUI7Z0JBQ3RCLGVBQWUsdUJBQTdDLFFBQVE7Z0JBQ3VCLHNCQUFzQix1QkFBckQsUUFBUTs7SUFQQSxnQkFBZ0I7UUFENUIsVUFBVSxFQUFFO1FBT1IsV0FBQSxRQUFRLEVBQUUsQ0FBQTtRQUNWLFdBQUEsUUFBUSxFQUFFLENBQUE7T0FQRixnQkFBZ0IsQ0FzUzVCO0lBQUQsdUJBQUM7Q0FBQSxBQXRTRCxJQXNTQztTQXRTWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHtcbiAgQ2VsbENsYXNzUGFyYW1zLFxuICBHcmlkT3B0aW9ucyxcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtc1xufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudFNlbGVjdG9yUmVzdWx0XG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5L2Rpc3QvbGliL2NvbXBvbmVudHMvZnJhbWV3b3JrL3VzZXJDb21wb25lbnRGYWN0b3J5JztcblxuaW1wb3J0IHtcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1udW1iZXIvY2VsbC1lZGl0b3ItbnVtYmVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLXRleHQvY2VsbC1lZGl0b3ItdGV4dC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci9jZWxsLXJlbmRlcmVyLXJvdy1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUNlbGxDbGFzc1xufSBmcm9tICcuL3R5cGVzL2NlbGwtY2xhc3MnO1xuXG5pbXBvcnQge1xuICBTa3lDZWxsVHlwZVxufSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmltcG9ydCB7XG4gIFNreUhlYWRlckNsYXNzXG59IGZyb20gJy4vdHlwZXMvaGVhZGVyLWNsYXNzJztcblxuaW1wb3J0IHtcbiAgU2t5R2V0R3JpZE9wdGlvbnNBcmdzXG59IGZyb20gJy4vdHlwZXMvc2t5LWdyaWQtb3B0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlQ29tcGFyYXRvcih2YWx1ZTE6IHsgbmFtZTogc3RyaW5nIH0sIHZhbHVlMjogeyBuYW1lOiBzdHJpbmcgfSk6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBhbnksIGRhdGUyOiBhbnkpOiBudW1iZXIge1xuICBsZXQgZGF0ZTF2YWx1ZSA9IGRhdGUxO1xuICBsZXQgZGF0ZTJ2YWx1ZSA9IGRhdGUyO1xuXG4gIGlmICh0eXBlb2YgZGF0ZTF2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMXZhbHVlID0gbmV3IERhdGUoZGF0ZTEpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBkYXRlMnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUydmFsdWUgPSBuZXcgRGF0ZShkYXRlMik7XG4gIH1cblxuICBpZiAoZGF0ZTF2YWx1ZSAmJiBkYXRlMnZhbHVlKSB7XG4gICAgaWYgKGRhdGUxdmFsdWUgPiBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZTF2YWx1ZSA8IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiBkYXRlMXZhbHVlID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBDb21wb25lbnRTZWxlY3RvclJlc3VsdCkge1xuICByZXR1cm4gKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IENvbXBvbmVudFNlbGVjdG9yUmVzdWx0ID0+IHtcbiAgICBpZiAodHlwZW9mIHBhcmFtcy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoIXBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKHBhcmFtcy52YWx1ZSwgcGFyYW1zLmRhdGEsIHBhcmFtcy5yb3dJbmRleCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXNcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBkZWZhdWx0IHN0eWxpbmcgYW5kIGJlaGF2aW9yIGZvciBhZ0dyaWRzIGluIFNLWSBVWCBTUEFzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3M7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlc291cmNlcz86IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMudGhlbWVTdmMpIHtcbiAgICAgIHRoaXMudGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzZXR0aW5nc0NoYW5nZSA9PiB0aGlzLmN1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFNLWSBVWCBncmlkT3B0aW9ucyB0byBjcmVhdGUgeW91ciBhZ0dyaWQgd2l0aCBkZWZhdWx0IFNLWSBzdHlsaW5nIGFuZCBiZWhhdmlvci5cbiAgICogQHBhcmFtIGFyZ3Mgb3B0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBkZWZhdWx0IFNLWSBVWCBhZ0dyaWQgZ3JpZE9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy5tZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9ucywgYXJncy5ncmlkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy5nZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhkZWZhdWx0R3JpZE9wdGlvbnMsIGFyZ3MuZ3JpZE9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsIHByb3ZpZGVkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBtZXJnZWRHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYuY2VsbENsYXNzUnVsZXNcbiAgICAgIH0sXG4gICAgICBpY29uczoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuaWNvbnMsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuaWNvbnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gJ3RydWUnO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihpc1VuZWRpdGFibGU/OiBib29sZWFuKTogKChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNFZGl0YWJsZSA9IHBhcmFtcy5jb2xEZWYuZWRpdGFibGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpc0VkaXRhYmxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gcGFyYW1zLmNvbHVtbkFwaS5nZXRDb2x1bW4ocGFyYW1zLmNvbERlZi5maWVsZCk7XG4gICAgICAgICAgaXNFZGl0YWJsZSA9IGlzRWRpdGFibGUoeyAuLi5wYXJhbXMsIGNvbHVtbiB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6IGlzRWRpdGFibGU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRhYmxlQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbih0cnVlKVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAoKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbS5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKHBhcmFtLnZhbHVlLCBwYXJhbS5kYXRhLCBwYXJhbS5yb3dJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuSW52YWxpZF06IGdldFZhbGlkYXRvckZuKClcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQ3VycmVuY3ldOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkLFxuICAgICAgICAgIG1pbldpZHRoOiAxODVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gMTgwIDogMTYwLFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykgPT4gdGhpcy5kYXRlRm9ybWF0dGVyKHBhcmFtcywgYXJncy5sb2NhbGUpXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvblxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnJyxcbiAgICAgICAgICBtaW5XaWR0aDogNTUsXG4gICAgICAgICAgbWF4V2lkdGg6IDU1LFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50XG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5WYWxpZGF0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKCdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJylcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIHN1cHByZXNzS2V5Ym9hcmRFdmVudDogKGtleXByZXNzOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpID0+IHRoaXMuc3VwcHJlc3NUYWIoa2V5cHJlc3MpXG4gICAgICB9LFxuICAgICAgZG9tTGF5b3V0OiAnYXV0b0hlaWdodCcsXG4gICAgICBlbnRlck1vdmVzRG93bkFmdGVyRWRpdDogdHJ1ZSxcbiAgICAgIGZyYW1ld29ya0NvbXBvbmVudHM6IHtcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnQsXG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJzogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIGhlYWRlckhlaWdodDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzcsXG4gICAgICBpY29uczoge1xuICAgICAgICBzb3J0RGVzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LWRvd24nKSxcbiAgICAgICAgc29ydEFzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LXVwJyksXG4gICAgICAgIGNvbHVtbk1vdmVNb3ZlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVIaWRlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVMZWZ0OiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVSaWdodDogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2Fycm93cycpLFxuICAgICAgICBjb2x1bW5Nb3ZlUGluOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJylcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoKSA9PiB0aGlzLm9uQ2VsbEZvY3VzZWQoKSxcbiAgICAgIHJvd0hlaWdodDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzgsXG4gICAgICByb3dNdWx0aVNlbGVjdFdpdGhDbGljazogdHJ1ZSxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ211bHRpcGxlJyxcbiAgICAgIHNpbmdsZUNsaWNrRWRpdDogdHJ1ZSxcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG4gICAgICBzb3J0aW5nT3JkZXI6IFsnZGVzYycsICdhc2MnLCBudWxsXSxcbiAgICAgIHN0b3BFZGl0aW5nV2hlbkdyaWRMb3Nlc0ZvY3VzOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IHRydWUsXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZVxuICAgIH07XG5cbiAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSwgZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFgJHt2YWx1ZSB8fCAnJ31gLm1hdGNoKC9eW14wLTldKihcXGQrWywuXT8pK1xcZCpbXjAtOV0qJC8pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGN1cnJlbmN5J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnJlc291cmNlcz8uZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX2N1cnJlbmN5X3ZhbGlkYXRvcl9tZXNzYWdlJykuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXNcbiAgICAgIH0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBhbnksIGRhdGE6IGFueSwgcm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVzb3VyY2VzPy5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJykuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgb25DZWxsRm9jdXNlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcblxuICAgIHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLmdldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcblxuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSAnbm9uZSc7XG5cbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMsIGxvY2FsZTogc3RyaW5nID0gJ2VuLXVzJyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZGF0ZUNvbmZpZyA9IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJzItZGlnaXQnLCBkYXk6ICcyLWRpZ2l0JyB9O1xuICAgIGxldCBkYXRlOiBEYXRlID0gcGFyYW1zLnZhbHVlO1xuXG4gICAgaWYgKGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICB9XG5cbiAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9IGRhdGUgJiYgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcgJiYgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBkYXRlQ29uZmlnKTtcblxuICAgIGlmIChkYXRlICYmIGRhdGUuZ2V0VGltZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEljb25UZW1wbGF0ZShpY29uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYDxpIGNsYXNzPVwiZmEgZmEtJHtpY29uTmFtZX1cIj48L2k+YDtcbiAgfVxuXG4gIHByaXZhdGUgc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhjdXJyZW50bHlGb2N1c2VkRWwsICdhZy1jZWxsJyk7XG4gICAgICAgIGNvbnN0IHBvcHVwRWwgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhjdXJyZW50bHlGb2N1c2VkRWwsICdhZy1wb3B1cC1lZGl0b3InKTtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSBjZWxsRWwgfHwgcG9wdXBFbDtcblxuICAgICAgICBjb25zdCBuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbCA9XG4gICAgICAgICAgdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChjdXJyZW50bHlGb2N1c2VkRWwsIHBhcmVudEVsLCBwYXJhbXMuZXZlbnQuc2hpZnRLZXkpO1xuICAgICAgICByZXR1cm4gISFuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
342
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sYUFBYSxDQUFDO0FBVXJCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNMLHdDQUF3QyxFQUN6QyxNQUFNLDRFQUE0RSxDQUFDO0FBRXBGLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdkMsTUFBTSx3RUFBd0UsQ0FBQztBQUVoRixPQUFPLEVBQ0wsa0NBQWtDLEVBQ25DLE1BQU0sZ0VBQWdFLENBQUM7QUFFeEUsT0FBTyxFQUNMLGtDQUFrQyxFQUNuQyxNQUFNLGdFQUFnRSxDQUFDO0FBRXhFLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDakMsTUFBTSw0REFBNEQsQ0FBQztBQUVwRSxPQUFPLEVBQ0wsK0NBQStDLEVBQ2hELE1BQU0sb0ZBQW9GLENBQUM7QUFFNUYsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLHNFQUFzRSxDQUFDO0FBRTlFLE9BQU8sRUFDTCx5Q0FBeUMsRUFDMUMsTUFBTSxrRkFBa0YsQ0FBQztBQUUxRixPQUFPLEVBQ0wsOENBQThDLEVBQy9DLE1BQU0sNEZBQTRGLENBQUM7QUFFcEcsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDTCxXQUFXLEVBQ1osTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQ0wsY0FB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QUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6RSxxR0FBcUc7Z0JBQ3JHLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDcEcsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzdHLElBQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUM7Z0JBRW5DLElBQU0sMEJBQTBCLEdBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekcsT0FBTyxDQUFDLENBQUMsMEJBQTBCLENBQUM7YUFDckM7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnQkF0VStCLHVCQUF1QjtnQkFDdEIsZUFBZSx1QkFBN0MsUUFBUTtnQkFDdUIsc0JBQXNCLHVCQUFyRCxRQUFROztJQVBBLGdCQUFnQjtRQUQ1QixVQUFVLEVBQUU7UUFPUixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxRQUFRLEVBQUUsQ0FBQTtPQVBGLGdCQUFnQixDQTRVNUI7SUFBRCx1QkFBQztDQUFBLEFBNVVELElBNFVDO1NBNVVZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFNreUxpYlJlc291cmNlc1NlcnZpY2Vcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQge1xuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIEdyaWRPcHRpb25zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHtcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItbG9va3VwL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lDZWxsQ2xhc3Ncbn0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcblxuaW1wb3J0IHtcbiAgU2t5Q2VsbFR5cGVcbn0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lIZWFkZXJDbGFzc1xufSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyB9IGZyb20gJy4vdHlwZXMvbG9va3VwLXByb3BlcnRpZXMnO1xuXG5pbXBvcnQge1xuICBTa3lHZXRHcmlkT3B0aW9uc0FyZ3Ncbn0gZnJvbSAnLi90eXBlcy9za3ktZ3JpZC1vcHRpb25zJztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2Vcbn0gZnJvbSAnLi9hZy1ncmlkLWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVDb21wYXJhdG9yKHZhbHVlMTogeyBuYW1lOiBzdHJpbmcgfSwgdmFsdWUyOiB7IG5hbWU6IHN0cmluZyB9KTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IGFueSwgZGF0ZTI6IGFueSk6IG51bWJlciB7XG4gIGxldCBkYXRlMXZhbHVlID0gZGF0ZTE7XG4gIGxldCBkYXRlMnZhbHVlID0gZGF0ZTI7XG5cbiAgaWYgKHR5cGVvZiBkYXRlMXZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUxdmFsdWUgPSBuZXcgRGF0ZShkYXRlMSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUydmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTJ2YWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcbiAgfVxuXG4gIGlmIChkYXRlMXZhbHVlICYmIGRhdGUydmFsdWUpIHtcbiAgICBpZiAoZGF0ZTF2YWx1ZSA+IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChkYXRlMXZhbHVlIDwgZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUxdmFsdWUgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKGNvbXBvbmVudDogc3RyaW5nLCBmYWxsYmFjaz86IGFueSkge1xuICByZXR1cm4gKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcykgPT4ge1xuICAgIGlmIChwYXJhbXMuY29sRGVmICYmIHR5cGVvZiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoIXBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKHBhcmFtcy52YWx1ZSwgcGFyYW1zLmRhdGEsIHBhcmFtcy5yb3dJbmRleCkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtc1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9O1xufVxuXG5sZXQgcm93Tm9kZUlkID0gMTtcblxuLyoqXG4gKiBBIHNlcnZpY2UgdGhhdCBwcm92aWRlcyBkZWZhdWx0IHN0eWxpbmcgYW5kIGJlaGF2aW9yIGZvciBhZ0dyaWRzIGluIFNLWSBVWCBTUEFzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3M7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlc291cmNlcz86IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMudGhlbWVTdmMpIHtcbiAgICAgIHRoaXMudGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzZXR0aW5nc0NoYW5nZSA9PiB0aGlzLmN1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFNLWSBVWCBncmlkT3B0aW9ucyB0byBjcmVhdGUgeW91ciBhZ0dyaWQgd2l0aCBkZWZhdWx0IFNLWSBzdHlsaW5nIGFuZCBiZWhhdmlvci5cbiAgICogQHBhcmFtIGFyZ3Mgb3B0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBkZWZhdWx0IFNLWSBVWCBhZ0dyaWQgZ3JpZE9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy5tZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9ucywgYXJncy5ncmlkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy5nZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhkZWZhdWx0R3JpZE9wdGlvbnMsIGFyZ3MuZ3JpZE9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUdyaWRPcHRpb25zKGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsIHByb3ZpZGVkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBtZXJnZWRHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC8vIGFsbG93IGNvbnN1bWVycyB0byBvdmVycmlkZSBhbGwgZGVmYXVsdENvbERlZiBwcm9wZXJ0aWVzIGV4Y2VwdCBjZWxsQ2xhc3NSdWxlcywgd2hpY2ggd2UgcmVzZXJ2ZSBmb3Igc3R5bGluZ1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYuY2VsbENsYXNzUnVsZXNcbiAgICAgIH0sXG4gICAgICBpY29uczoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuaWNvbnMsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuaWNvbnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gJ3RydWUnO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihpc1VuZWRpdGFibGU/OiBib29sZWFuKTogKChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcyk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNFZGl0YWJsZSA9IHBhcmFtcy5jb2xEZWYuZWRpdGFibGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpc0VkaXRhYmxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uID0gcGFyYW1zLmNvbHVtbkFwaS5nZXRDb2x1bW4ocGFyYW1zLmNvbERlZi5maWVsZCk7XG4gICAgICAgICAgaXNFZGl0YWJsZSA9IGlzRWRpdGFibGUoeyAuLi5wYXJhbXMsIGNvbHVtbiB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6IGlzRWRpdGFibGU7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGVkaXRhYmxlQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbigpLFxuICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogZ2V0RWRpdGFibGVGbih0cnVlKVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAoKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKHBhcmFtLmNvbERlZiAmJiB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKHBhcmFtLnZhbHVlLCBwYXJhbS5kYXRhLCBwYXJhbS5yb3dJbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuSW52YWxpZF06IGdldFZhbGlkYXRvckZuKClcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQ3VycmVuY3ldOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkLFxuICAgICAgICAgIG1pbldpZHRoOiAxODVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gMTgwIDogMTYwLFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykgPT4gdGhpcy5kYXRlRm9ybWF0dGVyKHBhcmFtcywgYXJncy5sb2NhbGUpXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Mb29rdXBdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTG9va3VwXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9va3VwUHJvcGVydGllcyA9IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzKHBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZVtsb29rdXBQcm9wZXJ0aWVzLmRlc2NyaXB0b3JQcm9wZXJ0eV07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLk51bWJlcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5OdW1iZXJdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICAgIG1pbldpZHRoOiA1NSxcbiAgICAgICAgICBtYXhXaWR0aDogNTUsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVGV4dF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZXh0XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT4gdGhpcy5zdXBwcmVzc1RhYihrZXlwcmVzcylcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVudGVyTW92ZXNEb3duQWZ0ZXJFZGl0OiB0cnVlLFxuICAgICAgZnJhbWV3b3JrQ29tcG9uZW50czoge1xuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSc6IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAgZ2V0Um93Tm9kZUlkKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICgnaWQnIGluIGRhdGEgJiYgZGF0YS5pZCkge1xuICAgICAgICAgIHJldHVybiBgJHtkYXRhLmlkfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3Jvd05vZGVJZCsrfWA7XG4gICAgICB9LFxuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLm5vZGUuaWQpIHtcbiAgICAgICAgICByZXR1cm4gYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhlYWRlckhlaWdodDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzcsXG4gICAgICBpY29uczoge1xuICAgICAgICBzb3J0RGVzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LWRvd24nKSxcbiAgICAgICAgc29ydEFzY2VuZGluZzogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2NhcmV0LXVwJyksXG4gICAgICAgIGNvbHVtbk1vdmVNb3ZlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVIaWRlOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVMZWZ0OiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVSaWdodDogdGhpcy5nZXRJY29uVGVtcGxhdGUoJ2Fycm93cycpLFxuICAgICAgICBjb2x1bW5Nb3ZlUGluOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJylcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoKSA9PiB0aGlzLm9uQ2VsbEZvY3VzZWQoKSxcbiAgICAgIHJvd0hlaWdodDogdGhpcy5jdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzgsXG4gICAgICByb3dNdWx0aVNlbGVjdFdpdGhDbGljazogdHJ1ZSxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ211bHRpcGxlJyxcbiAgICAgIHNpbmdsZUNsaWNrRWRpdDogdHJ1ZSxcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tbnVsbC1rZXl3b3JkXG4gICAgICBzb3J0aW5nT3JkZXI6IFsnZGVzYycsICdhc2MnLCBudWxsXSxcbiAgICAgIHN0b3BFZGl0aW5nV2hlbkdyaWRMb3Nlc0ZvY3VzOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IHRydWUsXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZVxuICAgIH07XG5cbiAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSwgZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFgJHt2YWx1ZSB8fCAnJ31gLm1hdGNoKC9eW14wLTldKihcXGQrWywuXT8pK1xcZCpbXjAtOV0qJC8pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGN1cnJlbmN5J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy5yZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMucmVzb3VyY2VzLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9jdXJyZW5jeV92YWxpZGF0b3JfbWVzc2FnZScpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXNcbiAgICAgIH0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBhbnksIGRhdGE6IGFueSwgcm93SW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnJlc291cmNlcykge1xuICAgICAgdGhpcy5yZXNvdXJjZXMuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgb25DZWxsRm9jdXNlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcblxuICAgIHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGxldCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLmdldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcblxuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSAnbm9uZSc7XG5cbiAgICByZXR1cm4gZGVmYXVsdEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMsIGxvY2FsZTogc3RyaW5nID0gJ2VuLXVzJyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZGF0ZUNvbmZpZyA9IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJzItZGlnaXQnLCBkYXk6ICcyLWRpZ2l0JyB9O1xuICAgIGxldCBkYXRlOiBEYXRlID0gcGFyYW1zLnZhbHVlO1xuXG4gICAgaWYgKGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IGZvcm1hdHRlZERhdGUgPSBkYXRlICYmIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nICYmIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKGxvY2FsZSwgZGF0ZUNvbmZpZyk7XG5cbiAgICBpZiAoZGF0ZSAmJiBkYXRlLmdldFRpbWUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJY29uVGVtcGxhdGUoaWNvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGA8aSBjbGFzcz1cImZhIGZhLSR7aWNvbk5hbWV9XCI+PC9pPmA7XG4gIH1cblxuICBwcml2YXRlIHN1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9IHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoY3VycmVudGx5Rm9jdXNlZEVsLCAnYWctY2VsbCcpO1xuICAgICAgICBjb25zdCBwb3B1cEVsID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoY3VycmVudGx5Rm9jdXNlZEVsLCAnYWctcG9wdXAtZWRpdG9yJyk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsID0gY2VsbEVsIHx8IHBvcHVwRWw7XG5cbiAgICAgICAgY29uc3QgbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGwgPVxuICAgICAgICAgIHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0TmV4dEZvY3VzYWJsZUVsZW1lbnQoY3VycmVudGx5Rm9jdXNlZEVsLCBwYXJlbnRFbCwgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5KTtcbiAgICAgICAgcmV0dXJuICEhbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,69 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef } from '@angular/core';
3
+ import { FormControl, FormGroup } from '@angular/forms';
4
+ import { applySkyLookupPropertiesDefaults } from '../../types/lookup-properties';
5
+ var SkyAgGridCellEditorLookupComponent = /** @class */ (function () {
6
+ function SkyAgGridCellEditorLookupComponent(changeDetector, elementRef) {
7
+ this.changeDetector = changeDetector;
8
+ this.elementRef = elementRef;
9
+ this.isAlive = true;
10
+ this.lookupForm = new FormGroup({
11
+ currentSelection: new FormControl({
12
+ value: [],
13
+ disabled: false
14
+ })
15
+ });
16
+ }
17
+ SkyAgGridCellEditorLookupComponent.prototype.agInit = function (params) {
18
+ this.params = params;
19
+ if (!Array.isArray(this.params.value)) {
20
+ throw new Error("Lookup value must be an array");
21
+ }
22
+ var control = this.lookupForm.get('currentSelection');
23
+ control.setValue(this.params.value);
24
+ if (this.params.skyComponentProperties.disabled) {
25
+ control.disable();
26
+ }
27
+ this.skyComponentProperties = this.updateComponentProperties(this.params);
28
+ this.changeDetector.markForCheck();
29
+ };
30
+ SkyAgGridCellEditorLookupComponent.prototype.isCancelAfterEnd = function () {
31
+ // Shut down components to commit values before final value syncs to grid.
32
+ this.isAlive = false;
33
+ this.changeDetector.detectChanges();
34
+ return false;
35
+ };
36
+ SkyAgGridCellEditorLookupComponent.prototype.getGui = function () {
37
+ return this.elementRef.nativeElement;
38
+ };
39
+ SkyAgGridCellEditorLookupComponent.prototype.getValue = function () {
40
+ return this.lookupForm.get('currentSelection').value;
41
+ };
42
+ SkyAgGridCellEditorLookupComponent.prototype.isPopup = function () {
43
+ return true;
44
+ };
45
+ /*istanbul ignore next*/
46
+ SkyAgGridCellEditorLookupComponent.prototype.afterGuiAttached = function () {
47
+ var _a;
48
+ (_a = this.elementRef.nativeElement.querySelector('.sky-lookup-input')) === null || _a === void 0 ? void 0 : _a.focus();
49
+ };
50
+ SkyAgGridCellEditorLookupComponent.prototype.updateComponentProperties = function (params) {
51
+ var skyLookupProperties = params.skyComponentProperties;
52
+ return applySkyLookupPropertiesDefaults(skyLookupProperties);
53
+ };
54
+ SkyAgGridCellEditorLookupComponent.ctorParameters = function () { return [
55
+ { type: ChangeDetectorRef },
56
+ { type: ElementRef }
57
+ ]; };
58
+ SkyAgGridCellEditorLookupComponent = __decorate([
59
+ Component({
60
+ selector: 'sky-ag-grid-cell-editor-lookup',
61
+ template: "<sky-input-box *ngIf=\"isAlive\"\n [disabled]=\"skyComponentProperties?.disabled\"\n [formGroup]=\"lookupForm\"\n>\n <sky-lookup\n [ariaLabel]=\"skyComponentProperties?.ariaLabel\"\n [autocompleteAttribute]=\"skyComponentProperties?.autocompleteAttribute\"\n [data]=\"skyComponentProperties?.data\"\n [debounceTime]=\"skyComponentProperties?.debounceTime\"\n [descriptorProperty]=\"skyComponentProperties?.descriptorProperty\"\n [enableShowMore]=\"skyComponentProperties?.enableShowMore\"\n formControlName=\"currentSelection\"\n [idProperty]=\"skyComponentProperties?.idProperty\"\n [placeholderText]=\"skyComponentProperties?.placeholderText\"\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 [selectMode]=\"skyComponentProperties?.selectMode\"\n [showAddButton]=\"skyComponentProperties?.showAddButton\"\n [showMoreConfig]=\"skyComponentProperties?.showMoreConfig\"\n [wrapperClass]=\"skyComponentProperties?.wrapperClass\"\n >\n </sky-lookup>\n</sky-input-box>\n",
62
+ changeDetection: ChangeDetectionStrategy.OnPush,
63
+ styles: [":host{display:block}"]
64
+ })
65
+ ], SkyAgGridCellEditorLookupComponent);
66
+ return SkyAgGridCellEditorLookupComponent;
67
+ }());
68
+ export { SkyAgGridCellEditorLookupComponent };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBdUIsTUFBTSwrQkFBK0IsQ0FBQztBQVF0RztJQWFFLDRDQUNVLGNBQWlDLEVBQ2pDLFVBQXNCO1FBRHRCLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWnpCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDaEMsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxFQUFFO2dCQUNULFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFRSCxDQUFDO0lBRU0sbURBQU0sR0FBYixVQUFjLE1BQWlDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtZQUMvQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSw2REFBZ0IsR0FBdkI7UUFDRSwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxtREFBTSxHQUFiO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRU0scURBQVEsR0FBZjtRQUNFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVNLG9EQUFPLEdBQWQ7UUFDRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx3QkFBd0I7SUFDakIsNkRBQWdCLEdBQXZCOztRQUNFLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLDBDQUFFLEtBQUssR0FBRztJQUM1RSxDQUFDO0lBRU8sc0VBQXlCLEdBQWpDLFVBQWtDLE1BQWlDO1FBQ2pFLElBQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDO1FBQzFELE9BQU8sZ0NBQWdDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMvRCxDQUFDOztnQkE5Q3lCLGlCQUFpQjtnQkFDckIsVUFBVTs7SUFmckIsa0NBQWtDO1FBTjlDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxnQ0FBZ0M7WUFDMUMsbTVDQUFrRDtZQUVsRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDaEQsQ0FBQztPQUNXLGtDQUFrQyxDQTZEOUM7SUFBRCx5Q0FBQztDQUFBLEFBN0RELElBNkRDO1NBN0RZLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElDZWxsRWRpdG9yQW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSVBvcHVwQ29tcG9uZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9saWIvaW50ZXJmYWNlcy9pUG9wdXBDb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtcyB9IGZyb20gJy4uLy4uL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMnO1xuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMsIFNreUxvb2t1cFByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi90eXBlcy9sb29rdXAtcHJvcGVydGllcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLWNlbGwtZWRpdG9yLWxvb2t1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCBpbXBsZW1lbnRzIElDZWxsRWRpdG9yQW5ndWxhckNvbXAsIElQb3B1cENvbXBvbmVudDxhbnk+IHtcblxuICBwdWJsaWMgc2t5Q29tcG9uZW50UHJvcGVydGllcz86IFNreUxvb2t1cFByb3BlcnRpZXM7XG4gIHB1YmxpYyBpc0FsaXZlID0gdHJ1ZTtcbiAgcHVibGljIGxvb2t1cEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBjdXJyZW50U2VsZWN0aW9uOiBuZXcgRm9ybUNvbnRyb2woe1xuICAgICAgdmFsdWU6IFtdLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgfSlcbiAgfSk7XG5cbiAgcHJpdmF0ZSBwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFnSW5pdChwYXJhbXM6IFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5wYXJhbXMudmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvb2t1cCB2YWx1ZSBtdXN0IGJlIGFuIGFycmF5YCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxvb2t1cEZvcm0uZ2V0KCdjdXJyZW50U2VsZWN0aW9uJyk7XG4gICAgY29udHJvbC5zZXRWYWx1ZSh0aGlzLnBhcmFtcy52YWx1ZSk7XG4gICAgaWYgKHRoaXMucGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cbiAgICB0aGlzLnNreUNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLnVwZGF0ZUNvbXBvbmVudFByb3BlcnRpZXModGhpcy5wYXJhbXMpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgaXNDYW5jZWxBZnRlckVuZCgpOiBib29sZWFuIHtcbiAgICAvLyBTaHV0IGRvd24gY29tcG9uZW50cyB0byBjb21taXQgdmFsdWVzIGJlZm9yZSBmaW5hbCB2YWx1ZSBzeW5jcyB0byBncmlkLlxuICAgIHRoaXMuaXNBbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHdWkoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMubG9va3VwRm9ybS5nZXQoJ2N1cnJlbnRTZWxlY3Rpb24nKS52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BvcHVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gIHB1YmxpYyBhZnRlckd1aUF0dGFjaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5za3ktbG9va3VwLWlucHV0Jyk/LmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbXBvbmVudFByb3BlcnRpZXMocGFyYW1zOiBTa3lDZWxsRWRpdG9yTG9va3VwUGFyYW1zKTogU2t5TG9va3VwUHJvcGVydGllcyB7XG4gICAgY29uc3Qgc2t5TG9va3VwUHJvcGVydGllcyA9IHBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzO1xuICAgIHJldHVybiBhcHBseVNreUxvb2t1cFByb3BlcnRpZXNEZWZhdWx0cyhza3lMb29rdXBQcm9wZXJ0aWVzKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { SkyInputBoxModule } from '@skyux/forms';
6
+ import { SkyLookupModule } from '@skyux/lookup';
7
+ import { SkyAgGridResourcesModule } from '../../../shared/ag-grid-resources.module';
8
+ import { SkyAgGridCellEditorLookupComponent } from './cell-editor-lookup.component';
9
+ var SkyAgGridCellEditorLookupModule = /** @class */ (function () {
10
+ function SkyAgGridCellEditorLookupModule() {
11
+ }
12
+ SkyAgGridCellEditorLookupModule = __decorate([
13
+ NgModule({
14
+ declarations: [SkyAgGridCellEditorLookupComponent],
15
+ exports: [SkyAgGridCellEditorLookupComponent],
16
+ imports: [
17
+ CommonModule,
18
+ ReactiveFormsModule,
19
+ SkyAgGridResourcesModule,
20
+ SkyInputBoxModule,
21
+ SkyLookupModule
22
+ ]
23
+ })
24
+ ], SkyAgGridCellEditorLookupModule);
25
+ return SkyAgGridCellEditorLookupModule;
26
+ }());
27
+ export { SkyAgGridCellEditorLookupModule };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFhcEY7SUFBQTtJQUNBLENBQUM7SUFEWSwrQkFBK0I7UUFYM0MsUUFBUSxDQUFDO1lBQ1IsWUFBWSxFQUFFLENBQUMsa0NBQWtDLENBQUM7WUFDbEQsT0FBTyxFQUFFLENBQUMsa0NBQWtDLENBQUM7WUFDN0MsT0FBTyxFQUFFO2dCQUNQLFlBQVk7Z0JBQ1osbUJBQW1CO2dCQUNuQix3QkFBd0I7Z0JBQ3hCLGlCQUFpQjtnQkFDakIsZUFBZTthQUNoQjtTQUNGLENBQUM7T0FDVywrQkFBK0IsQ0FDM0M7SUFBRCxzQ0FBQztDQUFBLEFBREQsSUFDQztTQURZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUxvb2t1cE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuaW1wb3J0IHsgU2t5QWdHcmlkUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2FnLWdyaWQtcmVzb3VyY2VzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvci1sb29rdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUFnR3JpZFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lJbnB1dEJveE1vZHVsZSxcbiAgICBTa3lMb29rdXBNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwTW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';
3
+ var SkyAgGridCellRendererLookupComponent = /** @class */ (function () {
4
+ function SkyAgGridCellRendererLookupComponent(changeDetector) {
5
+ this.changeDetector = changeDetector;
6
+ this.value = '';
7
+ this.summaryCount = 0;
8
+ }
9
+ SkyAgGridCellRendererLookupComponent.prototype.agInit = function (params) {
10
+ var _a;
11
+ this.summaryCount = ((_a = params.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
12
+ this.value = "" + params.valueFormatted;
13
+ this.changeDetector.markForCheck();
14
+ };
15
+ SkyAgGridCellRendererLookupComponent.prototype.refresh = function (params) {
16
+ this.agInit(params);
17
+ return true;
18
+ };
19
+ SkyAgGridCellRendererLookupComponent.ctorParameters = function () { return [
20
+ { type: ChangeDetectorRef }
21
+ ]; };
22
+ SkyAgGridCellRendererLookupComponent = __decorate([
23
+ Component({
24
+ selector: 'sky-cell-renderer-lookup',
25
+ template: "<ng-container *ngIf=\"summaryCount > 5; else showValue\">\n {{ 'skyux_lookup_tokens_summary' | skyLibResources:summaryCount }}\n</ng-container>\n<ng-template #showValue>{{ value }}</ng-template>\n",
26
+ changeDetection: ChangeDetectionStrategy.OnPush,
27
+ styles: [":host{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}"]
28
+ })
29
+ ], SkyAgGridCellRendererLookupComponent);
30
+ return SkyAgGridCellRendererLookupComponent;
31
+ }());
32
+ export { SkyAgGridCellRendererLookupComponent };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVXRGO0lBSUUsOENBQ1UsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSnBDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFLeEIsQ0FBQztJQUVNLHFEQUFNLEdBQWIsVUFBYyxNQUFtQzs7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFHLE1BQU0sQ0FBQyxjQUFnQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLHNEQUFPLEdBQWQsVUFBZSxNQUFtQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Z0JBYnlCLGlCQUFpQjs7SUFMaEMsb0NBQW9DO1FBTmhELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsaU5BQW9EO1lBRXBELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO09BQ1csb0NBQW9DLENBbUJoRDtJQUFELDJDQUFDO0NBQUEsQUFuQkQsSUFtQkM7U0FuQlksb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcCB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQgeyBTa3lDZWxsUmVuZGVyZXJMb29rdXBQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9jZWxsLXJlbmRlcmVyLWxvb2t1cC1wYXJhbXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY2VsbC1yZW5kZXJlci1sb29rdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQgaW1wbGVtZW50cyBJQ2VsbFJlbmRlcmVyQW5ndWxhckNvbXAge1xuICBwdWJsaWMgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc3VtbWFyeUNvdW50ID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBhZ0luaXQocGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJMb29rdXBQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLnN1bW1hcnlDb3VudCA9IHBhcmFtcy52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gICAgdGhpcy52YWx1ZSA9IGAke3BhcmFtcy52YWx1ZUZvcm1hdHRlZH1gO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaChwYXJhbXM6IFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHRoaXMuYWdJbml0KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { SkyAgGridResourcesModule } from '../../../shared/ag-grid-resources.module';
5
+ import { SkyAgGridCellRendererLookupComponent } from './cell-renderer-lookup.component';
6
+ var SkyAgGridCellRendererLookupModule = /** @class */ (function () {
7
+ function SkyAgGridCellRendererLookupModule() {
8
+ }
9
+ SkyAgGridCellRendererLookupModule = __decorate([
10
+ NgModule({
11
+ declarations: [SkyAgGridCellRendererLookupComponent],
12
+ exports: [SkyAgGridCellRendererLookupComponent],
13
+ imports: [CommonModule, SkyAgGridResourcesModule]
14
+ })
15
+ ], SkyAgGridCellRendererLookupModule);
16
+ return SkyAgGridCellRendererLookupModule;
17
+ }());
18
+ export { SkyAgGridCellRendererLookupModule };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1sb29rdXAvY2VsbC1yZW5kZXJlci1sb29rdXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU94RjtJQUFBO0lBQ0EsQ0FBQztJQURZLGlDQUFpQztRQUw3QyxRQUFRLENBQUM7WUFDUixZQUFZLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztZQUMvQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUM7U0FDbEQsQ0FBQztPQUNXLGlDQUFpQyxDQUM3QztJQUFELHdDQUFDO0NBQUEsQUFERCxJQUNDO1NBRFksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTa3lBZ0dyaWRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYWctZ3JpZC1yZXNvdXJjZXMubW9kdWxlJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlci1sb29rdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNreUFnR3JpZFJlc291cmNlc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwTW9kdWxlIHtcbn1cbiJdfQ==
@@ -48,7 +48,7 @@ var SkyAgGridCellValidatorTooltipComponent = /** @class */ (function () {
48
48
  var _this = this;
49
49
  this.zone.run(function () {
50
50
  _this.indicatorShouldShow = false;
51
- _this.changeDetector.markForCheck();
51
+ _this.changeDetector.detectChanges();
52
52
  });
53
53
  };
54
54
  SkyAgGridCellValidatorTooltipComponent.prototype.hidePopover = function () {
@@ -58,7 +58,7 @@ var SkyAgGridCellValidatorTooltipComponent = /** @class */ (function () {
58
58
  var _this = this;
59
59
  this.zone.run(function () {
60
60
  _this.indicatorShouldShow = true;
61
- _this.changeDetector.markForCheck();
61
+ _this.changeDetector.detectChanges();
62
62
  });
63
63
  };
64
64
  SkyAgGridCellValidatorTooltipComponent.prototype.showPopover = function () {
@@ -82,4 +82,4 @@ var SkyAgGridCellValidatorTooltipComponent = /** @class */ (function () {
82
82
  return SkyAgGridCellValidatorTooltipComponent;
83
83
  }());
84
84
  export { SkyAgGridCellValidatorTooltipComponent };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUy9CO0lBNkNFLGdEQUNVLGNBQWlDLEVBQ2pDLElBQVk7UUFEWixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVJmLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztJQVEzRCxDQUFDO0lBOUNMLHNCQUFXLDBEQUFNO2FBQWpCLFVBQWtCLEtBQXFDO1lBRHZELGlCQW9DQzs7WUFsQ0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUVoQyx3QkFBd0I7WUFDeEIsTUFBQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRywwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsVUFBQyxXQUE2QjtnQkFDckcsaUlBQWlJO2dCQUNqSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQzdFLFdBQVcsQ0FBQyxRQUFRLEtBQUssS0FBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtvQkFDM0QsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUNwQjtZQUNILENBQUMsRUFBRTtZQUVILHdCQUF3QjtZQUN4QixNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLDBDQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFDLEtBQUs7Z0JBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMzRSxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFFO1lBRUgsd0JBQXdCO1lBQ3hCLE1BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLDBCQUEwQixFQUFFO2dCQUMvRSxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxFQUFFO1lBRUgsSUFBSSxjQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsMENBQUUsZ0JBQWdCLENBQUEsS0FBSyxVQUFVLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQ3JGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQ2pDLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLFNBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQiwwQ0FBRSxnQkFBZ0IsQ0FBQzthQUMxRjtZQUVELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFhTSw4REFBYSxHQUFwQjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWixLQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLEtBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sNERBQVcsR0FBbEI7UUFDRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLDhEQUFhLEdBQXBCO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNaLEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSw0REFBVyxHQUFsQjtRQUNFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztnQkF4QnlCLGlCQUFpQjtnQkFDM0IsTUFBTTs7SUE3Q3RCO1FBREMsS0FBSyxFQUFFO3dFQW9DUDtJQXJDVSxzQ0FBc0M7UUFObEQsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG9DQUFvQztZQUU5QywwaEJBQTREO1lBQzVELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO09BQ1csc0NBQXNDLENBdUVsRDtJQUFELDZDQUFDO0NBQUEsQUF2RUQsSUF1RUM7U0F2RVksc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVBvcG92ZXJNZXNzYWdlLCBTa3lQb3BvdmVyTWVzc2FnZVR5cGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgQ2VsbEZvY3VzZWRFdmVudCwgRXZlbnRzIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItcGFyYW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCcsXG4gIHN0eWxlVXJsczogWydhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHZhbHVlO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuYXBpPy5hZGRFdmVudExpc3RlbmVyKEV2ZW50cy5FVkVOVF9DRUxMX0ZPQ1VTRUQsIChldmVudFBhcmFtczogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgLy8gV2Ugd2FudCB0byBjbG9zZSBhbnkgcG9wb3ZlcnMgdGhhdCBhcmUgb3BlbmVkIHdoZW4gb3RoZXIgY2VsbHMgYXJlIGZvY3VzZWQsIGJ1dCBvcGVuIGEgcG9wb3ZlciBpZiB0aGUgY3VycmVudCBjZWxsIGlzIGZvY3VzZWQuXG4gICAgICBpZiAoZXZlbnRQYXJhbXMuY29sdW1uLmdldENvbElkKCkgIT09IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLmNvbHVtbi5nZXRDb2xJZCgpIHx8XG4gICAgICAgIGV2ZW50UGFyYW1zLnJvd0luZGV4ICE9PSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5yb3dJbmRleCkge1xuICAgICAgICB0aGlzLmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoWydBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuYXBpPy5hZGRFdmVudExpc3RlbmVyKEV2ZW50cy5FVkVOVF9DRUxMX0VESVRJTkdfU1RBUlRFRCwgKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlUG9wb3ZlcigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3JNZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UoXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLnZhbHVlLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5kYXRhLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5yb3dJbmRleFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yTWVzc2FnZTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGluZGljYXRvclNob3VsZFNob3cgPSB0cnVlO1xuICBwdWJsaWMgcG9wb3Zlck1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lQb3BvdmVyTWVzc2FnZT4oKTtcbiAgcHVibGljIHZhbGlkYXRvck1lc3NhZ2U6IHN0cmluZztcblxuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7IH1cblxuICBwdWJsaWMgaGlkZUluZGljYXRvcigpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuaW5kaWNhdG9yU2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXJNZXNzYWdlU3RyZWFtLm5leHQoeyB0eXBlOiBTa3lQb3BvdmVyTWVzc2FnZVR5cGUuQ2xvc2UgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0luZGljYXRvcigpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuaW5kaWNhdG9yU2hvdWxkU2hvdyA9IHRydWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dQb3BvdmVyKCk6IHZvaWQge1xuICAgIHRoaXMucG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZS5PcGVuIH0pO1xuICB9XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1jZWxsLXZhbGlkYXRvci10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL2NlbGwtdmFsaWRhdG9yL2FnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQXFCLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUy9CO0lBNkNFLGdEQUNVLGNBQWlDLEVBQ2pDLElBQVk7UUFEWixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVJmLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztJQVEzRCxDQUFDO0lBOUNMLHNCQUFXLDBEQUFNO2FBQWpCLFVBQWtCLEtBQXFDO1lBRHZELGlCQW9DQzs7WUFsQ0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUVoQyx3QkFBd0I7WUFDeEIsTUFBQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRywwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsVUFBQyxXQUE2QjtnQkFDckcsaUlBQWlJO2dCQUNqSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQzdFLFdBQVcsQ0FBQyxRQUFRLEtBQUssS0FBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtvQkFDM0QsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUNwQjtZQUNILENBQUMsRUFBRTtZQUVILHdCQUF3QjtZQUN4QixNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLDBDQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxVQUFDLEtBQUs7Z0JBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMzRSxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFFO1lBRUgsd0JBQXdCO1lBQ3hCLE1BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLDBCQUEwQixFQUFFO2dCQUMvRSxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsQ0FBQyxFQUFFO1lBRUgsSUFBSSxjQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsMENBQUUsZ0JBQWdCLENBQUEsS0FBSyxVQUFVLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQ3JGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQ2pDLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLFNBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQiwwQ0FBRSxnQkFBZ0IsQ0FBQzthQUMxRjtZQUVELElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsQ0FBQzs7O09BQUE7SUFhTSw4REFBYSxHQUFwQjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWixLQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLEtBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sNERBQVcsR0FBbEI7UUFDRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLDhEQUFhLEdBQXBCO1FBQUEsaUJBS0M7UUFKQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNaLEtBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSw0REFBVyxHQUFsQjtRQUNFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDOztnQkF4QnlCLGlCQUFpQjtnQkFDM0IsTUFBTTs7SUE3Q3RCO1FBREMsS0FBSyxFQUFFO3dFQW9DUDtJQXJDVSxzQ0FBc0M7UUFObEQsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG9DQUFvQztZQUU5QywwaEJBQTREO1lBQzVELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO09BQ1csc0NBQXNDLENBdUVsRDtJQUFELDZDQUFDO0NBQUEsQUF2RUQsSUF1RUM7U0F2RVksc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVBvcG92ZXJNZXNzYWdlLCBTa3lQb3BvdmVyTWVzc2FnZVR5cGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuaW1wb3J0IHsgQ2VsbEZvY3VzZWRFdmVudCwgRXZlbnRzIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2t5Q2VsbFJlbmRlcmVyVmFsaWRhdG9yUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItcGFyYW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtY2VsbC12YWxpZGF0b3ItdG9vbHRpcCcsXG4gIHN0eWxlVXJsczogWydhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICdhZy1ncmlkLWNlbGwtdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRDZWxsVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyYW1zKHZhbHVlOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcyA9IHZhbHVlO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuYXBpPy5hZGRFdmVudExpc3RlbmVyKEV2ZW50cy5FVkVOVF9DRUxMX0ZPQ1VTRUQsIChldmVudFBhcmFtczogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgLy8gV2Ugd2FudCB0byBjbG9zZSBhbnkgcG9wb3ZlcnMgdGhhdCBhcmUgb3BlbmVkIHdoZW4gb3RoZXIgY2VsbHMgYXJlIGZvY3VzZWQsIGJ1dCBvcGVuIGEgcG9wb3ZlciBpZiB0aGUgY3VycmVudCBjZWxsIGlzIGZvY3VzZWQuXG4gICAgICBpZiAoZXZlbnRQYXJhbXMuY29sdW1uLmdldENvbElkKCkgIT09IHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLmNvbHVtbi5nZXRDb2xJZCgpIHx8XG4gICAgICAgIGV2ZW50UGFyYW1zLnJvd0luZGV4ICE9PSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5yb3dJbmRleCkge1xuICAgICAgICB0aGlzLmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5lR3JpZENlbGw/LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoWydBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuYXBpPy5hZGRFdmVudExpc3RlbmVyKEV2ZW50cy5FVkVOVF9DRUxMX0VESVRJTkdfU1RBUlRFRCwgKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlUG9wb3ZlcigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzPy52YWxpZGF0b3JNZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvck1lc3NhZ2UgPSB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UoXG4gICAgICAgIHRoaXMuY2VsbFJlbmRlcmVyUGFyYW1zLnZhbHVlLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5kYXRhLFxuICAgICAgICB0aGlzLmNlbGxSZW5kZXJlclBhcmFtcy5yb3dJbmRleFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZGF0b3JNZXNzYWdlID0gdGhpcy5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcz8udmFsaWRhdG9yTWVzc2FnZTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGluZGljYXRvclNob3VsZFNob3cgPSB0cnVlO1xuICBwdWJsaWMgcG9wb3Zlck1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lQb3BvdmVyTWVzc2FnZT4oKTtcbiAgcHVibGljIHZhbGlkYXRvck1lc3NhZ2U6IHN0cmluZztcblxuICBwdWJsaWMgY2VsbFJlbmRlcmVyUGFyYW1zOiBTa3lDZWxsUmVuZGVyZXJWYWxpZGF0b3JQYXJhbXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7IH1cblxuICBwdWJsaWMgaGlkZUluZGljYXRvcigpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMuaW5kaWNhdG9yU2hvdWxkU2hvdyA9IGZhbHNlO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGlkZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyTWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLkNsb3NlIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRvclNob3VsZFNob3cgPSB0cnVlO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1BvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyTWVzc2FnZVN0cmVhbS5uZXh0KHsgdHlwZTogU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW4gfSk7XG4gIH1cbn1cbiJdfQ==
@@ -5,9 +5,10 @@ export var SkyCellClass;
5
5
  SkyCellClass["Date"] = "sky-ag-grid-cell-date";
6
6
  SkyCellClass["Editable"] = "sky-ag-grid-cell-editable";
7
7
  SkyCellClass["Invalid"] = "sky-ag-grid-cell-invalid";
8
+ SkyCellClass["Lookup"] = "sky-ag-grid-cell-lookup";
8
9
  SkyCellClass["Number"] = "sky-ag-grid-cell-number";
9
10
  SkyCellClass["RowSelector"] = "sky-ag-grid-cell-row-selector";
10
11
  SkyCellClass["Text"] = "sky-ag-grid-cell-text";
11
12
  SkyCellClass["Uneditable"] = "sky-ag-grid-cell-uneditable";
12
13
  })(SkyCellClass || (SkyCellClass = {}));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFVWDtBQVZELFdBQVksWUFBWTtJQUN0Qiw4REFBOEMsQ0FBQTtJQUM5QyxzREFBc0MsQ0FBQTtJQUN0Qyw4Q0FBOEIsQ0FBQTtJQUM5QixzREFBc0MsQ0FBQTtJQUN0QyxvREFBb0MsQ0FBQTtJQUNwQyxrREFBa0MsQ0FBQTtJQUNsQyw2REFBNkMsQ0FBQTtJQUM3Qyw4Q0FBOEIsQ0FBQTtJQUM5QiwwREFBMEMsQ0FBQTtBQUM1QyxDQUFDLEVBVlcsWUFBWSxLQUFaLFlBQVksUUFVdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa3lDZWxsQ2xhc3Mge1xuICBBdXRvY29tcGxldGUgPSAnc2t5LWFnLWdyaWQtY2VsbC1hdXRvY29tcGxldGUnLFxuICBDdXJyZW5jeSA9ICdza3ktYWctZ3JpZC1jZWxsLWN1cnJlbmN5JyxcbiAgRGF0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWRhdGUnLFxuICBFZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRhYmxlJyxcbiAgSW52YWxpZCA9ICdza3ktYWctZ3JpZC1jZWxsLWludmFsaWQnLFxuICBOdW1iZXIgPSAnc2t5LWFnLWdyaWQtY2VsbC1udW1iZXInLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRleHQgPSAnc2t5LWFnLWdyaWQtY2VsbC10ZXh0JyxcbiAgVW5lZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLXVuZWRpdGFibGUnXG59XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFXWDtBQVhELFdBQVksWUFBWTtJQUN0Qiw4REFBOEMsQ0FBQTtJQUM5QyxzREFBc0MsQ0FBQTtJQUN0Qyw4Q0FBOEIsQ0FBQTtJQUM5QixzREFBc0MsQ0FBQTtJQUN0QyxvREFBb0MsQ0FBQTtJQUNwQyxrREFBa0MsQ0FBQTtJQUNsQyxrREFBa0MsQ0FBQTtJQUNsQyw2REFBNkMsQ0FBQTtJQUM3Qyw4Q0FBOEIsQ0FBQTtJQUM5QiwwREFBMEMsQ0FBQTtBQUM1QyxDQUFDLEVBWFcsWUFBWSxLQUFaLFlBQVksUUFXdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa3lDZWxsQ2xhc3Mge1xuICBBdXRvY29tcGxldGUgPSAnc2t5LWFnLWdyaWQtY2VsbC1hdXRvY29tcGxldGUnLFxuICBDdXJyZW5jeSA9ICdza3ktYWctZ3JpZC1jZWxsLWN1cnJlbmN5JyxcbiAgRGF0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWRhdGUnLFxuICBFZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRhYmxlJyxcbiAgSW52YWxpZCA9ICdza3ktYWctZ3JpZC1jZWxsLWludmFsaWQnLFxuICBMb29rdXAgPSAnc2t5LWFnLWdyaWQtY2VsbC1sb29rdXAnLFxuICBOdW1iZXIgPSAnc2t5LWFnLWdyaWQtY2VsbC1udW1iZXInLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRleHQgPSAnc2t5LWFnLWdyaWQtY2VsbC10ZXh0JyxcbiAgVW5lZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLXVuZWRpdGFibGUnXG59XG4iXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDZWxsRWRpdG9yUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU2t5TG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4vbG9va3VwLXByb3BlcnRpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgZXh0ZW5kcyBJQ2VsbEVkaXRvclBhcmFtcyB7XG4gIHNreUNvbXBvbmVudFByb3BlcnRpZXM/OiBTa3lMb29rdXBQcm9wZXJ0aWVzO1xufVxuIl19