@skyux/ag-grid 4.10.2 → 4.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/bundles/skyux-ag-grid.umd.js +286 -51
- package/bundles/skyux-ag-grid.umd.js.map +1 -1
- package/bundles/skyux-ag-grid.umd.min.js +2 -2
- package/bundles/skyux-ag-grid.umd.min.js.map +1 -1
- package/css/sky-ag-grid.css +7 -3
- package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +49 -14
- package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +5 -2
- package/esm2015/modules/ag-grid/ag-grid.module.js +9 -1
- package/esm2015/modules/ag-grid/ag-grid.service.js +54 -13
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +68 -0
- package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +25 -0
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +32 -0
- package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +16 -0
- package/esm2015/modules/ag-grid/types/cell-class.js +2 -1
- package/esm2015/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
- package/esm2015/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
- package/esm2015/modules/ag-grid/types/cell-type.js +2 -1
- package/esm2015/modules/ag-grid/types/lookup-properties.js +24 -0
- package/esm2015/plugin-resources/ag-grid-resources-provider.js +2 -2
- package/esm2015/skyux-ag-grid.js +20 -16
- package/esm5/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +51 -14
- package/esm5/modules/ag-grid/ag-grid-row-delete.directive.js +2 -2
- package/esm5/modules/ag-grid/ag-grid.module.js +9 -1
- package/esm5/modules/ag-grid/ag-grid.service.js +64 -23
- package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +69 -0
- package/esm5/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +28 -0
- package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +33 -0
- package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +19 -0
- package/esm5/modules/ag-grid/types/cell-class.js +2 -1
- package/esm5/modules/ag-grid/types/cell-editor-lookup-params.js +1 -0
- package/esm5/modules/ag-grid/types/cell-renderer-lookup-params.js +1 -0
- package/esm5/modules/ag-grid/types/cell-type.js +2 -1
- package/esm5/modules/ag-grid/types/lookup-properties.js +24 -0
- package/esm5/plugin-resources/ag-grid-resources-provider.js +2 -2
- package/esm5/skyux-ag-grid.js +20 -16
- package/fesm2015/skyux-ag-grid.js +255 -31
- package/fesm2015/skyux-ag-grid.js.map +1 -1
- package/fesm5/skyux-ag-grid.js +272 -41
- package/fesm5/skyux-ag-grid.js.map +1 -1
- package/modules/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +3 -1
- package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +22 -0
- package/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.d.ts +2 -0
- package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.d.ts +11 -0
- package/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.d.ts +2 -0
- package/modules/ag-grid/types/cell-class.d.ts +1 -0
- package/modules/ag-grid/types/cell-editor-lookup-params.d.ts +5 -0
- package/modules/ag-grid/types/cell-renderer-lookup-params.d.ts +5 -0
- package/modules/ag-grid/types/cell-type.d.ts +1 -0
- package/modules/ag-grid/types/lookup-properties.d.ts +44 -0
- package/package.json +3 -3
- package/skyux-ag-grid.d.ts +19 -15
- package/skyux-ag-grid.metadata.json +1 -1
- 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
|
|
58
|
-
if (typeof ((
|
|
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({},
|
|
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
|
|
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
|
|
133
|
-
if (typeof ((
|
|
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;
|
|
@@ -152,25 +156,41 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
152
156
|
cellClassRules: __assign(__assign((_e = {}, _e[SkyCellClass.Currency] = cellClassRuleTrueExpression, _e), validatorCellClassRules), editableCellClassRules),
|
|
153
157
|
cellRendererSelector: getValidatorCellRendererSelector('sky-ag-grid-cell-renderer-currency-validator', { component: 'sky-ag-grid-cell-renderer-currency' }),
|
|
154
158
|
cellEditorFramework: SkyAgGridCellEditorCurrencyComponent,
|
|
159
|
+
headerClass: SkyHeaderClass.RightAligned,
|
|
155
160
|
minWidth: 185
|
|
156
161
|
},
|
|
157
162
|
_c[SkyCellType.Date] = {
|
|
158
163
|
cellClassRules: __assign((_f = {}, _f[SkyCellClass.Date] = cellClassRuleTrueExpression, _f), editableCellClassRules),
|
|
159
164
|
cellEditorFramework: SkyAgGridCellEditorDatepickerComponent,
|
|
160
165
|
comparator: dateComparator,
|
|
161
|
-
minWidth: ((
|
|
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,
|
|
162
167
|
valueFormatter: function (params) { return _this.dateFormatter(params, args.locale); }
|
|
163
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
|
+
},
|
|
164
184
|
_c[SkyCellType.Number] = {
|
|
165
|
-
cellClassRules: __assign((
|
|
185
|
+
cellClassRules: __assign((_h = {}, _h[SkyCellClass.Number] = cellClassRuleTrueExpression, _h), editableCellClassRules),
|
|
166
186
|
cellEditorFramework: SkyAgGridCellEditorNumberComponent,
|
|
167
187
|
headerClass: SkyHeaderClass.RightAligned
|
|
168
188
|
},
|
|
169
189
|
_c[SkyCellType.RowSelector] = {
|
|
170
|
-
cellClassRules: (
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
190
|
+
cellClassRules: (_j = {},
|
|
191
|
+
_j[SkyCellClass.RowSelector] = cellClassRuleTrueExpression,
|
|
192
|
+
_j[SkyCellClass.Uneditable] = cellClassRuleTrueExpression,
|
|
193
|
+
_j),
|
|
174
194
|
cellRendererFramework: SkyAgGridCellRendererRowSelectorComponent,
|
|
175
195
|
headerName: '',
|
|
176
196
|
minWidth: 55,
|
|
@@ -179,7 +199,7 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
179
199
|
width: 55
|
|
180
200
|
},
|
|
181
201
|
_c[SkyCellType.Text] = {
|
|
182
|
-
cellClassRules: __assign((
|
|
202
|
+
cellClassRules: __assign((_k = {}, _k[SkyCellClass.Text] = cellClassRuleTrueExpression, _k), editableCellClassRules),
|
|
183
203
|
cellEditorFramework: SkyAgGridCellEditorTextComponent
|
|
184
204
|
},
|
|
185
205
|
_c[SkyCellType.Validator] = {
|
|
@@ -201,7 +221,21 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
201
221
|
'sky-ag-grid-cell-renderer-currency-validator': SkyAgGridCellRendererCurrencyValidatorComponent,
|
|
202
222
|
'sky-ag-grid-cell-renderer-validator-tooltip': SkyAgGridCellRendererValidatorTooltipComponent
|
|
203
223
|
},
|
|
204
|
-
|
|
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,
|
|
205
239
|
icons: {
|
|
206
240
|
sortDescending: this.getIconTemplate('caret-down'),
|
|
207
241
|
sortAscending: this.getIconTemplate('caret-up'),
|
|
@@ -212,7 +246,7 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
212
246
|
columnMovePin: this.getIconTemplate('arrows')
|
|
213
247
|
},
|
|
214
248
|
onCellFocused: function () { return _this.onCellFocused(); },
|
|
215
|
-
rowHeight: ((
|
|
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,
|
|
216
250
|
rowMultiSelectWithClick: true,
|
|
217
251
|
rowSelection: 'multiple',
|
|
218
252
|
singleClickEdit: true,
|
|
@@ -230,9 +264,12 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
230
264
|
validatorMessage: 'Please enter a valid currency'
|
|
231
265
|
}
|
|
232
266
|
} });
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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
|
+
}
|
|
236
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: {
|
|
237
274
|
skyComponentProperties: {
|
|
238
275
|
validator: function (value, data, rowIndex) {
|
|
@@ -241,9 +278,12 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
241
278
|
validatorMessage: 'Please enter a valid number'
|
|
242
279
|
}
|
|
243
280
|
} });
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
+
}
|
|
247
287
|
return defaultSkyGridOptions;
|
|
248
288
|
};
|
|
249
289
|
SkyAgGridService.prototype.onCellFocused = function () {
|
|
@@ -262,6 +302,7 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
262
302
|
if (date && typeof date === 'string') {
|
|
263
303
|
date = new Date(params.value);
|
|
264
304
|
}
|
|
305
|
+
// @ts-ignore
|
|
265
306
|
var formattedDate = date && date.toLocaleDateString && date.toLocaleDateString(locale, dateConfig);
|
|
266
307
|
if (date && date.getTime && !isNaN(date.getTime())) {
|
|
267
308
|
return formattedDate;
|
|
@@ -298,4 +339,4 @@ var SkyAgGridService = /** @class */ (function () {
|
|
|
298
339
|
return SkyAgGridService;
|
|
299
340
|
}());
|
|
300
341
|
export { SkyAgGridService };
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sYUFBYSxDQUFDO0FBY3JCLE9BQU8sRUFDTCxPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUNMLHdDQUF3QyxFQUN6QyxNQUFNLDRFQUE0RSxDQUFDO0FBRXBGLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdkMsTUFBTSx3RUFBd0UsQ0FBQztBQUVoRixPQUFPLEVBQ0wsa0NBQWtDLEVBQ25DLE1BQU0sZ0VBQWdFLENBQUM7QUFFeEUsT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLDREQUE0RCxDQUFDO0FBRXBFLE9BQU8sRUFDTCwrQ0FBK0MsRUFDaEQsTUFBTSxvRkFBb0YsQ0FBQztBQUU1RixPQUFPLEVBQ0wseUNBQXlDLEVBQzFDLE1BQU0sa0ZBQWtGLENBQUM7QUFFMUYsT0FBTyxFQUNMLDhDQUE4QyxFQUMvQyxNQUFNLDRGQUE0RixDQUFDO0FBRXBHLE9BQU8sRUFDTCxZQUFZLEVBQ2IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0wsV0FBVyxFQUNaLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGNBQWMsRUFDZixNQUFNLHNCQUFzQixDQUFDO0FBTTlCLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQ0wsc0NBQXND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QixDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RyxPQUFPLENBQUMsQ0FBQywwQkFBMEIsQ0FBQzthQUNyQztZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dCQS9SK0IsdUJBQXVCO2dCQUN0QixlQUFlLHVCQUE3QyxRQUFRO2dCQUN1QixzQkFBc0IsdUJBQXJELFFBQVE7O0lBUEEsZ0JBQWdCO1FBRDVCLFVBQVUsRUFBRTtRQU9SLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLFFBQVEsRUFBRSxDQUFBO09BUEYsZ0JBQWdCLENBcVM1QjtJQUFELHVCQUFDO0NBQUEsQUFyU0QsSUFxU0M7U0FyU1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TGliUmVzb3VyY2VzU2VydmljZVxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7XG4gIENlbGxDbGFzc1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIElDZWxsUmVuZGVyZXJQYXJhbXMsXG4gIFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyxcbiAgVmFsdWVGb3JtYXR0ZXJQYXJhbXNcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5pbXBvcnQge1xuICBDb21wb25lbnRTZWxlY3RvclJlc3VsdFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eS9kaXN0L2xpYi9jb21wb25lbnRzL2ZyYW1ld29yay91c2VyQ29tcG9uZW50RmFjdG9yeSc7XG5cbmltcG9ydCB7XG4gIFN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIFNreVRoZW1lU2VydmljZSxcbiAgU2t5VGhlbWVTZXR0aW5nc1xufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lWYWxpZGF0b3JDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudFxufSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lDZWxsQ2xhc3Ncbn0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcblxuaW1wb3J0IHtcbiAgU2t5Q2VsbFR5cGVcbn0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lIZWFkZXJDbGFzc1xufSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5cbmltcG9ydCB7XG4gIFNreUdldEdyaWRPcHRpb25zQXJnc1xufSBmcm9tICcuL3R5cGVzL3NreS1ncmlkLW9wdGlvbnMnO1xuXG5pbXBvcnQge1xuICBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnRcbn0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3kuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50XG59IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLWN1cnJlbmN5L2NlbGwtZWRpdG9yLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IodmFsdWUxOiB7IG5hbWU6IHN0cmluZyB9LCB2YWx1ZTI6IHsgbmFtZTogc3RyaW5nIH0pOiBudW1iZXIge1xuICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xuICAgIGlmICh2YWx1ZTEubmFtZSA+IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUxLm5hbWUgPCB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlMSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlRm9ybWF0dGVyKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gcGFyYW1zLnZhbHVlICYmIHBhcmFtcy52YWx1ZS5uYW1lO1xufVxuXG5mdW5jdGlvbiBkYXRlQ29tcGFyYXRvcihkYXRlMTogYW55LCBkYXRlMjogYW55KTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoY29tcG9uZW50OiBzdHJpbmcsIGZhbGxiYWNrPzogQ29tcG9uZW50U2VsZWN0b3JSZXN1bHQpIHtcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBDb21wb25lbnRTZWxlY3RvclJlc3VsdCA9PiB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbXMuY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKCFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihwYXJhbXMudmFsdWUsIHBhcmFtcy5kYXRhLCBwYXJhbXMucm93SW5kZXgpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgLi4ucGFyYW1zLmNvbERlZj8uY2VsbFJlbmRlcmVyUGFyYW1zXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH07XG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIHRoYXQgcHJvdmlkZXMgZGVmYXVsdCBzdHlsaW5nIGFuZCBiZWhhdmlvciBmb3IgYWdHcmlkcyBpbiBTS1kgVVggU1BBcy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoc2V0dGluZ3NDaGFuZ2UgPT4gdGhpcy5jdXJyZW50VGhlbWUgPSBzZXR0aW5nc0NoYW5nZS5jdXJyZW50U2V0dGluZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBTS1kgVVggZ3JpZE9wdGlvbnMgdG8gY3JlYXRlIHlvdXIgYWdHcmlkIHdpdGggZGVmYXVsdCBTS1kgc3R5bGluZyBhbmQgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSBhcmdzIG9wdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgZGVmYXVsdCBTS1kgVVggYWdHcmlkIGdyaWRPcHRpb25zLlxuICAgKi9cbiAgcHVibGljIGdldEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLmdldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMubWVyZ2VHcmlkT3B0aW9ucyhkZWZhdWx0R3JpZE9wdGlvbnMsIGFyZ3MuZ3JpZE9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLm1lcmdlR3JpZE9wdGlvbnMoZGVmYXVsdEdyaWRPcHRpb25zLCBhcmdzLmdyaWRPcHRpb25zKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VHcmlkT3B0aW9ucyhkZWZhdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zLCBwcm92aWRlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyk6IEdyaWRPcHRpb25zIHtcbiAgICBsZXQgbWVyZ2VkR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgICAgLy8gYXBwbHkgZGVmYXVsdCBzZWNvbmQgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgZGVmYXVsdCBjb2x1bW4gdHlwZXNcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbHVtblR5cGVzXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAvLyBhbGxvdyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgYWxsIGRlZmF1bHRDb2xEZWYgcHJvcGVydGllcyBleGNlcHQgY2VsbENsYXNzUnVsZXMsIHdoaWNoIHdlIHJlc2VydmUgZm9yIHN0eWxpbmdcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLmNlbGxDbGFzc1J1bGVzXG4gICAgICB9LFxuICAgICAgaWNvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmljb25zXG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICAvLyBjZWxsQ2xhc3NSdWxlcyBjYW4gYmUgZnVuY3Rpb25zIG9yIHN0cmluZyBleHByZXNzaW9uc1xuICAgIGNvbnN0IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbiA9ICd0cnVlJztcblxuICAgIGZ1bmN0aW9uIGdldEVkaXRhYmxlRm4oaXNVbmVkaXRhYmxlPzogYm9vbGVhbik6ICgocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5jb2x1bW5BcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYuZmllbGQpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHsgLi4ucGFyYW1zLCBjb2x1bW4gfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNVbmVkaXRhYmxlID8gIWlzRWRpdGFibGUgOiBpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSlcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZ2V0VmFsaWRhdG9yRm4oKTogKChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcGFyYW0uY29sRGVmPy5jZWxsUmVuZGVyZXJQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXM/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiAhcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihwYXJhbS52YWx1ZSwgcGFyYW0uZGF0YSwgcGFyYW0ucm93SW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRTa3lHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICBbU2t5Q2VsbFR5cGUuQXV0b2NvbXBsZXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkF1dG9jb21wbGV0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXNcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3JGcmFtZXdvcms6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODVcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InLFxuICAgICAgICAgICAgeyBjb21wb25lbnQ6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JyB9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgICAgICAgY29tcGFyYXRvcjogZGF0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IHRoaXMuY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB0aGlzLmRhdGVGb3JtYXR0ZXIocGFyYW1zLCBhcmdzLmxvY2FsZSlcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLk51bWJlcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5OdW1iZXJdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yRnJhbWV3b3JrOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlJvd1NlbGVjdG9yXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlJvd1NlbGVjdG9yXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5VbmVkaXRhYmxlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJGcmFtZXdvcms6IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICAgIG1pbldpZHRoOiA1NSxcbiAgICAgICAgICBtYXhXaWR0aDogNTUsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NVxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVGV4dF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZXh0XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvckZyYW1ld29yazogU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT4gdGhpcy5zdXBwcmVzc1RhYihrZXlwcmVzcylcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVudGVyTW92ZXNEb3duQWZ0ZXJFZGl0OiB0cnVlLFxuICAgICAgZnJhbWV3b3JrQ29tcG9uZW50czoge1xuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeSc6IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOiBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAgaGVhZGVySGVpZ2h0OiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzNyxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnY2FyZXQtZG93bicpLFxuICAgICAgICBzb3J0QXNjZW5kaW5nOiB0aGlzLmdldEljb25UZW1wbGF0ZSgnY2FyZXQtdXAnKSxcbiAgICAgICAgY29sdW1uTW92ZU1vdmU6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZUhpZGU6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZUxlZnQ6IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZVJpZ2h0OiB0aGlzLmdldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKVxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6ICgpID0+IHRoaXMub25DZWxsRm9jdXNlZCgpLFxuICAgICAgcm93SGVpZ2h0OiB0aGlzLmN1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzOCxcbiAgICAgIHJvd011bHRpU2VsZWN0V2l0aENsaWNrOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnbXVsdGlwbGUnLFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1udWxsLWtleXdvcmRcbiAgICAgIHNvcnRpbmdPcmRlcjogWydkZXNjJywgJ2FzYycsIG51bGxdLFxuICAgICAgc3RvcEVkaXRpbmdXaGVuR3JpZExvc2VzRm9jdXM6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIHN1cHByZXNzRHJhZ0xlYXZlSGlkZXNDb2x1bW5zOiB0cnVlXG4gICAgfTtcblxuICAgIGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogYW55LCBkYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIWAke3ZhbHVlIHx8ICcnfWAubWF0Y2goL15bXjAtOV0qKFxcZCtbLC5dPykrXFxkKlteMC05XSokLyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgY3VycmVuY3knXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVzb3VyY2VzPy5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JdLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0sXG4gICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmRlZmF1bHRTa3lHcmlkT3B0aW9ucy5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5kZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXS5jZWxsQ2xhc3NSdWxlc1xuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IGFueSwgZGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcidcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5yZXNvdXJjZXM/LmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9udW1iZXJfdmFsaWRhdG9yX21lc3NhZ2UnKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNlbGxGb2N1c2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuXG4gICAgdGhpcy5hZ0dyaWRBZGFwdGVyU2VydmljZS5mb2N1c09uRm9jdXNhYmxlQ2hpbGRyZW4oY3VycmVudEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgbGV0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9ICdub25lJztcblxuICAgIHJldHVybiBkZWZhdWx0R3JpZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGRhdGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcywgbG9jYWxlOiBzdHJpbmcgPSAnZW4tdXMnKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBkYXRlQ29uZmlnID0geyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH07XG4gICAgbGV0IGRhdGU6IERhdGUgPSBwYXJhbXMudmFsdWU7XG5cbiAgICBpZiAoZGF0ZSAmJiB0eXBlb2YgZGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShwYXJhbXMudmFsdWUpO1xuICAgIH1cblxuICAgIGxldCBmb3JtYXR0ZWREYXRlID0gZGF0ZSAmJiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyAmJiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGRhdGVDb25maWcpO1xuXG4gICAgaWYgKGRhdGUgJiYgZGF0ZS5nZXRUaW1lICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWNvblRlbXBsYXRlKGljb25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGkgY2xhc3M9XCJmYSBmYS0ke2ljb25OYW1lfVwiPjwvaT5gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdXBwcmVzc1RhYihwYXJhbXM6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIGlmIChwYXJhbXMuZXZlbnQuY29kZSA9PT0gJ1RhYicpIHtcbiAgICAgIGlmIChwYXJhbXMuZWRpdGluZykge1xuICAgICAgICBjb25zdCBjdXJyZW50bHlGb2N1c2VkRWwgPSB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzZWRFbGVtZW50KCk7XG4gICAgICAgIC8vIGlubGluZSBjZWxsIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLWNlbGwnIGNsYXNzLCB3aGlsZSBwb3B1cCBlZGl0b3JzIGhhdmUgdGhlICdhZy1wb3B1cC1lZGl0b3InIGNsYXNzXG4gICAgICAgIGNvbnN0IGNlbGxFbCA9IHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGN1cnJlbnRseUZvY3VzZWRFbCwgJ2FnLWNlbGwnKTtcbiAgICAgICAgY29uc3QgcG9wdXBFbCA9IHRoaXMuYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGN1cnJlbnRseUZvY3VzZWRFbCwgJ2FnLXBvcHVwLWVkaXRvcicpO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLmFnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldE5leHRGb2N1c2FibGVFbGVtZW50KGN1cnJlbnRseUZvY3VzZWRFbCwgcGFyZW50RWwsIHBhcmFtcy5ldmVudC5zaGlmdEtleSk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
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==
|
package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js
ADDED
|
@@ -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==
|
package/esm5/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js
ADDED
|
@@ -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==
|
|
@@ -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,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFXWDtBQVhELFdBQVksWUFBWTtJQUN0Qiw4REFBOEMsQ0FBQTtJQUM5QyxzREFBc0MsQ0FBQTtJQUN0Qyw4Q0FBOEIsQ0FBQTtJQUM5QixzREFBc0MsQ0FBQTtJQUN0QyxvREFBb0MsQ0FBQTtJQUNwQyxrREFBa0MsQ0FBQTtJQUNsQyxrREFBa0MsQ0FBQTtJQUNsQyw2REFBNkMsQ0FBQTtJQUM3Qyw4Q0FBOEIsQ0FBQTtJQUM5QiwwREFBMEMsQ0FBQTtBQUM1QyxDQUFDLEVBWFcsWUFBWSxLQUFaLFlBQVksUUFXdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTa3lDZWxsQ2xhc3Mge1xuICBBdXRvY29tcGxldGUgPSAnc2t5LWFnLWdyaWQtY2VsbC1hdXRvY29tcGxldGUnLFxuICBDdXJyZW5jeSA9ICdza3ktYWctZ3JpZC1jZWxsLWN1cnJlbmN5JyxcbiAgRGF0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWRhdGUnLFxuICBFZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLWVkaXRhYmxlJyxcbiAgSW52YWxpZCA9ICdza3ktYWctZ3JpZC1jZWxsLWludmFsaWQnLFxuICBMb29rdXAgPSAnc2t5LWFnLWdyaWQtY2VsbC1sb29rdXAnLFxuICBOdW1iZXIgPSAnc2t5LWFnLWdyaWQtY2VsbC1udW1iZXInLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRleHQgPSAnc2t5LWFnLWdyaWQtY2VsbC10ZXh0JyxcbiAgVW5lZGl0YWJsZSA9ICdza3ktYWctZ3JpZC1jZWxsLXVuZWRpdGFibGUnXG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1lZGl0b3ItbG9va3VwLXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9hZy1ncmlkLyIsInNvdXJjZXMiOlsibW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtZWRpdG9yLWxvb2t1cC1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDZWxsRWRpdG9yUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU2t5TG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4vbG9va3VwLXByb3BlcnRpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXMgZXh0ZW5kcyBJQ2VsbEVkaXRvclBhcmFtcyB7XG4gIHNreUNvbXBvbmVudFByb3BlcnRpZXM/OiBTa3lMb29rdXBQcm9wZXJ0aWVzO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZW5kZXJlci1sb29rdXAtcGFyYW1zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC1yZW5kZXJlci1sb29rdXAtcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU2t5TG9va3VwUHJvcGVydGllcyB9IGZyb20gJy4vbG9va3VwLXByb3BlcnRpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreUNlbGxSZW5kZXJlckxvb2t1cFBhcmFtcyBleHRlbmRzIElDZWxsUmVuZGVyZXJQYXJhbXMge1xuICBza3lDb21wb25lbnRQcm9wZXJ0aWVzPzogU2t5TG9va3VwUHJvcGVydGllcztcbn1cbiJdfQ==
|
|
@@ -4,10 +4,11 @@ export var SkyCellType;
|
|
|
4
4
|
SkyCellType["Currency"] = "skyCellCurrency";
|
|
5
5
|
SkyCellType["CurrencyValidator"] = "skyCellCurrencyValidator";
|
|
6
6
|
SkyCellType["Date"] = "skyCellDate";
|
|
7
|
+
SkyCellType["Lookup"] = "skyCellLookup";
|
|
7
8
|
SkyCellType["Number"] = "skyCellNumber";
|
|
8
9
|
SkyCellType["NumberValidator"] = "skyCellNumberValidator";
|
|
9
10
|
SkyCellType["RowSelector"] = "skyCellRowSelector";
|
|
10
11
|
SkyCellType["Text"] = "skyCellText";
|
|
11
12
|
SkyCellType["Validator"] = "skyCellValidator";
|
|
12
13
|
})(SkyCellType || (SkyCellType = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2FnLWdyaWQvIiwic291cmNlcyI6WyJtb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBV1g7QUFYRCxXQUFZLFdBQVc7SUFDckIsbURBQW9DLENBQUE7SUFDcEMsMkNBQTRCLENBQUE7SUFDNUIsNkRBQThDLENBQUE7SUFDOUMsbUNBQW9CLENBQUE7SUFDcEIsdUNBQXdCLENBQUE7SUFDeEIsdUNBQXdCLENBQUE7SUFDeEIseURBQTBDLENBQUE7SUFDMUMsaURBQWtDLENBQUE7SUFDbEMsbUNBQW9CLENBQUE7SUFDcEIsNkNBQThCLENBQUE7QUFDaEMsQ0FBQyxFQVhXLFdBQVcsS0FBWCxXQUFXLFFBV3RCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2t5Q2VsbFR5cGUge1xuICBBdXRvY29tcGxldGUgPSAnc2t5Q2VsbEF1dG9jb21wbGV0ZScsXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIEN1cnJlbmN5VmFsaWRhdG9yID0gJ3NreUNlbGxDdXJyZW5jeVZhbGlkYXRvcicsXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICBMb29rdXAgPSAnc2t5Q2VsbExvb2t1cCcsXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgTnVtYmVyVmFsaWRhdG9yID0gJ3NreUNlbGxOdW1iZXJWYWxpZGF0b3InLFxuICBSb3dTZWxlY3RvciA9ICdza3lDZWxsUm93U2VsZWN0b3InLFxuICBUZXh0ID0gJ3NreUNlbGxUZXh0JyxcbiAgVmFsaWRhdG9yID0gJ3NreUNlbGxWYWxpZGF0b3InXG59XG4iXX0=
|