@elliemae/ds-data-table 3.4.2 → 3.4.3

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 (443) hide show
  1. package/dist/cjs/DataTable.js +23 -14
  2. package/dist/cjs/DataTable.js.map +1 -1
  3. package/dist/cjs/DataTableContext.js +4 -1
  4. package/dist/cjs/DataTableContext.js.map +1 -1
  5. package/dist/cjs/DataTableSchema.js +69 -34
  6. package/dist/cjs/DataTableSchema.js.map +1 -1
  7. package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js +4 -1
  8. package/dist/cjs/addons/Columns/ColumnAction/ColumnAction.js.map +1 -1
  9. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +18 -15
  10. package/dist/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +1 -1
  11. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +106 -79
  12. package/dist/cjs/addons/Columns/ColumnExpand/ColumnExpand.js.map +1 -1
  13. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +49 -30
  14. package/dist/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  15. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +31 -19
  16. package/dist/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  17. package/dist/cjs/addons/Columns/index.js +4 -1
  18. package/dist/cjs/addons/Columns/index.js.map +1 -1
  19. package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +8 -4
  20. package/dist/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +1 -1
  21. package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +17 -10
  22. package/dist/cjs/addons/Editables/DateEditableCell/DateEditableCell.js.map +1 -1
  23. package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +23 -16
  24. package/dist/cjs/addons/Editables/TextEditableCell/TextEditableCell.js.map +1 -1
  25. package/dist/cjs/addons/Editables/index.js +4 -1
  26. package/dist/cjs/addons/Editables/index.js.map +1 -1
  27. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +64 -34
  28. package/dist/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  29. package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js +52 -25
  30. package/dist/cjs/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
  31. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +77 -52
  32. package/dist/cjs/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  33. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js +64 -34
  34. package/dist/cjs/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  35. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +41 -20
  36. package/dist/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  37. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +6 -3
  38. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +1 -1
  39. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +6 -3
  40. package/dist/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +1 -1
  41. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +6 -3
  42. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +1 -1
  43. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +6 -3
  44. package/dist/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +1 -1
  45. package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js +49 -22
  46. package/dist/cjs/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
  47. package/dist/cjs/addons/Filters/Components/index.js +4 -1
  48. package/dist/cjs/addons/Filters/Components/index.js.map +1 -1
  49. package/dist/cjs/addons/Filters/index.js +4 -1
  50. package/dist/cjs/addons/Filters/index.js.map +1 -1
  51. package/dist/cjs/addons/Pagination/Pagination.js +7 -3
  52. package/dist/cjs/addons/Pagination/Pagination.js.map +1 -1
  53. package/dist/cjs/addons/Pagination/index.js +4 -1
  54. package/dist/cjs/addons/Pagination/index.js.map +1 -1
  55. package/dist/cjs/configs/constants.js +4 -1
  56. package/dist/cjs/configs/constants.js.map +2 -2
  57. package/dist/cjs/configs/fixedSizes.js +4 -1
  58. package/dist/cjs/configs/fixedSizes.js.map +1 -1
  59. package/dist/cjs/configs/index.js +4 -1
  60. package/dist/cjs/configs/index.js.map +1 -1
  61. package/dist/cjs/configs/useDatatableConfig.js +54 -37
  62. package/dist/cjs/configs/useDatatableConfig.js.map +1 -1
  63. package/dist/cjs/configs/useInternalStateConfig.js +31 -22
  64. package/dist/cjs/configs/useInternalStateConfig.js.map +2 -2
  65. package/dist/cjs/configs/usePaginationConfig.js +42 -36
  66. package/dist/cjs/configs/usePaginationConfig.js.map +1 -1
  67. package/dist/cjs/configs/useRowFlattenization.js +18 -6
  68. package/dist/cjs/configs/useRowFlattenization.js.map +1 -1
  69. package/dist/cjs/configs/useTableColsWithAddons.js +4 -1
  70. package/dist/cjs/configs/useTableColsWithAddons.js.map +1 -1
  71. package/dist/cjs/configs/zIndexInternalConfig.js +4 -1
  72. package/dist/cjs/configs/zIndexInternalConfig.js.map +1 -1
  73. package/dist/cjs/exported-related/EditableCell.js +50 -28
  74. package/dist/cjs/exported-related/EditableCell.js.map +1 -1
  75. package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js +46 -30
  76. package/dist/cjs/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
  77. package/dist/cjs/exported-related/FilterBar/index.js +4 -1
  78. package/dist/cjs/exported-related/FilterBar/index.js.map +1 -1
  79. package/dist/cjs/exported-related/FilterPopover.js +64 -45
  80. package/dist/cjs/exported-related/FilterPopover.js.map +3 -3
  81. package/dist/cjs/exported-related/FilterTypes.js +4 -1
  82. package/dist/cjs/exported-related/FilterTypes.js.map +1 -1
  83. package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +4 -1
  84. package/dist/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js.map +1 -1
  85. package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js +10 -3
  86. package/dist/cjs/exported-related/Filters/currencyRangeFilterFn.js.map +1 -1
  87. package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js +7 -2
  88. package/dist/cjs/exported-related/Filters/dateRangeFilterFn.js.map +1 -1
  89. package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js +4 -1
  90. package/dist/cjs/exported-related/Filters/dateSwitcherFilterFn.js.map +1 -1
  91. package/dist/cjs/exported-related/Filters/index.js +4 -1
  92. package/dist/cjs/exported-related/Filters/index.js.map +1 -1
  93. package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js +4 -1
  94. package/dist/cjs/exported-related/Filters/multiSelectFilterFn.js.map +1 -1
  95. package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js +7 -2
  96. package/dist/cjs/exported-related/Filters/numberRangeFilterFn.js.map +1 -1
  97. package/dist/cjs/exported-related/Filters/singleDateFilterFn.js +4 -1
  98. package/dist/cjs/exported-related/Filters/singleDateFilterFn.js.map +1 -1
  99. package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js +4 -1
  100. package/dist/cjs/exported-related/Filters/singleSelectFilterFn.js.map +1 -1
  101. package/dist/cjs/exported-related/Filters/types.js +4 -1
  102. package/dist/cjs/exported-related/Filters/types.js.map +1 -1
  103. package/dist/cjs/exported-related/Filters/utilities.js +4 -1
  104. package/dist/cjs/exported-related/Filters/utilities.js.map +1 -1
  105. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +64 -47
  106. package/dist/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +1 -1
  107. package/dist/cjs/exported-related/RowRenderer/index.js +38 -28
  108. package/dist/cjs/exported-related/RowRenderer/index.js.map +1 -1
  109. package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +89 -68
  110. package/dist/cjs/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
  111. package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js +12 -6
  112. package/dist/cjs/exported-related/RowRenderer/useRowRendererProperties.js.map +1 -1
  113. package/dist/cjs/exported-related/RowRenderer/useRowStyle.js +4 -1
  114. package/dist/cjs/exported-related/RowRenderer/useRowStyle.js.map +2 -2
  115. package/dist/cjs/exported-related/RowVariants.js +4 -1
  116. package/dist/cjs/exported-related/RowVariants.js.map +1 -1
  117. package/dist/cjs/exported-related/Toolbar/Toolbar.js +39 -24
  118. package/dist/cjs/exported-related/Toolbar/Toolbar.js.map +1 -1
  119. package/dist/cjs/exported-related/Toolbar/index.js +4 -1
  120. package/dist/cjs/exported-related/Toolbar/index.js.map +1 -1
  121. package/dist/cjs/exported-related/groupBy.js +4 -1
  122. package/dist/cjs/exported-related/groupBy.js.map +1 -1
  123. package/dist/cjs/exported-related/index.js +4 -1
  124. package/dist/cjs/exported-related/index.js.map +1 -1
  125. package/dist/cjs/helpers/addCellData.js +4 -1
  126. package/dist/cjs/helpers/addCellData.js.map +2 -2
  127. package/dist/cjs/helpers/cellPadding.js +4 -1
  128. package/dist/cjs/helpers/cellPadding.js.map +1 -1
  129. package/dist/cjs/helpers/columnsToGrid.js +4 -1
  130. package/dist/cjs/helpers/columnsToGrid.js.map +1 -1
  131. package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js +4 -1
  132. package/dist/cjs/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
  133. package/dist/cjs/helpers/index.js +4 -1
  134. package/dist/cjs/helpers/index.js.map +1 -1
  135. package/dist/cjs/helpers/refs-helpers.js +4 -1
  136. package/dist/cjs/helpers/refs-helpers.js.map +1 -1
  137. package/dist/cjs/helpers/sizeToCss.js +4 -1
  138. package/dist/cjs/helpers/sizeToCss.js.map +1 -1
  139. package/dist/cjs/index.js +4 -1
  140. package/dist/cjs/index.js.map +1 -1
  141. package/dist/cjs/parts/Cells/Cell.js +50 -32
  142. package/dist/cjs/parts/Cells/Cell.js.map +1 -1
  143. package/dist/cjs/parts/Cells/index.js +46 -41
  144. package/dist/cjs/parts/Cells/index.js.map +2 -2
  145. package/dist/cjs/parts/Cells/useCellStyle.js +4 -1
  146. package/dist/cjs/parts/Cells/useCellStyle.js.map +1 -1
  147. package/dist/cjs/parts/DnDHandle.js +9 -4
  148. package/dist/cjs/parts/DnDHandle.js.map +1 -1
  149. package/dist/cjs/parts/DropIndicator.js +24 -15
  150. package/dist/cjs/parts/DropIndicator.js.map +1 -1
  151. package/dist/cjs/parts/EmptyContent.js +32 -16
  152. package/dist/cjs/parts/EmptyContent.js.map +2 -2
  153. package/dist/cjs/parts/FilterBar/FiltersBar.js +54 -46
  154. package/dist/cjs/parts/FilterBar/FiltersBar.js.map +2 -2
  155. package/dist/cjs/parts/FilterBar/components/DateRangePill.js +20 -11
  156. package/dist/cjs/parts/FilterBar/components/DateRangePill.js.map +1 -1
  157. package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js +20 -11
  158. package/dist/cjs/parts/FilterBar/components/DateSwitcherPill.js.map +1 -1
  159. package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js +36 -25
  160. package/dist/cjs/parts/FilterBar/components/MultiSelectPill.js.map +1 -1
  161. package/dist/cjs/parts/FilterBar/components/NumberRangePill.js +20 -11
  162. package/dist/cjs/parts/FilterBar/components/NumberRangePill.js.map +1 -1
  163. package/dist/cjs/parts/FilterBar/components/SelectPill.js +20 -11
  164. package/dist/cjs/parts/FilterBar/components/SelectPill.js.map +1 -1
  165. package/dist/cjs/parts/FilterBar/components/SingleDatePill.js +20 -11
  166. package/dist/cjs/parts/FilterBar/components/SingleDatePill.js.map +1 -1
  167. package/dist/cjs/parts/FilterBar/components/index.js +4 -1
  168. package/dist/cjs/parts/FilterBar/components/index.js.map +1 -1
  169. package/dist/cjs/parts/FilterBar/index.js +4 -1
  170. package/dist/cjs/parts/FilterBar/index.js.map +1 -1
  171. package/dist/cjs/parts/FilterBar/styled.js +4 -1
  172. package/dist/cjs/parts/FilterBar/styled.js.map +1 -1
  173. package/dist/cjs/parts/FilterBar/types.js +4 -1
  174. package/dist/cjs/parts/FilterBar/types.js.map +1 -1
  175. package/dist/cjs/parts/Filters/index.js +25 -18
  176. package/dist/cjs/parts/Filters/index.js.map +2 -2
  177. package/dist/cjs/parts/Footer.js +8 -3
  178. package/dist/cjs/parts/Footer.js.map +1 -1
  179. package/dist/cjs/parts/Headers/EmptyChildrenGroup.js +6 -3
  180. package/dist/cjs/parts/Headers/EmptyChildrenGroup.js.map +1 -1
  181. package/dist/cjs/parts/Headers/HeaderCell.js +71 -42
  182. package/dist/cjs/parts/Headers/HeaderCell.js.map +1 -1
  183. package/dist/cjs/parts/Headers/HeaderCellGroup.js +35 -25
  184. package/dist/cjs/parts/Headers/HeaderCellGroup.js.map +2 -2
  185. package/dist/cjs/parts/Headers/HeaderCellTitle.js +23 -14
  186. package/dist/cjs/parts/Headers/HeaderCellTitle.js.map +1 -1
  187. package/dist/cjs/parts/Headers/HeaderResizer.js +35 -21
  188. package/dist/cjs/parts/Headers/HeaderResizer.js.map +2 -2
  189. package/dist/cjs/parts/Headers/RequiredDot.js +14 -10
  190. package/dist/cjs/parts/Headers/RequiredDot.js.map +1 -1
  191. package/dist/cjs/parts/Headers/index.js +31 -19
  192. package/dist/cjs/parts/Headers/index.js.map +1 -1
  193. package/dist/cjs/parts/Headers/useHeaderCellConfig.js +4 -1
  194. package/dist/cjs/parts/Headers/useHeaderCellConfig.js.map +1 -1
  195. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js +58 -46
  196. package/dist/cjs/parts/Headers/useHeaderCellHandlers.js.map +1 -1
  197. package/dist/cjs/parts/HoC/SortableItemContext.js +4 -1
  198. package/dist/cjs/parts/HoC/SortableItemContext.js.map +1 -1
  199. package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js +55 -37
  200. package/dist/cjs/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
  201. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js +59 -42
  202. package/dist/cjs/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  203. package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js +13 -8
  204. package/dist/cjs/parts/HoC/withConditionalDnDSortableContext.js.map +1 -1
  205. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js +24 -13
  206. package/dist/cjs/parts/HoC/withDnDSortableColumnContext.js.map +1 -1
  207. package/dist/cjs/parts/HoC/withDnDSortableRowContext.js +24 -13
  208. package/dist/cjs/parts/HoC/withDnDSortableRowContext.js.map +1 -1
  209. package/dist/cjs/parts/Loader.js +16 -11
  210. package/dist/cjs/parts/Loader.js.map +1 -1
  211. package/dist/cjs/parts/Row.js +17 -12
  212. package/dist/cjs/parts/Row.js.map +2 -2
  213. package/dist/cjs/parts/RowVariants/RowVariantHeader.js +33 -19
  214. package/dist/cjs/parts/RowVariants/RowVariantHeader.js.map +1 -1
  215. package/dist/cjs/parts/RowVariants/RowVariantPrimary.js +6 -3
  216. package/dist/cjs/parts/RowVariants/RowVariantPrimary.js.map +1 -1
  217. package/dist/cjs/parts/RowVariants/RowVariantSecondary.js +6 -3
  218. package/dist/cjs/parts/RowVariants/RowVariantSecondary.js.map +1 -1
  219. package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js +8 -4
  220. package/dist/cjs/parts/RowVariants/RowVariantSkeleton.js.map +1 -1
  221. package/dist/cjs/parts/RowVariants/index.js +8 -5
  222. package/dist/cjs/parts/RowVariants/index.js.map +1 -1
  223. package/dist/cjs/parts/RowVariants/types.js +4 -1
  224. package/dist/cjs/parts/RowVariants/types.js.map +1 -1
  225. package/dist/cjs/parts/Rows.js +35 -26
  226. package/dist/cjs/parts/Rows.js.map +2 -2
  227. package/dist/cjs/parts/SortByCaret.js +21 -10
  228. package/dist/cjs/parts/SortByCaret.js.map +1 -1
  229. package/dist/cjs/parts/SortableHeaderCell.js +4 -1
  230. package/dist/cjs/parts/SortableHeaderCell.js.map +1 -1
  231. package/dist/cjs/parts/TableContent.js +28 -16
  232. package/dist/cjs/parts/TableContent.js.map +2 -2
  233. package/dist/cjs/parts/VirtualRowsList.js +38 -19
  234. package/dist/cjs/parts/VirtualRowsList.js.map +2 -2
  235. package/dist/cjs/parts/index.js +4 -1
  236. package/dist/cjs/parts/index.js.map +1 -1
  237. package/dist/cjs/parts/internal.js +4 -1
  238. package/dist/cjs/parts/internal.js.map +1 -1
  239. package/dist/cjs/styled.js +4 -1
  240. package/dist/cjs/styled.js.map +1 -1
  241. package/dist/cjs/tests/utils/index.js +4 -1
  242. package/dist/cjs/tests/utils/index.js.map +1 -1
  243. package/dist/cjs/types/FunctionalHoC.js +4 -1
  244. package/dist/cjs/types/FunctionalHoC.js.map +1 -1
  245. package/dist/cjs/types/props.js +4 -1
  246. package/dist/cjs/types/props.js.map +2 -2
  247. package/dist/esm/DataTable.js +19 -13
  248. package/dist/esm/DataTable.js.map +1 -1
  249. package/dist/esm/DataTableContext.js.map +1 -1
  250. package/dist/esm/DataTableSchema.js +65 -33
  251. package/dist/esm/DataTableSchema.js.map +1 -1
  252. package/dist/esm/addons/Columns/ColumnAction/ColumnAction.js.map +1 -1
  253. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +14 -14
  254. package/dist/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js.map +1 -1
  255. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js +102 -78
  256. package/dist/esm/addons/Columns/ColumnExpand/ColumnExpand.js.map +1 -1
  257. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +45 -29
  258. package/dist/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js.map +2 -2
  259. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +27 -18
  260. package/dist/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js.map +2 -2
  261. package/dist/esm/addons/Columns/index.js.map +1 -1
  262. package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +4 -3
  263. package/dist/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js.map +1 -1
  264. package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js +13 -9
  265. package/dist/esm/addons/Editables/DateEditableCell/DateEditableCell.js.map +1 -1
  266. package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js +19 -15
  267. package/dist/esm/addons/Editables/TextEditableCell/TextEditableCell.js.map +1 -1
  268. package/dist/esm/addons/Editables/index.js.map +1 -1
  269. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +60 -33
  270. package/dist/esm/addons/Filters/Components/CurrencyRangeFilter/index.js.map +2 -2
  271. package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js +48 -24
  272. package/dist/esm/addons/Filters/Components/DateRangeFilter/index.js.map +2 -2
  273. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js +73 -51
  274. package/dist/esm/addons/Filters/Components/DateSwitcherFilter/index.js.map +2 -2
  275. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js +60 -33
  276. package/dist/esm/addons/Filters/Components/NumberRangeFilter/index.js.map +2 -2
  277. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +37 -19
  278. package/dist/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js.map +2 -2
  279. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js +2 -2
  280. package/dist/esm/addons/Filters/Components/SelectFilter/MultiCreatableFilter.js.map +1 -1
  281. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +2 -2
  282. package/dist/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js.map +1 -1
  283. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js +2 -2
  284. package/dist/esm/addons/Filters/Components/SelectFilter/SingleCreatableFilter.js.map +1 -1
  285. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +2 -2
  286. package/dist/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js.map +1 -1
  287. package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js +45 -21
  288. package/dist/esm/addons/Filters/Components/SingleDateFilter/index.js.map +2 -2
  289. package/dist/esm/addons/Filters/Components/index.js.map +1 -1
  290. package/dist/esm/addons/Filters/index.js.map +1 -1
  291. package/dist/esm/addons/Pagination/Pagination.js +3 -2
  292. package/dist/esm/addons/Pagination/Pagination.js.map +1 -1
  293. package/dist/esm/addons/Pagination/index.js.map +1 -1
  294. package/dist/esm/configs/constants.js.map +2 -2
  295. package/dist/esm/configs/fixedSizes.js.map +1 -1
  296. package/dist/esm/configs/index.js.map +1 -1
  297. package/dist/esm/configs/useDatatableConfig.js +50 -36
  298. package/dist/esm/configs/useDatatableConfig.js.map +1 -1
  299. package/dist/esm/configs/useInternalStateConfig.js +27 -21
  300. package/dist/esm/configs/useInternalStateConfig.js.map +2 -2
  301. package/dist/esm/configs/usePaginationConfig.js +38 -35
  302. package/dist/esm/configs/usePaginationConfig.js.map +1 -1
  303. package/dist/esm/configs/useRowFlattenization.js +14 -5
  304. package/dist/esm/configs/useRowFlattenization.js.map +1 -1
  305. package/dist/esm/configs/useTableColsWithAddons.js.map +1 -1
  306. package/dist/esm/configs/zIndexInternalConfig.js.map +1 -1
  307. package/dist/esm/exported-related/EditableCell.js +46 -27
  308. package/dist/esm/exported-related/EditableCell.js.map +1 -1
  309. package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js +42 -29
  310. package/dist/esm/exported-related/FilterBar/FilterBarDropdownMenu.js.map +2 -2
  311. package/dist/esm/exported-related/FilterBar/index.js.map +1 -1
  312. package/dist/esm/exported-related/FilterPopover.js +60 -44
  313. package/dist/esm/exported-related/FilterPopover.js.map +2 -2
  314. package/dist/esm/exported-related/FilterTypes.js.map +1 -1
  315. package/dist/esm/exported-related/Filters/applyOutOfTheBoxFilters.js.map +1 -1
  316. package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js +6 -2
  317. package/dist/esm/exported-related/Filters/currencyRangeFilterFn.js.map +1 -1
  318. package/dist/esm/exported-related/Filters/dateRangeFilterFn.js +3 -1
  319. package/dist/esm/exported-related/Filters/dateRangeFilterFn.js.map +1 -1
  320. package/dist/esm/exported-related/Filters/dateSwitcherFilterFn.js.map +1 -1
  321. package/dist/esm/exported-related/Filters/index.js.map +1 -1
  322. package/dist/esm/exported-related/Filters/multiSelectFilterFn.js.map +1 -1
  323. package/dist/esm/exported-related/Filters/numberRangeFilterFn.js +3 -1
  324. package/dist/esm/exported-related/Filters/numberRangeFilterFn.js.map +1 -1
  325. package/dist/esm/exported-related/Filters/singleDateFilterFn.js.map +1 -1
  326. package/dist/esm/exported-related/Filters/singleSelectFilterFn.js.map +1 -1
  327. package/dist/esm/exported-related/Filters/types.js.map +1 -1
  328. package/dist/esm/exported-related/Filters/utilities.js.map +1 -1
  329. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +60 -46
  330. package/dist/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js.map +1 -1
  331. package/dist/esm/exported-related/RowRenderer/index.js +34 -27
  332. package/dist/esm/exported-related/RowRenderer/index.js.map +1 -1
  333. package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js +85 -67
  334. package/dist/esm/exported-related/RowRenderer/useRowRendererHandlers.js.map +2 -2
  335. package/dist/esm/exported-related/RowRenderer/useRowRendererProperties.js +8 -5
  336. package/dist/esm/exported-related/RowRenderer/useRowRendererProperties.js.map +1 -1
  337. package/dist/esm/exported-related/RowRenderer/useRowStyle.js.map +1 -1
  338. package/dist/esm/exported-related/RowVariants.js.map +1 -1
  339. package/dist/esm/exported-related/Toolbar/Toolbar.js +35 -23
  340. package/dist/esm/exported-related/Toolbar/Toolbar.js.map +1 -1
  341. package/dist/esm/exported-related/Toolbar/index.js.map +1 -1
  342. package/dist/esm/exported-related/groupBy.js.map +1 -1
  343. package/dist/esm/exported-related/index.js.map +1 -1
  344. package/dist/esm/helpers/addCellData.js.map +2 -2
  345. package/dist/esm/helpers/cellPadding.js.map +1 -1
  346. package/dist/esm/helpers/columnsToGrid.js.map +1 -1
  347. package/dist/esm/helpers/getIdFromUniqueRowAccessor.js.map +1 -1
  348. package/dist/esm/helpers/index.js.map +1 -1
  349. package/dist/esm/helpers/refs-helpers.js.map +1 -1
  350. package/dist/esm/helpers/sizeToCss.js.map +1 -1
  351. package/dist/esm/index.js.map +1 -1
  352. package/dist/esm/parts/Cells/Cell.js +46 -31
  353. package/dist/esm/parts/Cells/Cell.js.map +1 -1
  354. package/dist/esm/parts/Cells/index.js +42 -40
  355. package/dist/esm/parts/Cells/index.js.map +2 -2
  356. package/dist/esm/parts/Cells/useCellStyle.js.map +1 -1
  357. package/dist/esm/parts/DnDHandle.js +5 -3
  358. package/dist/esm/parts/DnDHandle.js.map +1 -1
  359. package/dist/esm/parts/DropIndicator.js +20 -14
  360. package/dist/esm/parts/DropIndicator.js.map +1 -1
  361. package/dist/esm/parts/EmptyContent.js +28 -15
  362. package/dist/esm/parts/EmptyContent.js.map +2 -2
  363. package/dist/esm/parts/FilterBar/FiltersBar.js +50 -45
  364. package/dist/esm/parts/FilterBar/FiltersBar.js.map +2 -2
  365. package/dist/esm/parts/FilterBar/components/DateRangePill.js +16 -10
  366. package/dist/esm/parts/FilterBar/components/DateRangePill.js.map +1 -1
  367. package/dist/esm/parts/FilterBar/components/DateSwitcherPill.js +16 -10
  368. package/dist/esm/parts/FilterBar/components/DateSwitcherPill.js.map +1 -1
  369. package/dist/esm/parts/FilterBar/components/MultiSelectPill.js +32 -24
  370. package/dist/esm/parts/FilterBar/components/MultiSelectPill.js.map +1 -1
  371. package/dist/esm/parts/FilterBar/components/NumberRangePill.js +16 -10
  372. package/dist/esm/parts/FilterBar/components/NumberRangePill.js.map +1 -1
  373. package/dist/esm/parts/FilterBar/components/SelectPill.js +16 -10
  374. package/dist/esm/parts/FilterBar/components/SelectPill.js.map +1 -1
  375. package/dist/esm/parts/FilterBar/components/SingleDatePill.js +16 -10
  376. package/dist/esm/parts/FilterBar/components/SingleDatePill.js.map +1 -1
  377. package/dist/esm/parts/FilterBar/components/index.js.map +1 -1
  378. package/dist/esm/parts/FilterBar/index.js.map +1 -1
  379. package/dist/esm/parts/FilterBar/styled.js.map +1 -1
  380. package/dist/esm/parts/FilterBar/types.js.map +1 -1
  381. package/dist/esm/parts/Filters/index.js +21 -17
  382. package/dist/esm/parts/Filters/index.js.map +1 -1
  383. package/dist/esm/parts/Footer.js +4 -2
  384. package/dist/esm/parts/Footer.js.map +1 -1
  385. package/dist/esm/parts/Headers/EmptyChildrenGroup.js +2 -2
  386. package/dist/esm/parts/Headers/EmptyChildrenGroup.js.map +1 -1
  387. package/dist/esm/parts/Headers/HeaderCell.js +67 -41
  388. package/dist/esm/parts/Headers/HeaderCell.js.map +1 -1
  389. package/dist/esm/parts/Headers/HeaderCellGroup.js +31 -24
  390. package/dist/esm/parts/Headers/HeaderCellGroup.js.map +1 -1
  391. package/dist/esm/parts/Headers/HeaderCellTitle.js +19 -13
  392. package/dist/esm/parts/Headers/HeaderCellTitle.js.map +1 -1
  393. package/dist/esm/parts/Headers/HeaderResizer.js +31 -20
  394. package/dist/esm/parts/Headers/HeaderResizer.js.map +2 -2
  395. package/dist/esm/parts/Headers/RequiredDot.js +10 -9
  396. package/dist/esm/parts/Headers/RequiredDot.js.map +1 -1
  397. package/dist/esm/parts/Headers/index.js +27 -18
  398. package/dist/esm/parts/Headers/index.js.map +1 -1
  399. package/dist/esm/parts/Headers/useHeaderCellConfig.js.map +1 -1
  400. package/dist/esm/parts/Headers/useHeaderCellHandlers.js +54 -45
  401. package/dist/esm/parts/Headers/useHeaderCellHandlers.js.map +1 -1
  402. package/dist/esm/parts/HoC/SortableItemContext.js.map +1 -1
  403. package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js +51 -36
  404. package/dist/esm/parts/HoC/withConditionalDnDColumnContext.js.map +2 -2
  405. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js +55 -41
  406. package/dist/esm/parts/HoC/withConditionalDnDRowContext.js.map +2 -2
  407. package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js +9 -7
  408. package/dist/esm/parts/HoC/withConditionalDnDSortableContext.js.map +1 -1
  409. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js +20 -12
  410. package/dist/esm/parts/HoC/withDnDSortableColumnContext.js.map +1 -1
  411. package/dist/esm/parts/HoC/withDnDSortableRowContext.js +20 -12
  412. package/dist/esm/parts/HoC/withDnDSortableRowContext.js.map +1 -1
  413. package/dist/esm/parts/Loader.js +12 -10
  414. package/dist/esm/parts/Loader.js.map +1 -1
  415. package/dist/esm/parts/Row.js +13 -11
  416. package/dist/esm/parts/Row.js.map +1 -1
  417. package/dist/esm/parts/RowVariants/RowVariantHeader.js +29 -18
  418. package/dist/esm/parts/RowVariants/RowVariantHeader.js.map +1 -1
  419. package/dist/esm/parts/RowVariants/RowVariantPrimary.js +2 -2
  420. package/dist/esm/parts/RowVariants/RowVariantPrimary.js.map +1 -1
  421. package/dist/esm/parts/RowVariants/RowVariantSecondary.js +2 -2
  422. package/dist/esm/parts/RowVariants/RowVariantSecondary.js.map +1 -1
  423. package/dist/esm/parts/RowVariants/RowVariantSkeleton.js +4 -3
  424. package/dist/esm/parts/RowVariants/RowVariantSkeleton.js.map +1 -1
  425. package/dist/esm/parts/RowVariants/index.js +4 -4
  426. package/dist/esm/parts/RowVariants/index.js.map +1 -1
  427. package/dist/esm/parts/RowVariants/types.js.map +1 -1
  428. package/dist/esm/parts/Rows.js +31 -25
  429. package/dist/esm/parts/Rows.js.map +1 -1
  430. package/dist/esm/parts/SortByCaret.js +17 -9
  431. package/dist/esm/parts/SortByCaret.js.map +1 -1
  432. package/dist/esm/parts/SortableHeaderCell.js.map +1 -1
  433. package/dist/esm/parts/TableContent.js +24 -15
  434. package/dist/esm/parts/TableContent.js.map +2 -2
  435. package/dist/esm/parts/VirtualRowsList.js +34 -18
  436. package/dist/esm/parts/VirtualRowsList.js.map +1 -1
  437. package/dist/esm/parts/index.js.map +2 -2
  438. package/dist/esm/parts/internal.js.map +1 -1
  439. package/dist/esm/styled.js.map +1 -1
  440. package/dist/esm/tests/utils/index.js.map +1 -1
  441. package/dist/esm/types/FunctionalHoC.js.map +1 -1
  442. package/dist/esm/types/props.js.map +2 -2
  443. package/package.json +18 -18
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
21
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
25
  var DateSwitcherFilter_exports = {};
23
26
  __export(DateSwitcherFilter_exports, {
@@ -25,7 +28,8 @@ __export(DateSwitcherFilter_exports, {
25
28
  });
26
29
  module.exports = __toCommonJS(DateSwitcherFilter_exports);
27
30
  var React = __toESM(require("react"));
28
- var import_react = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = require("react");
29
33
  var import_ds_icons = require("@elliemae/ds-icons");
30
34
  var import_ds_grid = require("@elliemae/ds-grid");
31
35
  var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
@@ -42,6 +46,7 @@ const DateSwitcherFilter = (props) => {
42
46
  reduxHeader,
43
47
  innerRef
44
48
  } = props;
49
+ const ref = (0, import_react.useRef)();
45
50
  const dateRange = filterValue;
46
51
  const [startDate, setStartDate] = (0, import_react.useState)(dateRange.startDate || "");
47
52
  const [endDate, setEndDate] = (0, import_react.useState)(dateRange.endDate || "");
@@ -55,60 +60,80 @@ const DateSwitcherFilter = (props) => {
55
60
  onValueChange(import_exported_related.FILTER_TYPES.DATE_SWITCHER, { startDate, endDate, isDateRange });
56
61
  }
57
62
  }, [startDate, endDate, isDateRange]);
58
- return /* @__PURE__ */ import_react.default.createElement(import_exported_related.FilterPopover, {
63
+ const handleRef = (0, import_react.useCallback)(
64
+ (newRef) => {
65
+ if (ref.current)
66
+ ref.current = newRef;
67
+ if (!reduxHeader?.hideFilterMenu) {
68
+ setTimeout(() => newRef?.focus());
69
+ }
70
+ },
71
+ [reduxHeader?.hideFilterMenu]
72
+ );
73
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_exported_related.FilterPopover, {
59
74
  reduxHeader,
60
75
  column,
61
76
  columnId: id,
62
- menuContent: /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
77
+ menuContent: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_grid.Grid, {
63
78
  width: "260px",
64
- "data-testid": import_constants.DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER
65
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
66
- p: "xxs",
67
- gutter: "xxs",
68
- style: { background: "white" }
69
- }, /* @__PURE__ */ import_react.default.createElement("div", {
70
- "data-testid": import_constants.DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER
71
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledCheckbox, {
72
- checked: isDateRange,
73
- name: "Date range",
74
- label: "Date Range",
75
- id: "date-range-switcher-id-internal",
76
- onChange: () => {
77
- setIsDateRange(!isDateRange);
78
- setStartDate("");
79
- setEndDate("");
80
- },
81
- autoFocus: true
82
- })), isDateRange ? /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledDateRangePicker, {
83
- fromDate: startDate,
84
- onFromDateChange: setStartDate,
85
- toDate: endDate,
86
- onToDateChange: setEndDate,
87
- type: "date-range-inputs"
88
- }) : /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledDateTimePicker, {
89
- date: startDate,
90
- onDateChange: (_date) => {
91
- setStartDate(_date);
92
- setEndDate(_date);
93
- },
94
- type: "date-inputs"
95
- })), /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
96
- onKeyDown: (e) => e.code === "Enter" && setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)
97
- }, isDateRange ? /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledDateRangePicker, {
98
- fromDate: startDate,
99
- onFromDateChange: setStartDate,
100
- toDate: endDate,
101
- onToDateChange: setEndDate,
102
- type: "date-range-picker-controller-only"
103
- }) : /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSControlledDateTimePicker, {
104
- date: startDate,
105
- onDateChange: (_date) => {
106
- setStartDate(_date);
107
- setEndDate(_date);
108
- },
109
- type: "date-picker-controller-only"
110
- }))),
111
- triggerIcon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.DatePicker2, null),
79
+ "data-testid": import_constants.DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER,
80
+ children: [
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_grid.Grid, {
82
+ p: "xxs",
83
+ gutter: "xxs",
84
+ style: { background: "white" },
85
+ children: [
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
87
+ "data-testid": import_constants.DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER,
88
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSControlledCheckbox, {
89
+ checked: isDateRange,
90
+ name: "Date range",
91
+ label: "Date Range",
92
+ id: "date-range-switcher-id-internal",
93
+ onChange: () => {
94
+ setIsDateRange(!isDateRange);
95
+ setStartDate("");
96
+ setEndDate("");
97
+ },
98
+ innerRef: handleRef
99
+ })
100
+ }),
101
+ isDateRange ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSControlledDateRangePicker, {
102
+ fromDate: startDate,
103
+ onFromDateChange: setStartDate,
104
+ toDate: endDate,
105
+ onToDateChange: setEndDate,
106
+ type: "date-range-inputs"
107
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSControlledDateTimePicker, {
108
+ date: startDate,
109
+ onDateChange: (_date) => {
110
+ setStartDate(_date);
111
+ setEndDate(_date);
112
+ },
113
+ type: "date-inputs"
114
+ })
115
+ ]
116
+ }),
117
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_grid.Grid, {
118
+ onKeyDown: (e) => e.code === "Enter" && setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0),
119
+ children: isDateRange ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSControlledDateRangePicker, {
120
+ fromDate: startDate,
121
+ onFromDateChange: setStartDate,
122
+ toDate: endDate,
123
+ onToDateChange: setEndDate,
124
+ type: "date-range-picker-controller-only"
125
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSControlledDateTimePicker, {
126
+ date: startDate,
127
+ onDateChange: (_date) => {
128
+ setStartDate(_date);
129
+ setEndDate(_date);
130
+ },
131
+ type: "date-picker-controller-only"
132
+ })
133
+ })
134
+ ]
135
+ }),
136
+ triggerIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.DatePicker2, {}),
112
137
  innerRef,
113
138
  ariaLabel: "Open Date Range Filter"
114
139
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/DateSwitcherFilter/index.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useEffect, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport {\n DSControlledDateRangePicker,\n DSControlledDateTimePicker,\n DSControlledCheckbox,\n} from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateSwitcherFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n const [isDateRange, setIsDateRange] = useState(false);\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_SWITCHER, { startDate, endDate, isDateRange });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, isDateRange]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" gutter=\"xxs\" style={{ background: 'white' }}>\n <div data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER}>\n <DSControlledCheckbox\n checked={isDateRange}\n name=\"Date range\"\n label=\"Date Range\"\n id=\"date-range-switcher-id-internal\"\n onChange={() => {\n setIsDateRange(!isDateRange);\n setStartDate('');\n setEndDate('');\n }}\n autoFocus\n />\n </div>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-inputs\"\n />\n )}\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-picker-controller-only\"\n />\n )}\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA2C;AAC3C,sBAA4B;AAC5B,qBAAqB;AACrB,gCAIO;AACP,8BAA4C;AAE5C,uBAA4B;AAE5B,MAAM,mBAAmB,EAAE,WAAW,MAAM,SAAS,KAAK;AAEnD,MAAM,qBAAuD,CAAC,UAAU;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ,EAAE;AAAA,IACV,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,YAAY;AAElB,QAAM,CAAC,WAAW,gBAAgB,2BAAS,UAAU,aAAa,EAAE;AACpE,QAAM,CAAC,SAAS,cAAc,2BAAS,UAAU,WAAW,EAAE;AAC9D,QAAM,CAAC,aAAa,kBAAkB,2BAAS,KAAK;AAEpD,8BAAU,MAAM;AACd,iBAAa,UAAU,aAAa,EAAE;AACtC,eAAW,UAAU,WAAW,EAAE;AAAA,EACpC,GAAG,CAAC,SAAS,CAAC;AAEd,8BAAU,MAAM;AACd,QAAI,aAAa,WAAW,CAAC,UAAU,SAAS,GAAG,KAAK,CAAC,QAAQ,SAAS,GAAG,GAAG;AAC9E,oBAAc,qCAAa,eAAe,EAAE,WAAW,SAAS,YAAY,CAAC;AAAA,IAC/E;AAAA,EAGF,GAAG,CAAC,WAAW,SAAS,WAAW,CAAC;AAEpC,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,aACE,mDAAC;AAAA,MAAK,OAAM;AAAA,MAAQ,eAAa,6BAAY;AAAA,OAC3C,mDAAC;AAAA,MAAK,GAAE;AAAA,MAAM,QAAO;AAAA,MAAM,OAAO,EAAE,YAAY,QAAQ;AAAA,OACtD,mDAAC;AAAA,MAAI,eAAa,6BAAY;AAAA,OAC5B,mDAAC;AAAA,MACC,SAAS;AAAA,MACT,MAAK;AAAA,MACL,OAAM;AAAA,MACN,IAAG;AAAA,MACH,UAAU,MAAM;AACd,uBAAe,CAAC,WAAW;AAC3B,qBAAa,EAAE;AACf,mBAAW,EAAE;AAAA,MACf;AAAA,MACA,WAAS;AAAA,KACX,CACF,GACC,cACC,mDAAC;AAAA,MACC,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,MAAK;AAAA,KACP,IAEA,mDAAC;AAAA,MACC,MAAM;AAAA,MACN,cAAc,CAAC,UAAU;AACvB,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MAClB;AAAA,MACA,MAAK;AAAA,KACP,CAEJ,GACA,mDAAC;AAAA,MACC,WAAW,CAAC,MACV,EAAE,SAAS,WACX,WAAW,MAAM,+BAA+B,IAAI,CAAC,CAAE,WAAU,aAAa,UAAU,QAAQ,GAAG,CAAC;AAAA,OAGrG,cACC,mDAAC;AAAA,MACC,UAAU;AAAA,MACV,kBAAkB;AAAA,MAClB,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,MAAK;AAAA,KACP,IAEA,mDAAC;AAAA,MACC,MAAM;AAAA,MACN,cAAc,CAAC,UAAU;AACvB,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MAClB;AAAA,MACA,MAAK;AAAA,KACP,CAEJ,CACF;AAAA,IAEF,aAAa,mDAAC,iCAAY;AAAA,IAC1B;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useEffect, useRef, useCallback, useState } from 'react';\nimport { DatePicker2 } from '@elliemae/ds-icons';\nimport { Grid } from '@elliemae/ds-grid';\nimport {\n DSControlledDateRangePicker,\n DSControlledDateTimePicker,\n DSControlledCheckbox,\n} from '@elliemae/ds-controlled-form';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst emptyFilterValue = { startDate: null, endDate: null };\n\nexport const DateSwitcherFilter: React.ComponentType<FilterProps> = (props) => {\n const {\n column,\n column: { id },\n filterValue = emptyFilterValue,\n onValueChange,\n patchHeaderFilterButtonAndMenu,\n reduxHeader,\n innerRef,\n } = props;\n\n const ref = useRef();\n const dateRange = filterValue;\n\n const [startDate, setStartDate] = useState(dateRange.startDate || '');\n const [endDate, setEndDate] = useState(dateRange.endDate || '');\n const [isDateRange, setIsDateRange] = useState(false);\n\n useEffect(() => {\n setStartDate(dateRange.startDate || '');\n setEndDate(dateRange.endDate || '');\n }, [dateRange]);\n\n useEffect(() => {\n if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {\n onValueChange(FILTER_TYPES.DATE_SWITCHER, { startDate, endDate, isDateRange });\n }\n // We are missing onValueChange on purpose, this is an internal function and won't cause any problems\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [startDate, endDate, isDateRange]);\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (!reduxHeader?.hideFilterMenu) {\n setTimeout(() => newRef?.focus());\n }\n },\n [reduxHeader?.hideFilterMenu],\n );\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={id}\n menuContent={\n <Grid width=\"260px\" data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER}>\n <Grid p=\"xxs\" gutter=\"xxs\" style={{ background: 'white' }}>\n <div data-testid={DATA_TESTID.DATA_TABLE_DATE_RANGE_CONTROLLER_CHECKBOX_SWITCHER}>\n <DSControlledCheckbox\n checked={isDateRange}\n name=\"Date range\"\n label=\"Date Range\"\n id=\"date-range-switcher-id-internal\"\n onChange={() => {\n setIsDateRange(!isDateRange);\n setStartDate('');\n setEndDate('');\n }}\n innerRef={handleRef}\n />\n </div>\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-inputs\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-inputs\"\n />\n )}\n </Grid>\n <Grid\n onKeyDown={(e) =>\n e.code === 'Enter' &&\n setTimeout(() => patchHeaderFilterButtonAndMenu(id, !!(dateRange.startDate || dateRange.endDate)), 0)\n }\n >\n {isDateRange ? (\n <DSControlledDateRangePicker\n fromDate={startDate}\n onFromDateChange={setStartDate}\n toDate={endDate}\n onToDateChange={setEndDate}\n type=\"date-range-picker-controller-only\"\n />\n ) : (\n <DSControlledDateTimePicker\n date={startDate}\n onDateChange={(_date) => {\n setStartDate(_date);\n setEndDate(_date);\n }}\n type=\"date-picker-controller-only\"\n />\n )}\n </Grid>\n </Grid>\n }\n triggerIcon={<DatePicker2 />}\n innerRef={innerRef}\n ariaLabel=\"Open Date Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
21
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
25
  var NumberRangeFilter_exports = {};
23
26
  __export(NumberRangeFilter_exports, {
@@ -25,7 +28,8 @@ __export(NumberRangeFilter_exports, {
25
28
  });
26
29
  module.exports = __toCommonJS(NumberRangeFilter_exports);
27
30
  var React = __toESM(require("react"));
28
- var import_react = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = require("react");
29
33
  var import_ds_grid = require("@elliemae/ds-grid");
30
34
  var import_ds_form = require("@elliemae/ds-form");
31
35
  var import_ds_form_layout_blocks = require("@elliemae/ds-form-layout-blocks");
@@ -65,45 +69,71 @@ const NumberRangeFilter = (props) => {
65
69
  }
66
70
  };
67
71
  const idPreffix = "datatable-number-range";
68
- return /* @__PURE__ */ import_react.default.createElement(import_exported_related.FilterPopover, {
72
+ const ref = (0, import_react.useRef)();
73
+ const shouldFocus = (0, import_react.useRef)(true);
74
+ const handleRef = (0, import_react.useCallback)(
75
+ (newRef) => {
76
+ if (ref.current)
77
+ ref.current = newRef;
78
+ if (shouldFocus.current) {
79
+ setTimeout(() => {
80
+ newRef?.focus();
81
+ shouldFocus.current = false;
82
+ });
83
+ }
84
+ },
85
+ [shouldFocus]
86
+ );
87
+ (0, import_react.useEffect)(() => {
88
+ if (reduxHeader?.hideFilterMenu) {
89
+ shouldFocus.current = true;
90
+ }
91
+ }, [reduxHeader?.hideFilterMenu]);
92
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_exported_related.FilterPopover, {
69
93
  reduxHeader,
70
94
  column,
71
95
  columnId: column.id,
72
- menuContent: /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
96
+ menuContent: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_ds_grid.Grid, {
73
97
  "data-testid": import_constants.DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER,
74
98
  gutter: "xxxs",
75
99
  padding: "xxs",
76
100
  cols: ["auto", "auto"],
77
- style: { background: "white" }
78
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_form_layout_blocks.DSFormLayoutBlockItem, {
79
- label: "Low",
80
- inputID: `${idPreffix}-low-${column.id}`
81
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSInputMask, {
82
- containerProps: { style: { textAlign: "right" } },
83
- id: `${idPreffix}-low-${column.id}`,
84
- value: `${filterValue?.from ?? ""}`,
85
- onChange: handleFromChange,
86
- placeholder: "0",
87
- mask: (number) => import_ds_form.MASK_TYPES.NUMBER(opts)(number),
88
- autoFocus: true,
89
- onKeyDown: (e) => {
90
- closePopover(e);
91
- }
92
- })), /* @__PURE__ */ import_react.default.createElement(import_ds_form_layout_blocks.DSFormLayoutBlockItem, {
93
- label: "High",
94
- inputID: `${idPreffix}-high-${column.id}`
95
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSInputMask, {
96
- containerProps: { style: { textAlign: "right" } },
97
- id: `${idPreffix}-high-${column.id}`,
98
- value: `${filterValue?.to ?? ""}`,
99
- onChange: handleToChange,
100
- placeholder: "0",
101
- mask: (number) => import_ds_form.MASK_TYPES.NUMBER(opts)(number),
102
- onKeyDown: (e) => {
103
- closePopover(e);
104
- }
105
- }))),
106
- triggerIcon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.SearchXsmall, null),
101
+ style: { background: "white" },
102
+ children: [
103
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form_layout_blocks.DSFormLayoutBlockItem, {
104
+ label: "Low",
105
+ inputID: `${idPreffix}-low-${column.id}`,
106
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSInputMask, {
107
+ containerProps: { style: { textAlign: "right" } },
108
+ id: `${idPreffix}-low-${column.id}`,
109
+ value: `${filterValue?.from ?? ""}`,
110
+ onChange: handleFromChange,
111
+ placeholder: "0",
112
+ mask: (number) => import_ds_form.MASK_TYPES.NUMBER(opts)(number),
113
+ innerRef: handleRef,
114
+ onKeyDown: (e) => {
115
+ closePopover(e);
116
+ }
117
+ })
118
+ }),
119
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form_layout_blocks.DSFormLayoutBlockItem, {
120
+ label: "High",
121
+ inputID: `${idPreffix}-high-${column.id}`,
122
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSInputMask, {
123
+ containerProps: { style: { textAlign: "right" } },
124
+ id: `${idPreffix}-high-${column.id}`,
125
+ value: `${filterValue?.to ?? ""}`,
126
+ onChange: handleToChange,
127
+ placeholder: "0",
128
+ mask: (number) => import_ds_form.MASK_TYPES.NUMBER(opts)(number),
129
+ onKeyDown: (e) => {
130
+ closePopover(e);
131
+ }
132
+ })
133
+ })
134
+ ]
135
+ }),
136
+ triggerIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.SearchXsmall, {}),
107
137
  customStyles: { width: column.ref?.current?.offsetWidth ?? "0px" },
108
138
  innerRef,
109
139
  ariaLabel: "Open Number Range Filter"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/NumberRangeFilter/index.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n autoFocus\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,qBAAqB;AACrB,qBAAwC;AACxC,mCAAsC;AACtC,sBAA6B;AAC7B,8BAA4C;AAE5C,uBAA4B;AAE5B,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,2BAA2B;AAAA,EAC3B,gBAAgB;AAAA,EAChB,eAAe;AACjB;AAEO,MAAM,oBAAsD,CAAC,UAAU;AAC5E,QAAM,EAAE,QAAQ,cAAc,EAAE,MAAM,MAAM,IAAI,KAAK,GAAG,aAAa,aAAa,eAAe,aAAa;AAE9G,QAAM,mBAAmB,CAAC,MAAM;AAC9B,UAAM,OAAO,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AACpE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AACA,QAAM,iBAAiB,CAAC,MAAM;AAC5B,UAAM,KAAK,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,OAAO,OAAO,EAAE,IAAI;AAClE,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACF;AACA,kBAAc,qCAAa,gBAAgB,SAAS;AAAA,EACtD;AAGA,QAAM,eAAe,CAAC,MAAM;AAC1B,QAAI,EAAE,SAAS,UAAU;AACvB,kBAAY,OAAO,IAAI,EAAE,gBAAgB,MAAM,kBAAkB,MAAM,CAAC;AACxE,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAM,YAAY;AAClB,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aACE,mDAAC;AAAA,MACC,eAAa,6BAAY;AAAA,MACzB,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,OAAO,EAAE,YAAY,QAAQ;AAAA,OAE7B,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAM,SAAS,GAAG,iBAAiB,OAAO;AAAA,OACrE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,iBAAiB,OAAO;AAAA,MAC/B,OAAO,GAAG,aAAa,QAAQ;AAAA,MAC/B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAS;AAAA,MACT,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,GACA,mDAAC;AAAA,MAAsB,OAAM;AAAA,MAAO,SAAS,GAAG,kBAAkB,OAAO;AAAA,OACvE,mDAAC;AAAA,MACC,gBAAgB,EAAE,OAAO,EAAE,WAAW,QAAQ,EAAE;AAAA,MAChD,IAAI,GAAG,kBAAkB,OAAO;AAAA,MAChC,OAAO,GAAG,aAAa,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,aAAY;AAAA,MACZ,MAAM,CAAC,WAAW,0BAAW,OAAO,IAAI,EAAE,MAAM;AAAA,MAChD,WAAW,CAAC,MAAM;AAChB,qBAAa,CAAC;AAAA,MAChB;AAAA,KACF,CACF,CACF;AAAA,IAEF,aAAa,mDAAC,kCAAa;AAAA,IAC3B,cAAc,EAAE,OAAO,OAAO,KAAK,SAAS,eAAe,MAAM;AAAA,IACjE;AAAA,IACA,WAAU;AAAA,GACZ;AAEJ;",
4
+ "sourcesContent": ["import React, { useRef, useEffect, useCallback } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSInputMask, MASK_TYPES } from '@elliemae/ds-form';\nimport { DSFormLayoutBlockItem } from '@elliemae/ds-form-layout-blocks';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { FilterPopover, FILTER_TYPES } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nconst opts = {\n prefix: '',\n suffix: '',\n allowDecimal: false,\n includeThousandsSeparator: false,\n requireDecimal: false,\n allowNegative: true,\n};\n\nexport const NumberRangeFilter: React.ComponentType<FilterProps> = (props) => {\n const { column, filterValue = { from: null, to: null }, reduxHeader, patchHeader, onValueChange, innerRef } = props;\n\n const handleFromChange = (e) => {\n const from = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n from,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n const handleToChange = (e) => {\n const to = e.target.value !== '' ? parseInt(e.target.value, 10) : '';\n const nextValue = {\n ...filterValue,\n to,\n };\n onValueChange(FILTER_TYPES.CURRENCY_RANGE, nextValue);\n };\n\n // workaround to close menu with esc key since DSInputMask has stoppropagation on key down\n const closePopover = (e) => {\n if (e.code === 'Escape') {\n patchHeader(column.id, { hideFilterMenu: true, hideFilterButton: false });\n innerRef.current.focus();\n }\n };\n const idPreffix = 'datatable-number-range';\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={\n <Grid\n data-testid={DATA_TESTID.DATA_TABLE_NUMBER_RANGE_CONTROLLER}\n gutter=\"xxxs\"\n padding=\"xxs\"\n cols={['auto', 'auto']}\n style={{ background: 'white' }}\n >\n <DSFormLayoutBlockItem label=\"Low\" inputID={`${idPreffix}-low-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-low-${column.id}`}\n value={`${filterValue?.from ?? ''}`}\n onChange={handleFromChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n innerRef={handleRef}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n <DSFormLayoutBlockItem label=\"High\" inputID={`${idPreffix}-high-${column.id}`}>\n <DSInputMask\n containerProps={{ style: { textAlign: 'right' } }}\n id={`${idPreffix}-high-${column.id}`}\n value={`${filterValue?.to ?? ''}`}\n onChange={handleToChange}\n placeholder=\"0\"\n mask={(number) => MASK_TYPES.NUMBER(opts)(number)}\n onKeyDown={(e) => {\n closePopover(e);\n }}\n />\n </DSFormLayoutBlockItem>\n </Grid>\n }\n triggerIcon={<SearchXsmall />}\n customStyles={{ width: column.ref?.current?.offsetWidth ?? '0px' }}\n innerRef={innerRef}\n ariaLabel=\"Open Number Range Filter\"\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
21
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
25
  var BaseSelectFilter_exports = {};
23
26
  __export(BaseSelectFilter_exports, {
@@ -25,7 +28,8 @@ __export(BaseSelectFilter_exports, {
25
28
  });
26
29
  module.exports = __toCommonJS(BaseSelectFilter_exports);
27
30
  var React = __toESM(require("react"));
28
- var import_react = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = require("react");
29
33
  var import_ds_grid = require("@elliemae/ds-grid");
30
34
  var import_ds_controlled_form = require("@elliemae/ds-controlled-form");
31
35
  var import_ds_icons = require("@elliemae/ds-icons");
@@ -48,6 +52,8 @@ const BaseSelectFilter = (props) => {
48
52
  innerRef,
49
53
  onValueChange
50
54
  } = props;
55
+ const ref = (0, import_react.useRef)();
56
+ const shouldFocus = (0, import_react.useRef)(true);
51
57
  const filterOptions = (0, import_react.useMemo)(() => {
52
58
  if (!userFilterOptions) {
53
59
  const automaticFilters = [
@@ -65,6 +71,7 @@ const BaseSelectFilter = (props) => {
65
71
  return userFilterOptions();
66
72
  }, [data, id, userFilterOptions]);
67
73
  const [filters, setFilteredOptions] = (0, import_react.useState)(filterOptions);
74
+ (0, import_react.useEffect)(() => setFilteredOptions(filterOptions), [filterOptions]);
68
75
  const handleOnChange = (value) => {
69
76
  onValueChange(type, value);
70
77
  if (!isMulti)
@@ -86,34 +93,48 @@ const BaseSelectFilter = (props) => {
86
93
  };
87
94
  filterOptions.unshift(newItem);
88
95
  handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);
89
- setFilteredOptions(filterOptions);
96
+ setFilteredOptions([...filterOptions]);
90
97
  };
98
+ const handleRef = (0, import_react.useCallback)(
99
+ (newRef) => {
100
+ if (ref.current)
101
+ ref.current = newRef;
102
+ if (shouldFocus.current) {
103
+ setTimeout(() => {
104
+ newRef?.focus();
105
+ shouldFocus.current = false;
106
+ });
107
+ }
108
+ },
109
+ [shouldFocus]
110
+ );
91
111
  (0, import_react.useEffect)(() => {
92
- setFilteredOptions(filterOptions);
93
- }, [filterOptions]);
94
- const Select = /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
112
+ if (reduxHeader?.hideFilterMenu) {
113
+ shouldFocus.current = true;
114
+ }
115
+ }, [reduxHeader?.hideFilterMenu]);
116
+ const Select = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_grid.Grid, {
95
117
  "data-testid": isMulti ? import_configs.DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : import_configs.DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER,
96
- style: { background: "#fff", position: "relative", width: filterMinWidth ?? column.ref?.current?.offsetWidth }
97
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_controlled_form.DSComboBox, {
98
- inline: true,
99
- autoFocus: true,
100
- allOptions: filterOptions,
101
- onCreate: creatable ? handleOnCreate : void 0,
102
- filteredOptions: filters,
103
- onChange: handleOnChange,
104
- selectedValues: selectedItems,
105
- onFilter: setFilteredOptions,
106
- menuMaxHeight: 300
107
- }));
118
+ style: { background: "#fff", position: "relative", width: filterMinWidth ?? column.ref?.current?.offsetWidth },
119
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_controlled_form.DSComboBox, {
120
+ inline: true,
121
+ innerRef: handleRef,
122
+ allOptions: filters,
123
+ onCreate: creatable ? handleOnCreate : void 0,
124
+ onChange: handleOnChange,
125
+ selectedValues: selectedItems,
126
+ menuMaxHeight: 300
127
+ })
128
+ });
108
129
  const handleOnClickOutside = () => {
109
130
  setFilteredOptions(filterOptions);
110
131
  };
111
- return /* @__PURE__ */ import_react.default.createElement(import_exported_related.FilterPopover, {
132
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_exported_related.FilterPopover, {
112
133
  reduxHeader,
113
134
  column,
114
135
  columnId: column.id,
115
136
  menuContent: Select,
116
- triggerIcon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.SearchXsmall, null),
137
+ triggerIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.SearchXsmall, {}),
117
138
  innerRef,
118
139
  ariaLabel: "Open Selection Filter",
119
140
  onClickOutsideMenu: handleOnClickOutside
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/BaseSelectFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useState, useEffect, useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { uid } from 'uid';\nimport { FilterPopover } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isMulti?: boolean;\n creatable?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n creatable = false,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n onValueChange,\n } = props;\n\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n const handleOnChange = (value) => {\n onValueChange(type, value);\n if (!isMulti) patchHeaderFilterButtonAndMenu(column.id, true);\n };\n\n const handleOnCreate = (label: string) => {\n if (label.trim() === '') {\n return;\n }\n if (filterOptions.some((item) => item.label === label)) {\n return;\n }\n const newId = uid();\n const newItem = {\n dsId: newId,\n value: newId,\n label,\n type: 'option',\n };\n filterOptions.unshift(newItem);\n handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);\n setFilteredOptions(filterOptions);\n };\n\n useEffect(() => {\n setFilteredOptions(filterOptions);\n }, [filterOptions]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n autoFocus\n allOptions={filterOptions}\n onCreate={creatable ? handleOnCreate : undefined}\n filteredOptions={filters}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n onFilter={setFilteredOptions}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAoD;AACpD,qBAAqB;AACrB,gCAA2B;AAC3B,sBAA6B;AAC7B,iBAAoB;AACpB,8BAA8B;AAE9B,qBAA4B;AAgBrB,MAAM,mBAAuE,CAAC,UAAU;AAC7F,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,QAAQ,EAAE,IAAI,eAAe,mBAAmB;AAAA,IAChD,KAAK;AAAA,MACH,YAAY,EAAE;AAAA;AAAA,IAEhB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,gBAAiC,0BAAQ,MAAM;AAEnD,QAAI,CAAC,mBAAmB;AACtB,YAAM,mBAAmB;AAAA,QACvB,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,QAAQ,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC,QAAQ,QAAQ,MAAS,CAAC;AAAA,MAC5F,EAAE,IAAI,CAAC,SAAU;AAAA,QACf,MAAM;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,QACP,OAAO;AAAA,MACT,EAAE;AAEF,aAAO;AAAA,IACT;AAGA,QAAI,MAAM,QAAQ,iBAAiB;AAAG,aAAO;AAE7C,WAAO,kBAAkB;AAAA,EAC3B,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC;AAEhC,QAAM,CAAC,SAAS,sBAAsB,2BAAS,aAAa;AAE5D,QAAM,iBAAiB,CAAC,UAAU;AAChC,kBAAc,MAAM,KAAK;AACzB,QAAI,CAAC;AAAS,qCAA+B,OAAO,IAAI,IAAI;AAAA,EAC9D;AAEA,QAAM,iBAAiB,CAAC,UAAkB;AACxC,QAAI,MAAM,KAAK,MAAM,IAAI;AACvB;AAAA,IACF;AACA,QAAI,cAAc,KAAK,CAAC,SAAS,KAAK,UAAU,KAAK,GAAG;AACtD;AAAA,IACF;AACA,UAAM,QAAQ,oBAAI;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,MACA,MAAM;AAAA,IACR;AACA,kBAAc,QAAQ,OAAO;AAC7B,mBAAe,MAAM,QAAQ,aAAa,IAAI,CAAC,GAAG,eAAe,OAAO,IAAI,OAAO;AACnF,uBAAmB,aAAa;AAAA,EAClC;AAEA,8BAAU,MAAM;AACd,uBAAmB,aAAa;AAAA,EAClC,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,SACJ,mDAAC;AAAA,IACC,eACE,UAAU,2BAAY,oCAAoC,2BAAY;AAAA,IAExE,OAAO,EAAE,YAAY,QAAQ,UAAU,YAAY,OAAO,kBAAkB,OAAO,KAAK,SAAS,YAAY;AAAA,KAE7G,mDAAC;AAAA,IACC,QAAM;AAAA,IACN,WAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU,YAAY,iBAAiB;AAAA,IACvC,iBAAiB;AAAA,IACjB,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,eAAe;AAAA,GACjB,CACF;AAGF,QAAM,uBAAuB,MAAM;AACjC,uBAAmB,aAAa;AAAA,EAClC;AACA,SACE,mDAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,OAAO;AAAA,IACjB,aAAa;AAAA,IACb,aAAa,mDAAC,kCAAa;AAAA,IAC3B;AAAA,IACA,WAAU;AAAA,IACV,oBAAoB;AAAA,GACtB;AAEJ;",
4
+ "sourcesContent": ["import React, { useState, useRef, useCallback, useEffect, useMemo } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSComboBox } from '@elliemae/ds-controlled-form';\nimport { SearchXsmall } from '@elliemae/ds-icons';\nimport { uid } from 'uid';\nimport { FilterPopover } from '../../../../exported-related';\nimport { FilterProps } from '../../../../types/props';\nimport { DATA_TESTID } from '../../../../configs';\n\ninterface FilterOptionT {\n dsId: string;\n type: string;\n value: string;\n label: string;\n}\n\ninterface BaseSelectProps {\n isMulti?: boolean;\n creatable?: boolean;\n selectedItems?: FilterOptionT[] | FilterOptionT;\n type: string;\n}\n\nexport const BaseSelectFilter: React.ComponentType<FilterProps & BaseSelectProps> = (props) => {\n const {\n isMulti = false,\n selectedItems = null,\n creatable = false,\n column,\n type,\n column: { id, filterOptions: userFilterOptions, filterMinWidth },\n ctx: {\n tableProps: { data },\n },\n reduxHeader,\n patchHeaderFilterButtonAndMenu,\n innerRef,\n onValueChange,\n } = props;\n\n const ref = useRef();\n const shouldFocus = useRef(true);\n const filterOptions: FilterOptionT[] = useMemo(() => {\n // If the user didn't provide options, use the available ones\n if (!userFilterOptions) {\n const automaticFilters = [\n ...new Set(data.map((datum) => datum?.[id]?.toString()).filter((val) => val !== undefined)),\n ].map((item) => ({\n type: 'option',\n dsId: item,\n value: item,\n label: item,\n }));\n\n return automaticFilters;\n }\n\n // If user provided the array itself, use it\n if (Array.isArray(userFilterOptions)) return userFilterOptions;\n // Otherwise, it is a function\n return userFilterOptions();\n }, [data, id, userFilterOptions]);\n\n const [filters, setFilteredOptions] = useState(filterOptions);\n\n useEffect(() => setFilteredOptions(filterOptions), [filterOptions]);\n\n const handleOnChange = (value) => {\n onValueChange(type, value);\n if (!isMulti) patchHeaderFilterButtonAndMenu(column.id, true);\n };\n\n const handleOnCreate = (label: string) => {\n if (label.trim() === '') {\n return;\n }\n if (filterOptions.some((item) => item.label === label)) {\n return;\n }\n const newId = uid();\n const newItem = {\n dsId: newId,\n value: newId,\n label,\n type: 'option',\n };\n filterOptions.unshift(newItem);\n handleOnChange(Array.isArray(selectedItems) ? [...selectedItems, newItem] : newItem);\n setFilteredOptions([...filterOptions]);\n };\n\n const handleRef = useCallback(\n (newRef) => {\n if (ref.current) ref.current = newRef;\n if (shouldFocus.current) {\n setTimeout(() => {\n newRef?.focus();\n shouldFocus.current = false;\n });\n }\n },\n [shouldFocus],\n );\n\n useEffect(() => {\n if (reduxHeader?.hideFilterMenu) {\n shouldFocus.current = true;\n }\n }, [reduxHeader?.hideFilterMenu]);\n\n const Select = (\n <Grid\n data-testid={\n isMulti ? DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER : DATA_TESTID.DATA_TABLE_SINGLESELECT_CONTROLLER\n }\n style={{ background: '#fff', position: 'relative', width: filterMinWidth ?? column.ref?.current?.offsetWidth }}\n >\n <DSComboBox\n inline\n innerRef={handleRef}\n allOptions={filters}\n onCreate={creatable ? handleOnCreate : undefined}\n onChange={handleOnChange}\n selectedValues={selectedItems}\n menuMaxHeight={300}\n />\n </Grid>\n );\n\n const handleOnClickOutside = () => {\n setFilteredOptions(filterOptions);\n };\n return (\n <FilterPopover\n reduxHeader={reduxHeader}\n column={column}\n columnId={column.id}\n menuContent={Select}\n triggerIcon={<SearchXsmall />}\n innerRef={innerRef}\n ariaLabel=\"Open Selection Filter\"\n onClickOutsideMenu={handleOnClickOutside}\n />\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
21
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
25
  var MultiCreatableFilter_exports = {};
23
26
  __export(MultiCreatableFilter_exports, {
@@ -25,7 +28,7 @@ __export(MultiCreatableFilter_exports, {
25
28
  });
26
29
  module.exports = __toCommonJS(MultiCreatableFilter_exports);
27
30
  var React = __toESM(require("react"));
28
- var import_react = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
29
32
  var import_BaseSelectFilter = require("./BaseSelectFilter");
30
33
  var import_exported_related = require("../../../../exported-related");
31
34
  var import_constants = require("../../../../configs/constants");
@@ -38,7 +41,7 @@ const MultiCreatableFilter = ({
38
41
  reduxHeader,
39
42
  filterValue,
40
43
  innerRef
41
- }) => /* @__PURE__ */ import_react.default.createElement(import_BaseSelectFilter.BaseSelectFilter, {
44
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BaseSelectFilter.BaseSelectFilter, {
42
45
  creatable: true,
43
46
  reduxHeader,
44
47
  "data-testid": import_constants.DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/MultiCreatableFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import React from 'react';\nimport { FilterProps } from '../../../../types/props';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const MultiCreatableFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\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 ctx={ctx}\n selectedItems={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;ADAvB,mBAAkB;AAElB,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,uBAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC,WAAS;AAAA,EACT;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,SAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,eAAe,eAAe,CAAC;AAAA,EAC/B,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,uBAAyD,CAAC;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,4CAAC;AAAA,EACC,WAAS;AAAA,EACT;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,SAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,eAAe,eAAe,CAAC;AAAA,EAC/B,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,10 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
21
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
25
  var MultiSelectFilter_exports = {};
23
26
  __export(MultiSelectFilter_exports, {
@@ -25,7 +28,7 @@ __export(MultiSelectFilter_exports, {
25
28
  });
26
29
  module.exports = __toCommonJS(MultiSelectFilter_exports);
27
30
  var React = __toESM(require("react"));
28
- var import_react = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
29
32
  var import_BaseSelectFilter = require("./BaseSelectFilter");
30
33
  var import_exported_related = require("../../../../exported-related");
31
34
  var import_constants = require("../../../../configs/constants");
@@ -38,7 +41,7 @@ const MultiSelectFilter = ({
38
41
  reduxHeader,
39
42
  filterValue,
40
43
  innerRef
41
- }) => /* @__PURE__ */ import_react.default.createElement(import_BaseSelectFilter.BaseSelectFilter, {
44
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_BaseSelectFilter.BaseSelectFilter, {
42
45
  reduxHeader,
43
46
  "data-testid": import_constants.DATA_TESTID.DATA_TABLE_MULTISELECT_CONTROLLER,
44
47
  isMulti: true,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/addons/Filters/Components/SelectFilter/MultiSelectFilter.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import React from 'react';\nimport { FilterProps } from '../../../../types/props';\nimport { BaseSelectFilter } from './BaseSelectFilter';\nimport { FILTER_TYPES } from '../../../../exported-related';\nimport { DATA_TESTID } from '../../../../configs/constants';\n\nexport const MultiSelectFilter: React.ComponentType<FilterProps> = ({\n column,\n ctx,\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 ctx={ctx}\n selectedItems={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;ADAvB,mBAAkB;AAElB,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC;AAAA,EACC;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,SAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,eAAe,eAAe,CAAC;AAAA,EAC/B,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,8BAAiC;AACjC,8BAA6B;AAC7B,uBAA4B;AAErB,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE,4CAAC;AAAA,EACC;AAAA,EACA,eAAa,6BAAY;AAAA,EACzB,SAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,eAAe,eAAe,CAAC;AAAA,EAC/B,MAAM,qCAAa;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,CACF;",
6
6
  "names": []
7
7
  }