@one-grid-core/angular 0.2.1 → 0.4.0

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 (102) hide show
  1. package/README.md +55 -9
  2. package/esm2022/lib/components/one-grid/one-grid.component.mjs +244 -11
  3. package/esm2022/lib/components/one-grid-body/one-grid-body.component.mjs +446 -34
  4. package/esm2022/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.mjs +6 -5
  5. package/esm2022/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.mjs +3 -3
  6. package/esm2022/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.mjs +3 -3
  7. package/esm2022/lib/components/one-grid-checkbox/one-grid-checkbox.component.mjs +7 -18
  8. package/esm2022/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.mjs +6 -6
  9. package/esm2022/lib/components/one-grid-header/one-grid-header.component.mjs +221 -17
  10. package/esm2022/lib/components/one-grid-header-menu/one-grid-header-menu.component.mjs +137 -0
  11. package/esm2022/lib/components/one-grid-pagination/one-grid-pagination.component.mjs +6 -5
  12. package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +4 -4
  13. package/esm2022/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.mjs +5 -3
  14. package/esm2022/lib/components/one-grid-status/one-grid-status.component.mjs +4 -4
  15. package/esm2022/lib/core/directives/one-cell-input-validator.directive.mjs +3 -3
  16. package/esm2022/lib/core/directives/one-cell-renderer-component.directive.mjs +3 -3
  17. package/esm2022/lib/core/directives/one-cell-text-expand.directive.mjs +3 -3
  18. package/esm2022/lib/core/icons/one-grid-icons.mjs +38 -0
  19. package/esm2022/lib/core/instants/one-grid-api.class.mjs +296 -3
  20. package/esm2022/lib/core/models/one-column-def-types.model.mjs +1 -1
  21. package/esm2022/lib/core/models/one-event-types.model.mjs +1 -1
  22. package/esm2022/lib/core/models/one-filter.model.mjs +1 -1
  23. package/esm2022/lib/core/pipes/aria-sort.pipe.mjs +31 -0
  24. package/esm2022/lib/core/pipes/cell-action-button-enable.pipe.mjs +3 -3
  25. package/esm2022/lib/core/pipes/cell-editable.pipe.mjs +3 -3
  26. package/esm2022/lib/core/pipes/cell-invalid.pipe.mjs +3 -3
  27. package/esm2022/lib/core/pipes/cell-key.pipe.mjs +3 -3
  28. package/esm2022/lib/core/pipes/cell-level-padding.pipe.mjs +3 -3
  29. package/esm2022/lib/core/pipes/cell-selected.pipe.mjs +3 -3
  30. package/esm2022/lib/core/pipes/cell-state-renderer.pipe.mjs +3 -3
  31. package/esm2022/lib/core/pipes/column-sort-state.pipe.mjs +3 -3
  32. package/esm2022/lib/core/pipes/header-checkbox-checked.pipe.mjs +3 -3
  33. package/esm2022/lib/core/pipes/header-checkbox-disabled.pipe.mjs +3 -3
  34. package/esm2022/lib/core/pipes/header-checkbox-indeterminate.pipe.mjs +3 -3
  35. package/esm2022/lib/core/services/og-column.service.mjs +153 -30
  36. package/esm2022/lib/core/services/one-grid-cell.service.mjs +16 -14
  37. package/esm2022/lib/helpers/one-cell.helper.mjs +30 -1
  38. package/esm2022/lib/helpers/one-column-def.helper.mjs +16 -1
  39. package/esm2022/lib/helpers/one-csv.helper.mjs +58 -0
  40. package/esm2022/lib/helpers/one-filter.helper.mjs +11 -1
  41. package/esm2022/lib/helpers/one-row-grouping.helper.mjs +103 -0
  42. package/esm2022/lib/index.mjs +3 -1
  43. package/esm2022/lib/one-grid.module.mjs +24 -114
  44. package/fesm2022/one-grid-core-angular.mjs +2328 -851
  45. package/fesm2022/one-grid-core-angular.mjs.map +1 -1
  46. package/lib/components/one-grid/one-grid.component.d.ts +101 -4
  47. package/lib/components/one-grid-body/one-grid-body.component.d.ts +83 -2
  48. package/lib/components/one-grid-cell-currency/one-grid-cell-currency.component.d.ts +1 -1
  49. package/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.d.ts +1 -1
  50. package/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.d.ts +1 -1
  51. package/lib/components/one-grid-checkbox/one-grid-checkbox.component.d.ts +1 -1
  52. package/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.d.ts +1 -1
  53. package/lib/components/one-grid-header/one-grid-header.component.d.ts +69 -4
  54. package/lib/components/one-grid-header-menu/one-grid-header-menu.component.d.ts +52 -0
  55. package/lib/components/one-grid-pagination/one-grid-pagination.component.d.ts +1 -1
  56. package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +1 -1
  57. package/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.d.ts +1 -1
  58. package/lib/components/one-grid-status/one-grid-status.component.d.ts +1 -1
  59. package/lib/core/directives/one-cell-input-validator.directive.d.ts +1 -1
  60. package/lib/core/directives/one-cell-renderer-component.directive.d.ts +1 -1
  61. package/lib/core/directives/one-cell-text-expand.directive.d.ts +1 -1
  62. package/lib/core/icons/one-grid-icons.d.ts +35 -0
  63. package/lib/core/instants/one-grid-api.class.d.ts +115 -1
  64. package/lib/core/models/one-column-def-types.model.d.ts +77 -2
  65. package/lib/core/models/one-event-types.model.d.ts +19 -0
  66. package/lib/core/models/one-filter.model.d.ts +8 -1
  67. package/lib/core/pipes/aria-sort.pipe.d.ts +15 -0
  68. package/lib/core/pipes/cell-action-button-enable.pipe.d.ts +1 -1
  69. package/lib/core/pipes/cell-editable.pipe.d.ts +1 -1
  70. package/lib/core/pipes/cell-invalid.pipe.d.ts +1 -1
  71. package/lib/core/pipes/cell-key.pipe.d.ts +1 -1
  72. package/lib/core/pipes/cell-level-padding.pipe.d.ts +1 -1
  73. package/lib/core/pipes/cell-selected.pipe.d.ts +1 -1
  74. package/lib/core/pipes/cell-state-renderer.pipe.d.ts +1 -1
  75. package/lib/core/pipes/column-sort-state.pipe.d.ts +1 -1
  76. package/lib/core/pipes/header-checkbox-checked.pipe.d.ts +1 -1
  77. package/lib/core/pipes/header-checkbox-disabled.pipe.d.ts +1 -1
  78. package/lib/core/pipes/header-checkbox-indeterminate.pipe.d.ts +1 -1
  79. package/lib/core/services/og-column.service.d.ts +46 -2
  80. package/lib/core/services/one-grid-cell.service.d.ts +0 -3
  81. package/lib/helpers/one-cell.helper.d.ts +17 -0
  82. package/lib/helpers/one-column-def.helper.d.ts +9 -0
  83. package/lib/helpers/one-csv.helper.d.ts +29 -0
  84. package/lib/helpers/one-row-grouping.helper.d.ts +35 -0
  85. package/lib/index.d.ts +2 -0
  86. package/lib/one-grid.module.d.ts +15 -37
  87. package/package.json +1 -1
  88. package/scss/_one-grid.scss +127 -0
  89. package/esm2022/lib/core/pipes/cell-action-button-visible.pipe.mjs +0 -17
  90. package/esm2022/lib/core/pipes/cell-field-value-empty.pipe.mjs +0 -26
  91. package/esm2022/lib/core/pipes/cell-field-value.pipe.mjs +0 -25
  92. package/esm2022/lib/core/pipes/cell-field.pipe.mjs +0 -20
  93. package/esm2022/lib/core/pipes/cell-number-value.pipe.mjs +0 -19
  94. package/esm2022/lib/core/pipes/cell-state-group-renderer.pipe.mjs +0 -21
  95. package/esm2022/lib/core/pipes/cell-value-getter.pipe.mjs +0 -23
  96. package/lib/core/pipes/cell-action-button-visible.pipe.d.ts +0 -9
  97. package/lib/core/pipes/cell-field-value-empty.pipe.d.ts +0 -7
  98. package/lib/core/pipes/cell-field-value.pipe.d.ts +0 -7
  99. package/lib/core/pipes/cell-field.pipe.d.ts +0 -7
  100. package/lib/core/pipes/cell-number-value.pipe.d.ts +0 -7
  101. package/lib/core/pipes/cell-state-group-renderer.pipe.d.ts +0 -9
  102. package/lib/core/pipes/cell-value-getter.pipe.d.ts +0 -9
@@ -50,4 +50,19 @@ export function resolveOneColumDefParams(prop, params) {
50
50
  export function resolveOneValueGetterParams(prop, params) {
51
51
  return typeof prop === 'function' ? prop(params) : prop;
52
52
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNvbHVtbi1kZWYuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9oZWxwZXJzL29uZS1jb2x1bW4tZGVmLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSx1RUFBdUU7QUFDdkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRTVDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFJLE1BQXVCO0lBRXpELE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQztJQUU1RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFJLFVBQTZCLEVBQUUsZ0JBQWlDO0lBRXZHLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsR0FBRyxnQkFBZ0I7UUFDbkIsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLElBQTBDLEVBQzFDLE1BQWdDO0FBQ2hDOzs7O0dBSUc7QUFDSCxZQUFxQixLQUFLO0lBRzFCLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTFELE9BQU8sT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDNUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFJLElBQThCLEVBQUUsTUFBVztJQUVyRixPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsSUFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FBTyxJQUFrRCxFQUFFLE1BQStCO0lBRW5JLE9BQU8sT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUEwQyxDQUFFLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uZUNlbGxSZW5kZXJlclBhcmFtcywgT25lQ29sdW1uRGVmLCBPbmVWYWx1ZUdldHRlclBhcmFtcyB9IGZyb20gXCIuLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbFwiO1xuXG4vKiogV2lkdGggdXNlZCB3aGVuIGEgY29sdW1uIGRlZmluZXMgbmVpdGhlciBgd2lkdGhgIG5vciBgbWluV2lkdGhgLiAqL1xuZXhwb3J0IGNvbnN0IE9ORV9ERUZBVUxUX0NPTFVNTl9XSURUSCA9IDE1MDtcblxuLyoqXG4gKiBUaGUgcmVuZGVyZWQgd2lkdGggb2YgYSBjb2x1bW4sIGNsYW1wZWQgdG8gaXRzIGJvdW5kcy5cbiAqXG4gKiBgd2lkdGhgLCBgbWluV2lkdGhgIGFuZCBgbWF4V2lkdGhgIGFyZSBhbGwgb3B0aW9uYWwsIGFuZCB0aGUgcHJldmlvdXMgaW5saW5lXG4gKiBleHByZXNzaW9uIOKAlCByZXBlYXRlZCBpbiB0d28gcGxhY2VzIOKAlCBmZWxsIGJhY2sgdG8gYG1pbldpZHRoYCB3aGVuIGB3aWR0aGBcbiAqIHdhcyBhYnNlbnQuIFdpdGggbmVpdGhlciBzZXQgdGhhdCBwcm9kdWNlZCBgdW5kZWZpbmVkYCwgYW5kIHN1bW1pbmcgaXQgZ2F2ZVxuICogYSBgTmFOYCByb3cgd2lkdGgsIHNvIHRoZSByb3cgY29sbGFwc2VkLiBUaGlzIGlzIHRvdGFsOiBldmVyeSBjb21iaW5hdGlvbiBvZlxuICogcHJlc2VudCBhbmQgYWJzZW50IGJvdW5kcyByZXNvbHZlcyB0byBhIHVzYWJsZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29sdW1uV2lkdGg8VD4oY29sdW1uOiBPbmVDb2x1bW5EZWY8VD4pOiBudW1iZXIge1xuXG4gICAgY29uc3QgbWluID0gY29sdW1uPy5taW5XaWR0aCA/PyAwO1xuICAgIGNvbnN0IG1heCA9IGNvbHVtbj8ubWF4V2lkdGggPz8gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgIGNvbnN0IHdpZHRoID0gY29sdW1uPy53aWR0aCA/PyBjb2x1bW4/Lm1pbldpZHRoID8/IE9ORV9ERUZBVUxUX0NPTFVNTl9XSURUSDtcblxuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgbWluKSwgbWF4KTtcbn1cblxuLyoqXG4gKiBBcHBseSBEZWZhdWx0IENvbHVtbiBEZWZpbml0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlEZWZhdWx0Q29sdW1uRGVmPFQ+KGNvbHVtbkRlZnM6IE9uZUNvbHVtbkRlZjxUPltdLCBkZWZhdWx0Q29sdW1uRGVmOiBPbmVDb2x1bW5EZWY8VD4pOiBPbmVDb2x1bW5EZWY8VD5bXSB7XG5cbiAgcmV0dXJuIGNvbHVtbkRlZnMubWFwKGNvbERlZiA9PiAoe1xuICAgIC4uLmRlZmF1bHRDb2x1bW5EZWYsXG4gICAgLi4uY29sRGVmXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBPbmUgQ29sdW1uIFBhcmFtcyBSZXNvbHZlciAoQ2VsbCBSZW5kZXJlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPbmVDZWxsUmVuZGVyZXJQYXJhbXM8VD4oXG4gIHByb3A6IGJvb2xlYW4gfCAoKHBhcmFtczogYW55KSA9PiBib29sZWFuKSxcbiAgcGFyYW1zOiBPbmVDZWxsUmVuZGVyZXJQYXJhbXM8VD4sXG4gIC8qKlxuICAgKiBXaGF0IGFuIHVuc2V0IHByb3BlcnR5IG1lYW5zOiBgZmFsc2VgIGZvciBhIGNhcGFiaWxpdHkgeW91IG9wdCBpbnRvLFxuICAgKiBgdHJ1ZWAgZm9yIGEgcmVzdHJpY3Rpb24geW91IG9wdCBvdXQgb2YuIGAhIXByb3BgIGNvdWxkIG5vdCB0ZWxsIHRoZSB0d29cbiAgICogYXBhcnQsIHdoaWNoIGxlZnQgYHVwZGF0YWJsZWAg4oCUIGEgcmVzdHJpY3Rpb24g4oCUIGRlZmF1bHRpbmcgdG8gXCJkZW55XCIuXG4gICAqL1xuICB3aGVuVW5zZXQ6IGJvb2xlYW4gPSBmYWxzZSxcbik6IGJvb2xlYW4ge1xuXG4gIGlmIChwcm9wID09PSB1bmRlZmluZWQgfHwgcHJvcCA9PT0gbnVsbCkgcmV0dXJuIHdoZW5VbnNldDtcblxuICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyBwcm9wKHBhcmFtcykgOiAhIXByb3A7XG59XG5cbi8qKlxuICogT25lIENvbHVtbiBQYXJhbXMgUmVzb2x2ZXIgKEdlbmVyaWNzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9uZUNvbHVtRGVmUGFyYW1zPFI+KHByb3A6IFIgfCAoKHBhcmFtczogYW55KSA9PiBSKSwgcGFyYW1zOiBhbnkpOiBSIHtcblxuICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyAocHJvcCBhcyAocDogYW55KSA9PiBSKShwYXJhbXMpIDogcHJvcDtcbn1cblxuLyoqXG4gKiBPbmUgQ29sdW1uIFBhcmFtcyBSZXNvbHZlciAoVmFsdWUgR2V0dGVyKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9uZVZhbHVlR2V0dGVyUGFyYW1zPFQsIFI+KHByb3A6IFIgfCAoKHBhcmFtczogT25lVmFsdWVHZXR0ZXJQYXJhbXM8VD4pID0+IFIpLCBwYXJhbXM6IE9uZVZhbHVlR2V0dGVyUGFyYW1zPFQ+KTogUiB7XG5cbiAgcmV0dXJuIHR5cGVvZiBwcm9wID09PSAnZnVuY3Rpb24nID8gKHByb3AgYXMgKHA6IE9uZVZhbHVlR2V0dGVyUGFyYW1zPFQ+KSA9PiBSKSAocGFyYW1zKTogcHJvcDtcbn0iXX0=
53
+ /**
54
+ * Run a column's `valueGetter` for one row.
55
+ *
56
+ * Was `CellValueGetterPipe`, which existed only to call this resolver from a
57
+ * service. The pipe added a module declaration and an indirection for a
58
+ * template use that never existed.
59
+ */
60
+ export function resolveCellValueGetter(data, node, column, context) {
61
+ return resolveOneValueGetterParams(column?.valueGetter, {
62
+ data,
63
+ rowIndex: node?.rowIndex,
64
+ node,
65
+ context,
66
+ });
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNvbHVtbi1kZWYuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9oZWxwZXJzL29uZS1jb2x1bW4tZGVmLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSx1RUFBdUU7QUFDdkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0FBRTVDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFJLE1BQXVCO0lBRXpELE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3pELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQztJQUU1RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFJLFVBQTZCLEVBQUUsZ0JBQWlDO0lBRXZHLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsR0FBRyxnQkFBZ0I7UUFDbkIsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLElBQTBDLEVBQzFDLE1BQWdDO0FBQ2hDOzs7O0dBSUc7QUFDSCxZQUFxQixLQUFLO0lBRzFCLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBRTFELE9BQU8sT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDNUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFJLElBQThCLEVBQUUsTUFBVztJQUVyRixPQUFPLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsSUFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdFLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FBTyxJQUFrRCxFQUFFLE1BQStCO0lBRW5JLE9BQU8sT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUEwQyxDQUFFLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakcsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBSSxJQUFPLEVBQUUsSUFBZ0IsRUFBRSxNQUFvQixFQUFFLE9BQWdCO0lBRXZHLE9BQU8sMkJBQTJCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtRQUNwRCxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRO1FBQ3hCLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uZUNlbGxSZW5kZXJlclBhcmFtcywgT25lQ29sdW1uRGVmLCBPbmVWYWx1ZUdldHRlclBhcmFtcyB9IGZyb20gXCIuLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBPbmVSb3dOb2RlIH0gZnJvbSBcIi4uL2NvcmUvaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzXCI7XG5cbi8qKiBXaWR0aCB1c2VkIHdoZW4gYSBjb2x1bW4gZGVmaW5lcyBuZWl0aGVyIGB3aWR0aGAgbm9yIGBtaW5XaWR0aGAuICovXG5leHBvcnQgY29uc3QgT05FX0RFRkFVTFRfQ09MVU1OX1dJRFRIID0gMTUwO1xuXG4vKipcbiAqIFRoZSByZW5kZXJlZCB3aWR0aCBvZiBhIGNvbHVtbiwgY2xhbXBlZCB0byBpdHMgYm91bmRzLlxuICpcbiAqIGB3aWR0aGAsIGBtaW5XaWR0aGAgYW5kIGBtYXhXaWR0aGAgYXJlIGFsbCBvcHRpb25hbCwgYW5kIHRoZSBwcmV2aW91cyBpbmxpbmVcbiAqIGV4cHJlc3Npb24g4oCUIHJlcGVhdGVkIGluIHR3byBwbGFjZXMg4oCUIGZlbGwgYmFjayB0byBgbWluV2lkdGhgIHdoZW4gYHdpZHRoYFxuICogd2FzIGFic2VudC4gV2l0aCBuZWl0aGVyIHNldCB0aGF0IHByb2R1Y2VkIGB1bmRlZmluZWRgLCBhbmQgc3VtbWluZyBpdCBnYXZlXG4gKiBhIGBOYU5gIHJvdyB3aWR0aCwgc28gdGhlIHJvdyBjb2xsYXBzZWQuIFRoaXMgaXMgdG90YWw6IGV2ZXJ5IGNvbWJpbmF0aW9uIG9mXG4gKiBwcmVzZW50IGFuZCBhYnNlbnQgYm91bmRzIHJlc29sdmVzIHRvIGEgdXNhYmxlIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb2x1bW5XaWR0aDxUPihjb2x1bW46IE9uZUNvbHVtbkRlZjxUPik6IG51bWJlciB7XG5cbiAgICBjb25zdCBtaW4gPSBjb2x1bW4/Lm1pbldpZHRoID8/IDA7XG4gICAgY29uc3QgbWF4ID0gY29sdW1uPy5tYXhXaWR0aCA/PyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7XG4gICAgY29uc3Qgd2lkdGggPSBjb2x1bW4/LndpZHRoID8/IGNvbHVtbj8ubWluV2lkdGggPz8gT05FX0RFRkFVTFRfQ09MVU1OX1dJRFRIO1xuXG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCBtaW4pLCBtYXgpO1xufVxuXG4vKipcbiAqIEFwcGx5IERlZmF1bHQgQ29sdW1uIERlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseURlZmF1bHRDb2x1bW5EZWY8VD4oY29sdW1uRGVmczogT25lQ29sdW1uRGVmPFQ+W10sIGRlZmF1bHRDb2x1bW5EZWY6IE9uZUNvbHVtbkRlZjxUPik6IE9uZUNvbHVtbkRlZjxUPltdIHtcblxuICByZXR1cm4gY29sdW1uRGVmcy5tYXAoY29sRGVmID0+ICh7XG4gICAgLi4uZGVmYXVsdENvbHVtbkRlZixcbiAgICAuLi5jb2xEZWZcbiAgfSkpO1xufVxuXG4vKipcbiAqIE9uZSBDb2x1bW4gUGFyYW1zIFJlc29sdmVyIChDZWxsIFJlbmRlcmVyKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9uZUNlbGxSZW5kZXJlclBhcmFtczxUPihcbiAgcHJvcDogYm9vbGVhbiB8ICgocGFyYW1zOiBhbnkpID0+IGJvb2xlYW4pLFxuICBwYXJhbXM6IE9uZUNlbGxSZW5kZXJlclBhcmFtczxUPixcbiAgLyoqXG4gICAqIFdoYXQgYW4gdW5zZXQgcHJvcGVydHkgbWVhbnM6IGBmYWxzZWAgZm9yIGEgY2FwYWJpbGl0eSB5b3Ugb3B0IGludG8sXG4gICAqIGB0cnVlYCBmb3IgYSByZXN0cmljdGlvbiB5b3Ugb3B0IG91dCBvZi4gYCEhcHJvcGAgY291bGQgbm90IHRlbGwgdGhlIHR3b1xuICAgKiBhcGFydCwgd2hpY2ggbGVmdCBgdXBkYXRhYmxlYCDigJQgYSByZXN0cmljdGlvbiDigJQgZGVmYXVsdGluZyB0byBcImRlbnlcIi5cbiAgICovXG4gIHdoZW5VbnNldDogYm9vbGVhbiA9IGZhbHNlLFxuKTogYm9vbGVhbiB7XG5cbiAgaWYgKHByb3AgPT09IHVuZGVmaW5lZCB8fCBwcm9wID09PSBudWxsKSByZXR1cm4gd2hlblVuc2V0O1xuXG4gIHJldHVybiB0eXBlb2YgcHJvcCA9PT0gJ2Z1bmN0aW9uJyA/IHByb3AocGFyYW1zKSA6ICEhcHJvcDtcbn1cblxuLyoqXG4gKiBPbmUgQ29sdW1uIFBhcmFtcyBSZXNvbHZlciAoR2VuZXJpY3MpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT25lQ29sdW1EZWZQYXJhbXM8Uj4ocHJvcDogUiB8ICgocGFyYW1zOiBhbnkpID0+IFIpLCBwYXJhbXM6IGFueSk6IFIge1xuXG4gIHJldHVybiB0eXBlb2YgcHJvcCA9PT0gJ2Z1bmN0aW9uJyA/IChwcm9wIGFzIChwOiBhbnkpID0+IFIpKHBhcmFtcykgOiBwcm9wO1xufVxuXG4vKipcbiAqIE9uZSBDb2x1bW4gUGFyYW1zIFJlc29sdmVyIChWYWx1ZSBHZXR0ZXIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT25lVmFsdWVHZXR0ZXJQYXJhbXM8VCwgUj4ocHJvcDogUiB8ICgocGFyYW1zOiBPbmVWYWx1ZUdldHRlclBhcmFtczxUPikgPT4gUiksIHBhcmFtczogT25lVmFsdWVHZXR0ZXJQYXJhbXM8VD4pOiBSIHtcblxuICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyAocHJvcCBhcyAocDogT25lVmFsdWVHZXR0ZXJQYXJhbXM8VD4pID0+IFIpIChwYXJhbXMpOiBwcm9wO1xufVxuXG4vKipcbiAqIFJ1biBhIGNvbHVtbidzIGB2YWx1ZUdldHRlcmAgZm9yIG9uZSByb3cuXG4gKlxuICogV2FzIGBDZWxsVmFsdWVHZXR0ZXJQaXBlYCwgd2hpY2ggZXhpc3RlZCBvbmx5IHRvIGNhbGwgdGhpcyByZXNvbHZlciBmcm9tIGFcbiAqIHNlcnZpY2UuIFRoZSBwaXBlIGFkZGVkIGEgbW9kdWxlIGRlY2xhcmF0aW9uIGFuZCBhbiBpbmRpcmVjdGlvbiBmb3IgYVxuICogdGVtcGxhdGUgdXNlIHRoYXQgbmV2ZXIgZXhpc3RlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDZWxsVmFsdWVHZXR0ZXI8VD4oZGF0YTogVCwgbm9kZTogT25lUm93Tm9kZSwgY29sdW1uOiBPbmVDb2x1bW5EZWYsIGNvbnRleHQ6IHVua25vd24pOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIHJlc29sdmVPbmVWYWx1ZUdldHRlclBhcmFtcyhjb2x1bW4/LnZhbHVlR2V0dGVyLCB7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIHJvd0luZGV4OiBub2RlPy5yb3dJbmRleCxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The columns an export can say anything about: those that read a row —
3
+ * through a field or a valueGetter. Action columns have neither, and the
4
+ * row-number column reads state the data does not hold; both are skipped.
5
+ */
6
+ export function exportableColumns(columns) {
7
+ return (columns ?? []).filter(column => (column.field && column.field !== '_oneRowNumber') || column.valueGetter);
8
+ }
9
+ /**
10
+ * Serialize rows to RFC 4180 CSV.
11
+ *
12
+ * Each cell goes through the same value pipeline the grid renders with:
13
+ * `valueGetter` when declared, the field otherwise, then `valueFormatter` —
14
+ * so the file says what the screen says. Null and undefined export as empty
15
+ * cells, before the formatter, exactly as the grid leaves them to the
16
+ * placeholder.
17
+ */
18
+ export function buildCsv(nodes, columns, context = null, options = {}) {
19
+ const separator = options.columnSeparator ?? ',';
20
+ const exportable = exportableColumns(columns);
21
+ const lines = [];
22
+ if (options.includeHeaders ?? true) {
23
+ lines.push(exportable.map(column => escapeCsvCell(column.headerName ?? column.field ?? '', separator)).join(separator));
24
+ }
25
+ nodes?.forEach((node, rowIndex) => {
26
+ const cells = exportable.map(column => {
27
+ let value = column.valueGetter
28
+ ? column.valueGetter({ data: node.data, rowIndex, node, context })
29
+ : node.data?.[column.field];
30
+ if (value === null || value === undefined)
31
+ return '';
32
+ if (column.valueFormatter) {
33
+ value = column.valueFormatter({
34
+ value,
35
+ data: node.data,
36
+ node,
37
+ rowIndex,
38
+ field: column.field,
39
+ columnDef: column,
40
+ context,
41
+ });
42
+ }
43
+ return escapeCsvCell(value, separator);
44
+ });
45
+ lines.push(cells.join(separator));
46
+ });
47
+ // CRLF is what RFC 4180 asks for, and what spreadsheet apps expect.
48
+ return lines.join('\r\n');
49
+ }
50
+ /** Quote a cell when it holds the separator, a quote, or a line break. */
51
+ function escapeCsvCell(value, separator) {
52
+ const text = `${value}`;
53
+ if (text.includes(separator) || text.includes('"') || text.includes('\n') || text.includes('\r')) {
54
+ return `"${text.replace(/"/g, '""')}"`;
55
+ }
56
+ return text;
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNzdi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLWNzdi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUEwQjtJQUU3RCxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNyQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsS0FBK0IsRUFDL0IsT0FBMEIsRUFDMUIsVUFBZSxJQUFJLEVBQ25CLFVBQStCLEVBQUU7SUFHakMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGVBQWUsSUFBSSxHQUFHLENBQUM7SUFDakQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVuQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFILENBQUM7SUFFRCxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBRWhDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFFcEMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVc7Z0JBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDbEUsQ0FBQyxDQUFFLElBQUksQ0FBQyxJQUFnQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQWUsQ0FBQyxDQUFDO1lBRXJFLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUVyRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFMUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7b0JBQzVCLEtBQUs7b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLElBQUk7b0JBQ0osUUFBUTtvQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQWU7b0JBQzdCLFNBQVMsRUFBRSxNQUFNO29CQUNqQixPQUFPO2lCQUNSLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILG9FQUFvRTtJQUNwRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELDBFQUEwRTtBQUMxRSxTQUFTLGFBQWEsQ0FBQyxLQUFjLEVBQUUsU0FBaUI7SUFFdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUV4QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUVqRyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbmVSb3dOb2RlIH0gZnJvbSBcIi4uL2NvcmUvaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzXCI7XG5pbXBvcnQgdHlwZSB7IE9uZUNvbHVtbkRlZiB9IGZyb20gXCIuLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbFwiO1xuXG4vKiogT3B0aW9ucyBmb3IgYGFwaS5nZXREYXRhQXNDc3ZgIC8gYGFwaS5leHBvcnREYXRhQXNDc3ZgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbmVDc3ZFeHBvcnRPcHRpb25zIHtcbiAgLyoqIEZpZWxkIHNlcGFyYXRvci4gRGVmYXVsdHMgdG8gJywnLiAqL1xuICBjb2x1bW5TZXBhcmF0b3I/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBmaXJzdCBsaW5lIGNhcnJpZXMgdGhlIGhlYWRlciBuYW1lcy4gRGVmYXVsdHMgdG8gdHJ1ZS4gKi9cbiAgaW5jbHVkZUhlYWRlcnM/OiBib29sZWFuO1xuICAvKiogRXhwb3J0IG9ubHkgdGhlIHNlbGVjdGVkIHJvd3MgaW5zdGVhZCBvZiBldmVyeSB2aXNpYmxlIG9uZS4gKi9cbiAgb25seVNlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqIERvd25sb2FkIG5hbWUgZm9yIGBleHBvcnREYXRhQXNDc3ZgLiBEZWZhdWx0cyB0byAnZXhwb3J0LmNzdicuICovXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBjb2x1bW5zIGFuIGV4cG9ydCBjYW4gc2F5IGFueXRoaW5nIGFib3V0OiB0aG9zZSB0aGF0IHJlYWQgYSByb3cg4oCUXG4gKiB0aHJvdWdoIGEgZmllbGQgb3IgYSB2YWx1ZUdldHRlci4gQWN0aW9uIGNvbHVtbnMgaGF2ZSBuZWl0aGVyLCBhbmQgdGhlXG4gKiByb3ctbnVtYmVyIGNvbHVtbiByZWFkcyBzdGF0ZSB0aGUgZGF0YSBkb2VzIG5vdCBob2xkOyBib3RoIGFyZSBza2lwcGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0YWJsZUNvbHVtbnM8VD4oY29sdW1uczogT25lQ29sdW1uRGVmPFQ+W10pOiBPbmVDb2x1bW5EZWY8VD5bXSB7XG5cbiAgcmV0dXJuIChjb2x1bW5zID8/IFtdKS5maWx0ZXIoY29sdW1uID0+XG4gICAgKGNvbHVtbi5maWVsZCAmJiBjb2x1bW4uZmllbGQgIT09ICdfb25lUm93TnVtYmVyJykgfHwgY29sdW1uLnZhbHVlR2V0dGVyKTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemUgcm93cyB0byBSRkMgNDE4MCBDU1YuXG4gKlxuICogRWFjaCBjZWxsIGdvZXMgdGhyb3VnaCB0aGUgc2FtZSB2YWx1ZSBwaXBlbGluZSB0aGUgZ3JpZCByZW5kZXJzIHdpdGg6XG4gKiBgdmFsdWVHZXR0ZXJgIHdoZW4gZGVjbGFyZWQsIHRoZSBmaWVsZCBvdGhlcndpc2UsIHRoZW4gYHZhbHVlRm9ybWF0dGVyYCDigJRcbiAqIHNvIHRoZSBmaWxlIHNheXMgd2hhdCB0aGUgc2NyZWVuIHNheXMuIE51bGwgYW5kIHVuZGVmaW5lZCBleHBvcnQgYXMgZW1wdHlcbiAqIGNlbGxzLCBiZWZvcmUgdGhlIGZvcm1hdHRlciwgZXhhY3RseSBhcyB0aGUgZ3JpZCBsZWF2ZXMgdGhlbSB0byB0aGVcbiAqIHBsYWNlaG9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDc3Y8VD4oXG4gIG5vZGVzOiByZWFkb25seSBPbmVSb3dOb2RlPFQ+W10sXG4gIGNvbHVtbnM6IE9uZUNvbHVtbkRlZjxUPltdLFxuICBjb250ZXh0OiBhbnkgPSBudWxsLFxuICBvcHRpb25zOiBPbmVDc3ZFeHBvcnRPcHRpb25zID0ge30sXG4pOiBzdHJpbmcge1xuXG4gIGNvbnN0IHNlcGFyYXRvciA9IG9wdGlvbnMuY29sdW1uU2VwYXJhdG9yID8/ICcsJztcbiAgY29uc3QgZXhwb3J0YWJsZSA9IGV4cG9ydGFibGVDb2x1bW5zKGNvbHVtbnMpO1xuXG4gIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGlmIChvcHRpb25zLmluY2x1ZGVIZWFkZXJzID8/IHRydWUpIHtcblxuICAgIGxpbmVzLnB1c2goZXhwb3J0YWJsZS5tYXAoY29sdW1uID0+IGVzY2FwZUNzdkNlbGwoY29sdW1uLmhlYWRlck5hbWUgPz8gY29sdW1uLmZpZWxkID8/ICcnLCBzZXBhcmF0b3IpKS5qb2luKHNlcGFyYXRvcikpO1xuICB9XG5cbiAgbm9kZXM/LmZvckVhY2goKG5vZGUsIHJvd0luZGV4KSA9PiB7XG5cbiAgICBjb25zdCBjZWxscyA9IGV4cG9ydGFibGUubWFwKGNvbHVtbiA9PiB7XG5cbiAgICAgIGxldCB2YWx1ZSA9IGNvbHVtbi52YWx1ZUdldHRlclxuICAgICAgICA/IGNvbHVtbi52YWx1ZUdldHRlcih7IGRhdGE6IG5vZGUuZGF0YSwgcm93SW5kZXgsIG5vZGUsIGNvbnRleHQgfSlcbiAgICAgICAgOiAobm9kZS5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uW2NvbHVtbi5maWVsZCBhcyBzdHJpbmddO1xuXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICcnO1xuXG4gICAgICBpZiAoY29sdW1uLnZhbHVlRm9ybWF0dGVyKSB7XG5cbiAgICAgICAgdmFsdWUgPSBjb2x1bW4udmFsdWVGb3JtYXR0ZXIoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGRhdGE6IG5vZGUuZGF0YSxcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQgYXMgc3RyaW5nLFxuICAgICAgICAgIGNvbHVtbkRlZjogY29sdW1uLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXNjYXBlQ3N2Q2VsbCh2YWx1ZSwgc2VwYXJhdG9yKTtcbiAgICB9KTtcblxuICAgIGxpbmVzLnB1c2goY2VsbHMuam9pbihzZXBhcmF0b3IpKTtcbiAgfSk7XG5cbiAgLy8gQ1JMRiBpcyB3aGF0IFJGQyA0MTgwIGFza3MgZm9yLCBhbmQgd2hhdCBzcHJlYWRzaGVldCBhcHBzIGV4cGVjdC5cbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcclxcbicpO1xufVxuXG4vKiogUXVvdGUgYSBjZWxsIHdoZW4gaXQgaG9sZHMgdGhlIHNlcGFyYXRvciwgYSBxdW90ZSwgb3IgYSBsaW5lIGJyZWFrLiAqL1xuZnVuY3Rpb24gZXNjYXBlQ3N2Q2VsbCh2YWx1ZTogdW5rbm93biwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gIGNvbnN0IHRleHQgPSBgJHt2YWx1ZX1gO1xuXG4gIGlmICh0ZXh0LmluY2x1ZGVzKHNlcGFyYXRvcikgfHwgdGV4dC5pbmNsdWRlcygnXCInKSB8fCB0ZXh0LmluY2x1ZGVzKCdcXG4nKSB8fCB0ZXh0LmluY2x1ZGVzKCdcXHInKSkge1xuXG4gICAgcmV0dXJuIGBcIiR7dGV4dC5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYDtcbiAgfVxuXG4gIHJldHVybiB0ZXh0O1xufVxuIl19
@@ -47,13 +47,23 @@ export function matchesAdvancedFilters(node, filters) {
47
47
  const val = (node.data[filter.field] ?? '').toString().toLowerCase();
48
48
  const results = filter.conditions.map(condition => {
49
49
  const cmp = (condition.value ?? '').toString().toLowerCase();
50
+ const cmpTo = (condition.valueTo ?? '').toString().toLowerCase();
50
51
  switch (condition.operator) {
51
52
  case 'equals': return val === cmp;
53
+ case 'notEqual': return val !== cmp;
52
54
  case 'contains': return val.includes(cmp);
55
+ case 'notContains': return !val.includes(cmp);
53
56
  case 'startsWith': return val.startsWith(cmp);
54
57
  case 'endsWith': return val.endsWith(cmp);
55
58
  case 'greaterThan': return compare(val, cmp) > 0;
59
+ case 'greaterThanOrEqual': return compare(val, cmp) >= 0;
56
60
  case 'lessThan': return compare(val, cmp) < 0;
61
+ case 'lessThanOrEqual': return compare(val, cmp) <= 0;
62
+ case 'inRange': return compare(val, cmp) >= 0 && compare(val, cmpTo) <= 0;
63
+ // `val` has already been through `?? ''`, so null and undefined land
64
+ // here as the empty string. 0 stringifies to '0' and does not.
65
+ case 'blank': return val === '';
66
+ case 'notBlank': return val !== '';
57
67
  default: return true; // Unknown operator = ignore
58
68
  }
59
69
  });
@@ -108,4 +118,4 @@ export function matchesQuickFilter(node, quick, fields) {
108
118
  return value.toString().toLowerCase().includes(quick);
109
119
  });
110
120
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWZpbHRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLWZpbHRlci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxJQUFtQixFQUFFLE9BQWdDLEVBQUUsS0FBYSxFQUFFLE1BQTBCO0lBRXRJLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFakQsNkRBQTZEO0lBQzdELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRW5HLG1EQUFtRDtJQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV4RywyREFBMkQ7SUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLElBQUksVUFBVSxDQUFDO0lBRXZDLElBQUksU0FBUyxFQUFFLENBQUM7UUFFZCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN0QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQyxFQUFFLEtBQWE7SUFFNUUsSUFBSSxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFdkIsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFN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QUFVLGtCQUFrQixDQUFVLElBQW1CLEVBQUUsS0FBYSxFQUFFLE1BQTBCO0lBRXhHLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQStCLENBQUM7SUFFbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRS9GLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUV6QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV4RCwyRUFBMkU7UUFDM0Usa0RBQWtEO1FBQ2xELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUzRSxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25lUm93Tm9kZSB9IGZyb20gXCIuLi9jb3JlL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzc1wiO1xuaW1wb3J0IHsgT25lRmlsdGVyTW9kZWwgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHMvb25lLWZpbHRlci5tb2RlbFwiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZpbHRlcnMgYSB0cmVlIGFuZCB1cGRhdGVzIGVhY2ggbm9kZSdzIFVJIHN0YXRlLlxuICpcbiAqIFJ1bGVzOlxuICogLSBBIG5vZGUgaXMgdmlzaWJsZSBpZiBpdCBtYXRjaGVzIHRoZSBmaWx0ZXJzIG9yIGhhcyBhIG1hdGNoaW5nIGRlc2NlbmRhbnQuXG4gKiAtIFdoaWxlIGEgZmlsdGVyIGlzIGFjdGl2ZSwgYSBub2RlIGlzIGV4cGFuZGVkIGlmZiBpdCBoYXMgYSBtYXRjaGluZ1xuICogICBkZXNjZW5kYW50LCBzbyB0aGUgaGl0IGlzIHJldmVhbGVkLlxuICpcbiAqIE92ZXJ3cml0aW5nIGBleHBhbmRlZGAgaXMgb25seSBjb3JyZWN0ICp3aGlsZSBmaWx0ZXJpbmcqLiBUaGlzIHJ1bnMgZnJvbVxuICogYGFwcGx5RmlsdGVyc2AsIHdoaWNoIGV2ZXJ5IGBzZXRSb3dEYXRhYCAvIGB1cGRhdGVSb3dEYXRhYCBjYWxscywgc28gZG9pbmcgaXRcbiAqIHVuY29uZGl0aW9uYWxseSBmb3JjZS1leHBhbmRlZCBldmVyeSBwYXJlbnQgb24gZWFjaCBkYXRhIHVwZGF0ZTogaXQgbWFkZVxuICogYGdyb3VwRGVmYXVsdEV4cGFuZGVkYCBpbmVydCBmb3IgdHJlZSBkYXRhIGFuZCBjb2xsYXBzZWQgZXhwYW5kZWRcbiAqIG1hc3Rlci1kZXRhaWwgcm93cyAodGhleSBoYXZlIG5vIGNoaWxkcmVuLCBzbyBgY2hpbGRNYXRjaGAgaXMgZmFsc2UpLlxuICpcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGN1cnJlbnQgbm9kZSBvciBhbnkgZGVzY2VuZGFudCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJlZU5vZGU8VCA9IGFueT4obm9kZTogT25lUm93Tm9kZTxUPiwgZmlsdGVyczogT25lRmlsdGVyTW9kZWxbXSB8IG51bGwsIHF1aWNrOiBzdHJpbmcsIGZpZWxkcz86IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG5cbiAgY29uc3QgZmlsdGVyaW5nID0gaXNGaWx0ZXJBY3RpdmUoZmlsdGVycywgcXVpY2spO1xuXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgbm9kZSBtYXRjaGVzIGFsbCBhY3RpdmUgZmlsdGVycy5cbiAgY29uc3Qgc2VsZk1hdGNoID0gbWF0Y2hlc0FkdmFuY2VkRmlsdGVycyhub2RlLCBmaWx0ZXJzKSAmJiBtYXRjaGVzUXVpY2tGaWx0ZXIobm9kZSwgcXVpY2ssIGZpZWxkcyk7XG5cbiAgLy8gUmVjdXJzaXZlbHkgZGV0ZXJtaW5lIHdoZXRoZXIgYW55IGNoaWxkIG1hdGNoZXMuXG4gIGNvbnN0IGNoaWxkTWF0Y2ggPSBub2RlLmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGZpbHRlclRyZWVOb2RlKGNoaWxkLCBmaWx0ZXJzLCBxdWljaywgZmllbGRzKSkgPz8gZmFsc2U7XG5cbiAgLy8gS2VlcCB0aGUgbm9kZSB2aXNpYmxlIHdoZW4gaXQgb3IgYW55IGRlc2NlbmRhbnQgbWF0Y2hlcy5cbiAgbm9kZS52aXNpYmxlID0gc2VsZk1hdGNoIHx8IGNoaWxkTWF0Y2g7XG5cbiAgaWYgKGZpbHRlcmluZykge1xuXG4gICAgLy8gRXhwYW5kIHBhcmVudHMgdG8gcmV2ZWFsIG1hdGNoaW5nIGRlc2NlbmRhbnRzLlxuICAgIG5vZGUuZXhwYW5kZWQgPSBjaGlsZE1hdGNoO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUudmlzaWJsZTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGFueXRoaW5nIGlzIGFjdHVhbGx5IGZpbHRlcmluZyByaWdodCBub3cuIEEgbW9kZWwgZW50cnkgd2l0aCBub1xuICogY29uZGl0aW9ucyBtYXRjaGVzIGV2ZXJ5dGhpbmcsIHNvIGl0IGRvZXMgbm90IGNvdW50IGFzIGFjdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVyQWN0aXZlKGZpbHRlcnM6IE9uZUZpbHRlck1vZGVsW10gfCBudWxsLCBxdWljazogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgaWYgKHF1aWNrKSByZXR1cm4gdHJ1ZTtcblxuICByZXR1cm4gISFmaWx0ZXJzPy5zb21lKGZpbHRlciA9PiBmaWx0ZXI/LmNvbmRpdGlvbnM/Lmxlbmd0aCA+IDApO1xufVxuXG4vKipcbiAqIEFwcGx5IGFkdmFuY2VkIHBlci1jb2x1bW4gZmlsdGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hlc0FkdmFuY2VkRmlsdGVyczxUID0gYW55Pihub2RlOiBPbmVSb3dOb2RlPFQ+LCBmaWx0ZXJzOiBPbmVGaWx0ZXJNb2RlbFtdIHwgbnVsbCk6IGJvb2xlYW4ge1xuXG4gIGlmICghZmlsdGVycyB8fCBmaWx0ZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoZmlsdGVyID0+IHtcblxuICAgIGNvbnN0IHZhbCA9IChub2RlLmRhdGFbZmlsdGVyLmZpZWxkIGFzIGtleW9mIFRdID8/ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gZmlsdGVyLmNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiB7XG5cbiAgICAgIGNvbnN0IGNtcCA9IChjb25kaXRpb24udmFsdWUgPz8gJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0b3IpIHtcblxuICAgICAgICBjYXNlICdlcXVhbHMnOiByZXR1cm4gdmFsID09PSBjbXA7XG5cbiAgICAgICAgY2FzZSAnY29udGFpbnMnOiByZXR1cm4gdmFsLmluY2x1ZGVzKGNtcCk7XG5cbiAgICAgICAgY2FzZSAnc3RhcnRzV2l0aCc6IHJldHVybiB2YWwuc3RhcnRzV2l0aChjbXApO1xuXG4gICAgICAgIGNhc2UgJ2VuZHNXaXRoJzogcmV0dXJuIHZhbC5lbmRzV2l0aChjbXApO1xuXG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzogcmV0dXJuIGNvbXBhcmUodmFsLCBjbXApID4gMDtcblxuICAgICAgICBjYXNlICdsZXNzVGhhbic6IHJldHVybiBjb21wYXJlKHZhbCwgY21wKSA8IDA7XG5cbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIHRydWU7IC8vIFVua25vd24gb3BlcmF0b3IgPSBpZ25vcmVcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWx0ZXIubG9naWNPcGVyYXRvciA9PT0gJ0FORCcgPyByZXN1bHRzLmV2ZXJ5KEJvb2xlYW4pIDogcmVzdWx0cy5zb21lKEJvb2xlYW4pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBPcmRlciB0d28gYWxyZWFkeS1sb3dlcmNhc2VkIGNlbGwgdmFsdWVzLlxuICpcbiAqIE51bWVyaWMgd2hlbiBib3RoIHNpZGVzIHBhcnNlIGFzIG51bWJlcnMsIGxleGljb2dyYXBoaWMgb3RoZXJ3aXNlLiBUaGlzIHVzZWRcbiAqIHRvIGJlIGArdmFsID4gK2NtcGAgdW5jb25kaXRpb25hbGx5LCBzbyBhbnl0aGluZyBub24tbnVtZXJpYyBjb21wYXJlZCBOYU5cbiAqIGFnYWluc3QgTmFOIOKAlCBhbHdheXMgZmFsc2UuIEEgZGF0ZSBjb2x1bW4gZmlsdGVyZWQgd2l0aCBgZ3JlYXRlclRoYW5gIG1hdGNoZWRcbiAqIG5vdGhpbmcgYXQgYWxsIHJhdGhlciB0aGFuIHJlcG9ydGluZyBhIHByb2JsZW0sIGFuZCBJU08gZGF0ZXMgaGFwcGVuIHRvIHNvcnRcbiAqIGNvcnJlY3RseSBhcyBzdHJpbmdzLCB3aGljaCBpcyB3aGF0IHRoZSBmYWxsYmFjayBnaXZlcyB0aGVtLlxuICovXG5mdW5jdGlvbiBjb21wYXJlKHZhbDogc3RyaW5nLCBjbXA6IHN0cmluZyk6IG51bWJlciB7XG5cbiAgY29uc3QgbGVmdCA9IE51bWJlcih2YWwpO1xuICBjb25zdCByaWdodCA9IE51bWJlcihjbXApO1xuXG4gIGNvbnN0IG51bWVyaWMgPSB2YWwgIT09ICcnICYmIGNtcCAhPT0gJycgJiYgIU51bWJlci5pc05hTihsZWZ0KSAmJiAhTnVtYmVyLmlzTmFOKHJpZ2h0KTtcblxuICBpZiAobnVtZXJpYykgcmV0dXJuIGxlZnQgPT09IHJpZ2h0ID8gMCA6IGxlZnQgPCByaWdodCA/IC0xIDogMTtcblxuICByZXR1cm4gdmFsID09PSBjbXAgPyAwIDogdmFsIDwgY21wID8gLTEgOiAxO1xufVxuXG4vKipcbiAqIEFwcGx5IHRoZSBxdWljayBmaWx0ZXIgdG8gb25lIHJvdy5cbiAqXG4gKiBTZWFyY2hlcyB0aGUgZmllbGRzIHRoZSBncmlkIGFjdHVhbGx5IHNob3dzLCB3aGVuIGl0IGlzIHRvbGQgd2hhdCB0aGV5IGFyZS5cbiAqIEl0IHVzZWQgdG8gd2FsayBgT2JqZWN0LnZhbHVlcyhub2RlLmRhdGEpYCwgd2hpY2ggaGFkIHRocmVlIGNvbnNlcXVlbmNlcywgYWxsXG4gKiBvZiB0aGVtIHdyb25nOlxuICpcbiAqIC0gYSBwcm9wZXJ0eSB3aXRoIG5vIGNvbHVtbiB3YXMgc2VhcmNoYWJsZSwgc28gYSB1c2VyIGNvdWxkIG1hdGNoIHJvd3Mgb25cbiAqICAgZGF0YSB0aGUgZ3JpZCBuZXZlciBkaXNwbGF5ZWQ7XG4gKiAtIGEgbmVzdGVkIG9iamVjdCBzdHJpbmdpZmllZCB0byBgW29iamVjdCBPYmplY3RdYCwgc28gdHlwaW5nIGBvYmplY3RgXG4gKiAgIG1hdGNoZWQgZXZlcnkgcm93IGhvbGRpbmcgb25lO1xuICogLSBpbiBhIHRyZWUsIGBjaGlsZHJlbmAgZGlkIHRoZSBzYW1lLCBzbyBtb3N0IHBhcmVudHMgbWF0Y2hlZCBtb3N0IHF1ZXJpZXMuXG4gKlxuICogTm9uLXByaW1pdGl2ZSB2YWx1ZXMgYXJlIHNraXBwZWQgcmVnYXJkbGVzcywgc28gdGhlIGBbb2JqZWN0IE9iamVjdF1gIGhheXN0YWNrXG4gKiBjYW5ub3QgY29tZSBiYWNrIHRocm91Z2ggYSBkZWNsYXJlZCBjb2x1bW4gZWl0aGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hlc1F1aWNrRmlsdGVyPFQgPSBhbnk+KG5vZGU6IE9uZVJvd05vZGU8VD4sIHF1aWNrOiBzdHJpbmcsIGZpZWxkcz86IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG5cbiAgaWYgKCFxdWljaykgcmV0dXJuIHRydWU7XG5cbiAgY29uc3QgZGF0YSA9IG5vZGUuZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICBjb25zdCB2YWx1ZXMgPSBmaWVsZHM/Lmxlbmd0aCA/IGZpZWxkcy5tYXAoZmllbGQgPT4gZGF0YT8uW2ZpZWxkXSkgOiBPYmplY3QudmFsdWVzKGRhdGEgPz8ge30pO1xuXG4gIHJldHVybiB2YWx1ZXMuc29tZSh2YWx1ZSA9PiB7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gT2JqZWN0cywgYXJyYXlzIGFuZCBmdW5jdGlvbnMgaGF2ZSBubyB1c2VmdWwgdGV4dCBmb3JtLiBTa2lwcGluZyB0aGVtIGlzXG4gICAgLy8gd2hhdCBrZWVwcyBgW29iamVjdCBPYmplY3RdYCBvdXQgb2YgdGhlIHNlYXJjaC5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVpY2spO1xuICB9KTtcbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWZpbHRlci5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLWZpbHRlci5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxJQUFtQixFQUFFLE9BQWdDLEVBQUUsS0FBYSxFQUFFLE1BQTBCO0lBRXRJLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFakQsNkRBQTZEO0lBQzdELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRW5HLG1EQUFtRDtJQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV4RywyREFBMkQ7SUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLElBQUksVUFBVSxDQUFDO0lBRXZDLElBQUksU0FBUyxFQUFFLENBQUM7UUFFZCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN0QixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQyxFQUFFLEtBQWE7SUFFNUUsSUFBSSxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFdkIsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFN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QUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRS9GLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUV6QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV4RCwyRUFBMkU7UUFDM0Usa0RBQWtEO1FBQ2xELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUzRSxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25lUm93Tm9kZSB9IGZyb20gXCIuLi9jb3JlL2luc3RhbnRzL29uZS1yb3ctbm9kZS5jbGFzc1wiO1xuaW1wb3J0IHsgT25lRmlsdGVyTW9kZWwgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHMvb25lLWZpbHRlci5tb2RlbFwiO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZpbHRlcnMgYSB0cmVlIGFuZCB1cGRhdGVzIGVhY2ggbm9kZSdzIFVJIHN0YXRlLlxuICpcbiAqIFJ1bGVzOlxuICogLSBBIG5vZGUgaXMgdmlzaWJsZSBpZiBpdCBtYXRjaGVzIHRoZSBmaWx0ZXJzIG9yIGhhcyBhIG1hdGNoaW5nIGRlc2NlbmRhbnQuXG4gKiAtIFdoaWxlIGEgZmlsdGVyIGlzIGFjdGl2ZSwgYSBub2RlIGlzIGV4cGFuZGVkIGlmZiBpdCBoYXMgYSBtYXRjaGluZ1xuICogICBkZXNjZW5kYW50LCBzbyB0aGUgaGl0IGlzIHJldmVhbGVkLlxuICpcbiAqIE92ZXJ3cml0aW5nIGBleHBhbmRlZGAgaXMgb25seSBjb3JyZWN0ICp3aGlsZSBmaWx0ZXJpbmcqLiBUaGlzIHJ1bnMgZnJvbVxuICogYGFwcGx5RmlsdGVyc2AsIHdoaWNoIGV2ZXJ5IGBzZXRSb3dEYXRhYCAvIGB1cGRhdGVSb3dEYXRhYCBjYWxscywgc28gZG9pbmcgaXRcbiAqIHVuY29uZGl0aW9uYWxseSBmb3JjZS1leHBhbmRlZCBldmVyeSBwYXJlbnQgb24gZWFjaCBkYXRhIHVwZGF0ZTogaXQgbWFkZVxuICogYGdyb3VwRGVmYXVsdEV4cGFuZGVkYCBpbmVydCBmb3IgdHJlZSBkYXRhIGFuZCBjb2xsYXBzZWQgZXhwYW5kZWRcbiAqIG1hc3Rlci1kZXRhaWwgcm93cyAodGhleSBoYXZlIG5vIGNoaWxkcmVuLCBzbyBgY2hpbGRNYXRjaGAgaXMgZmFsc2UpLlxuICpcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGN1cnJlbnQgbm9kZSBvciBhbnkgZGVzY2VuZGFudCBtYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyVHJlZU5vZGU8VCA9IGFueT4obm9kZTogT25lUm93Tm9kZTxUPiwgZmlsdGVyczogT25lRmlsdGVyTW9kZWxbXSB8IG51bGwsIHF1aWNrOiBzdHJpbmcsIGZpZWxkcz86IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG5cbiAgY29uc3QgZmlsdGVyaW5nID0gaXNGaWx0ZXJBY3RpdmUoZmlsdGVycywgcXVpY2spO1xuXG4gIC8vIENoZWNrIHdoZXRoZXIgdGhlIGN1cnJlbnQgbm9kZSBtYXRjaGVzIGFsbCBhY3RpdmUgZmlsdGVycy5cbiAgY29uc3Qgc2VsZk1hdGNoID0gbWF0Y2hlc0FkdmFuY2VkRmlsdGVycyhub2RlLCBmaWx0ZXJzKSAmJiBtYXRjaGVzUXVpY2tGaWx0ZXIobm9kZSwgcXVpY2ssIGZpZWxkcyk7XG5cbiAgLy8gUmVjdXJzaXZlbHkgZGV0ZXJtaW5lIHdoZXRoZXIgYW55IGNoaWxkIG1hdGNoZXMuXG4gIGNvbnN0IGNoaWxkTWF0Y2ggPSBub2RlLmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGZpbHRlclRyZWVOb2RlKGNoaWxkLCBmaWx0ZXJzLCBxdWljaywgZmllbGRzKSkgPz8gZmFsc2U7XG5cbiAgLy8gS2VlcCB0aGUgbm9kZSB2aXNpYmxlIHdoZW4gaXQgb3IgYW55IGRlc2NlbmRhbnQgbWF0Y2hlcy5cbiAgbm9kZS52aXNpYmxlID0gc2VsZk1hdGNoIHx8IGNoaWxkTWF0Y2g7XG5cbiAgaWYgKGZpbHRlcmluZykge1xuXG4gICAgLy8gRXhwYW5kIHBhcmVudHMgdG8gcmV2ZWFsIG1hdGNoaW5nIGRlc2NlbmRhbnRzLlxuICAgIG5vZGUuZXhwYW5kZWQgPSBjaGlsZE1hdGNoO1xuICB9XG5cbiAgcmV0dXJuIG5vZGUudmlzaWJsZTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGFueXRoaW5nIGlzIGFjdHVhbGx5IGZpbHRlcmluZyByaWdodCBub3cuIEEgbW9kZWwgZW50cnkgd2l0aCBub1xuICogY29uZGl0aW9ucyBtYXRjaGVzIGV2ZXJ5dGhpbmcsIHNvIGl0IGRvZXMgbm90IGNvdW50IGFzIGFjdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVyQWN0aXZlKGZpbHRlcnM6IE9uZUZpbHRlck1vZGVsW10gfCBudWxsLCBxdWljazogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgaWYgKHF1aWNrKSByZXR1cm4gdHJ1ZTtcblxuICByZXR1cm4gISFmaWx0ZXJzPy5zb21lKGZpbHRlciA9PiBmaWx0ZXI/LmNvbmRpdGlvbnM/Lmxlbmd0aCA+IDApO1xufVxuXG4vKipcbiAqIEFwcGx5IGFkdmFuY2VkIHBlci1jb2x1bW4gZmlsdGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hlc0FkdmFuY2VkRmlsdGVyczxUID0gYW55Pihub2RlOiBPbmVSb3dOb2RlPFQ+LCBmaWx0ZXJzOiBPbmVGaWx0ZXJNb2RlbFtdIHwgbnVsbCk6IGJvb2xlYW4ge1xuXG4gIGlmICghZmlsdGVycyB8fCBmaWx0ZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7XG5cbiAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoZmlsdGVyID0+IHtcblxuICAgIGNvbnN0IHZhbCA9IChub2RlLmRhdGFbZmlsdGVyLmZpZWxkIGFzIGtleW9mIFRdID8/ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gZmlsdGVyLmNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiB7XG5cbiAgICAgIGNvbnN0IGNtcCA9IChjb25kaXRpb24udmFsdWUgPz8gJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGNtcFRvID0gKGNvbmRpdGlvbi52YWx1ZVRvID8/ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIHN3aXRjaCAoY29uZGl0aW9uLm9wZXJhdG9yKSB7XG5cbiAgICAgICAgY2FzZSAnZXF1YWxzJzogcmV0dXJuIHZhbCA9PT0gY21wO1xuXG4gICAgICAgIGNhc2UgJ25vdEVxdWFsJzogcmV0dXJuIHZhbCAhPT0gY21wO1xuXG4gICAgICAgIGNhc2UgJ2NvbnRhaW5zJzogcmV0dXJuIHZhbC5pbmNsdWRlcyhjbXApO1xuXG4gICAgICAgIGNhc2UgJ25vdENvbnRhaW5zJzogcmV0dXJuICF2YWwuaW5jbHVkZXMoY21wKTtcblxuICAgICAgICBjYXNlICdzdGFydHNXaXRoJzogcmV0dXJuIHZhbC5zdGFydHNXaXRoKGNtcCk7XG5cbiAgICAgICAgY2FzZSAnZW5kc1dpdGgnOiByZXR1cm4gdmFsLmVuZHNXaXRoKGNtcCk7XG5cbiAgICAgICAgY2FzZSAnZ3JlYXRlclRoYW4nOiByZXR1cm4gY29tcGFyZSh2YWwsIGNtcCkgPiAwO1xuXG4gICAgICAgIGNhc2UgJ2dyZWF0ZXJUaGFuT3JFcXVhbCc6IHJldHVybiBjb21wYXJlKHZhbCwgY21wKSA+PSAwO1xuXG4gICAgICAgIGNhc2UgJ2xlc3NUaGFuJzogcmV0dXJuIGNvbXBhcmUodmFsLCBjbXApIDwgMDtcblxuICAgICAgICBjYXNlICdsZXNzVGhhbk9yRXF1YWwnOiByZXR1cm4gY29tcGFyZSh2YWwsIGNtcCkgPD0gMDtcblxuICAgICAgICBjYXNlICdpblJhbmdlJzogcmV0dXJuIGNvbXBhcmUodmFsLCBjbXApID49IDAgJiYgY29tcGFyZSh2YWwsIGNtcFRvKSA8PSAwO1xuXG4gICAgICAgIC8vIGB2YWxgIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3VnaCBgPz8gJydgLCBzbyBudWxsIGFuZCB1bmRlZmluZWQgbGFuZFxuICAgICAgICAvLyBoZXJlIGFzIHRoZSBlbXB0eSBzdHJpbmcuIDAgc3RyaW5naWZpZXMgdG8gJzAnIGFuZCBkb2VzIG5vdC5cbiAgICAgICAgY2FzZSAnYmxhbmsnOiByZXR1cm4gdmFsID09PSAnJztcblxuICAgICAgICBjYXNlICdub3RCbGFuayc6IHJldHVybiB2YWwgIT09ICcnO1xuXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiB0cnVlOyAvLyBVbmtub3duIG9wZXJhdG9yID0gaWdub3JlXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsdGVyLmxvZ2ljT3BlcmF0b3IgPT09ICdBTkQnID8gcmVzdWx0cy5ldmVyeShCb29sZWFuKSA6IHJlc3VsdHMuc29tZShCb29sZWFuKTtcbiAgfSk7XG59XG5cbi8qKlxuICogT3JkZXIgdHdvIGFscmVhZHktbG93ZXJjYXNlZCBjZWxsIHZhbHVlcy5cbiAqXG4gKiBOdW1lcmljIHdoZW4gYm90aCBzaWRlcyBwYXJzZSBhcyBudW1iZXJzLCBsZXhpY29ncmFwaGljIG90aGVyd2lzZS4gVGhpcyB1c2VkXG4gKiB0byBiZSBgK3ZhbCA+ICtjbXBgIHVuY29uZGl0aW9uYWxseSwgc28gYW55dGhpbmcgbm9uLW51bWVyaWMgY29tcGFyZWQgTmFOXG4gKiBhZ2FpbnN0IE5hTiDigJQgYWx3YXlzIGZhbHNlLiBBIGRhdGUgY29sdW1uIGZpbHRlcmVkIHdpdGggYGdyZWF0ZXJUaGFuYCBtYXRjaGVkXG4gKiBub3RoaW5nIGF0IGFsbCByYXRoZXIgdGhhbiByZXBvcnRpbmcgYSBwcm9ibGVtLCBhbmQgSVNPIGRhdGVzIGhhcHBlbiB0byBzb3J0XG4gKiBjb3JyZWN0bHkgYXMgc3RyaW5ncywgd2hpY2ggaXMgd2hhdCB0aGUgZmFsbGJhY2sgZ2l2ZXMgdGhlbS5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZSh2YWw6IHN0cmluZywgY21wOiBzdHJpbmcpOiBudW1iZXIge1xuXG4gIGNvbnN0IGxlZnQgPSBOdW1iZXIodmFsKTtcbiAgY29uc3QgcmlnaHQgPSBOdW1iZXIoY21wKTtcblxuICBjb25zdCBudW1lcmljID0gdmFsICE9PSAnJyAmJiBjbXAgIT09ICcnICYmICFOdW1iZXIuaXNOYU4obGVmdCkgJiYgIU51bWJlci5pc05hTihyaWdodCk7XG5cbiAgaWYgKG51bWVyaWMpIHJldHVybiBsZWZ0ID09PSByaWdodCA/IDAgOiBsZWZ0IDwgcmlnaHQgPyAtMSA6IDE7XG5cbiAgcmV0dXJuIHZhbCA9PT0gY21wID8gMCA6IHZhbCA8IGNtcCA/IC0xIDogMTtcbn1cblxuLyoqXG4gKiBBcHBseSB0aGUgcXVpY2sgZmlsdGVyIHRvIG9uZSByb3cuXG4gKlxuICogU2VhcmNoZXMgdGhlIGZpZWxkcyB0aGUgZ3JpZCBhY3R1YWxseSBzaG93cywgd2hlbiBpdCBpcyB0b2xkIHdoYXQgdGhleSBhcmUuXG4gKiBJdCB1c2VkIHRvIHdhbGsgYE9iamVjdC52YWx1ZXMobm9kZS5kYXRhKWAsIHdoaWNoIGhhZCB0aHJlZSBjb25zZXF1ZW5jZXMsIGFsbFxuICogb2YgdGhlbSB3cm9uZzpcbiAqXG4gKiAtIGEgcHJvcGVydHkgd2l0aCBubyBjb2x1bW4gd2FzIHNlYXJjaGFibGUsIHNvIGEgdXNlciBjb3VsZCBtYXRjaCByb3dzIG9uXG4gKiAgIGRhdGEgdGhlIGdyaWQgbmV2ZXIgZGlzcGxheWVkO1xuICogLSBhIG5lc3RlZCBvYmplY3Qgc3RyaW5naWZpZWQgdG8gYFtvYmplY3QgT2JqZWN0XWAsIHNvIHR5cGluZyBgb2JqZWN0YFxuICogICBtYXRjaGVkIGV2ZXJ5IHJvdyBob2xkaW5nIG9uZTtcbiAqIC0gaW4gYSB0cmVlLCBgY2hpbGRyZW5gIGRpZCB0aGUgc2FtZSwgc28gbW9zdCBwYXJlbnRzIG1hdGNoZWQgbW9zdCBxdWVyaWVzLlxuICpcbiAqIE5vbi1wcmltaXRpdmUgdmFsdWVzIGFyZSBza2lwcGVkIHJlZ2FyZGxlc3MsIHNvIHRoZSBgW29iamVjdCBPYmplY3RdYCBoYXlzdGFja1xuICogY2Fubm90IGNvbWUgYmFjayB0aHJvdWdoIGEgZGVjbGFyZWQgY29sdW1uIGVpdGhlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoZXNRdWlja0ZpbHRlcjxUID0gYW55Pihub2RlOiBPbmVSb3dOb2RlPFQ+LCBxdWljazogc3RyaW5nLCBmaWVsZHM/OiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuXG4gIGlmICghcXVpY2spIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IGRhdGEgPSBub2RlLmRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgY29uc3QgdmFsdWVzID0gZmllbGRzPy5sZW5ndGggPyBmaWVsZHMubWFwKGZpZWxkID0+IGRhdGE/LltmaWVsZF0pIDogT2JqZWN0LnZhbHVlcyhkYXRhID8/IHt9KTtcblxuICByZXR1cm4gdmFsdWVzLnNvbWUodmFsdWUgPT4ge1xuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcblxuICAgIC8vIE9iamVjdHMsIGFycmF5cyBhbmQgZnVuY3Rpb25zIGhhdmUgbm8gdXNlZnVsIHRleHQgZm9ybS4gU2tpcHBpbmcgdGhlbSBpc1xuICAgIC8vIHdoYXQga2VlcHMgYFtvYmplY3QgT2JqZWN0XWAgb3V0IG9mIHRoZSBzZWFyY2guXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1aWNrKTtcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,103 @@
1
+ /** Marks a synthetic group row, so anything can tell it from real data. */
2
+ export const ONE_GROUP_FLAG = '__oneGroup';
3
+ /** Stable id for a group row: its value path. Survives every rebuild. */
4
+ export const ONE_GROUP_ID_FIELD = '__oneGroupId';
5
+ /** The label the auto group column shows for a group row. */
6
+ export const ONE_GROUP_VALUE_FIELD = '__oneGroupValue';
7
+ /** Where a group row keeps its children, for the tree pipeline to recurse. */
8
+ export const ONE_GROUP_CHILDREN_FIELD = '__oneGroupChildren';
9
+ /** What a group of rows with no value in the grouped field is labelled. */
10
+ export const ONE_GROUP_BLANK_LABEL = '(Blank)';
11
+ /** The `rowGroup` fields of a column set, in definition order. */
12
+ export function rowGroupFields(columns) {
13
+ return (columns ?? [])
14
+ .filter(column => column.rowGroup && column.field)
15
+ .map(column => column.field);
16
+ }
17
+ /** The `aggFunc` columns of a column set. */
18
+ export function aggColumns(columns) {
19
+ return (columns ?? [])
20
+ .filter(column => column.aggFunc && column.field)
21
+ .map(column => ({ field: column.field, aggFunc: column.aggFunc }));
22
+ }
23
+ /**
24
+ * Fold flat rows into a tree of synthetic group rows, one level per group
25
+ * field, in first-appearance order. Each group row carries:
26
+ *
27
+ * - the marker, id and label fields above;
28
+ * - its own grouped field's value, so sorting and filtering read it naturally;
29
+ * - one aggregated value per `aggFunc` column, computed over the group's
30
+ * leaves (not its child groups), stored under the column's own field so the
31
+ * ordinary cell pipeline renders it.
32
+ *
33
+ * Pure: the input rows are referenced, never mutated.
34
+ */
35
+ export function buildGroupedRows(rows, groupFields, aggregations = []) {
36
+ if (!groupFields?.length)
37
+ return [...(rows ?? [])];
38
+ return groupLevel(rows ?? [], groupFields, 0, aggregations, 'og-group');
39
+ }
40
+ function groupLevel(rows, groupFields, level, aggregations, idPrefix) {
41
+ const field = groupFields[level];
42
+ // Insertion-ordered buckets, keyed by the value's string form. The raw
43
+ // value is kept as well, so the group row exposes the real value under the
44
+ // grouped field, not its stringification.
45
+ const buckets = new Map();
46
+ for (const row of rows) {
47
+ const value = row?.[field];
48
+ const key = value === null || value === undefined || value === '' ? ONE_GROUP_BLANK_LABEL : String(value);
49
+ const bucket = buckets.get(key);
50
+ if (bucket) {
51
+ bucket.rows.push(row);
52
+ }
53
+ else {
54
+ buckets.set(key, { value, rows: [row] });
55
+ }
56
+ }
57
+ return [...buckets.entries()].map(([key, bucket]) => {
58
+ const id = `${idPrefix}:${key}`;
59
+ const children = level + 1 < groupFields.length
60
+ ? groupLevel(bucket.rows, groupFields, level + 1, aggregations, id)
61
+ : bucket.rows;
62
+ const groupRow = {
63
+ [ONE_GROUP_FLAG]: true,
64
+ [ONE_GROUP_ID_FIELD]: id,
65
+ [ONE_GROUP_VALUE_FIELD]: key,
66
+ [field]: bucket.value,
67
+ [ONE_GROUP_CHILDREN_FIELD]: children,
68
+ };
69
+ // Aggregates always read the original leaves, so a two-level group's
70
+ // parent is not averaging averages.
71
+ for (const aggregation of aggregations) {
72
+ groupRow[aggregation.field] = aggregate(bucket.rows, aggregation.field, aggregation.aggFunc);
73
+ }
74
+ return groupRow;
75
+ });
76
+ }
77
+ /** Apply one aggregation over a set of leaf rows. */
78
+ export function aggregate(rows, field, aggFunc) {
79
+ const values = rows
80
+ .map(row => row?.[field])
81
+ .filter(value => value !== null && value !== undefined);
82
+ if (typeof aggFunc === 'function') {
83
+ return aggFunc({ values, rows: rows, field });
84
+ }
85
+ switch (aggFunc) {
86
+ case 'count': return values.length;
87
+ case 'first': return values.length ? values[0] : null;
88
+ case 'last': return values.length ? values[values.length - 1] : null;
89
+ }
90
+ // The numeric aggregates ignore what does not parse, so one stray string in
91
+ // a column does not turn the whole group's total into NaN.
92
+ const numbers = values.map(Number).filter(Number.isFinite);
93
+ if (!numbers.length)
94
+ return null;
95
+ switch (aggFunc) {
96
+ case 'sum': return numbers.reduce((total, value) => total + value, 0);
97
+ case 'min': return Math.min(...numbers);
98
+ case 'max': return Math.max(...numbers);
99
+ case 'avg': return numbers.reduce((total, value) => total + value, 0) / numbers.length;
100
+ default: return null;
101
+ }
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLXJvdy1ncm91cGluZy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2hlbHBlcnMvb25lLXJvdy1ncm91cGluZy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7QUFFM0MseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFFdkQsOEVBQThFO0FBQzlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG9CQUFvQixDQUFDO0FBRTdELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUM7QUFRL0Msa0VBQWtFO0FBQ2xFLE1BQU0sVUFBVSxjQUFjLENBQUksT0FBbUM7SUFFbkUsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2pELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxVQUFVLENBQUksT0FBbUM7SUFFL0QsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2hELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUs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QUFDO1FBRWhCLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV0RSxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFeEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFdkYsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7SUFDdkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbmVBZ2dGdW5jLCBPbmVBZ2dGdW5jUGFyYW1zLCBPbmVDb2x1bW5EZWYgfSBmcm9tIFwiLi4vY29yZS9tb2RlbHMvb25lLWNvbHVtbi1kZWYtdHlwZXMubW9kZWxcIjtcblxuLyoqIE1hcmtzIGEgc3ludGhldGljIGdyb3VwIHJvdywgc28gYW55dGhpbmcgY2FuIHRlbGwgaXQgZnJvbSByZWFsIGRhdGEuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0ZMQUcgPSAnX19vbmVHcm91cCc7XG5cbi8qKiBTdGFibGUgaWQgZm9yIGEgZ3JvdXAgcm93OiBpdHMgdmFsdWUgcGF0aC4gU3Vydml2ZXMgZXZlcnkgcmVidWlsZC4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfSURfRklFTEQgPSAnX19vbmVHcm91cElkJztcblxuLyoqIFRoZSBsYWJlbCB0aGUgYXV0byBncm91cCBjb2x1bW4gc2hvd3MgZm9yIGEgZ3JvdXAgcm93LiAqL1xuZXhwb3J0IGNvbnN0IE9ORV9HUk9VUF9WQUxVRV9GSUVMRCA9ICdfX29uZUdyb3VwVmFsdWUnO1xuXG4vKiogV2hlcmUgYSBncm91cCByb3cga2VlcHMgaXRzIGNoaWxkcmVuLCBmb3IgdGhlIHRyZWUgcGlwZWxpbmUgdG8gcmVjdXJzZS4gKi9cbmV4cG9ydCBjb25zdCBPTkVfR1JPVVBfQ0hJTERSRU5fRklFTEQgPSAnX19vbmVHcm91cENoaWxkcmVuJztcblxuLyoqIFdoYXQgYSBncm91cCBvZiByb3dzIHdpdGggbm8gdmFsdWUgaW4gdGhlIGdyb3VwZWQgZmllbGQgaXMgbGFiZWxsZWQuICovXG5leHBvcnQgY29uc3QgT05FX0dST1VQX0JMQU5LX0xBQkVMID0gJyhCbGFuayknO1xuXG4vKiogT25lIGNvbHVtbidzIGFnZ3JlZ2F0aW9uLCBjYXB0dXJlZCBmcm9tIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uZUFnZ0NvbHVtbjxUID0gYW55PiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGFnZ0Z1bmM6IE9uZUFnZ0Z1bmM8VD47XG59XG5cbi8qKiBUaGUgYHJvd0dyb3VwYCBmaWVsZHMgb2YgYSBjb2x1bW4gc2V0LCBpbiBkZWZpbml0aW9uIG9yZGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvd0dyb3VwRmllbGRzPFQ+KGNvbHVtbnM6IHJlYWRvbmx5IE9uZUNvbHVtbkRlZjxUPltdKTogc3RyaW5nW10ge1xuXG4gIHJldHVybiAoY29sdW1ucyA/PyBbXSlcbiAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4ucm93R3JvdXAgJiYgY29sdW1uLmZpZWxkKVxuICAgIC5tYXAoY29sdW1uID0+IGNvbHVtbi5maWVsZCBhcyBzdHJpbmcpO1xufVxuXG4vKiogVGhlIGBhZ2dGdW5jYCBjb2x1bW5zIG9mIGEgY29sdW1uIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZ2dDb2x1bW5zPFQ+KGNvbHVtbnM6IHJlYWRvbmx5IE9uZUNvbHVtbkRlZjxUPltdKTogT25lQWdnQ29sdW1uPFQ+W10ge1xuXG4gIHJldHVybiAoY29sdW1ucyA/PyBbXSlcbiAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uYWdnRnVuYyAmJiBjb2x1bW4uZmllbGQpXG4gICAgLm1hcChjb2x1bW4gPT4gKHsgZmllbGQ6IGNvbHVtbi5maWVsZCBhcyBzdHJpbmcsIGFnZ0Z1bmM6IGNvbHVtbi5hZ2dGdW5jIH0pKTtcbn1cblxuLyoqXG4gKiBGb2xkIGZsYXQgcm93cyBpbnRvIGEgdHJlZSBvZiBzeW50aGV0aWMgZ3JvdXAgcm93cywgb25lIGxldmVsIHBlciBncm91cFxuICogZmllbGQsIGluIGZpcnN0LWFwcGVhcmFuY2Ugb3JkZXIuIEVhY2ggZ3JvdXAgcm93IGNhcnJpZXM6XG4gKlxuICogLSB0aGUgbWFya2VyLCBpZCBhbmQgbGFiZWwgZmllbGRzIGFib3ZlO1xuICogLSBpdHMgb3duIGdyb3VwZWQgZmllbGQncyB2YWx1ZSwgc28gc29ydGluZyBhbmQgZmlsdGVyaW5nIHJlYWQgaXQgbmF0dXJhbGx5O1xuICogLSBvbmUgYWdncmVnYXRlZCB2YWx1ZSBwZXIgYGFnZ0Z1bmNgIGNvbHVtbiwgY29tcHV0ZWQgb3ZlciB0aGUgZ3JvdXAnc1xuICogICBsZWF2ZXMgKG5vdCBpdHMgY2hpbGQgZ3JvdXBzKSwgc3RvcmVkIHVuZGVyIHRoZSBjb2x1bW4ncyBvd24gZmllbGQgc28gdGhlXG4gKiAgIG9yZGluYXJ5IGNlbGwgcGlwZWxpbmUgcmVuZGVycyBpdC5cbiAqXG4gKiBQdXJlOiB0aGUgaW5wdXQgcm93cyBhcmUgcmVmZXJlbmNlZCwgbmV2ZXIgbXV0YXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3JvdXBlZFJvd3M8VD4oXG4gIHJvd3M6IHJlYWRvbmx5IFRbXSxcbiAgZ3JvdXBGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBhZ2dyZWdhdGlvbnM6IHJlYWRvbmx5IE9uZUFnZ0NvbHVtbjxUPltdID0gW10sXG4pOiBhbnlbXSB7XG5cbiAgaWYgKCFncm91cEZpZWxkcz8ubGVuZ3RoKSByZXR1cm4gWy4uLihyb3dzID8/IFtdKV07XG5cbiAgcmV0dXJuIGdyb3VwTGV2ZWwocm93cyA/PyBbXSwgZ3JvdXBGaWVsZHMsIDAsIGFnZ3JlZ2F0aW9ucywgJ29nLWdyb3VwJyk7XG59XG5cbmZ1bmN0aW9uIGdyb3VwTGV2ZWw8VD4oXG4gIHJvd3M6IHJlYWRvbmx5IFRbXSxcbiAgZ3JvdXBGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuICBsZXZlbDogbnVtYmVyLFxuICBhZ2dyZWdhdGlvbnM6IHJlYWRvbmx5IE9uZUFnZ0NvbHVtbjxUPltdLFxuICBpZFByZWZpeDogc3RyaW5nLFxuKTogYW55W10ge1xuXG4gIGNvbnN0IGZpZWxkID0gZ3JvdXBGaWVsZHNbbGV2ZWxdO1xuXG4gIC8vIEluc2VydGlvbi1vcmRlcmVkIGJ1Y2tldHMsIGtleWVkIGJ5IHRoZSB2YWx1ZSdzIHN0cmluZyBmb3JtLiBUaGUgcmF3XG4gIC8vIHZhbHVlIGlzIGtlcHQgYXMgd2VsbCwgc28gdGhlIGdyb3VwIHJvdyBleHBvc2VzIHRoZSByZWFsIHZhbHVlIHVuZGVyIHRoZVxuICAvLyBncm91cGVkIGZpZWxkLCBub3QgaXRzIHN0cmluZ2lmaWNhdGlvbi5cbiAgY29uc3QgYnVja2V0cyA9IG5ldyBNYXA8c3RyaW5nLCB7IHZhbHVlOiB1bmtub3duOyByb3dzOiBUW10gfT4oKTtcblxuICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG5cbiAgICBjb25zdCB2YWx1ZSA9IChyb3cgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bZmllbGRdO1xuICAgIGNvbnN0IGtleSA9IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnID8gT05FX0dST1VQX0JMQU5LX0xBQkVMIDogU3RyaW5nKHZhbHVlKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHMuZ2V0KGtleSk7XG5cbiAgICBpZiAoYnVja2V0KSB7XG5cbiAgICAgIGJ1Y2tldC5yb3dzLnB1c2gocm93KTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIGJ1Y2tldHMuc2V0KGtleSwgeyB2YWx1ZSwgcm93czogW3Jvd10gfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFsuLi5idWNrZXRzLmVudHJpZXMoKV0ubWFwKChba2V5LCBidWNrZXRdKSA9PiB7XG5cbiAgICBjb25zdCBpZCA9IGAke2lkUHJlZml4fToke2tleX1gO1xuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBsZXZlbCArIDEgPCBncm91cEZpZWxkcy5sZW5ndGhcbiAgICAgID8gZ3JvdXBMZXZlbChidWNrZXQucm93cywgZ3JvdXBGaWVsZHMsIGxldmVsICsgMSwgYWdncmVnYXRpb25zLCBpZClcbiAgICAgIDogYnVja2V0LnJvd3M7XG5cbiAgICBjb25zdCBncm91cFJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBbT05FX0dST1VQX0ZMQUddOiB0cnVlLFxuICAgICAgW09ORV9HUk9VUF9JRF9GSUVMRF06IGlkLFxuICAgICAgW09ORV9HUk9VUF9WQUxVRV9GSUVMRF06IGtleSxcbiAgICAgIFtmaWVsZF06IGJ1Y2tldC52YWx1ZSxcbiAgICAgIFtPTkVfR1JPVVBfQ0hJTERSRU5fRklFTERdOiBjaGlsZHJlbixcbiAgICB9O1xuXG4gICAgLy8gQWdncmVnYXRlcyBhbHdheXMgcmVhZCB0aGUgb3JpZ2luYWwgbGVhdmVzLCBzbyBhIHR3by1sZXZlbCBncm91cCdzXG4gICAgLy8gcGFyZW50IGlzIG5vdCBhdmVyYWdpbmcgYXZlcmFnZXMuXG4gICAgZm9yIChjb25zdCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnMpIHtcblxuICAgICAgZ3JvdXBSb3dbYWdncmVnYXRpb24uZmllbGRdID0gYWdncmVnYXRlKGJ1Y2tldC5yb3dzLCBhZ2dyZWdhdGlvbi5maWVsZCwgYWdncmVnYXRpb24uYWdnRnVuYyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwUm93O1xuICB9KTtcbn1cblxuLyoqIEFwcGx5IG9uZSBhZ2dyZWdhdGlvbiBvdmVyIGEgc2V0IG9mIGxlYWYgcm93cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZ2dyZWdhdGU8VD4ocm93czogcmVhZG9ubHkgVFtdLCBmaWVsZDogc3RyaW5nLCBhZ2dGdW5jOiBPbmVBZ2dGdW5jPFQ+KTogYW55IHtcblxuICBjb25zdCB2YWx1ZXMgPSByb3dzXG4gICAgLm1hcChyb3cgPT4gKHJvdyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LltmaWVsZF0pXG4gICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGFnZ0Z1bmMgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIHJldHVybiBhZ2dGdW5jKHsgdmFsdWVzLCByb3dzOiByb3dzIGFzIFRbXSwgZmllbGQgfSBhcyBPbmVBZ2dGdW5jUGFyYW1zPFQ+KTtcbiAgfVxuXG4gIHN3aXRjaCAoYWdnRnVuYykge1xuXG4gICAgY2FzZSAnY291bnQnOiByZXR1cm4gdmFsdWVzLmxlbmd0aDtcblxuICAgIGNhc2UgJ2ZpcnN0JzogcmV0dXJuIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXNbMF0gOiBudWxsO1xuXG4gICAgY2FzZSAnbGFzdCc6IHJldHVybiB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cblxuICAvLyBUaGUgbnVtZXJpYyBhZ2dyZWdhdGVzIGlnbm9yZSB3aGF0IGRvZXMgbm90IHBhcnNlLCBzbyBvbmUgc3RyYXkgc3RyaW5nIGluXG4gIC8vIGEgY29sdW1uIGRvZXMgbm90IHR1cm4gdGhlIHdob2xlIGdyb3VwJ3MgdG90YWwgaW50byBOYU4uXG4gIGNvbnN0IG51bWJlcnMgPSB2YWx1ZXMubWFwKE51bWJlcikuZmlsdGVyKE51bWJlci5pc0Zpbml0ZSk7XG5cbiAgaWYgKCFudW1iZXJzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgc3dpdGNoIChhZ2dGdW5jKSB7XG5cbiAgICBjYXNlICdzdW0nOiByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKHRvdGFsLCB2YWx1ZSkgPT4gdG90YWwgKyB2YWx1ZSwgMCk7XG5cbiAgICBjYXNlICdtaW4nOiByZXR1cm4gTWF0aC5taW4oLi4ubnVtYmVycyk7XG5cbiAgICBjYXNlICdtYXgnOiByZXR1cm4gTWF0aC5tYXgoLi4ubnVtYmVycyk7XG5cbiAgICBjYXNlICdhdmcnOiByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKHRvdGFsLCB2YWx1ZSkgPT4gdG90YWwgKyB2YWx1ZSwgMCkgLyBudW1iZXJzLmxlbmd0aDtcblxuICAgIGRlZmF1bHQ6IHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,6 @@
1
1
  export * from './helpers/one-column-def.helper';
2
+ export * from './helpers/one-csv.helper';
3
+ export * from './helpers/one-row-grouping.helper';
2
4
  export * from './helpers/one-validation.helper';
3
5
  export * from './core/instants/one-grid-api.class';
4
6
  export * from './core/instants/one-row-node.class';
@@ -23,4 +25,4 @@ export * from './components/one-grid/one-grid.component';
23
25
  export * from './components/one-grid-status/one-grid-status.component';
24
26
  export * from './components/one-grid-cell-currency/one-grid-cell-currency.component';
25
27
  export * from './one-grid.module';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvb25lLWNvbHVtbi1kZWYuaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9vbmUtdmFsaWRhdGlvbi5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2luc3RhbnRzL29uZS1ncmlkLWFwaS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1zZWxlY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtZXhwYW5zaW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3NlcnZpY2VzL29uZS1ncmlkLWNlbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtcm93LWRyYWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtdHJlZS1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9jb25zdGFudHMvb25lLXBhZ2luYXRpb24uY29uc3RhbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtbWFzdGVyLWRldGFpbC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1yb3cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtcm93LWRyYWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtZ3JpZC10eXBlcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1wYWdpbmF0aW9uLXR5cGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9tb2RlbHMvb25lLXZhbGlkYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtdHJlZS1kYXRhLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC9vbmUtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkLXN0YXR1cy9vbmUtZ3JpZC1zdGF0dXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1jZWxsLWN1cnJlbmN5L29uZS1ncmlkLWNlbGwtY3VycmVuY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb25lLWdyaWQubW9kdWxlJztcbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmUtZ3JpZC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL29uZS1jb2x1bW4tZGVmLmhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcnMvb25lLWNzdi5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL29uZS1yb3ctZ3JvdXBpbmcuaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycy9vbmUtdmFsaWRhdGlvbi5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2luc3RhbnRzL29uZS1ncmlkLWFwaS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvaW5zdGFudHMvb25lLXJvdy1ub2RlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1zZWxlY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtZXhwYW5zaW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3NlcnZpY2VzL29uZS1ncmlkLWNlbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtcm93LWRyYWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvc2VydmljZXMvb25lLWdyaWQtdHJlZS1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9jb25zdGFudHMvb25lLXBhZ2luYXRpb24uY29uc3RhbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1maWx0ZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtbWFzdGVyLWRldGFpbC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1yb3cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtcm93LWRyYWcubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtZXZlbnQtdHlwZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtZ3JpZC10eXBlcy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvbW9kZWxzL29uZS1wYWdpbmF0aW9uLXR5cGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9tb2RlbHMvb25lLXZhbGlkYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL21vZGVscy9vbmUtdHJlZS1kYXRhLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC9vbmUtZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkLXN0YXR1cy9vbmUtZ3JpZC1zdGF0dXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1jZWxsLWN1cnJlbmN5L29uZS1ncmlkLWNlbGwtY3VycmVuY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb25lLWdyaWQubW9kdWxlJztcbiJdfQ==
@@ -1,133 +1,43 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { OneGridComponent } from './components/one-grid/one-grid.component';
4
- import { OneGridHeaderComponent } from './components/one-grid-header/one-grid-header.component';
5
- import { OneGridBodyComponent } from './components/one-grid-body/one-grid-body.component';
6
- import { OneGridCheckboxComponent } from './components/one-grid-checkbox/one-grid-checkbox.component';
7
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import { OneGridRowActionComponent } from './components/one-grid-row-action/one-grid-row-action.component';
9
- import { OneGridPaginationComponent } from './components/one-grid-pagination/one-grid-pagination.component';
10
- import { OneGridCheckboxHeaderComponent } from './components/one-grid-checkbox-header/one-grid-checkbox-header.component';
11
3
  import { OneGridStatusComponent } from './components/one-grid-status/one-grid-status.component';
12
- import { CellFieldValueEmptyPipe } from './core/pipes/cell-field-value-empty.pipe';
13
- import { CellValueGetterPipe } from './core/pipes/cell-value-getter.pipe';
14
- import { CellFieldValuePipe } from './core/pipes/cell-field-value.pipe';
15
- import { OneGridCellGroupRendererComponent } from './components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component';
16
- import { CellActionButtonVisiblePipe } from './core/pipes/cell-action-button-visible.pipe';
17
- import { CellEditablePipe } from './core/pipes/cell-editable.pipe';
18
- import { CellInvalidPipe } from './core/pipes/cell-invalid.pipe';
19
- import { CellSelectedPipe } from './core/pipes/cell-selected.pipe';
20
- import { CellActionButtonEnablePipe } from './core/pipes/cell-action-button-enable.pipe';
21
- import { CellNumberValuePipe } from './core/pipes/cell-number-value.pipe';
22
- import { CellFieldPipe } from './core/pipes/cell-field.pipe';
23
- import { CellLevelPaddingPipe } from './core/pipes/cell-level-padding.pipe';
24
- import { ColumnSortStatePipe } from './core/pipes/column-sort-state.pipe';
25
- import { HeaderCheckboxDisabledPipe } from './core/pipes/header-checkbox-disabled.pipe';
26
- import { HeaderCheckboxCheckedPipe } from './core/pipes/header-checkbox-checked.pipe';
27
- import { HeaderCheckboxIndeterminatePipe } from './core/pipes/header-checkbox-indeterminate.pipe';
28
- import { CellStateRendererPipe } from './core/pipes/cell-state-renderer.pipe';
29
- import { CellStateGroupRendererPipe } from './core/pipes/cell-state-group-renderer.pipe';
30
- import { OneCellInputValidatorDirective } from './core/directives/one-cell-input-validator.directive';
31
- import { ScrollingModule } from '@angular/cdk/scrolling';
32
- import { OneCellRendererComponentDirective } from './core/directives/one-cell-renderer-component.directive';
33
- import { OneCellTextExpandDirective } from './core/directives/one-cell-text-expand.directive';
34
4
  import { OneGridCellCurrencyComponent } from './components/one-grid-cell-currency/one-grid-cell-currency.component';
35
- import { LucideAngularModule, icons } from 'lucide-angular';
36
- import { OneGridRowDragHandleComponent } from './components/one-grid-row-drag-handle/one-grid-row-drag-handle.component';
37
- import { CellKeyPipe } from './core/pipes/cell-key.pipe';
38
- import { OneGridCellOptionMenuComponent } from './components/one-grid-cell-option-menu/one-grid-cell-option-menu.component';
39
5
  import * as i0 from "@angular/core";
40
- import * as i1 from "lucide-angular";
6
+ /**
7
+ * Compatibility shim.
8
+ *
9
+ * Every component, directive and pipe in the library is standalone, so this
10
+ * module declares nothing — it exists so `imports: [OneGridModule]` keeps
11
+ * working for anyone already on it. New code can import `OneGridComponent`
12
+ * directly instead.
13
+ *
14
+ * Icons no longer need registering here: each component that draws one
15
+ * provides the eight the grid uses, so they travel with the component whichever
16
+ * way it is imported.
17
+ */
41
18
  export class OneGridModule {
42
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, declarations: [OneGridComponent,
44
- OneGridHeaderComponent,
45
- OneGridBodyComponent,
46
- OneGridCheckboxComponent,
47
- OneGridCheckboxHeaderComponent,
48
- OneGridRowActionComponent,
49
- OneGridPaginationComponent,
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, imports: [OneGridComponent,
50
21
  OneGridStatusComponent,
51
- OneGridCellGroupRendererComponent,
52
- CellFieldValueEmptyPipe,
53
- CellValueGetterPipe,
54
- CellFieldValuePipe,
55
- CellActionButtonVisiblePipe,
56
- CellEditablePipe,
57
- CellInvalidPipe,
58
- CellSelectedPipe,
59
- CellActionButtonEnablePipe,
60
- CellNumberValuePipe,
61
- CellFieldPipe,
62
- CellKeyPipe,
63
- CellLevelPaddingPipe,
64
- ColumnSortStatePipe,
65
- HeaderCheckboxDisabledPipe,
66
- HeaderCheckboxCheckedPipe,
67
- HeaderCheckboxIndeterminatePipe,
68
- CellStateRendererPipe,
69
- CellStateGroupRendererPipe,
70
- OneCellInputValidatorDirective,
71
- OneCellRendererComponentDirective,
72
- OneCellTextExpandDirective,
73
- OneGridCellCurrencyComponent,
74
- OneGridCellOptionMenuComponent,
75
- OneGridRowDragHandleComponent], imports: [CommonModule,
76
- FormsModule,
77
- ScrollingModule,
78
- ReactiveFormsModule, i1.LucideAngularModule], exports: [OneGridComponent] }); }
79
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, imports: [CommonModule,
80
- FormsModule,
81
- ScrollingModule,
82
- ReactiveFormsModule,
83
- LucideAngularModule.pick(icons)] }); }
22
+ OneGridCellCurrencyComponent], exports: [OneGridComponent,
23
+ OneGridStatusComponent,
24
+ OneGridCellCurrencyComponent] }); }
25
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, imports: [OneGridComponent,
26
+ OneGridCellCurrencyComponent] }); }
84
27
  }
85
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridModule, decorators: [{
86
29
  type: NgModule,
87
30
  args: [{
88
- declarations: [
31
+ imports: [
89
32
  OneGridComponent,
90
- OneGridHeaderComponent,
91
- OneGridBodyComponent,
92
- OneGridCheckboxComponent,
93
- OneGridCheckboxHeaderComponent,
94
- OneGridRowActionComponent,
95
- OneGridPaginationComponent,
96
33
  OneGridStatusComponent,
97
- OneGridCellGroupRendererComponent,
98
- CellFieldValueEmptyPipe,
99
- CellValueGetterPipe,
100
- CellFieldValuePipe,
101
- CellActionButtonVisiblePipe,
102
- CellEditablePipe,
103
- CellInvalidPipe,
104
- CellSelectedPipe,
105
- CellActionButtonEnablePipe,
106
- CellNumberValuePipe,
107
- CellFieldPipe,
108
- CellKeyPipe,
109
- CellLevelPaddingPipe,
110
- ColumnSortStatePipe,
111
- HeaderCheckboxDisabledPipe,
112
- HeaderCheckboxCheckedPipe,
113
- HeaderCheckboxIndeterminatePipe,
114
- CellStateRendererPipe,
115
- CellStateGroupRendererPipe,
116
- OneCellInputValidatorDirective,
117
- OneCellRendererComponentDirective,
118
- OneCellTextExpandDirective,
119
34
  OneGridCellCurrencyComponent,
120
- OneGridCellOptionMenuComponent,
121
- OneGridRowDragHandleComponent
122
35
  ],
123
- imports: [
124
- CommonModule,
125
- FormsModule,
126
- ScrollingModule,
127
- ReactiveFormsModule,
128
- LucideAngularModule.pick(icons),
36
+ exports: [
37
+ OneGridComponent,
38
+ OneGridStatusComponent,
39
+ OneGridCellCurrencyComponent,
129
40
  ],
130
- exports: [OneGridComponent]
131
41
  }]
132
42
  }] });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9vbmUtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzFILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQ3JJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEVBQTRFLENBQUM7OztBQStDNUgsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLGlCQTNDdEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QixvQkFBb0I7WUFDcEIsd0JBQXdCO1lBQ3hCLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixpQ0FBaUM7WUFDakMsdUJBQXVCO1lBQ3ZCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsMkJBQTJCO1lBQzNCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLDBCQUEwQjtZQUMxQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLFdBQVc7WUFDWCxvQkFBb0I7WUFDcEIsbUJBQW1CO1lBQ25CLDBCQUEwQjtZQUMxQix5QkFBeUI7WUFDekIsK0JBQStCO1lBQy9CLHFCQUFxQjtZQUNyQiwwQkFBMEI7WUFDMUIsOEJBQThCO1lBQzlCLGlDQUFpQztZQUNqQywwQkFBMEI7WUFDMUIsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5Qiw2QkFBNkIsYUFHN0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxlQUFlO1lBQ2YsbUJBQW1CLHFDQUdYLGdCQUFnQjtnSEFFZixhQUFhLFlBUnRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs0RkFJdEIsYUFBYTtrQkE3Q3pCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsOEJBQThCO3dCQUM5Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0QixpQ0FBaUM7d0JBQ2pDLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLDJCQUEyQjt3QkFDM0IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLCtCQUErQjt3QkFDL0IscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLDhCQUE4Qjt3QkFDOUIsaUNBQWlDO3dCQUNqQywwQkFBMEI7d0JBQzFCLDRCQUE0Qjt3QkFDNUIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7cUJBQ2hDO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT25lR3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC9vbmUtZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1oZWFkZXIvb25lLWdyaWQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVHcmlkQm9keUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1ib2R5L29uZS1ncmlkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZUdyaWRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1jaGVja2JveC9vbmUtZ3JpZC1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPbmVHcmlkUm93QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkLXJvdy1hY3Rpb24vb25lLWdyaWQtcm93LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lR3JpZFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb25lLWdyaWQtcGFnaW5hdGlvbi9vbmUtZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVHcmlkQ2hlY2tib3hIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb25lLWdyaWQtY2hlY2tib3gtaGVhZGVyL29uZS1ncmlkLWNoZWNrYm94LWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lR3JpZFN0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1zdGF0dXMvb25lLWdyaWQtc3RhdHVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsRmllbGRWYWx1ZUVtcHR5UGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLWZpZWxkLXZhbHVlLWVtcHR5LnBpcGUnO1xuaW1wb3J0IHsgQ2VsbFZhbHVlR2V0dGVyUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLXZhbHVlLWdldHRlci5waXBlJztcbmltcG9ydCB7IENlbGxGaWVsZFZhbHVlUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLWZpZWxkLXZhbHVlLnBpcGUnO1xuaW1wb3J0IHsgT25lR3JpZENlbGxHcm91cFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkLWNlbGwtZ3JvdXAtcmVuZGVyZXIvb25lLWdyaWQtY2VsbC1ncm91cC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEFjdGlvbkJ1dHRvblZpc2libGVQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2NlbGwtYWN0aW9uLWJ1dHRvbi12aXNpYmxlLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbEVkaXRhYmxlUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLWVkaXRhYmxlLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbEludmFsaWRQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2NlbGwtaW52YWxpZC5waXBlJztcbmltcG9ydCB7IENlbGxTZWxlY3RlZFBpcGUgfSBmcm9tICcuL2NvcmUvcGlwZXMvY2VsbC1zZWxlY3RlZC5waXBlJztcbmltcG9ydCB7IENlbGxBY3Rpb25CdXR0b25FbmFibGVQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2NlbGwtYWN0aW9uLWJ1dHRvbi1lbmFibGUucGlwZSc7XG5pbXBvcnQgeyBDZWxsTnVtYmVyVmFsdWVQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2NlbGwtbnVtYmVyLXZhbHVlLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbEZpZWxkUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLWZpZWxkLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbExldmVsUGFkZGluZ1BpcGUgfSBmcm9tICcuL2NvcmUvcGlwZXMvY2VsbC1sZXZlbC1wYWRkaW5nLnBpcGUnO1xuaW1wb3J0IHsgQ29sdW1uU29ydFN0YXRlUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jb2x1bW4tc29ydC1zdGF0ZS5waXBlJztcbmltcG9ydCB7IEhlYWRlckNoZWNrYm94RGlzYWJsZWRQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2hlYWRlci1jaGVja2JveC1kaXNhYmxlZC5waXBlJztcbmltcG9ydCB7IEhlYWRlckNoZWNrYm94Q2hlY2tlZFBpcGUgfSBmcm9tICcuL2NvcmUvcGlwZXMvaGVhZGVyLWNoZWNrYm94LWNoZWNrZWQucGlwZSc7XG5pbXBvcnQgeyBIZWFkZXJDaGVja2JveEluZGV0ZXJtaW5hdGVQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2hlYWRlci1jaGVja2JveC1pbmRldGVybWluYXRlLnBpcGUnO1xuaW1wb3J0IHsgQ2VsbFN0YXRlUmVuZGVyZXJQaXBlIH0gZnJvbSAnLi9jb3JlL3BpcGVzL2NlbGwtc3RhdGUtcmVuZGVyZXIucGlwZSc7XG5pbXBvcnQgeyBDZWxsU3RhdGVHcm91cFJlbmRlcmVyUGlwZSB9IGZyb20gJy4vY29yZS9waXBlcy9jZWxsLXN0YXRlLWdyb3VwLXJlbmRlcmVyLnBpcGUnO1xuaW1wb3J0IHsgT25lQ2VsbElucHV0VmFsaWRhdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2RpcmVjdGl2ZXMvb25lLWNlbGwtaW5wdXQtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudERpcmVjdGl2ZSB9IGZyb20gJy4vY29yZS9kaXJlY3RpdmVzL29uZS1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT25lQ2VsbFRleHRFeHBhbmREaXJlY3RpdmUgfSBmcm9tICcuL2NvcmUvZGlyZWN0aXZlcy9vbmUtY2VsbC10ZXh0LWV4cGFuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT25lR3JpZENlbGxDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vbmUtZ3JpZC1jZWxsLWN1cnJlbmN5L29uZS1ncmlkLWNlbGwtY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IEx1Y2lkZUFuZ3VsYXJNb2R1bGUsIGljb25zIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgT25lR3JpZFJvd0RyYWdIYW5kbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb25lLWdyaWQtcm93LWRyYWctaGFuZGxlL29uZS1ncmlkLXJvdy1kcmFnLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2VsbEtleVBpcGUgfSBmcm9tICcuL2NvcmUvcGlwZXMvY2VsbC1rZXkucGlwZSc7XG5pbXBvcnQgeyBPbmVHcmlkQ2VsbE9wdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb25lLWdyaWQtY2VsbC1vcHRpb24tbWVudS9vbmUtZ3JpZC1jZWxsLW9wdGlvbi1tZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE9uZUdyaWRDb21wb25lbnQsXG4gICAgT25lR3JpZEhlYWRlckNvbXBvbmVudCxcbiAgICBPbmVHcmlkQm9keUNvbXBvbmVudCxcbiAgICBPbmVHcmlkQ2hlY2tib3hDb21wb25lbnQsXG4gICAgT25lR3JpZENoZWNrYm94SGVhZGVyQ29tcG9uZW50LFxuICAgIE9uZUdyaWRSb3dBY3Rpb25Db21wb25lbnQsXG4gICAgT25lR3JpZFBhZ2luYXRpb25Db21wb25lbnQsXG4gICAgT25lR3JpZFN0YXR1c0NvbXBvbmVudCxcbiAgICBPbmVHcmlkQ2VsbEdyb3VwUmVuZGVyZXJDb21wb25lbnQsXG4gICAgQ2VsbEZpZWxkVmFsdWVFbXB0eVBpcGUsXG4gICAgQ2VsbFZhbHVlR2V0dGVyUGlwZSxcbiAgICBDZWxsRmllbGRWYWx1ZVBpcGUsXG4gICAgQ2VsbEFjdGlvbkJ1dHRvblZpc2libGVQaXBlLFxuICAgIENlbGxFZGl0YWJsZVBpcGUsXG4gICAgQ2VsbEludmFsaWRQaXBlLFxuICAgIENlbGxTZWxlY3RlZFBpcGUsXG4gICAgQ2VsbEFjdGlvbkJ1dHRvbkVuYWJsZVBpcGUsXG4gICAgQ2VsbE51bWJlclZhbHVlUGlwZSxcbiAgICBDZWxsRmllbGRQaXBlLFxuICAgIENlbGxLZXlQaXBlLFxuICAgIENlbGxMZXZlbFBhZGRpbmdQaXBlLFxuICAgIENvbHVtblNvcnRTdGF0ZVBpcGUsXG4gICAgSGVhZGVyQ2hlY2tib3hEaXNhYmxlZFBpcGUsXG4gICAgSGVhZGVyQ2hlY2tib3hDaGVja2VkUGlwZSxcbiAgICBIZWFkZXJDaGVja2JveEluZGV0ZXJtaW5hdGVQaXBlLFxuICAgIENlbGxTdGF0ZVJlbmRlcmVyUGlwZSxcbiAgICBDZWxsU3RhdGVHcm91cFJlbmRlcmVyUGlwZSxcbiAgICBPbmVDZWxsSW5wdXRWYWxpZGF0b3JEaXJlY3RpdmUsXG4gICAgT25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50RGlyZWN0aXZlLFxuICAgIE9uZUNlbGxUZXh0RXhwYW5kRGlyZWN0aXZlLFxuICAgIE9uZUdyaWRDZWxsQ3VycmVuY3lDb21wb25lbnQsXG4gICAgT25lR3JpZENlbGxPcHRpb25NZW51Q29tcG9uZW50LFxuICAgIE9uZUdyaWRSb3dEcmFnSGFuZGxlQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTHVjaWRlQW5ndWxhck1vZHVsZS5waWNrKGljb25zKSxcbiAgXSxcbiAgZXhwb3J0czogW09uZUdyaWRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRNb2R1bGUgeyB9XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9vbmUtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQzs7QUFFcEg7Ozs7Ozs7Ozs7O0dBV0c7QUFhSCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsWUFWdEIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0Qiw0QkFBNEIsYUFHNUIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0Qiw0QkFBNEI7Z0hBR25CLGFBQWEsWUFWdEIsZ0JBQWdCO1lBRWhCLDRCQUE0Qjs7NEZBUW5CLGFBQWE7a0JBWnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7cUJBQzdCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3FCQUM3QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkL29uZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVHcmlkU3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29uZS1ncmlkLXN0YXR1cy9vbmUtZ3JpZC1zdGF0dXMuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZUdyaWRDZWxsQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb25lLWdyaWQtY2VsbC1jdXJyZW5jeS9vbmUtZ3JpZC1jZWxsLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ29tcGF0aWJpbGl0eSBzaGltLlxuICpcbiAqIEV2ZXJ5IGNvbXBvbmVudCwgZGlyZWN0aXZlIGFuZCBwaXBlIGluIHRoZSBsaWJyYXJ5IGlzIHN0YW5kYWxvbmUsIHNvIHRoaXNcbiAqIG1vZHVsZSBkZWNsYXJlcyBub3RoaW5nIOKAlCBpdCBleGlzdHMgc28gYGltcG9ydHM6IFtPbmVHcmlkTW9kdWxlXWAga2VlcHNcbiAqIHdvcmtpbmcgZm9yIGFueW9uZSBhbHJlYWR5IG9uIGl0LiBOZXcgY29kZSBjYW4gaW1wb3J0IGBPbmVHcmlkQ29tcG9uZW50YFxuICogZGlyZWN0bHkgaW5zdGVhZC5cbiAqXG4gKiBJY29ucyBubyBsb25nZXIgbmVlZCByZWdpc3RlcmluZyBoZXJlOiBlYWNoIGNvbXBvbmVudCB0aGF0IGRyYXdzIG9uZVxuICogcHJvdmlkZXMgdGhlIGVpZ2h0IHRoZSBncmlkIHVzZXMsIHNvIHRoZXkgdHJhdmVsIHdpdGggdGhlIGNvbXBvbmVudCB3aGljaGV2ZXJcbiAqIHdheSBpdCBpcyBpbXBvcnRlZC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE9uZUdyaWRDb21wb25lbnQsXG4gICAgT25lR3JpZFN0YXR1c0NvbXBvbmVudCxcbiAgICBPbmVHcmlkQ2VsbEN1cnJlbmN5Q29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgT25lR3JpZENvbXBvbmVudCxcbiAgICBPbmVHcmlkU3RhdHVzQ29tcG9uZW50LFxuICAgIE9uZUdyaWRDZWxsQ3VycmVuY3lDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9uZUdyaWRNb2R1bGUgeyB9XG4iXX0=