@lumeer/pivot 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/lib/lmr-pivot-table.component.mjs +70 -10
  2. package/esm2022/lib/lmr-pivot-table.module.mjs +16 -4
  3. package/esm2022/lib/lmr-simple-pivot-table.component.mjs +6 -3
  4. package/esm2022/lib/pipes/cell-has-value.pipe.mjs +35 -0
  5. package/esm2022/lib/pipes/filter-visible-cells.pipe.mjs +35 -0
  6. package/esm2022/lib/pipes/is-cell-expandable.pipe.mjs +35 -0
  7. package/esm2022/lib/pipes/is-cell-expanded.pipe.mjs +37 -0
  8. package/esm2022/lib/pipes/is-cell-rows-expandable.pipe.mjs +35 -0
  9. package/esm2022/lib/util/lmr-pivot-state.mjs +153 -0
  10. package/esm2022/lib/util/lmr-pivot-table.mjs +1 -1
  11. package/esm2022/lib/util/pivot-table-converter.mjs +68 -46
  12. package/esm2022/lib/util/pivot-util.mjs +7 -4
  13. package/fesm2022/lumeer-pivot.mjs +437 -64
  14. package/fesm2022/lumeer-pivot.mjs.map +1 -1
  15. package/lib/lmr-pivot-table.component.d.ts +20 -4
  16. package/lib/lmr-pivot-table.module.d.ts +10 -6
  17. package/lib/lmr-simple-pivot-table.component.d.ts +8 -2
  18. package/lib/pipes/cell-has-value.pipe.d.ts +8 -0
  19. package/lib/pipes/filter-visible-cells.pipe.d.ts +9 -0
  20. package/lib/pipes/is-cell-expandable.pipe.d.ts +8 -0
  21. package/lib/pipes/is-cell-expanded.pipe.d.ts +9 -0
  22. package/lib/pipes/is-cell-rows-expandable.pipe.d.ts +8 -0
  23. package/lib/util/lmr-pivot-state.d.ts +14 -0
  24. package/lib/util/lmr-pivot-table.d.ts +7 -1
  25. package/lib/util/pivot-table-converter.d.ts +1 -0
  26. package/lumeer-pivot-0.0.8.tgz +0 -0
  27. package/package.json +1 -1
  28. package/esm2022/lib/pipes/pivot-table-value.pipe.mjs +0 -35
  29. package/lib/pipes/pivot-table-value.pipe.d.ts +0 -8
  30. package/lumeer-pivot-0.0.6.tgz +0 -0
@@ -24,10 +24,10 @@ export function pivotAttributesAreSame(a1, a2) {
24
24
  return deepObjectsEquals(cleanQueryAttribute(a1), cleanQueryAttribute(a2));
25
25
  }
26
26
  export function isPivotConfigChanged(viewConfig, currentConfig) {
27
- if (!!viewConfig.mergeTables !== !!currentConfig.mergeTables && (currentConfig.stemsConfigs || []).length > 1) {
27
+ if (!!viewConfig?.mergeTables !== !!currentConfig?.mergeTables && (currentConfig?.stemsConfigs || []).length > 1) {
28
28
  return true;
29
29
  }
30
- return pivotStemConfigsHasChanged(viewConfig.stemsConfigs || [], currentConfig.stemsConfigs || []);
30
+ return pivotStemConfigsHasChanged(viewConfig?.stemsConfigs || [], currentConfig?.stemsConfigs || []);
31
31
  }
32
32
  function pivotStemConfigsHasChanged(s1, s2) {
33
33
  if (s1.length !== s2.length) {
@@ -36,10 +36,13 @@ function pivotStemConfigsHasChanged(s1, s2) {
36
36
  return s1.some((stemConfig, index) => pivotStemConfigHasChanged(stemConfig, s2[index]));
37
37
  }
38
38
  function pivotStemConfigHasChanged(s1, s2) {
39
- return (!deepObjectsEquals(s1.rowAttributes || [], s2.rowAttributes || []) ||
39
+ return (!deepObjectsEquals(cleanRowAttributes(s1.rowAttributes), cleanRowAttributes(s2.rowAttributes)) ||
40
40
  !deepObjectsEquals(s1.columnAttributes || [], s2.columnAttributes || []) ||
41
41
  !deepObjectsEquals(s1.valueAttributes || [], s2.valueAttributes || []));
42
42
  }
43
+ function cleanRowAttributes(attrs) {
44
+ return (attrs || []).map(attr => ({ ...attr, showHeader: undefined }));
45
+ }
43
46
  export function createDefaultPivotConfig(query) {
44
47
  const stems = (query && query.stems) || [];
45
48
  const stemsConfigs = stems.map(stem => createDefaultPivotStemConfig(stem));
@@ -69,4 +72,4 @@ export function contrastColor(color, returnCodes, opacity) {
69
72
  return returnCodes ? returnCodes.light : hex2rgba(COLOR_LIGHT, opacity || 1);
70
73
  }
71
74
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xtci1waXZvdC10YWJsZS9zcmMvbGliL3V0aWwvcGl2b3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxPQUFPLEVBQUMsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQW9DLHFCQUFxQixFQUFxQixNQUFNLG9CQUFvQixDQUFDO0FBQ2hILE9BQU8sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFakUsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEVBQXFCLEVBQUUsRUFBcUI7SUFDakYsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBMEIsRUFBRSxhQUE2QjtJQUM1RixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzdHLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLGFBQWEsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7QUFDckcsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQUMsRUFBd0IsRUFBRSxFQUF3QjtJQUNwRixJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE1B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QUFHLFFBQVEsQ0FBQztJQUVuQixNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBRTVELElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNuQixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDL0U7U0FBTTtRQUNMLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUM5RTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogTHVtZWVyOiBNb2Rlcm4gRGF0YSBEZWZpbml0aW9uIGFuZCBQcm9jZXNzaW5nIFBsYXRmb3JtXG4gKlxuICogQ29weXJpZ2h0IChDKSBzaW5jZSAyMDE3IEx1bWVlci5pbywgcy5yLm8uIGFuZC9vciBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LlxuICovXG5cbmltcG9ydCB7Y2xlYW5RdWVyeUF0dHJpYnV0ZSwgUXVlcnksIFF1ZXJ5U3RlbX0gZnJvbSAnQGx1bWVlci9kYXRhLWZpbHRlcnMnO1xuaW1wb3J0IHtkZWVwT2JqZWN0c0VxdWFscywgaGV4MnJnYmF9IGZyb20gJ0BsdW1lZXIvdXRpbHMnO1xuaW1wb3J0IHtMbXJQaXZvdEF0dHJpYnV0ZSwgTG1yUGl2b3RDb25maWcsIExtclBpdm90Q29uZmlnVmVyc2lvbiwgTG1yUGl2b3RTdGVtQ29uZmlnfSBmcm9tICcuL2xtci1waXZvdC1jb25maWcnO1xuaW1wb3J0IHtDT0xPUl9MSUdIVCwgQ09MT1JfUFJJTUFSWX0gZnJvbSAnLi9sbXItcGl2b3QtY29uc3RhbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBpdm90QXR0cmlidXRlc0FyZVNhbWUoYTE6IExtclBpdm90QXR0cmlidXRlLCBhMjogTG1yUGl2b3RBdHRyaWJ1dGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRlZXBPYmplY3RzRXF1YWxzKGNsZWFuUXVlcnlBdHRyaWJ1dGUoYTEpLCBjbGVhblF1ZXJ5QXR0cmlidXRlKGEyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bpdm90Q29uZmlnQ2hhbmdlZCh2aWV3Q29uZmlnOiBMbXJQaXZvdENvbmZpZywgY3VycmVudENvbmZpZzogTG1yUGl2b3RDb25maWcpOiBib29sZWFuIHtcbiAgaWYgKCEhdmlld0NvbmZpZy5tZXJnZVRhYmxlcyAhPT0gISFjdXJyZW50Q29uZmlnLm1lcmdlVGFibGVzICYmIChjdXJyZW50Q29uZmlnLnN0ZW1zQ29uZmlncyB8fCBbXSkubGVuZ3RoID4gMSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHBpdm90U3RlbUNvbmZpZ3NIYXNDaGFuZ2VkKHZpZXdDb25maWcuc3RlbXNDb25maWdzIHx8IFtdLCBjdXJyZW50Q29uZmlnLnN0ZW1zQ29uZmlncyB8fCBbXSk7XG59XG5cbmZ1bmN0aW9uIHBpdm90U3RlbUNvbmZpZ3NIYXNDaGFuZ2VkKHMxOiBMbXJQaXZvdFN0ZW1Db25maWdbXSwgczI6IExtclBpdm90U3RlbUNvbmZpZ1tdKTogYm9vbGVhbiB7XG4gIGlmIChzMS5sZW5ndGggIT09IHMyLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHMxLnNvbWUoKHN0ZW1Db25maWcsIGluZGV4KSA9PiBwaXZvdFN0ZW1Db25maWdIYXNDaGFuZ2VkKHN0ZW1Db25maWcsIHMyW2luZGV4XSkpO1xufVxuXG5mdW5jdGlvbiBwaXZvdFN0ZW1Db25maWdIYXNDaGFuZ2VkKHMxOiBMbXJQaXZvdFN0ZW1Db25maWcsIHMyOiBMbXJQaXZvdFN0ZW1Db25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAhZGVlcE9iamVjdHNFcXVhbHMoczEucm93QXR0cmlidXRlcyB8fCBbXSwgczIucm93QXR0cmlidXRlcyB8fCBbXSkgfHxcbiAgICAhZGVlcE9iamVjdHNFcXVhbHMoczEuY29sdW1uQXR0cmlidXRlcyB8fCBbXSwgczIuY29sdW1uQXR0cmlidXRlcyB8fCBbXSkgfHxcbiAgICAhZGVlcE9iamVjdHNFcXVhbHMoczEudmFsdWVBdHRyaWJ1dGVzIHx8IFtdLCBzMi52YWx1ZUF0dHJpYnV0ZXMgfHwgW10pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0UGl2b3RDb25maWcocXVlcnk6IFF1ZXJ5KTogTG1yUGl2b3RDb25maWcge1xuICBjb25zdCBzdGVtcyA9IChxdWVyeSAmJiBxdWVyeS5zdGVtcykgfHwgW107XG4gIGNvbnN0IHN0ZW1zQ29uZmlncyA9IHN0ZW1zLm1hcChzdGVtID0+IGNyZWF0ZURlZmF1bHRQaXZvdFN0ZW1Db25maWcoc3RlbSkpO1xuICByZXR1cm4ge3ZlcnNpb246IExtclBpdm90Q29uZmlnVmVyc2lvbi5WMSwgc3RlbXNDb25maWdzOiBzdGVtc0NvbmZpZ3MsIG1lcmdlVGFibGVzOiB0cnVlfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRQaXZvdFN0ZW1Db25maWcoc3RlbT86IFF1ZXJ5U3RlbSk6IExtclBpdm90U3RlbUNvbmZpZyB7XG4gIHJldHVybiB7c3RlbSwgcm93QXR0cmlidXRlczogW10sIGNvbHVtbkF0dHJpYnV0ZXM6IFtdLCB2YWx1ZUF0dHJpYnV0ZXM6IFtdfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpdm90Q29uZmlnSXNFbXB0eShjb25maWc6IExtclBpdm90Q29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoY29uZmlnLnN0ZW1zQ29uZmlncyB8fCBbXSkuZXZlcnkoc3RlbUNvbmZpZyA9PiBwaXZvdFN0ZW1Db25maWdJc0VtcHR5KHN0ZW1Db25maWcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpdm90U3RlbUNvbmZpZ0lzRW1wdHkoY29uZmlnOiBMbXJQaXZvdFN0ZW1Db25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoKGNvbmZpZyAmJiBjb25maWcucm93QXR0cmlidXRlcykgfHwgW10pLmxlbmd0aCA9PT0gMCAmJlxuICAgICgoY29uZmlnICYmIGNvbmZpZy5jb2x1bW5BdHRyaWJ1dGVzKSB8fCBbXSkubGVuZ3RoID09PSAwICYmXG4gICAgKChjb25maWcgJiYgY29uZmlnLnZhbHVlQXR0cmlidXRlcykgfHwgW10pLmxlbmd0aCA9PT0gMFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJhc3RDb2xvcihjb2xvcjogc3RyaW5nLCByZXR1cm5Db2Rlcz86IHtkYXJrOiBzdHJpbmc7IGxpZ2h0OiBzdHJpbmd9LCBvcGFjaXR5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKCFjb2xvcikge1xuICAgIHJldHVybiByZXR1cm5Db2RlcyA/IHJldHVybkNvZGVzLmRhcmsgOiBDT0xPUl9QUklNQVJZO1xuICB9XG5cbiAgY29uc3QgZiA9IHBhcnNlSW50KGNvbG9yLmluZGV4T2YoJyMnKSA9PT0gMCA/IGNvbG9yLnNsaWNlKDEpIDogY29sb3IsIDE2KSxcbiAgICBSID0gZiA+PiAxNixcbiAgICBHID0gKGYgPj4gOCkgJiAweDAwZmYsXG4gICAgQiA9IGYgJiAweDAwMDBmZjtcblxuICBjb25zdCBsdW1pbmFuY2UgPSAoMC4yOTkgKiBSICsgMC41ODcgKiBHICsgMC4xMTQgKiBCKSAvIDI1NTtcblxuICBpZiAobHVtaW5hbmNlID4gMC41KSB7XG4gICAgcmV0dXJuIHJldHVybkNvZGVzID8gcmV0dXJuQ29kZXMuZGFyayA6IGhleDJyZ2JhKENPTE9SX1BSSU1BUlksIG9wYWNpdHkgfHwgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJldHVybkNvZGVzID8gcmV0dXJuQ29kZXMubGlnaHQgOiBoZXgycmdiYShDT0xPUl9MSUdIVCwgb3BhY2l0eSB8fCAxKTtcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xtci1waXZvdC10YWJsZS9zcmMvbGliL3V0aWwvcGl2b3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxPQUFPLEVBQUMsbUJBQW1CLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQW9DLHFCQUFxQixFQUEyQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RJLE9BQU8sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFakUsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEVBQXFCLEVBQUUsRUFBcUI7SUFDakYsT0FBTyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBMEIsRUFBRSxhQUE2QjtJQUM1RixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxLQUFLLENBQUMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2hILE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxZQUFZLElBQUksRUFBRSxFQUFFLGFBQWEsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7QUFDdkcsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQUMsRUFBd0IsRUFBRSxFQUF3QjtJQUNwRixJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE1B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LENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDdkUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQ1gsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFDckIsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7SUFFbkIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUU1RCxJQUFJLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDbkIsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQy9FO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDOUU7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEx1bWVlcjogTW9kZXJuIERhdGEgRGVmaW5pdGlvbiBhbmQgUHJvY2Vzc2luZyBQbGF0Zm9ybVxuICpcbiAqIENvcHlyaWdodCAoQykgc2luY2UgMjAxNyBMdW1lZXIuaW8sIHMuci5vLiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuXG5pbXBvcnQge2NsZWFuUXVlcnlBdHRyaWJ1dGUsIFF1ZXJ5LCBRdWVyeVN0ZW19IGZyb20gJ0BsdW1lZXIvZGF0YS1maWx0ZXJzJztcbmltcG9ydCB7ZGVlcE9iamVjdHNFcXVhbHMsIGhleDJyZ2JhfSBmcm9tICdAbHVtZWVyL3V0aWxzJztcbmltcG9ydCB7TG1yUGl2b3RBdHRyaWJ1dGUsIExtclBpdm90Q29uZmlnLCBMbXJQaXZvdENvbmZpZ1ZlcnNpb24sIExtclBpdm90Um93QXR0cmlidXRlLCBMbXJQaXZvdFN0ZW1Db25maWd9IGZyb20gJy4vbG1yLXBpdm90LWNvbmZpZyc7XG5pbXBvcnQge0NPTE9SX0xJR0hULCBDT0xPUl9QUklNQVJZfSBmcm9tICcuL2xtci1waXZvdC1jb25zdGFudHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGl2b3RBdHRyaWJ1dGVzQXJlU2FtZShhMTogTG1yUGl2b3RBdHRyaWJ1dGUsIGEyOiBMbXJQaXZvdEF0dHJpYnV0ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZGVlcE9iamVjdHNFcXVhbHMoY2xlYW5RdWVyeUF0dHJpYnV0ZShhMSksIGNsZWFuUXVlcnlBdHRyaWJ1dGUoYTIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGl2b3RDb25maWdDaGFuZ2VkKHZpZXdDb25maWc6IExtclBpdm90Q29uZmlnLCBjdXJyZW50Q29uZmlnOiBMbXJQaXZvdENvbmZpZyk6IGJvb2xlYW4ge1xuICBpZiAoISF2aWV3Q29uZmlnPy5tZXJnZVRhYmxlcyAhPT0gISFjdXJyZW50Q29uZmlnPy5tZXJnZVRhYmxlcyAmJiAoY3VycmVudENvbmZpZz8uc3RlbXNDb25maWdzIHx8IFtdKS5sZW5ndGggPiAxKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gcGl2b3RTdGVtQ29uZmlnc0hhc0NoYW5nZWQodmlld0NvbmZpZz8uc3RlbXNDb25maWdzIHx8IFtdLCBjdXJyZW50Q29uZmlnPy5zdGVtc0NvbmZpZ3MgfHwgW10pO1xufVxuXG5mdW5jdGlvbiBwaXZvdFN0ZW1Db25maWdzSGFzQ2hhbmdlZChzMTogTG1yUGl2b3RTdGVtQ29uZmlnW10sIHMyOiBMbXJQaXZvdFN0ZW1Db25maWdbXSk6IGJvb2xlYW4ge1xuICBpZiAoczEubGVuZ3RoICE9PSBzMi5sZW5ndGgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzMS5zb21lKChzdGVtQ29uZmlnLCBpbmRleCkgPT4gcGl2b3RTdGVtQ29uZmlnSGFzQ2hhbmdlZChzdGVtQ29uZmlnLCBzMltpbmRleF0pKTtcbn1cblxuZnVuY3Rpb24gcGl2b3RTdGVtQ29uZmlnSGFzQ2hhbmdlZChzMTogTG1yUGl2b3RTdGVtQ29uZmlnLCBzMjogTG1yUGl2b3RTdGVtQ29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgIWRlZXBPYmplY3RzRXF1YWxzKGNsZWFuUm93QXR0cmlidXRlcyhzMS5yb3dBdHRyaWJ1dGVzKSwgY2xlYW5Sb3dBdHRyaWJ1dGVzKHMyLnJvd0F0dHJpYnV0ZXMpKSB8fFxuICAgICFkZWVwT2JqZWN0c0VxdWFscyhzMS5jb2x1bW5BdHRyaWJ1dGVzIHx8IFtdLCBzMi5jb2x1bW5BdHRyaWJ1dGVzIHx8IFtdKSB8fFxuICAgICFkZWVwT2JqZWN0c0VxdWFscyhzMS52YWx1ZUF0dHJpYnV0ZXMgfHwgW10sIHMyLnZhbHVlQXR0cmlidXRlcyB8fCBbXSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gY2xlYW5Sb3dBdHRyaWJ1dGVzKGF0dHJzOiBMbXJQaXZvdFJvd0F0dHJpYnV0ZVtdKTogTG1yUGl2b3RSb3dBdHRyaWJ1dGVbXSB7XG4gIHJldHVybiAoYXR0cnMgfHwgW10pLm1hcChhdHRyID0+ICh7Li4uYXR0ciwgc2hvd0hlYWRlcjogdW5kZWZpbmVkfSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0UGl2b3RDb25maWcocXVlcnk6IFF1ZXJ5KTogTG1yUGl2b3RDb25maWcge1xuICBjb25zdCBzdGVtcyA9IChxdWVyeSAmJiBxdWVyeS5zdGVtcykgfHwgW107XG4gIGNvbnN0IHN0ZW1zQ29uZmlncyA9IHN0ZW1zLm1hcChzdGVtID0+IGNyZWF0ZURlZmF1bHRQaXZvdFN0ZW1Db25maWcoc3RlbSkpO1xuICByZXR1cm4ge3ZlcnNpb246IExtclBpdm90Q29uZmlnVmVyc2lvbi5WMSwgc3RlbXNDb25maWdzOiBzdGVtc0NvbmZpZ3MsIG1lcmdlVGFibGVzOiB0cnVlfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRQaXZvdFN0ZW1Db25maWcoc3RlbT86IFF1ZXJ5U3RlbSk6IExtclBpdm90U3RlbUNvbmZpZyB7XG4gIHJldHVybiB7c3RlbSwgcm93QXR0cmlidXRlczogW10sIGNvbHVtbkF0dHJpYnV0ZXM6IFtdLCB2YWx1ZUF0dHJpYnV0ZXM6IFtdfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpdm90Q29uZmlnSXNFbXB0eShjb25maWc6IExtclBpdm90Q29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiAoY29uZmlnLnN0ZW1zQ29uZmlncyB8fCBbXSkuZXZlcnkoc3RlbUNvbmZpZyA9PiBwaXZvdFN0ZW1Db25maWdJc0VtcHR5KHN0ZW1Db25maWcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpdm90U3RlbUNvbmZpZ0lzRW1wdHkoY29uZmlnOiBMbXJQaXZvdFN0ZW1Db25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoKGNvbmZpZyAmJiBjb25maWcucm93QXR0cmlidXRlcykgfHwgW10pLmxlbmd0aCA9PT0gMCAmJlxuICAgICgoY29uZmlnICYmIGNvbmZpZy5jb2x1bW5BdHRyaWJ1dGVzKSB8fCBbXSkubGVuZ3RoID09PSAwICYmXG4gICAgKChjb25maWcgJiYgY29uZmlnLnZhbHVlQXR0cmlidXRlcykgfHwgW10pLmxlbmd0aCA9PT0gMFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udHJhc3RDb2xvcihjb2xvcjogc3RyaW5nLCByZXR1cm5Db2Rlcz86IHtkYXJrOiBzdHJpbmc7IGxpZ2h0OiBzdHJpbmd9LCBvcGFjaXR5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKCFjb2xvcikge1xuICAgIHJldHVybiByZXR1cm5Db2RlcyA/IHJldHVybkNvZGVzLmRhcmsgOiBDT0xPUl9QUklNQVJZO1xuICB9XG5cbiAgY29uc3QgZiA9IHBhcnNlSW50KGNvbG9yLmluZGV4T2YoJyMnKSA9PT0gMCA/IGNvbG9yLnNsaWNlKDEpIDogY29sb3IsIDE2KSxcbiAgICBSID0gZiA+PiAxNixcbiAgICBHID0gKGYgPj4gOCkgJiAweDAwZmYsXG4gICAgQiA9IGYgJiAweDAwMDBmZjtcblxuICBjb25zdCBsdW1pbmFuY2UgPSAoMC4yOTkgKiBSICsgMC41ODcgKiBHICsgMC4xMTQgKiBCKSAvIDI1NTtcblxuICBpZiAobHVtaW5hbmNlID4gMC41KSB7XG4gICAgcmV0dXJuIHJldHVybkNvZGVzID8gcmV0dXJuQ29kZXMuZGFyayA6IGhleDJyZ2JhKENPTE9SX1BSSU1BUlksIG9wYWNpdHkgfHwgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJldHVybkNvZGVzID8gcmV0dXJuQ29kZXMubGlnaHQgOiBoZXgycmdiYShDT0xPUl9MSUdIVCwgb3BhY2l0eSB8fCAxKTtcbiAgfVxufVxuIl19