@elliemae/ds-data-table 3.33.1 → 3.34.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +3 -2
  2. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  3. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  4. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +3 -2
  5. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +3 -3
  6. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  7. package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
  8. package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +2 -2
  9. package/dist/cjs/addons/Editables/index.js.map +2 -2
  10. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +12 -3
  11. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  12. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +4 -2
  13. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  14. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js +12 -3
  15. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  16. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +5 -2
  17. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
  18. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +5 -2
  19. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
  20. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +5 -2
  21. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
  22. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +5 -2
  23. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  24. package/dist/cjs/configs/constants.js.map +1 -1
  25. package/dist/cjs/configs/useStore/index.js +13 -2
  26. package/dist/cjs/configs/useStore/index.js.map +2 -2
  27. package/dist/cjs/configs/useStore/useStore.js.map +1 -1
  28. package/dist/cjs/exported-related/EditableCell.js +2 -1
  29. package/dist/cjs/exported-related/EditableCell.js.map +2 -2
  30. package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +6 -2
  31. package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js.map +2 -2
  32. package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js +23 -1
  33. package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js.map +2 -2
  34. package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js +26 -3
  35. package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js.map +2 -2
  36. package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js +26 -2
  37. package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js.map +2 -2
  38. package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js +23 -10
  39. package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js.map +2 -2
  40. package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js +27 -3
  41. package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js.map +2 -2
  42. package/dist/cjs/exported-related/Filters/singleDateFilterFn.js +11 -1
  43. package/dist/cjs/exported-related/Filters/singleDateFilterFn.js.map +2 -2
  44. package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js +28 -9
  45. package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js.map +2 -2
  46. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +11 -1
  47. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  48. package/dist/cjs/index.js +26 -3
  49. package/dist/cjs/index.js.map +2 -2
  50. package/dist/cjs/parts/Cells/CellFactory.js +107 -0
  51. package/dist/cjs/parts/Cells/CellFactory.js.map +7 -0
  52. package/dist/cjs/parts/Cells/index.js +15 -7
  53. package/dist/cjs/parts/Cells/index.js.map +2 -2
  54. package/dist/cjs/parts/DnDHandle.js +1 -1
  55. package/dist/cjs/parts/DnDHandle.js.map +2 -2
  56. package/dist/cjs/parts/Filters/index.js +3 -1
  57. package/dist/cjs/parts/Filters/index.js.map +2 -2
  58. package/dist/cjs/parts/Headers/HeaderCell.js +6 -4
  59. package/dist/cjs/parts/Headers/HeaderCell.js.map +2 -2
  60. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +1 -1
  61. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +11 -5
  62. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  63. package/dist/cjs/react-desc-prop-types.js +7 -4
  64. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  65. package/dist/cjs/types/FunctionalHoC.js.map +1 -1
  66. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +3 -2
  67. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +2 -2
  68. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +2 -2
  69. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +3 -2
  70. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  71. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  72. package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +2 -2
  73. package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +2 -2
  74. package/dist/esm/addons/Editables/index.js.map +2 -2
  75. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +12 -3
  76. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  77. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js +4 -2
  78. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  79. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js +12 -3
  80. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  81. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +5 -2
  82. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +2 -2
  83. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +5 -2
  84. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +2 -2
  85. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +5 -2
  86. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +2 -2
  87. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +5 -2
  88. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +2 -2
  89. package/dist/esm/configs/constants.js.map +1 -1
  90. package/dist/esm/configs/useStore/index.js +9 -1
  91. package/dist/esm/configs/useStore/index.js.map +2 -2
  92. package/dist/esm/configs/useStore/useStore.js.map +1 -1
  93. package/dist/esm/exported-related/EditableCell.js +2 -1
  94. package/dist/esm/exported-related/EditableCell.js.map +2 -2
  95. package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +6 -2
  96. package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js.map +2 -2
  97. package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js +23 -1
  98. package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js.map +2 -2
  99. package/dist/esm/exported-related/Filters/dateRangeFilterFn.js +26 -3
  100. package/dist/esm/exported-related/Filters/dateRangeFilterFn.js.map +2 -2
  101. package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js +26 -2
  102. package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js.map +2 -2
  103. package/dist/esm/exported-related/Filters/multiSelectFilterFn.js +23 -10
  104. package/dist/esm/exported-related/Filters/multiSelectFilterFn.js.map +2 -2
  105. package/dist/esm/exported-related/Filters/numberRangeFilterFn.js +27 -3
  106. package/dist/esm/exported-related/Filters/numberRangeFilterFn.js.map +2 -2
  107. package/dist/esm/exported-related/Filters/singleDateFilterFn.js +11 -1
  108. package/dist/esm/exported-related/Filters/singleDateFilterFn.js.map +2 -2
  109. package/dist/esm/exported-related/Filters/singleSelectFilterFn.js +28 -9
  110. package/dist/esm/exported-related/Filters/singleSelectFilterFn.js.map +2 -2
  111. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +11 -1
  112. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +2 -2
  113. package/dist/esm/index.js +52 -2
  114. package/dist/esm/index.js.map +2 -2
  115. package/dist/esm/parts/Cells/CellFactory.js +77 -0
  116. package/dist/esm/parts/Cells/CellFactory.js.map +7 -0
  117. package/dist/esm/parts/Cells/index.js +15 -7
  118. package/dist/esm/parts/Cells/index.js.map +2 -2
  119. package/dist/esm/parts/DnDHandle.js +1 -1
  120. package/dist/esm/parts/DnDHandle.js.map +2 -2
  121. package/dist/esm/parts/Filters/index.js +4 -2
  122. package/dist/esm/parts/Filters/index.js.map +2 -2
  123. package/dist/esm/parts/Headers/HeaderCell.js +6 -4
  124. package/dist/esm/parts/Headers/HeaderCell.js.map +2 -2
  125. package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +1 -1
  126. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +11 -6
  127. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  128. package/dist/esm/react-desc-prop-types.js +7 -4
  129. package/dist/esm/react-desc-prop-types.js.map +2 -2
  130. package/dist/types/addons/Columns/ColumnDragHandle/ColumnDragHandle.d.ts +1 -1
  131. package/dist/types/addons/Columns/ColumnExpand/ColumnExpand.d.ts +1 -1
  132. package/dist/types/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.d.ts +1 -1
  133. package/dist/types/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.d.ts +1 -1
  134. package/dist/types/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.d.ts +1 -5
  135. package/dist/types/addons/Editables/TextEditableCell/TextEditableCell.d.ts +1 -5
  136. package/dist/types/addons/Editables/index.d.ts +2 -1
  137. package/dist/types/configs/constants.d.ts +33 -33
  138. package/dist/types/configs/useStore/index.d.ts +1 -1
  139. package/dist/types/configs/useStore/useStore.d.ts +1 -1
  140. package/dist/types/exported-related/Filters/currencyRangeFilterFn.d.ts +4 -3
  141. package/dist/types/exported-related/Filters/dateRangeFilterFn.d.ts +2 -5
  142. package/dist/types/exported-related/Filters/dateSwitcherFilterFn.d.ts +4 -3
  143. package/dist/types/exported-related/Filters/multiSelectFilterFn.d.ts +4 -3
  144. package/dist/types/exported-related/Filters/numberRangeFilterFn.d.ts +6 -5
  145. package/dist/types/exported-related/Filters/singleDateFilterFn.d.ts +3 -2
  146. package/dist/types/exported-related/Filters/singleSelectFilterFn.d.ts +4 -3
  147. package/dist/types/index.d.ts +2 -2
  148. package/dist/types/parts/Cells/{Cell.d.ts → CellFactory.d.ts} +3 -3
  149. package/dist/types/parts/Headers/index.d.ts +1 -1
  150. package/dist/types/parts/Rows.d.ts +1 -1
  151. package/dist/types/react-desc-prop-types.d.ts +81 -36
  152. package/dist/types/styled.d.ts +1 -1
  153. package/dist/types/tests/a11y/internally-printed-ids.A11y.test.d.ts +1 -0
  154. package/dist/types/types/FunctionalHoC.d.ts +1 -1
  155. package/package.json +30 -566
  156. package/dist/cjs/exported-related/Filters/types.js +0 -28
  157. package/dist/cjs/exported-related/Filters/types.js.map +0 -7
  158. package/dist/cjs/parts/Cells/Cell.js +0 -108
  159. package/dist/cjs/parts/Cells/Cell.js.map +0 -7
  160. package/dist/esm/exported-related/Filters/types.js +0 -2
  161. package/dist/esm/exported-related/Filters/types.js.map +0 -7
  162. package/dist/esm/parts/Cells/Cell.js +0 -78
  163. package/dist/esm/parts/Cells/Cell.js.map +0 -7
  164. package/dist/types/exported-related/Filters/types.d.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/MultiCreatableFilter.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype MultiCreatableFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const MultiCreatableFilter: React.ComponentType<DSDataTableT.FilterProps<MultiCreatableFilterValue>> = ({\n column,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n filterValue={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkBrB;AAfF,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,uBAAiG,CAAC;AAAA,EAC7G;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAS;AAAA,IACT;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB,SAAO;AAAA,IACP;AAAA,IACA,aAAa,eAAe,CAAC;AAAA,IAC7B,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
4
+ "sourcesContent": ["import React from 'react';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport { uid } from 'uid';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype MultiCreatableFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const MultiCreatableFilter: React.ComponentType<DSDataTableT.FilterProps<MultiCreatableFilterValue>> = ({\n column,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n domIdAffix = uid(4),\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n filterValue={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n domIdAffix={domIdAffix}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoBrB;AAlBF,iBAAoB;AAEpB,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,uBAAiG,CAAC;AAAA,EAC7G;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gBAAI,CAAC;AACpB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAS;AAAA,IACT;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB,SAAO;AAAA,IACP;AAAA,IACA,aAAa,eAAe,CAAC;AAAA,IAC7B,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
6
6
  "names": []
7
7
  }
@@ -33,6 +33,7 @@ __export(MultiSelectFilter_exports, {
33
33
  module.exports = __toCommonJS(MultiSelectFilter_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_uid = require("uid");
36
37
  var import_BaseSelectFilter = require("./BaseSelectFilter.js");
37
38
  var import_exported_related = require("../../../../exported-related/index.js");
38
39
  var import_constants = require("../../../../configs/constants.js");
@@ -43,7 +44,8 @@ const MultiSelectFilter = ({
43
44
  patchHeader,
44
45
  reduxHeader,
45
46
  filterValue,
46
- innerRef
47
+ innerRef,
48
+ domIdAffix = (0, import_uid.uid)(4)
47
49
  }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
50
  import_BaseSelectFilter.BaseSelectFilter,
49
51
  {
@@ -56,7 +58,8 @@ const MultiSelectFilter = ({
56
58
  onValueChange,
57
59
  patchHeaderFilterButtonAndMenu,
58
60
  patchHeader,
59
- innerRef
61
+ innerRef,
62
+ domIdAffix
60
63
  }
61
64
  );
62
65
  //# sourceMappingURL=MultiSelectFilter.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/MultiSelectFilter.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype MultiSelectFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const MultiSelectFilter: React.ComponentType<DSDataTableT.FilterProps<MultiSelectFilterValue>> = ({\n column,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n filterValue={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkBrB;AAfF,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,oBAA2F,CAAC;AAAA,EACvG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB,SAAO;AAAA,IACP;AAAA,IACA,aAAa,eAAe,CAAC;AAAA,IAC7B,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
4
+ "sourcesContent": ["import React from 'react';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport { uid } from 'uid';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype MultiSelectFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const MultiSelectFilter: React.ComponentType<DSDataTableT.FilterProps<MultiSelectFilterValue>> = ({\n column,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n reduxHeader,\n filterValue,\n innerRef,\n domIdAffix = uid(4),\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER}\n isMulti\n column={column}\n filterValue={filterValue ?? []}\n type={FILTER_TYPES.MULTI_SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n domIdAffix={domIdAffix}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoBrB;AAlBF,iBAAoB;AAEpB,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,oBAA2F,CAAC;AAAA,EACvG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gBAAI,CAAC;AACpB,MACE;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB,SAAO;AAAA,IACP;AAAA,IACA,aAAa,eAAe,CAAC;AAAA,IAC7B,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
6
6
  "names": []
7
7
  }
@@ -33,6 +33,7 @@ __export(SingleCreatableFilter_exports, {
33
33
  module.exports = __toCommonJS(SingleCreatableFilter_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_uid = require("uid");
36
37
  var import_BaseSelectFilter = require("./BaseSelectFilter.js");
37
38
  var import_exported_related = require("../../../../exported-related/index.js");
38
39
  var import_constants = require("../../../../configs/constants.js");
@@ -43,7 +44,8 @@ const SingleCreatableFilter = ({
43
44
  onValueChange,
44
45
  filterValue,
45
46
  reduxHeader,
46
- innerRef
47
+ innerRef,
48
+ domIdAffix = (0, import_uid.uid)(4)
47
49
  }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
50
  import_BaseSelectFilter.BaseSelectFilter,
49
51
  {
@@ -56,7 +58,8 @@ const SingleCreatableFilter = ({
56
58
  onValueChange,
57
59
  patchHeaderFilterButtonAndMenu,
58
60
  patchHeader,
59
- innerRef
61
+ innerRef,
62
+ domIdAffix
60
63
  }
61
64
  );
62
65
  //# sourceMappingURL=SingleCreatableFilter.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/SingleCreatableFilter.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype SingleCreatableFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const SingleCreatableFilter: React.ComponentType<DSDataTableT.FilterProps<SingleCreatableFilterValue>> = ({\n column,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n filterValue={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkBrB;AAjBF,8BAAiC;AAGjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,wBAAmG,CAAC;AAAA,EAC/G;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAS;AAAA,IACT;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB;AAAA,IACA;AAAA,IACA,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
4
+ "sourcesContent": ["import React from 'react';\nimport { uid } from 'uid';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype SingleCreatableFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const SingleCreatableFilter: React.ComponentType<DSDataTableT.FilterProps<SingleCreatableFilterValue>> = ({\n column,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n domIdAffix = uid(4),\n}) => (\n <BaseSelectFilter\n creatable\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n filterValue={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n domIdAffix={domIdAffix}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoBrB;AAnBF,iBAAoB;AAEpB,8BAAiC;AAEjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,wBAAmG,CAAC;AAAA,EAC/G;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gBAAI,CAAC;AACpB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAS;AAAA,IACT;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB;AAAA,IACA;AAAA,IACA,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
6
6
  "names": []
7
7
  }
@@ -34,6 +34,7 @@ module.exports = __toCommonJS(SingleSelectFilter_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
36
  var import_BaseSelectFilter = require("./BaseSelectFilter.js");
37
+ var import_uid = require("uid");
37
38
  var import_exported_related = require("../../../../exported-related/index.js");
38
39
  var import_constants = require("../../../../configs/constants.js");
39
40
  const SingleSelectFilter = ({
@@ -43,7 +44,8 @@ const SingleSelectFilter = ({
43
44
  onValueChange,
44
45
  filterValue,
45
46
  reduxHeader,
46
- innerRef
47
+ innerRef,
48
+ domIdAffix = (0, import_uid.uid)(4)
47
49
  }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
50
  import_BaseSelectFilter.BaseSelectFilter,
49
51
  {
@@ -55,7 +57,8 @@ const SingleSelectFilter = ({
55
57
  onValueChange,
56
58
  patchHeaderFilterButtonAndMenu,
57
59
  patchHeader,
58
- innerRef
60
+ innerRef,
61
+ domIdAffix
59
62
  }
60
63
  );
61
64
  //# sourceMappingURL=SingleSelectFilter.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/SingleSelectFilter.tsx", "../../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype SingleSelectFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const SingleSelectFilter: React.ComponentType<DSDataTableT.FilterProps<SingleSelectFilterValue>> = ({\n column,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n filterValue={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADkBrB;AAjBF,8BAAiC;AAGjC,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,qBAA6F,CAAC;AAAA,EACzG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB;AAAA,IACA;AAAA,IACA,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
4
+ "sourcesContent": ["import React from 'react';\nimport { BaseSelectFilter } from './BaseSelectFilter.js';\nimport type { DSComboboxT } from '@elliemae/ds-form-combobox';\nimport { uid } from 'uid';\nimport type { DSDataTableT } from '../../../../react-desc-prop-types.js';\nimport { FILTER_TYPES } from '../../../../exported-related/index.js';\nimport { DATA_TESTID } from '../../../../configs/constants.js';\n\ntype SingleSelectFilterValue = DSComboboxT.SelectedOptionsT;\n\nexport const SingleSelectFilter: React.ComponentType<DSDataTableT.FilterProps<SingleSelectFilterValue>> = ({\n column,\n patchHeaderFilterButtonAndMenu,\n patchHeader,\n onValueChange,\n filterValue,\n reduxHeader,\n innerRef,\n domIdAffix = uid(4),\n}) => (\n <BaseSelectFilter\n reduxHeader={reduxHeader}\n data-testid={DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER}\n column={column}\n filterValue={filterValue}\n type={FILTER_TYPES.SELECT}\n onValueChange={onValueChange}\n patchHeaderFilterButtonAndMenu={patchHeaderFilterButtonAndMenu}\n patchHeader={patchHeader}\n innerRef={innerRef}\n domIdAffix={domIdAffix}\n />\n);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADoBrB;AAnBF,8BAAiC;AAEjC,iBAAoB;AAEpB,8BAA6B;AAC7B,uBAA4B;AAIrB,MAAM,qBAA6F,CAAC;AAAA,EACzG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gBAAI,CAAC;AACpB,MACE;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,eAAa,6BAAY;AAAA,IACzB;AAAA,IACA;AAAA,IACA,MAAM,qCAAa;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/configs/constants.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export const momentFormat = 'MM/DD/YYYY';\nexport const ColsLayoutStyle = {\n Fixed: 'fixed',\n Auto: 'auto',\n} as const;\n\nexport const DropIndicatorPosition = {\n None: 'none',\n Before: 'before',\n After: 'after',\n Inside: 'inside',\n} as const;\n\nexport const DATA_TESTID = {\n DATA_TABLE_WRAPPER: 'data-table-wrapper',\n DATA_TABLE_GLOBAL_EXPAND_CELL: 'data-table-global-expand-cell',\n DATA_TABLE_ICON_ARROW_DOWN: 'ic-arrow-head-down',\n DATA_TABLE_ICON_ARROW_RIGHT: 'ic-arrow-head-right',\n DATA_TABLE_ICON_ARROW_MIXED: 'ic-arrow-head-mixed',\n DATA_TABLE_ICON_CHILD: 'ic-arrow-child',\n DATA_TABLE_GLOBAL_CHECKBOX: 'data-table-global-checkbox',\n DATA_TABLE_CHECKBOX: 'data-table-checkbox',\n DATA_TABLE_RADIO: 'data-table-radio',\n DATA_TABLE_DATE_RANGE_CONTROLLER: 'data-table-date-range',\n DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER: 'data-table-date-range-checkbox-switcher-container',\n DATA_TABLE_SINGLE_DATE_CONTROLLER: 'data-table-single-date',\n DATA_TABLE_NUMBER_RANGE_CONTROLLER: 'data-table-number-range',\n DATA_TABLE_CURRENCY_RANGE_CONTROLLER: 'data-table-currency-range',\n DATA_TABLE_SELECT_MENU_ITEM: 'data-table-filter-menu-list-item',\n DATA_TABLE_MULTISELECT_CONTROLLER: 'data-table-multi-select',\n DATA_TABLE_SINGLESELECT_CONTROLLER: 'data-table-single-select',\n DATA_TABLE_FILTER_BUTTON: 'data-table-filter-menu-button',\n DATA_TABLE_FILTER_MENU_CONTENT: 'data-table-filter-menu-content',\n DATA_TABLE_ROW_CONTENT: 'data-table-row-content',\n DATA_TABLE_ROW: 'data-table-row',\n DATA_TABLE_TOOLBAR_TRIGGER: 'data-table-toolbar-trigger',\n DATA_TABLE_CELL: 'data-table-cell',\n DATA_TABLE_DRAG_HANDLE: 'data-table-drag-handle',\n DATA_TABLE_CONTENT_WRAPPER: 'data-table-content-wrapper',\n DATA_TABLE_TABLE: 'data-table-table',\n DATA_TABLE_SCROLLABLE_CONTAINER: 'data-table-scrollable-container',\n DATA_TABLE_HEADER: 'data-table-header',\n DATA_TABLE_ROW_HEADER_CONTENT: 'data-table-row-header-content',\n DATA_TABLE_ROW_GROUP_HEADER: 'data-table-row-group-header',\n DATA_TABLE_COLUMN_DRAG_OVERLAY: 'data-table-drag-column-drag-overlay',\n DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title',\n DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON: 'filter-bar-ddmenu-button',\n};\n\nexport const EMPTY_FILTER = 'ds-empty-filter';\n", "import * as React from 'react';\nexport { React };\n"],
4
+ "sourcesContent": ["export const momentFormat = 'MM/DD/YYYY';\nexport const ColsLayoutStyle = {\n Fixed: 'fixed',\n Auto: 'auto',\n} as const;\n\nexport const DropIndicatorPosition = {\n None: 'none',\n Before: 'before',\n After: 'after',\n Inside: 'inside',\n} as const;\n\nexport const DATA_TESTID = {\n DATA_TABLE_WRAPPER: 'data-table-wrapper',\n DATA_TABLE_GLOBAL_EXPAND_CELL: 'data-table-global-expand-cell',\n DATA_TABLE_ICON_ARROW_DOWN: 'ic-arrow-head-down',\n DATA_TABLE_ICON_ARROW_RIGHT: 'ic-arrow-head-right',\n DATA_TABLE_ICON_ARROW_MIXED: 'ic-arrow-head-mixed',\n DATA_TABLE_ICON_CHILD: 'ic-arrow-child',\n DATA_TABLE_GLOBAL_CHECKBOX: 'data-table-global-checkbox',\n DATA_TABLE_CHECKBOX: 'data-table-checkbox',\n DATA_TABLE_RADIO: 'data-table-radio',\n DATA_TABLE_DATE_RANGE_CONTROLLER: 'data-table-date-range',\n DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER: 'data-table-date-range-checkbox-switcher-container',\n DATA_TABLE_SINGLE_DATE_CONTROLLER: 'data-table-single-date',\n DATA_TABLE_NUMBER_RANGE_CONTROLLER: 'data-table-number-range',\n DATA_TABLE_CURRENCY_RANGE_CONTROLLER: 'data-table-currency-range',\n DATA_TABLE_SELECT_MENU_ITEM: 'data-table-filter-menu-list-item',\n DATA_TABLE_MULTISELECT_CONTROLLER: 'data-table-multi-select',\n DATA_TABLE_SINGLESELECT_CONTROLLER: 'data-table-single-select',\n DATA_TABLE_FILTER_BUTTON: 'data-table-filter-menu-button',\n DATA_TABLE_FILTER_MENU_CONTENT: 'data-table-filter-menu-content',\n DATA_TABLE_ROW_CONTENT: 'data-table-row-content',\n DATA_TABLE_ROW: 'data-table-row',\n DATA_TABLE_TOOLBAR_TRIGGER: 'data-table-toolbar-trigger',\n DATA_TABLE_CELL: 'data-table-cell',\n DATA_TABLE_DRAG_HANDLE: 'data-table-drag-handle',\n DATA_TABLE_CONTENT_WRAPPER: 'data-table-content-wrapper',\n DATA_TABLE_TABLE: 'data-table-table',\n DATA_TABLE_SCROLLABLE_CONTAINER: 'data-table-scrollable-container',\n DATA_TABLE_HEADER: 'data-table-header',\n DATA_TABLE_ROW_HEADER_CONTENT: 'data-table-row-header-content',\n DATA_TABLE_ROW_GROUP_HEADER: 'data-table-row-group-header',\n DATA_TABLE_COLUMN_DRAG_OVERLAY: 'data-table-drag-column-drag-overlay',\n DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title',\n DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON: 'filter-bar-ddmenu-button',\n} as const;\n\nexport const EMPTY_FILTER = 'ds-empty-filter';\n", "import * as React from 'react';\nexport { React };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,eAAe;AACrB,MAAM,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AACR;AAEO,MAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEO,MAAM,cAAc;AAAA,EACzB,oBAAoB;AAAA,EACpB,+BAA+B;AAAA,EAC/B,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,uBAAuB;AAAA,EACvB,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,kCAAkC;AAAA,EAClC,oDAAoD;AAAA,EACpD,mCAAmC;AAAA,EACnC,oCAAoC;AAAA,EACpC,sCAAsC;AAAA,EACtC,6BAA6B;AAAA,EAC7B,mCAAmC;AAAA,EACnC,oCAAoC;AAAA,EACpC,0BAA0B;AAAA,EAC1B,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,gBAAgB;AAAA,EAChB,4BAA4B;AAAA,EAC5B,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,kBAAkB;AAAA,EAClB,iCAAiC;AAAA,EACjC,mBAAmB;AAAA,EACnB,+BAA+B;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,sCAAsC;AACxC;AAEO,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
@@ -5,6 +5,10 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
8
12
  var __copyProps = (to, from, except, desc) => {
9
13
  if (from && typeof from === "object" || typeof from === "function") {
10
14
  for (let key of __getOwnPropNames(from))
@@ -13,7 +17,6 @@ var __copyProps = (to, from, except, desc) => {
13
17
  }
14
18
  return to;
15
19
  };
16
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
18
21
  // If the importer is in node compatibility mode or this is not an ESM
19
22
  // file that has been converted to a CommonJS file using a Babel-
@@ -24,7 +27,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
27
  ));
25
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
29
  var useStore_exports = {};
30
+ __export(useStore_exports, {
31
+ InternalProvider: () => import_useStore.InternalProvider,
32
+ PropsProvider: () => import_useStore.PropsProvider,
33
+ config: () => import_useStore.config,
34
+ useInternalStore: () => import_useStore.useInternalStore,
35
+ usePropsStore: () => import_useStore.usePropsStore,
36
+ useWholeStore: () => import_useStore.useWholeStore
37
+ });
27
38
  module.exports = __toCommonJS(useStore_exports);
28
39
  var React = __toESM(require("react"));
29
- __reExport(useStore_exports, require("./useStore.js"), module.exports);
40
+ var import_useStore = require("./useStore.js");
30
41
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/configs/useStore/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export * from './useStore.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;ACAA,YAAuB;ADAvB,6BAAc,0BAAd;",
4
+ "sourcesContent": ["export { PropsProvider, usePropsStore, InternalProvider, useInternalStore, useWholeStore, config } from './useStore.js';\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,sBAAwG;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/configs/useStore/useStore.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { createInternalAndPropsContext, type ZustandT } from '@elliemae/ds-zustand-helpers';\nimport { defaultProps, type DSDataTableT } from '../../react-desc-prop-types.js';\nimport { useAutoCalculated } from '../useAutocalculated/index.js';\n\nconst internalAtomDefaultValues: DSDataTableT.InternalAtoms = {\n drilldownRowId: null,\n focusedRowId: null,\n isShiftPressed: false,\n reduxHeaders: {},\n};\n\nconst selectors: ZustandT.SelectorObject<DSDataTableT.ShuttleInternalStore, DSDataTableT.Selectors> = () => ({});\n\nconst reducers: ZustandT.ReducerObject<DSDataTableT.ShuttleInternalStore, DSDataTableT.Reducers> = (get, set) => ({\n patchHeader: (headerId, newHeader) => {\n set((state) => ({\n reduxHeaders: {\n ...state.reduxHeaders,\n [headerId]: { ...(state.reduxHeaders?.[headerId] ?? {}), ...newHeader },\n },\n }));\n },\n patchHeaderFilterButtonAndMenu: (headerId, value) => {\n set((state) => ({\n reduxHeaders: {\n ...state.reduxHeaders,\n [headerId]: { ...(state.reduxHeaders?.[headerId] ?? {}), hideFilterMenu: value, hideFilterButton: value },\n },\n }));\n },\n});\n\nconst subscribers: ZustandT.Subscribers<DSDataTableT.ShuttleInternalStore> = () => {};\n\nexport const { PropsProvider, usePropsStore, InternalProvider, useInternalStore } = createInternalAndPropsContext<\n DSDataTableT.InternalProps,\n DSDataTableT.InternalAtoms,\n DSDataTableT.UseAutoCalculatedT,\n DSDataTableT.Selectors,\n DSDataTableT.Reducers\n>();\n\nexport const useWholeStore = (): DSDataTableT.Context => {\n const {\n columnHeaderRef,\n virtualListRef,\n flattenedData,\n allDataFlattened,\n isEmptyContent,\n firstFocuseableColumnHeaderId,\n visibleColumns,\n virtualListHelpers,\n layoutHelpers,\n paginationHelpers,\n lastSelected,\n ...tableProps\n } = usePropsStore((state) => state);\n\n const internalStore = useInternalStore((state) => state);\n return {\n tableProps,\n columnHeaderRef,\n virtualListRef,\n flattenedData,\n allDataFlattened,\n isEmptyContent,\n firstFocuseableColumnHeaderId,\n visibleColumns,\n virtualListHelpers,\n layoutHelpers,\n paginationHelpers,\n lastSelected,\n ...internalStore,\n };\n};\n\nexport const config = {\n defaultProps: defaultProps as DSDataTableT.InternalProps,\n internalAtomDefaultValues: internalAtomDefaultValues,\n useAutoCalculated,\n selectors,\n reducers,\n subscribers,\n PropsProvider,\n usePropsStore,\n InternalProvider,\n useInternalStore,\n};\n", "import * as React from 'react';\nexport { React };\n"],
4
+ "sourcesContent": ["import { createInternalAndPropsContext, type ZustandT } from '@elliemae/ds-zustand-helpers';\nimport { defaultProps, type DSDataTableT } from '../../react-desc-prop-types.js';\nimport { useAutoCalculated } from '../useAutocalculated/index.js';\n\nconst internalAtomDefaultValues: DSDataTableT.InternalAtoms = {\n drilldownRowId: null,\n focusedRowId: null,\n isShiftPressed: false,\n reduxHeaders: {},\n};\n\nconst selectors: ZustandT.SelectorObject<DSDataTableT.ShuttleInternalStore, DSDataTableT.Selectors> = () => ({});\n\nconst reducers: ZustandT.ReducerObject<DSDataTableT.ShuttleInternalStore, DSDataTableT.Reducers> = (get, set) => ({\n patchHeader: (headerId, newHeader) => {\n set((state) => ({\n reduxHeaders: {\n ...state.reduxHeaders,\n [headerId]: { ...(state.reduxHeaders?.[headerId] ?? {}), ...newHeader },\n },\n }));\n },\n patchHeaderFilterButtonAndMenu: (headerId, value) => {\n set((state) => ({\n reduxHeaders: {\n ...state.reduxHeaders,\n [headerId]: { ...(state.reduxHeaders?.[headerId] ?? {}), hideFilterMenu: value, hideFilterButton: value },\n },\n }));\n },\n});\n\nconst subscribers: ZustandT.Subscribers<DSDataTableT.ShuttleInternalStore> = () => {};\n\nexport const { PropsProvider, usePropsStore, InternalProvider, useInternalStore } = createInternalAndPropsContext<\n DSDataTableT.InternalProps,\n DSDataTableT.InternalAtoms,\n DSDataTableT.UseAutoCalculatedT,\n DSDataTableT.Selectors,\n DSDataTableT.Reducers\n>();\n\nexport const useWholeStore = (): DSDataTableT.Context => {\n const {\n columnHeaderRef,\n virtualListRef,\n flattenedData,\n allDataFlattened,\n isEmptyContent,\n firstFocuseableColumnHeaderId,\n visibleColumns,\n virtualListHelpers,\n layoutHelpers,\n paginationHelpers,\n lastSelected,\n ...tableProps\n } = usePropsStore((state) => state);\n\n const internalStore = useInternalStore((state) => state);\n return {\n tableProps,\n columnHeaderRef,\n virtualListRef,\n flattenedData,\n allDataFlattened,\n isEmptyContent,\n firstFocuseableColumnHeaderId,\n visibleColumns,\n virtualListHelpers,\n layoutHelpers,\n paginationHelpers,\n lastSelected,\n ...internalStore,\n };\n};\n\nexport const config = {\n defaultProps: defaultProps as () => DSDataTableT.InternalProps,\n internalAtomDefaultValues: internalAtomDefaultValues,\n useAutoCalculated,\n selectors,\n reducers,\n subscribers,\n PropsProvider,\n usePropsStore,\n InternalProvider,\n useInternalStore,\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,gCAA6D;AAC7D,mCAAgD;AAChD,+BAAkC;AAElC,MAAM,4BAAwD;AAAA,EAC5D,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,cAAc,CAAC;AACjB;AAEA,MAAM,YAAgG,OAAO,CAAC;AAE9G,MAAM,WAA6F,CAAC,KAAK,SAAS;AAAA,EAChH,aAAa,CAAC,UAAU,cAAc;AACpC,QAAI,CAAC,WAAW;AAAA,MACd,cAAc;AAAA,QACZ,GAAG,MAAM;AAAA,QACT,CAAC,QAAQ,GAAG,EAAE,GAAI,MAAM,eAAe,QAAQ,KAAK,CAAC,GAAI,GAAG,UAAU;AAAA,MACxE;AAAA,IACF,EAAE;AAAA,EACJ;AAAA,EACA,gCAAgC,CAAC,UAAU,UAAU;AACnD,QAAI,CAAC,WAAW;AAAA,MACd,cAAc;AAAA,QACZ,GAAG,MAAM;AAAA,QACT,CAAC,QAAQ,GAAG,EAAE,GAAI,MAAM,eAAe,QAAQ,KAAK,CAAC,GAAI,gBAAgB,OAAO,kBAAkB,MAAM;AAAA,MAC1G;AAAA,IACF,EAAE;AAAA,EACJ;AACF;AAEA,MAAM,cAAuE,MAAM;AAAC;AAE7E,MAAM,EAAE,eAAe,eAAe,kBAAkB,iBAAiB,QAAI,yDAMlF;AAEK,MAAM,gBAAgB,MAA4B;AACvD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,cAAc,CAAC,UAAU,KAAK;AAElC,QAAM,gBAAgB,iBAAiB,CAAC,UAAU,KAAK;AACvD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEO,MAAM,SAAS;AAAA,EACpB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
6
6
  "names": []
7
7
  }
@@ -38,6 +38,7 @@ var import_styled = require("../styled.js");
38
38
  var import_useStore = require("../configs/useStore/useStore.js");
39
39
  const EditableCell = (props) => {
40
40
  const { StandardRender, EditableRenderer, cell, isRowSelected } = props;
41
+ const domIdAffix = (0, import_useStore.usePropsStore)((state) => state.domIdAffix);
41
42
  const virtualListHelpers = (0, import_useStore.usePropsStore)((state) => state.virtualListHelpers);
42
43
  const [isEditing, setIsEditing] = (0, import_react.useState)(false);
43
44
  const [lastIsEditing, setLastIsEditing] = (0, import_react.useState)(false);
@@ -93,7 +94,7 @@ const EditableCell = (props) => {
93
94
  children: [
94
95
  !isEditing ? StandardRender : EditableRenderer,
95
96
  !isEditing && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.StyledPencilIcon, {}),
96
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { id: cell.id, style: { display: "none" }, "aria-hidden": "true", children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { id: `editable-cell-${cell.id}-${domIdAffix}`, style: { display: "none" }, "aria-hidden": "true", children: [
97
98
  cell.value,
98
99
  ", editable cell. To edit the content's of this cell, press the Enter key"
99
100
  ] })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/exported-related/EditableCell.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useState, useCallback, useLayoutEffect } from 'react';\nimport { StyledPencilIcon, StyledEditableContainer } from '../styled.js';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { usePropsStore } from '../configs/useStore/useStore.js';\n\nexport const EditableCell: React.ComponentType<{\n StandardRender: JSX.Element;\n EditableRenderer: JSX.Element;\n cell: DSDataTableT.Cell<HTMLDivElement>;\n isRowSelected?: boolean;\n}> = (props) => {\n const { StandardRender, EditableRenderer, cell, isRowSelected } = props;\n const virtualListHelpers = usePropsStore((state) => state.virtualListHelpers);\n\n const [isEditing, setIsEditing] = useState(false);\n const [lastIsEditing, setLastIsEditing] = useState(false);\n // When an editable cell is switched on-off, we recalculate the height of the rows\n useLayoutEffect(() => {\n if (isEditing !== lastIsEditing) {\n virtualListHelpers.measure();\n setLastIsEditing(isEditing);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n const handleCellClick = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n if (!isEditing) {\n e.stopPropagation();\n setIsEditing(true);\n }\n },\n [isEditing],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isEditing) {\n e.stopPropagation();\n if (['Enter', 'Escape'].includes(e.code)) {\n setIsEditing(false);\n }\n } else if (['Enter', 'Space'].includes(e.code)) {\n handleCellClick(e);\n }\n },\n [isEditing, handleCellClick, setIsEditing],\n );\n\n const handleOnBlur = useCallback(\n (event: React.FocusEvent) => {\n if (isEditing && !event.currentTarget?.contains(event.relatedTarget)) {\n // Not triggered when swapping focus between children\n setIsEditing(false);\n }\n },\n [isEditing],\n );\n const cols = !isEditing ? ['auto', 'min-content'] : ['auto'];\n return (\n <StyledEditableContainer\n cols={cols}\n tabIndex={isRowSelected && !isEditing ? 0 : -1}\n innerRef={cell.ref}\n onClick={handleCellClick}\n onKeyDown={handleOnKeyDown}\n onBlur={handleOnBlur}\n shouldDisplayEditIcon={cell.column.alwaysDisplayEditIcon}\n role=\"group\"\n aria-labelledby={isEditing ? undefined : cell.id}\n >\n {!isEditing ? StandardRender : EditableRenderer}\n {!isEditing && <StyledPencilIcon />}\n <span id={cell.id} style={{ display: 'none' }} aria-hidden=\"true\">\n {cell.value as string}, editable cell. To edit the content&apos;s of this cell, press the Enter key\n </span>\n </StyledEditableContainer>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADwEF;AAxErB,mBAA8D;AAC9D,oBAA0D;AAE1D,sBAA8B;AAEvB,MAAM,eAKR,CAAC,UAAU;AACd,QAAM,EAAE,gBAAgB,kBAAkB,MAAM,cAAc,IAAI;AAClE,QAAM,yBAAqB,+BAAc,CAAC,UAAU,MAAM,kBAAkB;AAE5E,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAS,KAAK;AAChD,QAAM,CAAC,eAAe,gBAAgB,QAAI,uBAAS,KAAK;AAExD,oCAAgB,MAAM;AACpB,QAAI,cAAc,eAAe;AAC/B,yBAAmB,QAAQ;AAC3B,uBAAiB,SAAS;AAAA,IAC5B;AAAA,EAEF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAA8C;AAC7C,UAAI,CAAC,WAAW;AACd,UAAE,gBAAgB;AAClB,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,WAAW;AACb,UAAE,gBAAgB;AAClB,YAAI,CAAC,SAAS,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG;AACxC,uBAAa,KAAK;AAAA,QACpB;AAAA,MACF,WAAW,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG;AAC9C,wBAAgB,CAAC;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,iBAAiB,YAAY;AAAA,EAC3C;AAEA,QAAM,mBAAe;AAAA,IACnB,CAAC,UAA4B;AAC3B,UAAI,aAAa,CAAC,MAAM,eAAe,SAAS,MAAM,aAAa,GAAG;AAEpE,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AACA,QAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,aAAa,IAAI,CAAC,MAAM;AAC3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,iBAAiB,CAAC,YAAY,IAAI;AAAA,MAC5C,UAAU,KAAK;AAAA,MACf,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,uBAAuB,KAAK,OAAO;AAAA,MACnC,MAAK;AAAA,MACL,mBAAiB,YAAY,SAAY,KAAK;AAAA,MAE7C;AAAA,SAAC,YAAY,iBAAiB;AAAA,QAC9B,CAAC,aAAa,4CAAC,kCAAiB;AAAA,QACjC,6CAAC,UAAK,IAAI,KAAK,IAAI,OAAO,EAAE,SAAS,OAAO,GAAG,eAAY,QACxD;AAAA,eAAK;AAAA,UAAgB;AAAA,WACxB;AAAA;AAAA;AAAA,EACF;AAEJ;",
4
+ "sourcesContent": ["import React, { useState, useCallback, useLayoutEffect } from 'react';\nimport { StyledPencilIcon, StyledEditableContainer } from '../styled.js';\nimport type { DSDataTableT } from '../react-desc-prop-types.js';\nimport { usePropsStore } from '../configs/useStore/useStore.js';\n\nexport const EditableCell: React.ComponentType<{\n StandardRender: JSX.Element;\n EditableRenderer: JSX.Element;\n cell: DSDataTableT.Cell<HTMLDivElement>;\n isRowSelected?: boolean;\n}> = (props) => {\n const { StandardRender, EditableRenderer, cell, isRowSelected } = props;\n const domIdAffix = usePropsStore((state) => state.domIdAffix);\n const virtualListHelpers = usePropsStore((state) => state.virtualListHelpers);\n\n const [isEditing, setIsEditing] = useState(false);\n const [lastIsEditing, setLastIsEditing] = useState(false);\n // When an editable cell is switched on-off, we recalculate the height of the rows\n useLayoutEffect(() => {\n if (isEditing !== lastIsEditing) {\n virtualListHelpers.measure();\n setLastIsEditing(isEditing);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isEditing]);\n\n const handleCellClick = useCallback(\n (e: React.MouseEvent | React.KeyboardEvent) => {\n if (!isEditing) {\n e.stopPropagation();\n setIsEditing(true);\n }\n },\n [isEditing],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (isEditing) {\n e.stopPropagation();\n if (['Enter', 'Escape'].includes(e.code)) {\n setIsEditing(false);\n }\n } else if (['Enter', 'Space'].includes(e.code)) {\n handleCellClick(e);\n }\n },\n [isEditing, handleCellClick, setIsEditing],\n );\n\n const handleOnBlur = useCallback(\n (event: React.FocusEvent) => {\n if (isEditing && !event.currentTarget?.contains(event.relatedTarget)) {\n // Not triggered when swapping focus between children\n setIsEditing(false);\n }\n },\n [isEditing],\n );\n const cols = !isEditing ? ['auto', 'min-content'] : ['auto'];\n return (\n <StyledEditableContainer\n cols={cols}\n tabIndex={isRowSelected && !isEditing ? 0 : -1}\n innerRef={cell.ref}\n onClick={handleCellClick}\n onKeyDown={handleOnKeyDown}\n onBlur={handleOnBlur}\n shouldDisplayEditIcon={cell.column.alwaysDisplayEditIcon}\n role=\"group\"\n aria-labelledby={isEditing ? undefined : cell.id}\n >\n {!isEditing ? StandardRender : EditableRenderer}\n {!isEditing && <StyledPencilIcon />}\n <span id={`editable-cell-${cell.id}-${domIdAffix}`} style={{ display: 'none' }} aria-hidden=\"true\">\n {cell.value as string}, editable cell. To edit the content&apos;s of this cell, press the Enter key\n </span>\n </StyledEditableContainer>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADyEF;AAzErB,mBAA8D;AAC9D,oBAA0D;AAE1D,sBAA8B;AAEvB,MAAM,eAKR,CAAC,UAAU;AACd,QAAM,EAAE,gBAAgB,kBAAkB,MAAM,cAAc,IAAI;AAClE,QAAM,iBAAa,+BAAc,CAAC,UAAU,MAAM,UAAU;AAC5D,QAAM,yBAAqB,+BAAc,CAAC,UAAU,MAAM,kBAAkB;AAE5E,QAAM,CAAC,WAAW,YAAY,QAAI,uBAAS,KAAK;AAChD,QAAM,CAAC,eAAe,gBAAgB,QAAI,uBAAS,KAAK;AAExD,oCAAgB,MAAM;AACpB,QAAI,cAAc,eAAe;AAC/B,yBAAmB,QAAQ;AAC3B,uBAAiB,SAAS;AAAA,IAC5B;AAAA,EAEF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAA8C;AAC7C,UAAI,CAAC,WAAW;AACd,UAAE,gBAAgB;AAClB,qBAAa,IAAI;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,WAAW;AACb,UAAE,gBAAgB;AAClB,YAAI,CAAC,SAAS,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG;AACxC,uBAAa,KAAK;AAAA,QACpB;AAAA,MACF,WAAW,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,IAAI,GAAG;AAC9C,wBAAgB,CAAC;AAAA,MACnB;AAAA,IACF;AAAA,IACA,CAAC,WAAW,iBAAiB,YAAY;AAAA,EAC3C;AAEA,QAAM,mBAAe;AAAA,IACnB,CAAC,UAA4B;AAC3B,UAAI,aAAa,CAAC,MAAM,eAAe,SAAS,MAAM,aAAa,GAAG;AAEpE,qBAAa,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AACA,QAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,aAAa,IAAI,CAAC,MAAM;AAC3D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,UAAU,iBAAiB,CAAC,YAAY,IAAI;AAAA,MAC5C,UAAU,KAAK;AAAA,MACf,SAAS;AAAA,MACT,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,uBAAuB,KAAK,OAAO;AAAA,MACnC,MAAK;AAAA,MACL,mBAAiB,YAAY,SAAY,KAAK;AAAA,MAE7C;AAAA,SAAC,YAAY,iBAAiB;AAAA,QAC9B,CAAC,aAAa,4CAAC,kCAAiB;AAAA,QACjC,6CAAC,UAAK,IAAI,iBAAiB,KAAK,MAAM,cAAc,OAAO,EAAE,SAAS,OAAO,GAAG,eAAY,QACzF;AAAA,eAAK;AAAA,UAAgB;AAAA,WACxB;AAAA;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -49,11 +49,15 @@ const filterMapper = {
49
49
  [import_FilterTypes.FILTER_TYPES.NUMBER_RANGE]: import_numberRangeFilterFn.numberRangeFilterFn,
50
50
  [import_FilterTypes.FILTER_TYPES.CURRENCY_RANGE]: import_currencyRangeFilterFn.currencyRangeFilterFn
51
51
  };
52
+ const isFilterTypeOutOfTheBox = (type) => Object.keys(filterMapper).includes(type);
52
53
  const applyOutOfTheBoxFilters = (data, filters) => {
53
54
  let filteredData = data;
54
55
  filters.forEach((filter) => {
55
- if (filter.type in filterMapper) {
56
- filteredData = filterMapper[filter.type](filteredData, filter.id, filter.value);
56
+ const { type } = filter;
57
+ if (isFilterTypeOutOfTheBox(type)) {
58
+ const outOfTheBoxfilterFromMapper = filterMapper[type];
59
+ const outOfTheBoxFilterValue = filter.value;
60
+ filteredData = outOfTheBoxfilterFromMapper(filteredData, filter.id, outOfTheBoxFilterValue);
57
61
  }
58
62
  });
59
63
  return filteredData;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Filters/applyOutOfTheBoxFilters.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { singleSelectFilterFn } from './singleSelectFilterFn.js';\nimport { multiSelectFilterFn } from './multiSelectFilterFn.js';\nimport { singleDateFilterFn } from './singleDateFilterFn.js';\nimport { dateRangeFilterFn } from './dateRangeFilterFn.js';\nimport { dateSwitcherFilterFn } from './dateSwitcherFilterFn.js';\nimport { numberRangeFilterFn } from './numberRangeFilterFn.js';\nimport { currencyRangeFilterFn } from './currencyRangeFilterFn.js';\nimport type { FilterFn } from './types.js';\nimport { FILTER_TYPES } from '../FilterTypes.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nconst filterMapper: Record<string, FilterFn<any>> = {\n [FILTER_TYPES.SELECT]: singleSelectFilterFn,\n [FILTER_TYPES.MULTI_SELECT]: multiSelectFilterFn,\n [FILTER_TYPES.SINGLE_DATE]: singleDateFilterFn,\n [FILTER_TYPES.DATE_RANGE]: dateRangeFilterFn,\n [FILTER_TYPES.DATE_SWITCHER]: dateSwitcherFilterFn,\n [FILTER_TYPES.NUMBER_RANGE]: numberRangeFilterFn,\n [FILTER_TYPES.CURRENCY_RANGE]: currencyRangeFilterFn,\n};\n\nexport const applyOutOfTheBoxFilters = (\n data: DSDataTableT.Row[],\n filters: DSDataTableT.Filter[],\n): DSDataTableT.Row[] => {\n let filteredData = data;\n\n filters.forEach((filter) => {\n if (filter.type in filterMapper) {\n filteredData = filterMapper[filter.type](filteredData, filter.id, filter.value);\n }\n });\n\n return filteredData;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,kCAAqC;AACrC,iCAAoC;AACpC,gCAAmC;AACnC,+BAAkC;AAClC,kCAAqC;AACrC,iCAAoC;AACpC,mCAAsC;AAEtC,yBAA6B;AAG7B,MAAM,eAA8C;AAAA,EAClD,CAAC,gCAAa,MAAM,GAAG;AAAA,EACvB,CAAC,gCAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,gCAAa,WAAW,GAAG;AAAA,EAC5B,CAAC,gCAAa,UAAU,GAAG;AAAA,EAC3B,CAAC,gCAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,gCAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,gCAAa,cAAc,GAAG;AACjC;AAEO,MAAM,0BAA0B,CACrC,MACA,YACuB;AACvB,MAAI,eAAe;AAEnB,UAAQ,QAAQ,CAAC,WAAW;AAC1B,QAAI,OAAO,QAAQ,cAAc;AAC/B,qBAAe,aAAa,OAAO,IAAI,EAAE,cAAc,OAAO,IAAI,OAAO,KAAK;AAAA,IAChF;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
4
+ "sourcesContent": ["import { singleSelectFilterFn } from './singleSelectFilterFn.js';\nimport { multiSelectFilterFn } from './multiSelectFilterFn.js';\nimport { singleDateFilterFn } from './singleDateFilterFn.js';\nimport { dateRangeFilterFn } from './dateRangeFilterFn.js';\nimport { dateSwitcherFilterFn } from './dateSwitcherFilterFn.js';\nimport { numberRangeFilterFn } from './numberRangeFilterFn.js';\nimport { currencyRangeFilterFn } from './currencyRangeFilterFn.js';\nimport { FILTER_TYPES } from '../FilterTypes.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nconst filterMapper = {\n [FILTER_TYPES.SELECT]: singleSelectFilterFn,\n [FILTER_TYPES.MULTI_SELECT]: multiSelectFilterFn,\n [FILTER_TYPES.SINGLE_DATE]: singleDateFilterFn,\n [FILTER_TYPES.DATE_RANGE]: dateRangeFilterFn,\n [FILTER_TYPES.DATE_SWITCHER]: dateSwitcherFilterFn,\n [FILTER_TYPES.NUMBER_RANGE]: numberRangeFilterFn,\n [FILTER_TYPES.CURRENCY_RANGE]: currencyRangeFilterFn,\n} as const;\n\ntype OutOfTheBoxFilterType = keyof typeof filterMapper;\n\nconst isFilterTypeOutOfTheBox = (type: string): type is OutOfTheBoxFilterType =>\n Object.keys(filterMapper).includes(type);\n\nexport const applyOutOfTheBoxFilters = (\n data: DSDataTableT.Row[],\n filters: DSDataTableT.Filter[],\n): DSDataTableT.Row[] => {\n let filteredData = data;\n\n filters.forEach((filter) => {\n const { type } = filter;\n if (isFilterTypeOutOfTheBox(type)) {\n // all the out of the box filters have internal validation for the filter value\n // so we can safely call the filter function with the filter value as unknown, and let the filter function validate it\n const outOfTheBoxfilterFromMapper = filterMapper[type] as DSDataTableT.FilterFn<unknown>;\n const outOfTheBoxFilterValue = filter.value;\n filteredData = outOfTheBoxfilterFromMapper(filteredData, filter.id, outOfTheBoxFilterValue);\n }\n });\n\n return filteredData;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,kCAAqC;AACrC,iCAAoC;AACpC,gCAAmC;AACnC,+BAAkC;AAClC,kCAAqC;AACrC,iCAAoC;AACpC,mCAAsC;AACtC,yBAA6B;AAG7B,MAAM,eAAe;AAAA,EACnB,CAAC,gCAAa,MAAM,GAAG;AAAA,EACvB,CAAC,gCAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,gCAAa,WAAW,GAAG;AAAA,EAC5B,CAAC,gCAAa,UAAU,GAAG;AAAA,EAC3B,CAAC,gCAAa,aAAa,GAAG;AAAA,EAC9B,CAAC,gCAAa,YAAY,GAAG;AAAA,EAC7B,CAAC,gCAAa,cAAc,GAAG;AACjC;AAIA,MAAM,0BAA0B,CAAC,SAC/B,OAAO,KAAK,YAAY,EAAE,SAAS,IAAI;AAElC,MAAM,0BAA0B,CACrC,MACA,YACuB;AACvB,MAAI,eAAe;AAEnB,UAAQ,QAAQ,CAAC,WAAW;AAC1B,UAAM,EAAE,KAAK,IAAI;AACjB,QAAI,wBAAwB,IAAI,GAAG;AAGjC,YAAM,8BAA8B,aAAa,IAAI;AACrD,YAAM,yBAAyB,OAAO;AACtC,qBAAe,4BAA4B,cAAc,OAAO,IAAI,sBAAsB;AAAA,IAC5F;AAAA,EACF,CAAC;AAED,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -28,7 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var currencyRangeFilterFn_exports = {};
30
30
  __export(currencyRangeFilterFn_exports, {
31
- currencyRangeFilterFn: () => currencyRangeFilterFn
31
+ currencyRangeFilterFn: () => currencyRangeFilterFn,
32
+ isFilterValueValidForCurrencyRange: () => isFilterValueValidForCurrencyRange
32
33
  });
33
34
  module.exports = __toCommonJS(currencyRangeFilterFn_exports);
34
35
  var React = __toESM(require("react"));
@@ -44,13 +45,34 @@ const getNumber = (str) => {
44
45
  );
45
46
  };
46
47
  const isEmpty = (number) => Number.isNaN(number) || number === null || number === void 0;
48
+ const isFilterValueValidForCurrencyRange = (value) => {
49
+ if (typeof value !== "object")
50
+ return false;
51
+ if (value === null)
52
+ return false;
53
+ if (Array.isArray(value))
54
+ return false;
55
+ if (typeof value.from !== "string" && typeof value.from !== "number")
56
+ return false;
57
+ if (typeof value.to !== "string" && typeof value.to !== "number")
58
+ return false;
59
+ return true;
60
+ };
47
61
  const currencyRangeFilterFn = (unfilteredData, filterKey, filterValue) => {
62
+ if (!filterValue)
63
+ return unfilteredData;
48
64
  const fromNumber = getNumber(filterValue.from);
49
65
  const toNumber = getNumber(filterValue.to);
50
66
  if (isEmpty(fromNumber))
51
67
  return unfilteredData;
52
68
  if (isEmpty(toNumber))
53
69
  return unfilteredData;
70
+ if (!isFilterValueValidForCurrencyRange(filterValue))
71
+ throw new Error(
72
+ `Invalid filter value for currency range filter, expected { from: string | number, to: string | number } received: ${JSON.stringify(
73
+ filterValue
74
+ )}`
75
+ );
54
76
  return unfilteredData.filter((datum) => {
55
77
  const datumAsNumber = getNumber(datum[filterKey]);
56
78
  if (isEmpty(datumAsNumber))
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Filters/currencyRangeFilterFn.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import type { FilterFn } from './types.js';\n\nconst getNumber = (str: string | null | number) => {\n if (str === null) return null;\n if (typeof str === 'number') return str;\n if (typeof str !== 'string') return null;\n return Number.parseFloat(\n str\n .split('')\n .filter((x) => ![',', '$'].includes(x))\n .join(''),\n );\n};\n\nconst isEmpty = (number: number | null): number is null =>\n Number.isNaN(number) || number === null || number === undefined;\n\nexport const currencyRangeFilterFn: FilterFn<{ from: string; to: string }> = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n const fromNumber = getNumber(filterValue.from);\n const toNumber = getNumber(filterValue.to);\n\n if (isEmpty(fromNumber)) return unfilteredData;\n if (isEmpty(toNumber)) return unfilteredData;\n\n return unfilteredData.filter((datum) => {\n const datumAsNumber = getNumber(datum[filterKey] as string | null | number);\n if (isEmpty(datumAsNumber)) return false;\n return datumAsNumber >= fromNumber && datumAsNumber <= toNumber;\n });\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,MAAM,YAAY,CAAC,QAAgC;AACjD,MAAI,QAAQ;AAAM,WAAO;AACzB,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,SAAO,OAAO;AAAA,IACZ,IACG,MAAM,EAAE,EACR,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC,EACrC,KAAK,EAAE;AAAA,EACZ;AACF;AAEA,MAAM,UAAU,CAAC,WACf,OAAO,MAAM,MAAM,KAAK,WAAW,QAAQ,WAAW;AAEjD,MAAM,wBAAgE,CAC3E,gBACA,WACA,gBACG;AACH,QAAM,aAAa,UAAU,YAAY,IAAI;AAC7C,QAAM,WAAW,UAAU,YAAY,EAAE;AAEzC,MAAI,QAAQ,UAAU;AAAG,WAAO;AAChC,MAAI,QAAQ,QAAQ;AAAG,WAAO;AAE9B,SAAO,eAAe,OAAO,CAAC,UAAU;AACtC,UAAM,gBAAgB,UAAU,MAAM,SAAS,CAA2B;AAC1E,QAAI,QAAQ,aAAa;AAAG,aAAO;AACnC,WAAO,iBAAiB,cAAc,iBAAiB;AAAA,EACzD,CAAC;AACH;",
4
+ "sourcesContent": ["import type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nconst getNumber = (str: string | null | number) => {\n if (str === null) return null;\n if (typeof str === 'number') return str;\n if (typeof str !== 'string') return null;\n return Number.parseFloat(\n str\n .split('')\n .filter((x) => ![',', '$'].includes(x))\n .join(''),\n );\n};\n\nconst isEmpty = (number: number | null): number is null =>\n Number.isNaN(number) || number === null || number === undefined;\n\nexport const isFilterValueValidForCurrencyRange = (\n value: unknown,\n): value is Parameters<DSDataTableT.FilterFnOutOfTheBoxCurrencyRange>[2] => {\n if (typeof value !== 'object') return false;\n if (value === null) return false;\n if (Array.isArray(value)) return false;\n if (\n typeof (value as { from: string | number }).from !== 'string' &&\n typeof (value as { from: string | number }).from !== 'number'\n )\n return false;\n if (\n typeof (value as { to: string | number }).to !== 'string' &&\n typeof (value as { to: string | number }).to !== 'number'\n )\n return false;\n return true;\n};\n\nexport const currencyRangeFilterFn: DSDataTableT.FilterFnOutOfTheBoxCurrencyRange = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n if (!filterValue) return unfilteredData;\n const fromNumber = getNumber(filterValue.from);\n const toNumber = getNumber(filterValue.to);\n if (isEmpty(fromNumber)) return unfilteredData;\n if (isEmpty(toNumber)) return unfilteredData;\n\n if (!isFilterValueValidForCurrencyRange(filterValue))\n throw new Error(\n `Invalid filter value for currency range filter, expected { from: string | number, to: string | number } received: ${JSON.stringify(\n filterValue,\n )}`,\n );\n\n return unfilteredData.filter((datum) => {\n const datumAsNumber = getNumber(datum[filterKey] as string | null | number);\n if (isEmpty(datumAsNumber)) return false;\n return datumAsNumber >= fromNumber && datumAsNumber <= toNumber;\n });\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,MAAM,YAAY,CAAC,QAAgC;AACjD,MAAI,QAAQ;AAAM,WAAO;AACzB,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,MAAI,OAAO,QAAQ;AAAU,WAAO;AACpC,SAAO,OAAO;AAAA,IACZ,IACG,MAAM,EAAE,EACR,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,EAAE,SAAS,CAAC,CAAC,EACrC,KAAK,EAAE;AAAA,EACZ;AACF;AAEA,MAAM,UAAU,CAAC,WACf,OAAO,MAAM,MAAM,KAAK,WAAW,QAAQ,WAAW;AAEjD,MAAM,qCAAqC,CAChD,UAC0E;AAC1E,MAAI,OAAO,UAAU;AAAU,WAAO;AACtC,MAAI,UAAU;AAAM,WAAO;AAC3B,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjC,MACE,OAAQ,MAAoC,SAAS,YACrD,OAAQ,MAAoC,SAAS;AAErD,WAAO;AACT,MACE,OAAQ,MAAkC,OAAO,YACjD,OAAQ,MAAkC,OAAO;AAEjD,WAAO;AACT,SAAO;AACT;AAEO,MAAM,wBAAuE,CAClF,gBACA,WACA,gBACG;AACH,MAAI,CAAC;AAAa,WAAO;AACzB,QAAM,aAAa,UAAU,YAAY,IAAI;AAC7C,QAAM,WAAW,UAAU,YAAY,EAAE;AACzC,MAAI,QAAQ,UAAU;AAAG,WAAO;AAChC,MAAI,QAAQ,QAAQ;AAAG,WAAO;AAE9B,MAAI,CAAC,mCAAmC,WAAW;AACjD,UAAM,IAAI;AAAA,MACR,qHAAqH,KAAK;AAAA,QACxH;AAAA,MACF;AAAA,IACF;AAEF,SAAO,eAAe,OAAO,CAAC,UAAU;AACtC,UAAM,gBAAgB,UAAU,MAAM,SAAS,CAA2B;AAC1E,QAAI,QAAQ,aAAa;AAAG,aAAO;AACnC,WAAO,iBAAiB,cAAc,iBAAiB;AAAA,EACzD,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -33,7 +33,30 @@ __export(dateRangeFilterFn_exports, {
33
33
  module.exports = __toCommonJS(dateRangeFilterFn_exports);
34
34
  var React = __toESM(require("react"));
35
35
  var import_utilities = require("./utilities.js");
36
- const dateRangeFilterFn = (unfilteredData, filterKey, filterValue) => unfilteredData.filter(
37
- (datum) => !(filterValue?.startDate && filterValue?.endDate) || (0, import_utilities.isSameOrBefore)(filterValue?.startDate, datum[filterKey]) && (0, import_utilities.isSameOrAfter)(filterValue?.endDate, datum[filterKey])
38
- );
36
+ const isFilterValueValidForDateRange = (value) => {
37
+ if (typeof value !== "object")
38
+ return false;
39
+ if (value === null)
40
+ return false;
41
+ if (Array.isArray(value))
42
+ return false;
43
+ if (typeof value.startDate !== "string")
44
+ return false;
45
+ if (typeof value.endDate !== "string")
46
+ return false;
47
+ return true;
48
+ };
49
+ const dateRangeFilterFn = (unfilteredData, filterKey, filterValue) => {
50
+ if (!filterValue)
51
+ return unfilteredData;
52
+ if (!isFilterValueValidForDateRange(filterValue))
53
+ throw new Error(
54
+ `Invalid filter value for date range filter, expected { startDate: string, endDate: string } received: ${JSON.stringify(
55
+ filterValue
56
+ )}`
57
+ );
58
+ return unfilteredData.filter(
59
+ (datum) => !(filterValue?.startDate && filterValue?.endDate) || (0, import_utilities.isSameOrBefore)(filterValue?.startDate, datum[filterKey]) && (0, import_utilities.isSameOrAfter)(filterValue?.endDate, datum[filterKey])
60
+ );
61
+ };
39
62
  //# sourceMappingURL=dateRangeFilterFn.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Filters/dateRangeFilterFn.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import type { FilterFn } from './types.js';\nimport { isSameOrAfter, isSameOrBefore } from './utilities.js';\n\nexport const dateRangeFilterFn: FilterFn<{\n startDate: string;\n endDate: string;\n}> = (unfilteredData, filterKey, filterValue) =>\n unfilteredData.filter(\n (datum) =>\n !(filterValue?.startDate && filterValue?.endDate) ||\n (isSameOrBefore(filterValue?.startDate, datum[filterKey] as string) &&\n isSameOrAfter(filterValue?.endDate, datum[filterKey] as string)),\n );\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAA8C;AAEvC,MAAM,oBAGR,CAAC,gBAAgB,WAAW,gBAC/B,eAAe;AAAA,EACb,CAAC,UACC,EAAE,aAAa,aAAa,aAAa,gBACxC,iCAAe,aAAa,WAAW,MAAM,SAAS,CAAW,SAChE,gCAAc,aAAa,SAAS,MAAM,SAAS,CAAW;AACpE;",
4
+ "sourcesContent": ["import type { DSDataTableT } from '../../react-desc-prop-types.js';\nimport { isSameOrAfter, isSameOrBefore } from './utilities.js';\n\nconst isFilterValueValidForDateRange = (\n value: unknown,\n): value is Parameters<DSDataTableT.FilterFnOutOfTheBoxDateRange>[2] => {\n if (typeof value !== 'object') return false;\n if (value === null) return false;\n if (Array.isArray(value)) return false;\n if (typeof (value as { startDate: string }).startDate !== 'string') return false;\n if (typeof (value as { endDate: string }).endDate !== 'string') return false;\n return true;\n};\n\nexport const dateRangeFilterFn: DSDataTableT.FilterFnOutOfTheBoxDateRange = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n if (!filterValue) return unfilteredData;\n if (!isFilterValueValidForDateRange(filterValue))\n throw new Error(\n `Invalid filter value for date range filter, expected { startDate: string, endDate: string } received: ${JSON.stringify(\n filterValue,\n )}`,\n );\n\n return unfilteredData.filter(\n (datum) =>\n !(filterValue?.startDate && filterValue?.endDate) ||\n (isSameOrBefore(filterValue?.startDate, datum[filterKey] as string) &&\n isSameOrAfter(filterValue?.endDate, datum[filterKey] as string)),\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAA8C;AAE9C,MAAM,iCAAiC,CACrC,UACsE;AACtE,MAAI,OAAO,UAAU;AAAU,WAAO;AACtC,MAAI,UAAU;AAAM,WAAO;AAC3B,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjC,MAAI,OAAQ,MAAgC,cAAc;AAAU,WAAO;AAC3E,MAAI,OAAQ,MAA8B,YAAY;AAAU,WAAO;AACvE,SAAO;AACT;AAEO,MAAM,oBAA+D,CAC1E,gBACA,WACA,gBACG;AACH,MAAI,CAAC;AAAa,WAAO;AACzB,MAAI,CAAC,+BAA+B,WAAW;AAC7C,UAAM,IAAI;AAAA,MACR,yGAAyG,KAAK;AAAA,QAC5G;AAAA,MACF;AAAA,IACF;AAEF,SAAO,eAAe;AAAA,IACpB,CAAC,UACC,EAAE,aAAa,aAAa,aAAa,gBACxC,iCAAe,aAAa,WAAW,MAAM,SAAS,CAAW,SAChE,gCAAc,aAAa,SAAS,MAAM,SAAS,CAAW;AAAA,EACpE;AACF;",
6
6
  "names": []
7
7
  }
@@ -28,11 +28,35 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var dateSwitcherFilterFn_exports = {};
30
30
  __export(dateSwitcherFilterFn_exports, {
31
- dateSwitcherFilterFn: () => dateSwitcherFilterFn
31
+ dateSwitcherFilterFn: () => dateSwitcherFilterFn,
32
+ isFilterValueValidForDateSwitcher: () => isFilterValueValidForDateSwitcher
32
33
  });
33
34
  module.exports = __toCommonJS(dateSwitcherFilterFn_exports);
34
35
  var React = __toESM(require("react"));
35
36
  var import_dateRangeFilterFn = require("./dateRangeFilterFn.js");
36
37
  var import_singleDateFilterFn = require("./singleDateFilterFn.js");
37
- const dateSwitcherFilterFn = (unfilteredData, filterKey, filterValue) => filterValue.isDateRange ? (0, import_dateRangeFilterFn.dateRangeFilterFn)(unfilteredData, filterKey, filterValue) : (0, import_singleDateFilterFn.singleDateFilterFn)(unfilteredData, filterKey, filterValue.startDate);
38
+ const isFilterValueValidForDateSwitcher = (value) => {
39
+ if (typeof value !== "object")
40
+ return false;
41
+ if (value === null)
42
+ return false;
43
+ if (Array.isArray(value))
44
+ return false;
45
+ if (typeof value.startDate !== "string")
46
+ return false;
47
+ if (typeof value.isDateRange !== "boolean")
48
+ return false;
49
+ return true;
50
+ };
51
+ const dateSwitcherFilterFn = (unfilteredData, filterKey, filterValue) => {
52
+ if (!filterValue)
53
+ return unfilteredData;
54
+ if (!isFilterValueValidForDateSwitcher(filterValue))
55
+ throw new Error(
56
+ `Invalid filter value for date switcher filter, expected { startDate: string, isDateRange: boolean } received: ${JSON.stringify(
57
+ filterValue
58
+ )}`
59
+ );
60
+ return filterValue.isDateRange ? (0, import_dateRangeFilterFn.dateRangeFilterFn)(unfilteredData, filterKey, filterValue) : (0, import_singleDateFilterFn.singleDateFilterFn)(unfilteredData, filterKey, filterValue.startDate);
61
+ };
38
62
  //# sourceMappingURL=dateSwitcherFilterFn.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Filters/dateSwitcherFilterFn.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { dateRangeFilterFn } from './dateRangeFilterFn.js';\nimport { singleDateFilterFn } from './singleDateFilterFn.js';\n// configs imports this file, we can't import from /configs/index.js directly\n// use file instead of index to avoid circular imports!\nimport type { FilterFn } from './types.js';\n\nexport const dateSwitcherFilterFn: FilterFn<{\n startDate: string;\n endDate: string;\n isDateRange: boolean;\n}> = (unfilteredData, filterKey, filterValue) =>\n filterValue.isDateRange\n ? dateRangeFilterFn(unfilteredData, filterKey, filterValue)\n : singleDateFilterFn(unfilteredData, filterKey, filterValue.startDate);\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAkC;AAClC,gCAAmC;AAK5B,MAAM,uBAIR,CAAC,gBAAgB,WAAW,gBAC/B,YAAY,kBACR,4CAAkB,gBAAgB,WAAW,WAAW,QACxD,8CAAmB,gBAAgB,WAAW,YAAY,SAAS;",
4
+ "sourcesContent": ["import { dateRangeFilterFn } from './dateRangeFilterFn.js';\nimport { singleDateFilterFn } from './singleDateFilterFn.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nexport const isFilterValueValidForDateSwitcher = (\n value: unknown,\n): value is Parameters<DSDataTableT.FilterFnOutOfTheBoxDateSwitcher>[2] => {\n if (typeof value !== 'object') return false;\n if (value === null) return false;\n if (Array.isArray(value)) return false;\n if (typeof (value as { startDate: string }).startDate !== 'string') return false;\n if (typeof (value as { isDateRange: boolean }).isDateRange !== 'boolean') return false;\n return true;\n};\n\nexport const dateSwitcherFilterFn: DSDataTableT.FilterFnOutOfTheBoxDateSwitcher = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n if (!filterValue) return unfilteredData;\n if (!isFilterValueValidForDateSwitcher(filterValue))\n throw new Error(\n `Invalid filter value for date switcher filter, expected { startDate: string, isDateRange: boolean } received: ${JSON.stringify(\n filterValue,\n )}`,\n );\n return filterValue.isDateRange\n ? dateRangeFilterFn(unfilteredData, filterKey, filterValue)\n : singleDateFilterFn(unfilteredData, filterKey, filterValue.startDate);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAkC;AAClC,gCAAmC;AAG5B,MAAM,oCAAoC,CAC/C,UACyE;AACzE,MAAI,OAAO,UAAU;AAAU,WAAO;AACtC,MAAI,UAAU;AAAM,WAAO;AAC3B,MAAI,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjC,MAAI,OAAQ,MAAgC,cAAc;AAAU,WAAO;AAC3E,MAAI,OAAQ,MAAmC,gBAAgB;AAAW,WAAO;AACjF,SAAO;AACT;AAEO,MAAM,uBAAqE,CAChF,gBACA,WACA,gBACG;AACH,MAAI,CAAC;AAAa,WAAO;AACzB,MAAI,CAAC,kCAAkC,WAAW;AAChD,UAAM,IAAI;AAAA,MACR,iHAAiH,KAAK;AAAA,QACpH;AAAA,MACF;AAAA,IACF;AACF,SAAO,YAAY,kBACf,4CAAkB,gBAAgB,WAAW,WAAW,QACxD,8CAAmB,gBAAgB,WAAW,YAAY,SAAS;AACzE;",
6
6
  "names": []
7
7
  }
@@ -28,22 +28,35 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var multiSelectFilterFn_exports = {};
30
30
  __export(multiSelectFilterFn_exports, {
31
+ isFilterValueValidForMultiSelect: () => isFilterValueValidForMultiSelect,
31
32
  multiSelectFilterFn: () => multiSelectFilterFn
32
33
  });
33
34
  module.exports = __toCommonJS(multiSelectFilterFn_exports);
34
35
  var React = __toESM(require("react"));
35
36
  var import_constants = require("../../configs/constants.js");
37
+ const isFilterValueValidForMultiSelect = (value) => {
38
+ if (!Array.isArray(value))
39
+ return false;
40
+ if (value.length === 0)
41
+ return true;
42
+ return value.every((item) => typeof item === "object" && "label" in item && "value" in item);
43
+ };
36
44
  const multiSelectFilterFn = (unfilteredData, filterKey, filterValue) => {
37
- if (filterValue.length > 0) {
38
- return unfilteredData.filter(
39
- (datum) => filterValue.some((item) => {
40
- if (item.value === import_constants.EMPTY_FILTER) {
41
- return datum[filterKey] === null || datum[filterKey] === void 0 || datum[filterKey] === "";
42
- }
43
- return item.label === String(datum[filterKey]);
44
- })
45
+ if (!filterValue)
46
+ return unfilteredData;
47
+ if (!isFilterValueValidForMultiSelect(filterValue))
48
+ throw new Error(
49
+ `Invalid filter value for multi select filter, expected { label: string, value: string }[] received: ${JSON.stringify(
50
+ filterValue
51
+ )}`
45
52
  );
46
- }
47
- return unfilteredData;
53
+ return unfilteredData.filter(
54
+ (datum) => filterValue.some((item) => {
55
+ if (item.value === import_constants.EMPTY_FILTER) {
56
+ return datum[filterKey] === null || datum[filterKey] === void 0 || datum[filterKey] === "";
57
+ }
58
+ return item.label === String(datum[filterKey]);
59
+ })
60
+ );
48
61
  };
49
62
  //# sourceMappingURL=multiSelectFilterFn.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/exported-related/Filters/multiSelectFilterFn.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { EMPTY_FILTER } from '../../configs/constants.js';\nimport type { FilterFn } from './types.js';\n\nexport const multiSelectFilterFn: FilterFn<{ label: string; value: string }[]> = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n if (filterValue.length > 0) {\n return unfilteredData.filter((datum) =>\n filterValue.some((item) => {\n if (item.value === EMPTY_FILTER) {\n return datum[filterKey] === null || datum[filterKey] === undefined || datum[filterKey] === '';\n }\n return item.label === String(datum[filterKey]);\n }),\n );\n }\n return unfilteredData;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAA6B;AAGtB,MAAM,sBAAoE,CAC/E,gBACA,WACA,gBACG;AACH,MAAI,YAAY,SAAS,GAAG;AAC1B,WAAO,eAAe;AAAA,MAAO,CAAC,UAC5B,YAAY,KAAK,CAAC,SAAS;AACzB,YAAI,KAAK,UAAU,+BAAc;AAC/B,iBAAO,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,UAAa,MAAM,SAAS,MAAM;AAAA,QAC7F;AACA,eAAO,KAAK,UAAU,OAAO,MAAM,SAAS,CAAC;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import { EMPTY_FILTER } from '../../configs/constants.js';\nimport type { DSDataTableT } from '../../react-desc-prop-types.js';\n\nexport const isFilterValueValidForMultiSelect = (\n value: unknown,\n): value is Parameters<DSDataTableT.FilterFnOutOfTheBoxMultiSelect>[2] => {\n if (!Array.isArray(value)) return false;\n if (value.length === 0) return true;\n return value.every((item) => typeof item === 'object' && 'label' in item && 'value' in item);\n};\n\nexport const multiSelectFilterFn: DSDataTableT.FilterFnOutOfTheBoxMultiSelect = (\n unfilteredData,\n filterKey,\n filterValue,\n) => {\n if (!filterValue) return unfilteredData;\n if (!isFilterValueValidForMultiSelect(filterValue))\n throw new Error(\n `Invalid filter value for multi select filter, expected { label: string, value: string }[] received: ${JSON.stringify(\n filterValue,\n )}`,\n );\n\n return unfilteredData.filter((datum) =>\n filterValue.some((item) => {\n if (item.value === EMPTY_FILTER) {\n return datum[filterKey] === null || datum[filterKey] === undefined || datum[filterKey] === '';\n }\n return item.label === String(datum[filterKey]);\n }),\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,uBAA6B;AAGtB,MAAM,mCAAmC,CAC9C,UACwE;AACxE,MAAI,CAAC,MAAM,QAAQ,KAAK;AAAG,WAAO;AAClC,MAAI,MAAM,WAAW;AAAG,WAAO;AAC/B,SAAO,MAAM,MAAM,CAAC,SAAS,OAAO,SAAS,YAAY,WAAW,QAAQ,WAAW,IAAI;AAC7F;AAEO,MAAM,sBAAmE,CAC9E,gBACA,WACA,gBACG;AACH,MAAI,CAAC;AAAa,WAAO;AACzB,MAAI,CAAC,iCAAiC,WAAW;AAC/C,UAAM,IAAI;AAAA,MACR,uGAAuG,KAAK;AAAA,QAC1G;AAAA,MACF;AAAA,IACF;AAEF,SAAO,eAAe;AAAA,IAAO,CAAC,UAC5B,YAAY,KAAK,CAAC,SAAS;AACzB,UAAI,KAAK,UAAU,+BAAc;AAC/B,eAAO,MAAM,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,UAAa,MAAM,SAAS,MAAM;AAAA,MAC7F;AACA,aAAO,KAAK,UAAU,OAAO,MAAM,SAAS,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;",
6
6
  "names": []
7
7
  }