@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.
@@ -4,6 +4,7 @@ import { endOfDay, isAfter, isBefore, isEqual, startOfDay } from 'date-fns';
4
4
  import { getUTCDate } from '../../date-picker/date-picker.types';
5
5
  import { isEmpty, isNil } from '../../utils/validators';
6
6
  import { isArrayValuesEqual } from '../../utils/array';
7
+ import { tryParsePivotValue } from '../grid-store/util';
7
8
  export function validateStringCondition(rowValue, { condition, value: filterValue }) {
8
9
  const filterTextLowerCase = filterValue ? filterValue.toLowerCase() : '';
9
10
  const valueLowerCase = rowValue ? `${rowValue}`.toLowerCase() : '';
@@ -116,18 +117,10 @@ export function validateFilter({ row, api }, activeFilters) {
116
117
  */
117
118
  function getRowPivotKeys(childrenMapped, keys = []) {
118
119
  const key = Object.keys(childrenMapped)[0];
119
- let parsedKey;
120
- try {
121
- parsedKey = JSON.parse(key);
122
- }
123
- catch (e) {
124
- console.error(`Can't parse ${key} from JSON`);
125
- }
126
- finally {
127
- if (parsedKey) {
128
- keys = getRowPivotKeys(childrenMapped[key], [...keys, parsedKey.value]);
129
- }
120
+ const parsedKey = tryParsePivotValue(key);
121
+ if (parsedKey) {
122
+ keys = getRowPivotKeys(childrenMapped[key], [...keys, parsedKey.value]);
130
123
  }
131
124
  return keys;
132
125
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1maWx0ZXIvZmlsdGVyLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQXNCLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3ZELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7SUFDekYsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ25FLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssb0JBQW9CLENBQUMsTUFBTTtZQUM5QixPQUFPLGNBQWMsS0FBSyxtQkFBbUIsQ0FBQztRQUNoRCxLQUFLLG9CQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyxjQUFjLEtBQUssbUJBQW1CLENBQUM7UUFDaEQsS0FBSyxvQkFBb0Is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QyxRQUFRLENBQUMsQ0FBQztnQkFDeEQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEtBQUssb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2FBQ3BHO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDakIsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLGNBQTRCLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDOUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQztJQUNyRCxJQUFJLFNBQVMsQ0FBQztJQUVkLElBQUk7UUFDRixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUM3QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLENBQUM7S0FDL0M7WUFBUztRQUNSLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN6RTtLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JpZEFwaSwgUm93Tm9kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IERhdG9GaWx0ZXJDb25kaXRpb25zLCBEYXRvR3JpZEZpbHRlcnNNYXAsIERhdG9HcmlkRmlsdGVyVHlwZXMgfSBmcm9tICcuL2dyaWQtZmlsdGVyLnR5cGVzJztcbmltcG9ydCB7IE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9vcGVyYXRvci10b2dnbGVyL29wZXJhdG9yLXRvZ2dsZXIudHlwZXMnO1xuaW1wb3J0IHsgZW5kT2ZEYXksIGlzQWZ0ZXIsIGlzQmVmb3JlLCBpc0VxdWFsLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgZ2V0VVRDRGF0ZSB9IGZyb20gJy4uLy4uL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IGlzRW1wdHksIGlzTmlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBpc0FycmF5VmFsdWVzRXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy9hcnJheSc7XG5pbXBvcnQgeyBIYXNoTWFwIH0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nQ29uZGl0aW9uKHJvd1ZhbHVlOiBzdHJpbmcsIHsgY29uZGl0aW9uLCB2YWx1ZTogZmlsdGVyVmFsdWUgfSk6IGJvb2xlYW4ge1xuICBjb25zdCBmaWx0ZXJUZXh0TG93ZXJDYXNlID0gZmlsdGVyVmFsdWUgPyBmaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpIDogJyc7XG4gIGNvbnN0IHZhbHVlTG93ZXJDYXNlID0gcm93VmFsdWUgPyBgJHtyb3dWYWx1ZX1gLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZSA9PT0gZmlsdGVyVGV4dExvd2VyQ2FzZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FUVVBTFM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UgIT09IGZpbHRlclRleHRMb3dlckNhc2U7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5DT05UQUlOUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5pbmRleE9mKGZpbHRlclRleHRMb3dlckNhc2UpID4gLTE7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfQ09OVEFJTlM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UuaW5kZXhPZihmaWx0ZXJUZXh0TG93ZXJDYXNlKSA9PT0gLTE7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5TVEFSVFNfV0lUSDpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5zdGFydHNXaXRoKGZpbHRlclRleHRMb3dlckNhc2UpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuRU5EU19XSVRIOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlLmVuZHNXaXRoKGZpbHRlclRleHRMb3dlckNhc2UpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFk6XG4gICAgICByZXR1cm4gaXNFbXB0eSh2YWx1ZUxvd2VyQ2FzZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWVMb3dlckNhc2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlckNvbmRpdGlvbih1bnBhcnNlZFJvd1ZhbHVlLCB7IGNvbmRpdGlvbiwgdmFsdWUsIHJhbmdlRW5kIH0pOiBib29sZWFuIHtcbiAgY29uc3Qgcm93VmFsdWUgPSAhIXVucGFyc2VkUm93VmFsdWUgPyBwYXJzZUZsb2F0KHVucGFyc2VkUm93VmFsdWUpIDogbnVsbDtcbiAgY29uc3QgZmlsdGVyVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA9PT0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlICE9PSBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkxFU1NfVEhBTjpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA8IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTEVTU19FUVVBTFM6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPD0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5HUkVBVEVSX1RIQU46XG4gICAgICByZXR1cm4gcm93VmFsdWUgPiBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkdSRUFURVJfRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlID49IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fUkFOR0U6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPj0gZmlsdGVyVmFsdWUgJiYgcm93VmFsdWUgPD0gcGFyc2VGbG9hdChyYW5nZUVuZCk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWTpcbiAgICAgIHJldHVybiBpc05pbChyb3dWYWx1ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzTmlsKHJvd1ZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEYXRlQ29uZGl0aW9uKHJvd1ZhbHVlLCB7IGNvbmRpdGlvbiwgdmFsdWUsIHJhbmdlRW5kIH0pOiBib29sZWFuIHtcbiAgY29uc3Qgcm93RGF0ZSA9IHJvd1ZhbHVlID8gZ2V0VVRDRGF0ZShzdGFydE9mRGF5KG5ldyBEYXRlKHJvd1ZhbHVlKSkpIDogbnVsbDtcbiAgY29uc3QgZmlsdGVyRGF0ZSA9IGdldFVUQ0RhdGUobmV3IERhdGUodmFsdWUpKTtcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiBpc0VxdWFsKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VRVUFMUzpcbiAgICAgIHJldHVybiAhaXNFcXVhbChyb3dEYXRlLCBmaWx0ZXJEYXRlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkdSRUFURVJfVEhBTjpcbiAgICAgIHJldHVybiBpc0FmdGVyKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTEVTU19USEFOOlxuICAgICAgcmV0dXJuIGlzQmVmb3JlKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fUkFOR0U6XG4gICAgICBjb25zdCByYW5nZURhdGUgPSBnZXRVVENEYXRlKGVuZE9mRGF5KG5ldyBEYXRlKHJhbmdlRW5kKSkpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgaXNFcXVhbChyb3dEYXRlLCBmaWx0ZXJEYXRlKSB8fFxuICAgICAgICBpc0VxdWFsKHJvd0RhdGUsIHJhbmdlRGF0ZSkgfHxcbiAgICAgICAgKGlzQWZ0ZXIocm93RGF0ZSwgZmlsdGVyRGF0ZSkgJiYgaXNCZWZvcmUocm93RGF0ZSwgcmFuZ2VEYXRlKSlcbiAgICAgICk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWTpcbiAgICAgIHJldHVybiBpc05pbChyb3dWYWx1ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzTmlsKHJvd1ZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDb25kaXRpb24oeyByb3dWYWx1ZSwgZmlsdGVyLCB0eXBlIH0pOiBib29sZWFuIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBEYXRvR3JpZEZpbHRlclR5cGVzLkRhdGU6XG4gICAgICByZXR1cm4gdmFsaWRhdGVEYXRlQ29uZGl0aW9uKHJvd1ZhbHVlLCBmaWx0ZXIpO1xuICAgIGNhc2UgRGF0b0dyaWRGaWx0ZXJUeXBlcy5OdW1iZXI6XG4gICAgICByZXR1cm4gdmFsaWRhdGVOdW1iZXJDb25kaXRpb24ocm93VmFsdWUsIGZpbHRlcik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2YWxpZGF0ZVN0cmluZ0NvbmRpdGlvbihyb3dWYWx1ZSwgZmlsdGVyKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWx0ZXIoXG4gIHsgcm93LCBhcGkgfTogeyByb3c6IFJvd05vZGU7IGFwaTogR3JpZEFwaSB9LFxuICBhY3RpdmVGaWx0ZXJzOiBEYXRvR3JpZEZpbHRlcnNNYXBcbik6IGJvb2xlYW4ge1xuICBpZiAoYWN0aXZlRmlsdGVycykge1xuICAgIGNvbnN0IG9yZGVyZWRGaWx0ZXJzID0gT2JqZWN0LmtleXMoYWN0aXZlRmlsdGVycyk7XG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2Ygb3JkZXJlZEZpbHRlcnMpIHtcbiAgICAgIGxldCBmaWx0ZXJQYXNzZXMgPSB0cnVlO1xuICAgICAgY29uc3QgeyBieVZhbHVlLCBjb25kaXRpb25hbCwgcGl2b3RLZXlzIH0gPSBhY3RpdmVGaWx0ZXJzW2ZpbHRlcl07XG4gICAgICBjb25zdCBjdXJyZW50Um93UGl2b3RLZXlzID0gcm93LnBhcmVudC5jaGlsZHJlbk1hcHBlZCAmJiBnZXRSb3dQaXZvdEtleXMocm93LnBhcmVudC5jaGlsZHJlbk1hcHBlZCk7XG4gICAgICBjb25zdCByb3dWYWx1ZSA9IGFwaS5nZXRWYWx1ZShmaWx0ZXIsIHJvdyk7XG5cbiAgICAgIC8qKiBJZiB2YWx1ZSBpcyB1bmRlciBhIHBpdm90ZWQgY29sdW1uIGJ1dCBkb2Vzbid0IG1hdGNoIHRoZSBmaWx0ZXIgcGl2b3QgKi9cbiAgICAgIGlmIChwaXZvdEtleXMgJiYgcGl2b3RLZXlzLmxlbmd0aCA+IDAgJiYgIWlzQXJyYXlWYWx1ZXNFcXVhbChwaXZvdEtleXMsIGN1cnJlbnRSb3dQaXZvdEtleXMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZGl0aW9uYWwpIHtcbiAgICAgICAgY29uc3QgeyBvcGVyYXRvciwgY29uZGl0aW9ucywgdHlwZSB9ID0gY29uZGl0aW9uYWw7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbnNSZWxhdGlvbiA9IG9wZXJhdG9yID09PSBPcGVyYXRvclR5cGVzLkFORCA/ICdldmVyeScgOiAnc29tZSc7XG4gICAgICAgIGZpbHRlclBhc3NlcyA9IGNvbmRpdGlvbnNbY29uZGl0aW9uc1JlbGF0aW9uXShmaWx0ZXIgPT4gdmFsaWRhdGVDb25kaXRpb24oeyByb3dWYWx1ZSwgZmlsdGVyLCB0eXBlOiB0eXBlIH0pKTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXJQYXNzZXMgJiYgYnlWYWx1ZSkge1xuICAgICAgICBjb25zdCBpbmNsdWRlc1ZhbHVlID0gYnlWYWx1ZS52YWx1ZXMuaW5jbHVkZXMocm93VmFsdWUpO1xuICAgICAgICBmaWx0ZXJQYXNzZXMgPSBieVZhbHVlLmNvbmRpdGlvbiA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fTElTVCA/IGluY2x1ZGVzVmFsdWUgOiAhaW5jbHVkZXNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZmlsdGVyUGFzc2VzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBHZXQgcGl2b3Qga2V5cyBmcm9tIGEgcm93IHBhcmVudFxuICovXG5mdW5jdGlvbiBnZXRSb3dQaXZvdEtleXMoY2hpbGRyZW5NYXBwZWQ6IEhhc2hNYXA8YW55Piwga2V5cyA9IFtdKTogc3RyaW5nW10ge1xuICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhjaGlsZHJlbk1hcHBlZClbMF0gYXMgc3RyaW5nO1xuICBsZXQgcGFyc2VkS2V5O1xuXG4gIHRyeSB7XG4gICAgcGFyc2VkS2V5ID0gSlNPTi5wYXJzZShrZXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihgQ2FuJ3QgcGFyc2UgJHtrZXl9IGZyb20gSlNPTmApO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChwYXJzZWRLZXkpIHtcbiAgICAgIGtleXMgPSBnZXRSb3dQaXZvdEtleXMoY2hpbGRyZW5NYXBwZWRba2V5XSwgWy4uLmtleXMsIHBhcnNlZEtleS52YWx1ZV0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1maWx0ZXIvZmlsdGVyLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQXNCLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7SUFDekYsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ25FLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssb0JBQW9CLENBQUMsTUFBTTtZQUM5QixPQUFPLGNBQWMsS0FBSyxtQkFBbUIsQ0FBQztRQUNoRCxLQUFLLG9CQUFvQixDQUFDLFVBQVU7WUFDbEMs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QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEtBQUssb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2FBQ3BHO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDakIsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsZUFBZSxDQUFDLGNBQTRCLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDOUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQztJQUVyRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQyxJQUFJLFNBQVMsRUFBRTtRQUNiLElBQUksR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDekU7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkQXBpLCBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgRGF0b0ZpbHRlckNvbmRpdGlvbnMsIERhdG9HcmlkRmlsdGVyc01hcCwgRGF0b0dyaWRGaWx0ZXJUeXBlcyB9IGZyb20gJy4vZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgT3BlcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL29wZXJhdG9yLXRvZ2dsZXIvb3BlcmF0b3ItdG9nZ2xlci50eXBlcyc7XG5pbXBvcnQgeyBlbmRPZkRheSwgaXNBZnRlciwgaXNCZWZvcmUsIGlzRXF1YWwsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRVVENEYXRlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzJztcbmltcG9ydCB7IGlzQXJyYXlWYWx1ZXNFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL2FycmF5JztcbmltcG9ydCB7IEhhc2hNYXAgfSBmcm9tICdAZGF0b3JhbWEvYWtpdGEnO1xuaW1wb3J0IHsgdHJ5UGFyc2VQaXZvdFZhbHVlIH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nQ29uZGl0aW9uKHJvd1ZhbHVlOiBzdHJpbmcsIHsgY29uZGl0aW9uLCB2YWx1ZTogZmlsdGVyVmFsdWUgfSk6IGJvb2xlYW4ge1xuICBjb25zdCBmaWx0ZXJUZXh0TG93ZXJDYXNlID0gZmlsdGVyVmFsdWUgPyBmaWx0ZXJWYWx1ZS50b0xvd2VyQ2FzZSgpIDogJyc7XG4gIGNvbnN0IHZhbHVlTG93ZXJDYXNlID0gcm93VmFsdWUgPyBgJHtyb3dWYWx1ZX1gLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZSA9PT0gZmlsdGVyVGV4dExvd2VyQ2FzZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FUVVBTFM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UgIT09IGZpbHRlclRleHRMb3dlckNhc2U7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5DT05UQUlOUzpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5pbmRleE9mKGZpbHRlclRleHRMb3dlckNhc2UpID4gLTE7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfQ09OVEFJTlM6XG4gICAgICByZXR1cm4gdmFsdWVMb3dlckNhc2UuaW5kZXhPZihmaWx0ZXJUZXh0TG93ZXJDYXNlKSA9PT0gLTE7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5TVEFSVFNfV0lUSDpcbiAgICAgIHJldHVybiB2YWx1ZUxvd2VyQ2FzZS5zdGFydHNXaXRoKGZpbHRlclRleHRMb3dlckNhc2UpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuRU5EU19XSVRIOlxuICAgICAgcmV0dXJuIHZhbHVlTG93ZXJDYXNlLmVuZHNXaXRoKGZpbHRlclRleHRMb3dlckNhc2UpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFk6XG4gICAgICByZXR1cm4gaXNFbXB0eSh2YWx1ZUxvd2VyQ2FzZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzRW1wdHkodmFsdWVMb3dlckNhc2UpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlckNvbmRpdGlvbih1bnBhcnNlZFJvd1ZhbHVlLCB7IGNvbmRpdGlvbiwgdmFsdWUsIHJhbmdlRW5kIH0pOiBib29sZWFuIHtcbiAgY29uc3Qgcm93VmFsdWUgPSAhIXVucGFyc2VkUm93VmFsdWUgPyBwYXJzZUZsb2F0KHVucGFyc2VkUm93VmFsdWUpIDogbnVsbDtcbiAgY29uc3QgZmlsdGVyVmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA9PT0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlICE9PSBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkxFU1NfVEhBTjpcbiAgICAgIHJldHVybiByb3dWYWx1ZSA8IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTEVTU19FUVVBTFM6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPD0gZmlsdGVyVmFsdWU7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5HUkVBVEVSX1RIQU46XG4gICAgICByZXR1cm4gcm93VmFsdWUgPiBmaWx0ZXJWYWx1ZTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkdSRUFURVJfRVFVQUxTOlxuICAgICAgcmV0dXJuIHJvd1ZhbHVlID49IGZpbHRlclZhbHVlO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fUkFOR0U6XG4gICAgICByZXR1cm4gcm93VmFsdWUgPj0gZmlsdGVyVmFsdWUgJiYgcm93VmFsdWUgPD0gcGFyc2VGbG9hdChyYW5nZUVuZCk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWTpcbiAgICAgIHJldHVybiBpc05pbChyb3dWYWx1ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzTmlsKHJvd1ZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEYXRlQ29uZGl0aW9uKHJvd1ZhbHVlLCB7IGNvbmRpdGlvbiwgdmFsdWUsIHJhbmdlRW5kIH0pOiBib29sZWFuIHtcbiAgY29uc3Qgcm93RGF0ZSA9IHJvd1ZhbHVlID8gZ2V0VVRDRGF0ZShzdGFydE9mRGF5KG5ldyBEYXRlKHJvd1ZhbHVlKSkpIDogbnVsbDtcbiAgY29uc3QgZmlsdGVyRGF0ZSA9IGdldFVUQ0RhdGUobmV3IERhdGUodmFsdWUpKTtcbiAgc3dpdGNoIChjb25kaXRpb24pIHtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkVRVUFMUzpcbiAgICAgIHJldHVybiBpc0VxdWFsKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VRVUFMUzpcbiAgICAgIHJldHVybiAhaXNFcXVhbChyb3dEYXRlLCBmaWx0ZXJEYXRlKTtcbiAgICBjYXNlIERhdG9GaWx0ZXJDb25kaXRpb25zLkdSRUFURVJfVEhBTjpcbiAgICAgIHJldHVybiBpc0FmdGVyKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTEVTU19USEFOOlxuICAgICAgcmV0dXJuIGlzQmVmb3JlKHJvd0RhdGUsIGZpbHRlckRhdGUpO1xuICAgIGNhc2UgRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fUkFOR0U6XG4gICAgICBjb25zdCByYW5nZURhdGUgPSBnZXRVVENEYXRlKGVuZE9mRGF5KG5ldyBEYXRlKHJhbmdlRW5kKSkpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgaXNFcXVhbChyb3dEYXRlLCBmaWx0ZXJEYXRlKSB8fFxuICAgICAgICBpc0VxdWFsKHJvd0RhdGUsIHJhbmdlRGF0ZSkgfHxcbiAgICAgICAgKGlzQWZ0ZXIocm93RGF0ZSwgZmlsdGVyRGF0ZSkgJiYgaXNCZWZvcmUocm93RGF0ZSwgcmFuZ2VEYXRlKSlcbiAgICAgICk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWTpcbiAgICAgIHJldHVybiBpc05pbChyb3dWYWx1ZSk7XG4gICAgY2FzZSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfRU1QVFk6XG4gICAgICByZXR1cm4gIWlzTmlsKHJvd1ZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDb25kaXRpb24oeyByb3dWYWx1ZSwgZmlsdGVyLCB0eXBlIH0pOiBib29sZWFuIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBEYXRvR3JpZEZpbHRlclR5cGVzLkRhdGU6XG4gICAgICByZXR1cm4gdmFsaWRhdGVEYXRlQ29uZGl0aW9uKHJvd1ZhbHVlLCBmaWx0ZXIpO1xuICAgIGNhc2UgRGF0b0dyaWRGaWx0ZXJUeXBlcy5OdW1iZXI6XG4gICAgICByZXR1cm4gdmFsaWRhdGVOdW1iZXJDb25kaXRpb24ocm93VmFsdWUsIGZpbHRlcik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2YWxpZGF0ZVN0cmluZ0NvbmRpdGlvbihyb3dWYWx1ZSwgZmlsdGVyKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWx0ZXIoXG4gIHsgcm93LCBhcGkgfTogeyByb3c6IFJvd05vZGU7IGFwaTogR3JpZEFwaSB9LFxuICBhY3RpdmVGaWx0ZXJzOiBEYXRvR3JpZEZpbHRlcnNNYXBcbik6IGJvb2xlYW4ge1xuICBpZiAoYWN0aXZlRmlsdGVycykge1xuICAgIGNvbnN0IG9yZGVyZWRGaWx0ZXJzID0gT2JqZWN0LmtleXMoYWN0aXZlRmlsdGVycyk7XG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2Ygb3JkZXJlZEZpbHRlcnMpIHtcbiAgICAgIGxldCBmaWx0ZXJQYXNzZXMgPSB0cnVlO1xuICAgICAgY29uc3QgeyBieVZhbHVlLCBjb25kaXRpb25hbCwgcGl2b3RLZXlzIH0gPSBhY3RpdmVGaWx0ZXJzW2ZpbHRlcl07XG4gICAgICBjb25zdCBjdXJyZW50Um93UGl2b3RLZXlzID0gcm93LnBhcmVudC5jaGlsZHJlbk1hcHBlZCAmJiBnZXRSb3dQaXZvdEtleXMocm93LnBhcmVudC5jaGlsZHJlbk1hcHBlZCk7XG4gICAgICBjb25zdCByb3dWYWx1ZSA9IGFwaS5nZXRWYWx1ZShmaWx0ZXIsIHJvdyk7XG5cbiAgICAgIC8qKiBJZiB2YWx1ZSBpcyB1bmRlciBhIHBpdm90ZWQgY29sdW1uIGJ1dCBkb2Vzbid0IG1hdGNoIHRoZSBmaWx0ZXIgcGl2b3QgKi9cbiAgICAgIGlmIChwaXZvdEtleXMgJiYgcGl2b3RLZXlzLmxlbmd0aCA+IDAgJiYgIWlzQXJyYXlWYWx1ZXNFcXVhbChwaXZvdEtleXMsIGN1cnJlbnRSb3dQaXZvdEtleXMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZGl0aW9uYWwpIHtcbiAgICAgICAgY29uc3QgeyBvcGVyYXRvciwgY29uZGl0aW9ucywgdHlwZSB9ID0gY29uZGl0aW9uYWw7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbnNSZWxhdGlvbiA9IG9wZXJhdG9yID09PSBPcGVyYXRvclR5cGVzLkFORCA/ICdldmVyeScgOiAnc29tZSc7XG4gICAgICAgIGZpbHRlclBhc3NlcyA9IGNvbmRpdGlvbnNbY29uZGl0aW9uc1JlbGF0aW9uXShmaWx0ZXIgPT4gdmFsaWRhdGVDb25kaXRpb24oeyByb3dWYWx1ZSwgZmlsdGVyLCB0eXBlOiB0eXBlIH0pKTtcbiAgICAgIH1cbiAgICAgIGlmIChmaWx0ZXJQYXNzZXMgJiYgYnlWYWx1ZSkge1xuICAgICAgICBjb25zdCBpbmNsdWRlc1ZhbHVlID0gYnlWYWx1ZS52YWx1ZXMuaW5jbHVkZXMocm93VmFsdWUpO1xuICAgICAgICBmaWx0ZXJQYXNzZXMgPSBieVZhbHVlLmNvbmRpdGlvbiA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fTElTVCA/IGluY2x1ZGVzVmFsdWUgOiAhaW5jbHVkZXNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICghZmlsdGVyUGFzc2VzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBHZXQgcGl2b3Qga2V5cyBmcm9tIGEgcm93IHBhcmVudFxuICovXG5mdW5jdGlvbiBnZXRSb3dQaXZvdEtleXMoY2hpbGRyZW5NYXBwZWQ6IEhhc2hNYXA8YW55Piwga2V5cyA9IFtdKTogc3RyaW5nW10ge1xuICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhjaGlsZHJlbk1hcHBlZClbMF0gYXMgc3RyaW5nO1xuXG4gIGNvbnN0IHBhcnNlZEtleSA9IHRyeVBhcnNlUGl2b3RWYWx1ZShrZXkpO1xuXG4gIGlmIChwYXJzZWRLZXkpIHtcbiAgICBrZXlzID0gZ2V0Um93UGl2b3RLZXlzKGNoaWxkcmVuTWFwcGVkW2tleV0sIFsuLi5rZXlzLCBwYXJzZWRLZXkudmFsdWVdKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuIl19