@datorama/core 21.4.0-rc.5 → 21.4.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ import { endOfDay, isAfter, isBefore, isEqual, startOfDay } from 'date-fns';
5
5
  import { getUTCDate } from '../../date-picker/date-picker.types';
6
6
  import { isEmpty, isNil } from '../../utils/validators';
7
7
  import { isArrayValuesEqual } from '../../utils/array';
8
+ import { tryParsePivotValue } from '../grid-store/util';
8
9
  export function validateStringCondition(rowValue, _a) {
9
10
  var condition = _a.condition, filterValue = _a.value;
10
11
  var filterTextLowerCase = filterValue ? filterValue.toLowerCase() : '';
@@ -139,18 +140,10 @@ export function validateFilter(_a, activeFilters) {
139
140
  function getRowPivotKeys(childrenMapped, keys) {
140
141
  if (keys === void 0) { keys = []; }
141
142
  var key = Object.keys(childrenMapped)[0];
142
- var parsedKey;
143
- try {
144
- parsedKey = JSON.parse(key);
145
- }
146
- catch (e) {
147
- console.error("Can't parse " + key + " from JSON");
148
- }
149
- finally {
150
- if (parsedKey) {
151
- keys = getRowPivotKeys(childrenMapped[key], __spread(keys, [parsedKey.value]));
152
- }
143
+ var parsedKey = tryParsePivotValue(key);
144
+ if (parsedKey) {
145
+ keys = getRowPivotKeys(childrenMapped[key], __spread(keys, [parsedKey.value]));
153
146
  }
154
147
  return keys;
155
148
  }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1maWx0ZXIvZmlsdGVyLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd2RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBZ0IsRUFBRSxFQUFpQztRQUEvQix3QkFBUyxFQUFFLHNCQUFrQjtJQUN2RixJQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekUsSUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUcsUUFBVSxDQUFBLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxRQUFRLFNBQVMsRUFBRTtRQUNqQixLQUFLLG9CQUFvQixDQUFDLE1BQU07WUFDOUIsT0FBTyxjQUFjLEtBQUssbUJBQW1CLENBQUM7UUFDaEQsS0FBSyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2xDLE9BQU8sY0FBYyxLQUFLLG1CQUFtQixDQUFDO1FBQ2hELEtBQUssb0JBQW9C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QUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDcEc7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFO2dDQUNWLEtBQUs7YUFDYjs7O1lBdEJILEtBQXFCLElBQUEsbUJBQUEsU0FBQSxjQUFjLENBQUEsOENBQUE7Z0JBQTlCLElBQU0sTUFBTSwyQkFBQTtzQ0FBTixNQUFNOzs7YUF1QmhCOzs7Ozs7Ozs7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsY0FBNEIsRUFBRSxJQUFTO0lBQVQscUJBQUEsRUFBQSxTQUFTO0lBQzlELElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFXLENBQUM7SUFDckQsSUFBSSxTQUFTLENBQUM7SUFFZCxJQUFJO1FBQ0YsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDN0I7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWUsR0FBRyxlQUFZLENBQUMsQ0FBQztLQUMvQztZQUFTO1FBQ1IsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBTSxJQUFJLEdBQUUsU0FBUyxDQUFDLEtBQUssR0FBRSxDQUFDO1NBQ3pFO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkQXBpLCBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgRGF0b0ZpbHRlckNvbmRpdGlvbnMsIERhdG9HcmlkRmlsdGVyc01hcCwgRGF0b0dyaWRGaWx0ZXJUeXBlcyB9IGZyb20gJy4vZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgT3BlcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL29wZXJhdG9yLXRvZ2dsZXIvb3BlcmF0b3ItdG9nZ2xlci50eXBlcyc7XG5pbXBvcnQgeyBlbmRPZkRheSwgaXNBZnRlciwgaXNCZWZvcmUsIGlzRXF1YWwsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRVVENEYXRlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzJztcbmltcG9ydCB7IGlzQXJyYXlWYWx1ZXNFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL2FycmF5JztcbmltcG9ydCB7IEhhc2hNYXAgfSBmcm9tICdAZGF0b3JhbWEvYWtpdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdHJpbmdDb25kaXRpb24ocm93VmFsdWU6IHN0cmluZywgeyBjb25kaXRpb24sIHZhbHVlOiBmaWx0ZXJWYWx1ZSB9KTogYm9vbGVhbiB7XG4gIGNvbnN0IGZpbHRlclRleHRMb3dlckNhc2UgPSBmaWx0ZXJWYWx1ZSA/IGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgY29uc3QgdmFsdWVMb3dlckNhc2UgPSByb3dWYWx1ZSA/IGAke3Jvd1ZhbHVlfWAudG9Mb3dlckNhc2UoKSA6ICcnO1xuICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuRVFVQUxTOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlID09PSBmaWx0ZXJUZXh0TG93ZXJDYXNlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VRVUFMUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZSAhPT0gZmlsdGVyVGV4dExvd2VyQ2FzZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkNPTlRBSU5TOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlLmluZGV4T2YoZmlsdGVyVGV4dExvd2VyQ2FzZSkgPiAtMTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9DT05UQUlOUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5pbmRleE9mKGZpbHRlclRleHRMb3dlckNhc2UpID09PSAtMTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLlNUQVJUU19XSVRIOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlLnN0YXJ0c1dpdGgoZmlsdGVyVGV4dExvd2VyQ2FzZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5FTkRTX1dJVEg6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UuZW5kc1dpdGgoZmlsdGVyVGV4dExvd2VyQ2FzZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWTpcbiAgICAgIHJldHVybiBpc0VtcHR5KHZhbHVlTG93ZXJDYXNlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FTVBUWTpcbiAgICAgIHJldHVybiAhaXNFbXB0eSh2YWx1ZUxvd2VyQ2FzZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlTnVtYmVyQ29uZGl0aW9uKHVucGFyc2VkUm93VmFsdWUsIHsgY29uZGl0aW9uLCB2YWx1ZSwgcmFuZ2VFbmQgfSk6IGJvb2xlYW4ge1xuICBjb25zdCByb3dWYWx1ZSA9ICEhdW5wYXJzZWRSb3dWYWx1ZSA/IHBhcnNlRmxvYXQodW5wYXJzZWRSb3dWYWx1ZSkgOiBudWxsO1xuICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlID09PSBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FUVVBTFM6XG4gICAgICByZXR1cm4gcm93VmFsdWUgIT09IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTEVTU19USEFOOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlIDwgZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5MRVNTX0VRVUFMUzpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA8PSBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkdSRUFURVJfVEhBTjpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA+IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuR1JFQVRFUl9FUVVBTFM6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPj0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRTpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA+PSBmaWx0ZXJWYWx1ZSAmJiByb3dWYWx1ZSA8PSBwYXJzZUZsb2F0KHJhbmdlRW5kKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLklTX0VNUFRZOlxuICAgICAgcmV0dXJuIGlzTmlsKHJvd1ZhbHVlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FTVBUWTpcbiAgICAgIHJldHVybiAhaXNOaWwocm93VmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURhdGVDb25kaXRpb24ocm93VmFsdWUsIHsgY29uZGl0aW9uLCB2YWx1ZSwgcmFuZ2VFbmQgfSk6IGJvb2xlYW4ge1xuICBjb25zdCByb3dEYXRlID0gcm93VmFsdWUgPyBnZXRVVENEYXRlKHN0YXJ0T2ZEYXkobmV3IERhdGUocm93VmFsdWUpKSkgOiBudWxsO1xuICBjb25zdCBmaWx0ZXJEYXRlID0gZ2V0VVRDRGF0ZShuZXcgRGF0ZSh2YWx1ZSkpO1xuICBzd2l0Y2ggKGNvbmRpdGlvbikge1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuRVFVQUxTOlxuICAgICAgcmV0dXJuIGlzRXF1YWwocm93RGF0ZSwgZmlsdGVyRGF0ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRVFVQUxTOlxuICAgICAgcmV0dXJuICFpc0VxdWFsKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuR1JFQVRFUl9USEFOOlxuICAgICAgcmV0dXJuIGlzQWZ0ZXIocm93RGF0ZSwgZmlsdGVyRGF0ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5MRVNTX1RIQU46XG4gICAgICByZXR1cm4gaXNCZWZvcmUocm93RGF0ZSwgZmlsdGVyRGF0ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRTpcbiAgICAgIGNvbnN0IHJhbmdlRGF0ZSA9IGdldFVUQ0RhdGUoZW5kT2ZEYXkobmV3IERhdGUocmFuZ2VFbmQpKSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBpc0VxdWFsKHJvd0RhdGUsIGZpbHRlckRhdGUpIHx8XG4gICAgICAgIGlzRXF1YWwocm93RGF0ZSwgcmFuZ2VEYXRlKSB8fFxuICAgICAgICAoaXNBZnRlcihyb3dEYXRlLCBmaWx0ZXJEYXRlKSAmJiBpc0JlZm9yZShyb3dEYXRlLCByYW5nZURhdGUpKVxuICAgICAgKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLklTX0VNUFRZOlxuICAgICAgcmV0dXJuIGlzTmlsKHJvd1ZhbHVlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FTVBUWTpcbiAgICAgIHJldHVybiAhaXNOaWwocm93VmFsdWUpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUNvbmRpdGlvbih7IHJvd1ZhbHVlLCBmaWx0ZXIsIHR5cGUgfSk6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIERhdG9HcmlkRmlsdGVyVHlwZXMuRGF0ZTpcbiAgICAgIHJldHVybiB2YWxpZGF0ZURhdGVDb25kaXRpb24ocm93VmFsdWUsIGZpbHRlcik7XG4gICAgY2FzZSBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlcjpcbiAgICAgIHJldHVybiB2YWxpZGF0ZU51bWJlckNvbmRpdGlvbihyb3dWYWx1ZSwgZmlsdGVyKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHZhbGlkYXRlU3RyaW5nQ29uZGl0aW9uKHJvd1ZhbHVlLCBmaWx0ZXIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpbHRlcihcbiAgeyByb3csIGFwaSB9OiB7IHJvdzogUm93Tm9kZTsgYXBpOiBHcmlkQXBpIH0sXG4gIGFjdGl2ZUZpbHRlcnM6IERhdG9HcmlkRmlsdGVyc01hcFxuKTogYm9vbGVhbiB7XG4gIGlmIChhY3RpdmVGaWx0ZXJzKSB7XG4gICAgY29uc3Qgb3JkZXJlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyhhY3RpdmVGaWx0ZXJzKTtcbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBvcmRlcmVkRmlsdGVycykge1xuICAgICAgbGV0IGZpbHRlclBhc3NlcyA9IHRydWU7XG4gICAgICBjb25zdCB7IGJ5VmFsdWUsIGNvbmRpdGlvbmFsLCBwaXZvdEtleXMgfSA9IGFjdGl2ZUZpbHRlcnNbZmlsdGVyXTtcbiAgICAgIGNvbnN0IGN1cnJlbnRSb3dQaXZvdEtleXMgPSByb3cucGFyZW50LmNoaWxkcmVuTWFwcGVkICYmIGdldFJvd1Bpdm90S2V5cyhyb3cucGFyZW50LmNoaWxkcmVuTWFwcGVkKTtcbiAgICAgIGNvbnN0IHJvd1ZhbHVlID0gYXBpLmdldFZhbHVlKGZpbHRlciwgcm93KTtcblxuICAgICAgLyoqIElmIHZhbHVlIGlzIHVuZGVyIGEgcGl2b3RlZCBjb2x1bW4gYnV0IGRvZXNuJ3QgbWF0Y2ggdGhlIGZpbHRlciBwaXZvdCAqL1xuICAgICAgaWYgKHBpdm90S2V5cyAmJiBwaXZvdEtleXMubGVuZ3RoID4gMCAmJiAhaXNBcnJheVZhbHVlc0VxdWFsKHBpdm90S2V5cywgY3VycmVudFJvd1Bpdm90S2V5cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25kaXRpb25hbCkge1xuICAgICAgICBjb25zdCB7IG9wZXJhdG9yLCBjb25kaXRpb25zLCB0eXBlIH0gPSBjb25kaXRpb25hbDtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uc1JlbGF0aW9uID0gb3BlcmF0b3IgPT09IE9wZXJhdG9yVHlwZXMuQU5EID8gJ2V2ZXJ5JyA6ICdzb21lJztcbiAgICAgICAgZmlsdGVyUGFzc2VzID0gY29uZGl0aW9uc1tjb25kaXRpb25zUmVsYXRpb25dKGZpbHRlciA9PiB2YWxpZGF0ZUNvbmRpdGlvbih7IHJvd1ZhbHVlLCBmaWx0ZXIsIHR5cGU6IHR5cGUgfSkpO1xuICAgICAgfVxuICAgICAgaWYgKGZpbHRlclBhc3NlcyAmJiBieVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVzVmFsdWUgPSBieVZhbHVlLnZhbHVlcy5pbmNsdWRlcyhyb3dWYWx1ZSk7XG4gICAgICAgIGZpbHRlclBhc3NlcyA9IGJ5VmFsdWUuY29uZGl0aW9uID09PSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9MSVNUID8gaW5jbHVkZXNWYWx1ZSA6ICFpbmNsdWRlc1ZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKCFmaWx0ZXJQYXNzZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEdldCBwaXZvdCBrZXlzIGZyb20gYSByb3cgcGFyZW50XG4gKi9cbmZ1bmN0aW9uIGdldFJvd1Bpdm90S2V5cyhjaGlsZHJlbk1hcHBlZDogSGFzaE1hcDxhbnk+LCBrZXlzID0gW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGNoaWxkcmVuTWFwcGVkKVswXSBhcyBzdHJpbmc7XG4gIGxldCBwYXJzZWRLZXk7XG5cbiAgdHJ5IHtcbiAgICBwYXJzZWRLZXkgPSBKU09OLnBhcnNlKGtleSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDYW4ndCBwYXJzZSAke2tleX0gZnJvbSBKU09OYCk7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKHBhcnNlZEtleSkge1xuICAgICAga2V5cyA9IGdldFJvd1Bpdm90S2V5cyhjaGlsZHJlbk1hcHBlZFtrZXldLCBbLi4ua2V5cywgcGFyc2VkS2V5LnZhbHVlXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1maWx0ZXIvZmlsdGVyLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBZ0IsRUFBRSxFQUFpQztRQUEvQix3QkFBUyxFQUFFLHNCQUFrQjtJQUN2RixJQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekUsSUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUcsUUFBVSxDQUFBLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRSxRQUFRLFNBQVMsRUFBRTtRQUNqQixLQUFLLG9CQUFvQixDQUFDLE1BQU07WUFDOUIsT0FBTyxjQUFjLEtBQUssbUJBQW1CLENBQUM7UUFDaEQsS0FBSyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2xD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LENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4RCxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsS0FBSyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDcEc7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFO2dDQUNWLEtBQUs7YUFDYjs7O1lBdEJILEtBQXFCLElBQUEsbUJBQUEsU0FBQSxjQUFjLENBQUEsOENBQUE7Z0JBQTlCLElBQU0sTUFBTSwyQkFBQTtzQ0FBTixNQUFNOzs7YUF1QmhCOzs7Ozs7Ozs7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsY0FBNEIsRUFBRSxJQUFTO0lBQVQscUJBQUEsRUFBQSxTQUFTO0lBQzlELElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFXLENBQUM7SUFFckQsSUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUMsSUFBSSxTQUFTLEVBQUU7UUFDYixJQUFJLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsV0FBTSxJQUFJLEdBQUUsU0FBUyxDQUFDLEtBQUssR0FBRSxDQUFDO0tBQ3pFO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZEFwaSwgUm93Tm9kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IERhdG9GaWx0ZXJDb25kaXRpb25zLCBEYXRvR3JpZEZpbHRlcnNNYXAsIERhdG9HcmlkRmlsdGVyVHlwZXMgfSBmcm9tICcuL2dyaWQtZmlsdGVyLnR5cGVzJztcbmltcG9ydCB7IE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9vcGVyYXRvci10b2dnbGVyL29wZXJhdG9yLXRvZ2dsZXIudHlwZXMnO1xuaW1wb3J0IHsgZW5kT2ZEYXksIGlzQWZ0ZXIsIGlzQmVmb3JlLCBpc0VxdWFsLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0VVRDRGF0ZSB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IGlzRW1wdHksIGlzTmlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBpc0FycmF5VmFsdWVzRXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy9hcnJheSc7XG5pbXBvcnQgeyBIYXNoTWFwIH0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcbmltcG9ydCB7IHRyeVBhcnNlUGl2b3RWYWx1ZSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVN0cmluZ0NvbmRpdGlvbihyb3dWYWx1ZTogc3RyaW5nLCB7IGNvbmRpdGlvbiwgdmFsdWU6IGZpbHRlclZhbHVlIH0pOiBib29sZWFuIHtcbiAgY29uc3QgZmlsdGVyVGV4dExvd2VyQ2FzZSA9IGZpbHRlclZhbHVlID8gZmlsdGVyVmFsdWUudG9Mb3dlckNhc2UoKSA6ICcnO1xuICBjb25zdCB2YWx1ZUxvd2VyQ2FzZSA9IHJvd1ZhbHVlID8gYCR7cm93VmFsdWV9YC50b0xvd2VyQ2FzZSgpIDogJyc7XG4gIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5FUVVBTFM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UgPT09IGZpbHRlclRleHRMb3dlckNhc2U7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRVFVQUxTOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlICE9PSBmaWx0ZXJUZXh0TG93ZXJDYXNlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuQ09OVEFJTlM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UuaW5kZXhPZihmaWx0ZXJUZXh0TG93ZXJDYXNlKSA+IC0xO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0NPTlRBSU5TOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlLmluZGV4T2YoZmlsdGVyVGV4dExvd2VyQ2FzZSkgPT09IC0xO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuU1RBUlRTX1dJVEg6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2Uuc3RhcnRzV2l0aChmaWx0ZXJUZXh0TG93ZXJDYXNlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVORFNfV0lUSDpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5lbmRzV2l0aChmaWx0ZXJUZXh0TG93ZXJDYXNlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLklTX0VNUFRZOlxuICAgICAgcmV0dXJuIGlzRW1wdHkodmFsdWVMb3dlckNhc2UpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VNUFRZOlxuICAgICAgcmV0dXJuICFpc0VtcHR5KHZhbHVlTG93ZXJDYXNlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXJDb25kaXRpb24odW5wYXJzZWRSb3dWYWx1ZSwgeyBjb25kaXRpb24sIHZhbHVlLCByYW5nZUVuZCB9KTogYm9vbGVhbiB7XG4gIGNvbnN0IHJvd1ZhbHVlID0gISF1bnBhcnNlZFJvd1ZhbHVlID8gcGFyc2VGbG9hdCh1bnBhcnNlZFJvd1ZhbHVlKSA6IG51bGw7XG4gIGNvbnN0IGZpbHRlclZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5FUVVBTFM6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPT09IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VRVUFMUzpcbiAgICAgIHJldHVybiByb3dWYWx1ZSAhPT0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5MRVNTX1RIQU46XG4gICAgICByZXR1cm4gcm93VmFsdWUgPCBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkxFU1NfRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlIDw9IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuR1JFQVRFUl9USEFOOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlID4gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5HUkVBVEVSX0VRVUFMUzpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA+PSBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLklOX1JBTkdFOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlID49IGZpbHRlclZhbHVlICYmIHJvd1ZhbHVlIDw9IHBhcnNlRmxvYXQocmFuZ2VFbmQpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFk6XG4gICAgICByZXR1cm4gaXNOaWwocm93VmFsdWUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VNUFRZOlxuICAgICAgcmV0dXJuICFpc05pbChyb3dWYWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZUNvbmRpdGlvbihyb3dWYWx1ZSwgeyBjb25kaXRpb24sIHZhbHVlLCByYW5nZUVuZCB9KTogYm9vbGVhbiB7XG4gIGNvbnN0IHJvd0RhdGUgPSByb3dWYWx1ZSA/IGdldFVUQ0RhdGUoc3RhcnRPZkRheShuZXcgRGF0ZShyb3dWYWx1ZSkpKSA6IG51bGw7XG4gIGNvbnN0IGZpbHRlckRhdGUgPSBnZXRVVENEYXRlKG5ldyBEYXRlKHZhbHVlKSk7XG4gIHN3aXRjaCAoY29uZGl0aW9uKSB7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5FUVVBTFM6XG4gICAgICByZXR1cm4gaXNFcXVhbChyb3dEYXRlLCBmaWx0ZXJEYXRlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FUVVBTFM6XG4gICAgICByZXR1cm4gIWlzRXF1YWwocm93RGF0ZSwgZmlsdGVyRGF0ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5HUkVBVEVSX1RIQU46XG4gICAgICByZXR1cm4gaXNBZnRlcihyb3dEYXRlLCBmaWx0ZXJEYXRlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkxFU1NfVEhBTjpcbiAgICAgIHJldHVybiBpc0JlZm9yZShyb3dEYXRlLCBmaWx0ZXJEYXRlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLklOX1JBTkdFOlxuICAgICAgY29uc3QgcmFuZ2VEYXRlID0gZ2V0VVRDRGF0ZShlbmRPZkRheShuZXcgRGF0ZShyYW5nZUVuZCkpKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGlzRXF1YWwocm93RGF0ZSwgZmlsdGVyRGF0ZSkgfHxcbiAgICAgICAgaXNFcXVhbChyb3dEYXRlLCByYW5nZURhdGUpIHx8XG4gICAgICAgIChpc0FmdGVyKHJvd0RhdGUsIGZpbHRlckRhdGUpICYmIGlzQmVmb3JlKHJvd0RhdGUsIHJhbmdlRGF0ZSkpXG4gICAgICApO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFk6XG4gICAgICByZXR1cm4gaXNOaWwocm93VmFsdWUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VNUFRZOlxuICAgICAgcmV0dXJuICFpc05pbChyb3dWYWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ29uZGl0aW9uKHsgcm93VmFsdWUsIGZpbHRlciwgdHlwZSB9KTogYm9vbGVhbiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRGF0b0dyaWRGaWx0ZXJUeXBlcy5EYXRlOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlRGF0ZUNvbmRpdGlvbihyb3dWYWx1ZSwgZmlsdGVyKTtcbiAgICBjYXNlIERhdG9HcmlkRmlsdGVyVHlwZXMuTnVtYmVyOlxuICAgICAgcmV0dXJuIHZhbGlkYXRlTnVtYmVyQ29uZGl0aW9uKHJvd1ZhbHVlLCBmaWx0ZXIpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdmFsaWRhdGVTdHJpbmdDb25kaXRpb24ocm93VmFsdWUsIGZpbHRlcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmlsdGVyKFxuICB7IHJvdywgYXBpIH06IHsgcm93OiBSb3dOb2RlOyBhcGk6IEdyaWRBcGkgfSxcbiAgYWN0aXZlRmlsdGVyczogRGF0b0dyaWRGaWx0ZXJzTWFwXG4pOiBib29sZWFuIHtcbiAgaWYgKGFjdGl2ZUZpbHRlcnMpIHtcbiAgICBjb25zdCBvcmRlcmVkRmlsdGVycyA9IE9iamVjdC5rZXlzKGFjdGl2ZUZpbHRlcnMpO1xuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIG9yZGVyZWRGaWx0ZXJzKSB7XG4gICAgICBsZXQgZmlsdGVyUGFzc2VzID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHsgYnlWYWx1ZSwgY29uZGl0aW9uYWwsIHBpdm90S2V5cyB9ID0gYWN0aXZlRmlsdGVyc1tmaWx0ZXJdO1xuICAgICAgY29uc3QgY3VycmVudFJvd1Bpdm90S2V5cyA9IHJvdy5wYXJlbnQuY2hpbGRyZW5NYXBwZWQgJiYgZ2V0Um93UGl2b3RLZXlzKHJvdy5wYXJlbnQuY2hpbGRyZW5NYXBwZWQpO1xuICAgICAgY29uc3Qgcm93VmFsdWUgPSBhcGkuZ2V0VmFsdWUoZmlsdGVyLCByb3cpO1xuXG4gICAgICAvKiogSWYgdmFsdWUgaXMgdW5kZXIgYSBwaXZvdGVkIGNvbHVtbiBidXQgZG9lc24ndCBtYXRjaCB0aGUgZmlsdGVyIHBpdm90ICovXG4gICAgICBpZiAocGl2b3RLZXlzICYmIHBpdm90S2V5cy5sZW5ndGggPiAwICYmICFpc0FycmF5VmFsdWVzRXF1YWwocGl2b3RLZXlzLCBjdXJyZW50Um93UGl2b3RLZXlzKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmRpdGlvbmFsKSB7XG4gICAgICAgIGNvbnN0IHsgb3BlcmF0b3IsIGNvbmRpdGlvbnMsIHR5cGUgfSA9IGNvbmRpdGlvbmFsO1xuICAgICAgICBjb25zdCBjb25kaXRpb25zUmVsYXRpb24gPSBvcGVyYXRvciA9PT0gT3BlcmF0b3JUeXBlcy5BTkQgPyAnZXZlcnknIDogJ3NvbWUnO1xuICAgICAgICBmaWx0ZXJQYXNzZXMgPSBjb25kaXRpb25zW2NvbmRpdGlvbnNSZWxhdGlvbl0oZmlsdGVyID0+IHZhbGlkYXRlQ29uZGl0aW9uKHsgcm93VmFsdWUsIGZpbHRlciwgdHlwZTogdHlwZSB9KSk7XG4gICAgICB9XG4gICAgICBpZiAoZmlsdGVyUGFzc2VzICYmIGJ5VmFsdWUpIHtcbiAgICAgICAgY29uc3QgaW5jbHVkZXNWYWx1ZSA9IGJ5VmFsdWUudmFsdWVzLmluY2x1ZGVzKHJvd1ZhbHVlKTtcbiAgICAgICAgZmlsdGVyUGFzc2VzID0gYnlWYWx1ZS5jb25kaXRpb24gPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLklOX0xJU1QgPyBpbmNsdWRlc1ZhbHVlIDogIWluY2x1ZGVzVmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoIWZpbHRlclBhc3Nlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogR2V0IHBpdm90IGtleXMgZnJvbSBhIHJvdyBwYXJlbnRcbiAqL1xuZnVuY3Rpb24gZ2V0Um93UGl2b3RLZXlzKGNoaWxkcmVuTWFwcGVkOiBIYXNoTWFwPGFueT4sIGtleXMgPSBbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoY2hpbGRyZW5NYXBwZWQpWzBdIGFzIHN0cmluZztcblxuICBjb25zdCBwYXJzZWRLZXkgPSB0cnlQYXJzZVBpdm90VmFsdWUoa2V5KTtcblxuICBpZiAocGFyc2VkS2V5KSB7XG4gICAga2V5cyA9IGdldFJvd1Bpdm90S2V5cyhjaGlsZHJlbk1hcHBlZFtrZXldLCBbLi4ua2V5cywgcGFyc2VkS2V5LnZhbHVlXSk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn1cbiJdfQ==