@elliemae/ds-data-table 2.0.0-alpha.11 → 2.0.0-alpha.12

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 (285) hide show
  1. package/cjs/DataTable.js +5 -0
  2. package/cjs/DataTableSchema.js +24 -12
  3. package/cjs/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +9 -8
  4. package/cjs/addons/Columns/ColumnExpand/ColumnExpand.js +22 -14
  5. package/cjs/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +23 -16
  6. package/cjs/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +18 -12
  7. package/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +15 -10
  8. package/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +14 -7
  9. package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +30 -7
  10. package/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +169 -0
  11. package/cjs/addons/Filters/Components/DateRangeFilter/index.js +16 -11
  12. package/cjs/addons/Filters/Components/DateSwitcherFilter/index.js +145 -0
  13. package/cjs/addons/Filters/Components/NumberRangeFilter/index.js +88 -33
  14. package/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +86 -90
  15. package/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +39 -29
  16. package/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +39 -27
  17. package/cjs/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +16 -12
  18. package/cjs/addons/Filters/Components/SelectFilter/utils.js +10 -4
  19. package/cjs/addons/Filters/Components/SingleDateFilter/index.js +16 -11
  20. package/cjs/addons/Filters/Components/index.js +8 -6
  21. package/cjs/addons/Filters/index.js +8 -6
  22. package/cjs/addons/Pagination/Pagination.js +18 -53
  23. package/cjs/configs/constants.js +1 -3
  24. package/cjs/configs/fixedSizes.js +1 -1
  25. package/cjs/configs/useDatatableConfig.js +5 -0
  26. package/cjs/configs/usePaginationConfig.js +10 -4
  27. package/cjs/configs/useRowFlattenization.js +13 -6
  28. package/cjs/configs/useTableColsWithAddons.js +33 -19
  29. package/cjs/exported-related/EditableCell.js +13 -7
  30. package/cjs/exported-related/FilterPopover.js +62 -25
  31. package/cjs/exported-related/FilterTypes.js +3 -2
  32. package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +8 -3
  33. package/cjs/exported-related/Filters/currencyRangeFilterFn.js +24 -0
  34. package/cjs/exported-related/Filters/dateRangeFilterFn.js +10 -4
  35. package/cjs/exported-related/Filters/dateSwitcherFilterFn.js +12 -0
  36. package/cjs/exported-related/Filters/index.js +2 -2
  37. package/cjs/exported-related/Filters/multiSelectFilterFn.js +9 -3
  38. package/cjs/exported-related/Filters/numberRangeFilterFn.js +7 -1
  39. package/cjs/exported-related/Filters/singleDateFilterFn.js +10 -4
  40. package/cjs/exported-related/Filters/singleSelectFilterFn.js +5 -1
  41. package/cjs/exported-related/RowRenderer/DefaultRowContentRenderer.js +9 -0
  42. package/cjs/exported-related/RowRenderer/index.js +10 -4
  43. package/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +32 -19
  44. package/cjs/exported-related/RowRenderer/useRowRendererProperties.js +11 -3
  45. package/cjs/exported-related/Toolbar/Toolbar.js +18 -13
  46. package/cjs/exported-related/groupBy.js +13 -5
  47. package/cjs/exported-related/index.js +2 -2
  48. package/cjs/helpers/addCellData.js +9 -4
  49. package/cjs/helpers/cellPadding.js +11 -9
  50. package/cjs/helpers/columnsToGrid.js +3 -0
  51. package/cjs/helpers/getIdFromUniqueRowAccessor.js +3 -0
  52. package/cjs/helpers/refs-helpers.js +13 -3
  53. package/cjs/index.js +2 -2
  54. package/cjs/parts/Cells/Cell.js +33 -22
  55. package/cjs/parts/Cells/index.js +2 -0
  56. package/cjs/parts/DnDHandle.js +26 -17
  57. package/cjs/parts/DropIndicator.js +27 -21
  58. package/cjs/parts/EmptyContent.js +12 -9
  59. package/cjs/parts/FilterBar/FiltersBar.js +29 -19
  60. package/cjs/parts/FilterBar/components/DateRangePill.js +14 -10
  61. package/cjs/parts/FilterBar/components/DateSwitcherPill.js +45 -0
  62. package/cjs/parts/FilterBar/components/MultiSelectPill.js +24 -17
  63. package/cjs/parts/FilterBar/components/NumberRangePill.js +14 -10
  64. package/cjs/parts/FilterBar/components/SelectPill.js +15 -11
  65. package/cjs/parts/FilterBar/components/SingleDatePill.js +14 -10
  66. package/cjs/parts/FilterBar/components/index.js +2 -2
  67. package/cjs/parts/Filters/index.js +24 -13
  68. package/cjs/parts/Footer.js +8 -5
  69. package/cjs/parts/Headers/HeaderCell.js +15 -9
  70. package/cjs/parts/Headers/HeaderCellGroup.js +21 -13
  71. package/cjs/parts/Headers/HeaderCellTitle.js +43 -31
  72. package/cjs/parts/Headers/HeaderResizer.js +14 -7
  73. package/cjs/parts/Headers/index.js +3 -1
  74. package/cjs/parts/Headers/useHeaderCellConfig.js +12 -7
  75. package/cjs/parts/Headers/useHeaderCellHandlers.js +31 -20
  76. package/cjs/parts/HoC/withConditionalDnDColumnContext.js +49 -19
  77. package/cjs/parts/HoC/withConditionalDnDRowContext.js +16 -12
  78. package/cjs/parts/HoC/withConditionalDnDSortableContext.js +23 -13
  79. package/cjs/parts/HoC/withDnDSortableColumnContext.js +10 -19
  80. package/cjs/parts/HoC/withDnDSortableRowContext.js +8 -17
  81. package/cjs/parts/Row.js +15 -10
  82. package/cjs/parts/RowLoading.js +10 -4
  83. package/cjs/parts/RowVariants/RowVariantHeader.js +32 -20
  84. package/cjs/parts/RowVariants/RowVariantPrimary.js +10 -9
  85. package/cjs/parts/RowVariants/RowVariantSecondary.js +10 -9
  86. package/cjs/parts/RowVariants/index.js +13 -6
  87. package/cjs/parts/Rows.js +8 -1
  88. package/cjs/parts/SortByCaret.js +16 -16
  89. package/cjs/parts/SortableHeaderCell.js +5 -0
  90. package/cjs/parts/TableContent.js +10 -4
  91. package/cjs/parts/VirtualRowsList.js +10 -3
  92. package/cjs/parts/index.js +1 -1
  93. package/cjs/prop-types.js +5 -0
  94. package/cjs/redux/reducers/headersReducers/logic.js +10 -4
  95. package/cjs/styled.js +93 -64
  96. package/esm/DataTable.js +5 -0
  97. package/esm/DataTableSchema.js +24 -12
  98. package/esm/addons/Columns/ColumnDragHandle/ColumnDragHandle.js +9 -8
  99. package/esm/addons/Columns/ColumnExpand/ColumnExpand.js +22 -14
  100. package/esm/addons/Columns/ColumnSelectMultiple/ColumnSelectMultiple.js +21 -13
  101. package/esm/addons/Columns/ColumnSelectSingle/ColumnSelectSingle.js +17 -10
  102. package/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +14 -8
  103. package/esm/addons/Editables/DateEditableCell/DateEditableCell.js +14 -7
  104. package/esm/addons/Editables/TextEditableCell/TextEditableCell.js +30 -7
  105. package/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +159 -0
  106. package/esm/addons/Filters/Components/DateRangeFilter/index.js +16 -10
  107. package/esm/addons/Filters/Components/DateSwitcherFilter/index.js +136 -0
  108. package/esm/addons/Filters/Components/NumberRangeFilter/index.js +88 -31
  109. package/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +86 -87
  110. package/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +39 -29
  111. package/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +39 -27
  112. package/esm/addons/Filters/Components/SelectFilter/useSelectFilterHandlers.js +16 -12
  113. package/esm/addons/Filters/Components/SelectFilter/utils.js +10 -4
  114. package/esm/addons/Filters/Components/SingleDateFilter/index.js +16 -10
  115. package/esm/addons/Filters/Components/index.js +2 -1
  116. package/esm/addons/Filters/index.js +2 -1
  117. package/esm/addons/Pagination/Pagination.js +17 -52
  118. package/esm/configs/constants.js +1 -3
  119. package/esm/configs/fixedSizes.js +1 -1
  120. package/esm/configs/useDatatableConfig.js +5 -0
  121. package/esm/configs/usePaginationConfig.js +10 -4
  122. package/esm/configs/useRowFlattenization.js +13 -6
  123. package/esm/configs/useTableColsWithAddons.js +34 -20
  124. package/esm/exported-related/EditableCell.js +13 -7
  125. package/esm/exported-related/FilterPopover.js +62 -26
  126. package/esm/exported-related/FilterTypes.js +3 -2
  127. package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +8 -3
  128. package/esm/exported-related/Filters/currencyRangeFilterFn.js +20 -0
  129. package/esm/exported-related/Filters/dateRangeFilterFn.js +10 -4
  130. package/esm/exported-related/Filters/dateSwitcherFilterFn.js +8 -0
  131. package/esm/exported-related/Filters/index.js +1 -1
  132. package/esm/exported-related/Filters/multiSelectFilterFn.js +9 -3
  133. package/esm/exported-related/Filters/numberRangeFilterFn.js +7 -1
  134. package/esm/exported-related/Filters/singleDateFilterFn.js +10 -4
  135. package/esm/exported-related/Filters/singleSelectFilterFn.js +5 -1
  136. package/esm/exported-related/RowRenderer/DefaultRowContentRenderer.js +9 -0
  137. package/esm/exported-related/RowRenderer/index.js +10 -4
  138. package/esm/exported-related/RowRenderer/useRowRendererHandlers.js +32 -19
  139. package/esm/exported-related/RowRenderer/useRowRendererProperties.js +11 -3
  140. package/esm/exported-related/Toolbar/Toolbar.js +16 -10
  141. package/esm/exported-related/groupBy.js +13 -5
  142. package/esm/exported-related/index.js +1 -1
  143. package/esm/helpers/addCellData.js +9 -4
  144. package/esm/helpers/cellPadding.js +11 -9
  145. package/esm/helpers/columnsToGrid.js +3 -0
  146. package/esm/helpers/getIdFromUniqueRowAccessor.js +3 -0
  147. package/esm/helpers/refs-helpers.js +13 -3
  148. package/esm/index.js +1 -1
  149. package/esm/parts/Cells/Cell.js +33 -22
  150. package/esm/parts/Cells/index.js +2 -0
  151. package/esm/parts/DnDHandle.js +25 -15
  152. package/esm/parts/DropIndicator.js +27 -21
  153. package/esm/parts/EmptyContent.js +11 -7
  154. package/esm/parts/FilterBar/FiltersBar.js +29 -18
  155. package/esm/parts/FilterBar/components/DateRangePill.js +14 -10
  156. package/esm/parts/FilterBar/components/DateSwitcherPill.js +37 -0
  157. package/esm/parts/FilterBar/components/MultiSelectPill.js +24 -17
  158. package/esm/parts/FilterBar/components/NumberRangePill.js +14 -10
  159. package/esm/parts/FilterBar/components/SelectPill.js +15 -11
  160. package/esm/parts/FilterBar/components/SingleDatePill.js +14 -10
  161. package/esm/parts/FilterBar/components/index.js +1 -1
  162. package/esm/parts/Filters/index.js +20 -9
  163. package/esm/parts/Footer.js +8 -5
  164. package/esm/parts/Headers/HeaderCell.js +15 -9
  165. package/esm/parts/Headers/HeaderCellGroup.js +21 -14
  166. package/esm/parts/Headers/HeaderCellTitle.js +43 -31
  167. package/esm/parts/Headers/HeaderResizer.js +14 -7
  168. package/esm/parts/Headers/index.js +4 -2
  169. package/esm/parts/Headers/useHeaderCellConfig.js +12 -7
  170. package/esm/parts/Headers/useHeaderCellHandlers.js +31 -20
  171. package/esm/parts/HoC/withConditionalDnDColumnContext.js +48 -18
  172. package/esm/parts/HoC/withConditionalDnDRowContext.js +15 -11
  173. package/esm/parts/HoC/withConditionalDnDSortableContext.js +22 -12
  174. package/esm/parts/HoC/withDnDSortableColumnContext.js +11 -20
  175. package/esm/parts/HoC/withDnDSortableRowContext.js +9 -18
  176. package/esm/parts/Row.js +12 -10
  177. package/esm/parts/RowLoading.js +10 -4
  178. package/esm/parts/RowVariants/RowVariantHeader.js +32 -20
  179. package/esm/parts/RowVariants/RowVariantPrimary.js +10 -9
  180. package/esm/parts/RowVariants/RowVariantSecondary.js +10 -9
  181. package/esm/parts/RowVariants/index.js +13 -6
  182. package/esm/parts/Rows.js +7 -0
  183. package/esm/parts/SortByCaret.js +16 -14
  184. package/esm/parts/SortableHeaderCell.js +5 -0
  185. package/esm/parts/TableContent.js +10 -4
  186. package/esm/parts/VirtualRowsList.js +10 -3
  187. package/esm/prop-types.js +5 -0
  188. package/esm/redux/reducers/headersReducers/logic.js +10 -4
  189. package/esm/styled.js +93 -61
  190. package/package.json +55 -108
  191. package/types/DataTable.d.ts +245 -43
  192. package/types/DataTableSchema.d.ts +245 -43
  193. package/types/addons/Filters/Components/CurrencyRangeFilter/index.d.ts +3 -0
  194. package/types/addons/Filters/Components/{TextInputFilter → DateSwitcherFilter}/index.d.ts +1 -1
  195. package/types/addons/Filters/Components/SelectFilter/BaseSelectFilter.d.ts +7 -1
  196. package/types/addons/Filters/Components/SelectFilter/components.d.ts +6 -6
  197. package/types/addons/Filters/Components/index.d.ts +2 -1
  198. package/types/configs/constants.d.ts +1 -3
  199. package/types/exported-related/FilterPopover.d.ts +3 -0
  200. package/types/exported-related/FilterTypes.d.ts +2 -1
  201. package/types/exported-related/Filters/currencyRangeFilterFn.d.ts +5 -0
  202. package/types/exported-related/Filters/dateSwitcherFilterFn.d.ts +6 -0
  203. package/types/exported-related/Filters/index.d.ts +1 -1
  204. package/types/exported-related/Filters/multiSelectFilterFn.d.ts +3 -1
  205. package/types/exported-related/Filters/singleDateFilterFn.d.ts +1 -1
  206. package/types/exported-related/Filters/singleSelectFilterFn.d.ts +3 -1
  207. package/types/helpers/refs-helpers.d.ts +1 -1
  208. package/types/parts/FilterBar/components/DateSwitcherPill.d.ts +6 -0
  209. package/types/parts/FilterBar/components/MultiSelectPill.d.ts +2 -2
  210. package/types/parts/FilterBar/components/SelectPill.d.ts +2 -2
  211. package/types/parts/FilterBar/components/index.d.ts +1 -1
  212. package/types/parts/FilterBar/styled.d.ts +167 -32
  213. package/types/parts/FilterBar/types.d.ts +6 -0
  214. package/types/parts/Headers/HeaderCellGroup.d.ts +4 -3
  215. package/types/parts/Row.d.ts +2 -1
  216. package/types/styled.d.ts +21 -21
  217. package/types/types/props.d.ts +14 -4
  218. package/cjs/addons/Filters/Components/TextInputFilter/index.js +0 -86
  219. package/cjs/addons/Pagination/ActiveZoneButtons.js +0 -63
  220. package/cjs/addons/Pagination/PagesButtons.js +0 -77
  221. package/cjs/addons/Pagination/PerPageSelector.js +0 -84
  222. package/cjs/exported-related/Filters/textFilterFn.js +0 -10
  223. package/cjs/helpers/dndkit/hierarchy/customCollisionDetection.js +0 -64
  224. package/cjs/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +0 -128
  225. package/cjs/helpers/dndkit/hierarchy/types.js +0 -2
  226. package/cjs/helpers/dndkit/hierarchy/useHierarchyActionHandlers.js +0 -54
  227. package/cjs/helpers/dndkit/hierarchy/useHierarchyAnnouncements.js +0 -36
  228. package/cjs/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +0 -93
  229. package/cjs/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +0 -78
  230. package/cjs/helpers/dndkit/tree/customCollisionDetection.js +0 -86
  231. package/cjs/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +0 -127
  232. package/cjs/helpers/dndkit/tree/types.js +0 -2
  233. package/cjs/helpers/dndkit/tree/useTreeActionHandlers.js +0 -74
  234. package/cjs/helpers/dndkit/tree/useTreeAnnouncements.js +0 -55
  235. package/cjs/helpers/dndkit/tree/useTreeDndkitConfig.js +0 -128
  236. package/cjs/helpers/dndkit/tree/useTreePreviewHandlers.js +0 -51
  237. package/cjs/helpers/dndkit/types.js +0 -2
  238. package/cjs/helpers/dndkit/utilities.js +0 -51
  239. package/cjs/parts/FilterBar/components/TextPill.js +0 -38
  240. package/cjs/parts/HoC/DragOverlayContext.js +0 -11
  241. package/esm/addons/Filters/Components/TextInputFilter/index.js +0 -77
  242. package/esm/addons/Pagination/ActiveZoneButtons.js +0 -57
  243. package/esm/addons/Pagination/PagesButtons.js +0 -69
  244. package/esm/addons/Pagination/PerPageSelector.js +0 -73
  245. package/esm/exported-related/Filters/textFilterFn.js +0 -6
  246. package/esm/helpers/dndkit/hierarchy/customCollisionDetection.js +0 -60
  247. package/esm/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +0 -120
  248. package/esm/helpers/dndkit/hierarchy/types.js +0 -1
  249. package/esm/helpers/dndkit/hierarchy/useHierarchyActionHandlers.js +0 -50
  250. package/esm/helpers/dndkit/hierarchy/useHierarchyAnnouncements.js +0 -32
  251. package/esm/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +0 -87
  252. package/esm/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +0 -74
  253. package/esm/helpers/dndkit/tree/customCollisionDetection.js +0 -82
  254. package/esm/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +0 -119
  255. package/esm/helpers/dndkit/tree/types.js +0 -1
  256. package/esm/helpers/dndkit/tree/useTreeActionHandlers.js +0 -70
  257. package/esm/helpers/dndkit/tree/useTreeAnnouncements.js +0 -51
  258. package/esm/helpers/dndkit/tree/useTreeDndkitConfig.js +0 -122
  259. package/esm/helpers/dndkit/tree/useTreePreviewHandlers.js +0 -47
  260. package/esm/helpers/dndkit/types.js +0 -1
  261. package/esm/helpers/dndkit/utilities.js +0 -46
  262. package/esm/parts/FilterBar/components/TextPill.js +0 -30
  263. package/esm/parts/HoC/DragOverlayContext.js +0 -7
  264. package/types/addons/Pagination/ActiveZoneButtons.d.ts +0 -9
  265. package/types/addons/Pagination/PagesButtons.d.ts +0 -4
  266. package/types/addons/Pagination/PerPageSelector.d.ts +0 -8
  267. package/types/exported-related/Filters/textFilterFn.d.ts +0 -2
  268. package/types/helpers/dndkit/hierarchy/customCollisionDetection.d.ts +0 -3
  269. package/types/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.d.ts +0 -3
  270. package/types/helpers/dndkit/hierarchy/types.d.ts +0 -66
  271. package/types/helpers/dndkit/hierarchy/useHierarchyActionHandlers.d.ts +0 -2
  272. package/types/helpers/dndkit/hierarchy/useHierarchyAnnouncements.d.ts +0 -3
  273. package/types/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.d.ts +0 -3
  274. package/types/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.d.ts +0 -2
  275. package/types/helpers/dndkit/tree/customCollisionDetection.d.ts +0 -4
  276. package/types/helpers/dndkit/tree/getTreeKeyboardCoordinates.d.ts +0 -3
  277. package/types/helpers/dndkit/tree/types.d.ts +0 -83
  278. package/types/helpers/dndkit/tree/useTreeActionHandlers.d.ts +0 -2
  279. package/types/helpers/dndkit/tree/useTreeAnnouncements.d.ts +0 -4
  280. package/types/helpers/dndkit/tree/useTreeDndkitConfig.d.ts +0 -3
  281. package/types/helpers/dndkit/tree/useTreePreviewHandlers.d.ts +0 -2
  282. package/types/helpers/dndkit/types.d.ts +0 -20
  283. package/types/helpers/dndkit/utilities.d.ts +0 -7
  284. package/types/parts/FilterBar/components/TextPill.d.ts +0 -2
  285. package/types/parts/HoC/DragOverlayContext.d.ts +0 -6
@@ -1,77 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'react';
3
- import SearchIcon from '@elliemae/ds-icons/SearchXsmall';
4
- import { FilterPopover } from '../../../../exported-related/FilterPopover.js';
5
- import 'core-js/modules/web.dom-collections.iterator.js';
6
- import '../../../../styled.js';
7
- import '../../../../DataTableContext.js';
8
- import 'react/jsx-runtime';
9
- import 'styled-components';
10
- import '@elliemae/ds-button';
11
- import '@elliemae/ds-icons/MoreOptionsVert';
12
- import '@elliemae/ds-utilities/hooks';
13
- import '../../../../configs/constants.js';
14
- import 'react-virtual';
15
- import '../../../../configs/useRowFlattenization.js';
16
- import '@babel/runtime/helpers/esm/defineProperty';
17
- import '@elliemae/ds-icons';
18
- import '@elliemae/ds-form/Checkbox';
19
- import '@elliemae/ds-form/Radio';
20
- import '../../../../parts/TableContent.js';
21
- import '@elliemae/ds-grid';
22
- import '@elliemae/ds-circular-progress-indicator';
23
- import '@elliemae/ds-icons/WarningTriangle';
24
- import '@elliemae/ds-system';
25
- import '../../../../parts/Row.js';
26
- import '../../../../parts/Footer.js';
27
- import '@elliemae/ds-icons/GripperVertical';
28
- import '../../../../parts/HoC/SortableItemContext.js';
29
- import 'uid';
30
- import { FILTER_TYPES } from '../../../../exported-related/FilterTypes.js';
31
- import '../../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
32
- import 'moment';
33
-
34
- var _SearchIcon;
35
- const TextInputFilter = props => {
36
- const {
37
- column,
38
- filterValue = '',
39
- reduxHeader,
40
- onValueChange,
41
- ctx: {
42
- tableProps: {
43
- data
44
- }
45
- },
46
- innerRef
47
- } = props;
48
- const count = data.length;
49
-
50
- const handleChange = event => {
51
- var _event$target;
52
-
53
- const newText = (event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value) || '';
54
- onValueChange(FILTER_TYPES.TEXT, newText);
55
- };
56
-
57
- return /*#__PURE__*/_jsx(FilterPopover, {
58
- reduxHeader: reduxHeader,
59
- column: column,
60
- columnId: column.id,
61
- menuContent:
62
- /*#__PURE__*/
63
- // eslint-disable-next-line jsx-a11y/no-autofocus
64
- _jsx("input", {
65
- value: filterValue,
66
- onChange: handleChange,
67
- placeholder: "Search ".concat(count, " records..."),
68
- autoFocus: true
69
- }),
70
- triggerIcon: _SearchIcon || (_SearchIcon = /*#__PURE__*/_jsx(SearchIcon, {})),
71
- removeWrapperStyles: true,
72
- innerRef: innerRef,
73
- ariaLabel: "Open Text Input Filter"
74
- });
75
- };
76
-
77
- export { TextInputFilter };
@@ -1,57 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'react';
3
- import { jsxs, Fragment } from 'react/jsx-runtime';
4
-
5
- var _span, _span2;
6
-
7
- const ActiveZoneButtons = props => {
8
- const {
9
- pageIndex,
10
- pageCount,
11
- onPageChange,
12
- ButtonComponent
13
- } = props;
14
- const pageValue = pageIndex + 1;
15
- const hasNumberOne = pageIndex >= 2;
16
- const hasPreEllipsis = pageIndex >= 3;
17
- const hasLastNumber = pageIndex <= pageCount - 3;
18
- const hasPostEllipsis = pageIndex <= pageCount - 4;
19
- return /*#__PURE__*/jsxs(Fragment, {
20
- children: [hasNumberOne && /*#__PURE__*/_jsx(ButtonComponent, {
21
- onClick: () => {
22
- onPageChange(1);
23
- },
24
- labelText: "1",
25
- buttonType: "secondary",
26
- "aria-label": "Go to page 1"
27
- }), hasPreEllipsis && (_span || (_span = /*#__PURE__*/_jsx("span", {}, void 0, "..."))), pageIndex - 1 >= 0 ? /*#__PURE__*/_jsx(ButtonComponent, {
28
- onClick: () => {
29
- onPageChange(pageIndex);
30
- },
31
- labelText: (pageValue - 1).toString(),
32
- buttonType: "secondary",
33
- "aria-label": "Go to page ".concat(pageValue - 1)
34
- }) : null, /*#__PURE__*/_jsx(ButtonComponent, {
35
- onClick: () => null,
36
- labelText: pageValue.toString(),
37
- buttonType: "primary",
38
- "aria-label": "On page ".concat(pageValue)
39
- }), pageIndex + 1 < pageCount ? /*#__PURE__*/_jsx(ButtonComponent, {
40
- onClick: () => {
41
- onPageChange(pageIndex + 2);
42
- },
43
- labelText: (pageValue + 1).toString(),
44
- buttonType: "secondary",
45
- "aria-label": "Go to page ".concat(pageValue + 1)
46
- }) : null, hasPostEllipsis && (_span2 || (_span2 = /*#__PURE__*/_jsx("span", {}, void 0, "..."))), hasLastNumber && /*#__PURE__*/_jsx(ButtonComponent, {
47
- onClick: () => {
48
- onPageChange(pageCount);
49
- },
50
- labelText: pageCount.toString(),
51
- buttonType: "secondary",
52
- "aria-label": "Go to page ".concat(pageCount)
53
- })]
54
- });
55
- };
56
-
57
- export { ActiveZoneButtons as default };
@@ -1,69 +0,0 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'react';
3
- import DSButton from '@elliemae/ds-button';
4
- import styled from 'styled-components';
5
- import ActiveZoneButtons from './ActiveZoneButtons.js';
6
- import { DATA_TESTID } from '../../configs/constants.js';
7
- import 'core-js/modules/web.dom-collections.iterator.js';
8
- import 'react-virtual';
9
- import '../../configs/useRowFlattenization.js';
10
- import '@babel/runtime/helpers/esm/defineProperty';
11
- import '@elliemae/ds-icons';
12
- import '../../styled.js';
13
- import { jsxs, Fragment } from 'react/jsx-runtime';
14
- import '@elliemae/ds-form/Checkbox';
15
- import '@elliemae/ds-form/Radio';
16
- import '../../parts/TableContent.js';
17
- import '@elliemae/ds-grid';
18
- import '@elliemae/ds-circular-progress-indicator';
19
- import '@elliemae/ds-icons/WarningTriangle';
20
- import '@elliemae/ds-system';
21
- import '../../DataTableContext.js';
22
- import '../../parts/Row.js';
23
- import '../../parts/Footer.js';
24
- import '@elliemae/ds-icons/GripperVertical';
25
- import '../../parts/HoC/SortableItemContext.js';
26
-
27
- const InlineDSButton = /*#__PURE__*/styled(DSButton).withConfig({
28
- componentId: "sc-eshyv3-0"
29
- })(["display:inline-block;margin:0 5px;"]);
30
-
31
- const PagesButtons = props => {
32
- const {
33
- canPreviousPage,
34
- canNextPage,
35
- pageIndex,
36
- pageCount,
37
- onNextPage,
38
- onPreviousPage,
39
- onPageChange
40
- } = props;
41
- return /*#__PURE__*/jsxs(Fragment, {
42
- children: [/*#__PURE__*/_jsx(InlineDSButton, {
43
- onClick: () => {
44
- if (canPreviousPage) onPreviousPage();
45
- },
46
- disabled: !canPreviousPage,
47
- labelText: "Previous",
48
- buttonType: "secondary",
49
- "data-testid": DATA_TESTID.DATA_TABLE_PAGINATION_PREVIOUS_BUTTON,
50
- "aria-label": "Go to previous page"
51
- }), /*#__PURE__*/_jsx(ActiveZoneButtons, {
52
- pageIndex: pageIndex,
53
- pageCount: pageCount,
54
- onPageChange: onPageChange,
55
- ButtonComponent: InlineDSButton
56
- }), /*#__PURE__*/_jsx(InlineDSButton, {
57
- onClick: () => {
58
- if (canNextPage) onNextPage();
59
- },
60
- disabled: !canNextPage,
61
- labelText: "Next",
62
- buttonType: "secondary",
63
- "data-testid": DATA_TESTID.DATA_TABLE_PAGINATION_NEXT_BUTTON,
64
- "aria-label": "Go to next page"
65
- })]
66
- });
67
- };
68
-
69
- export { PagesButtons as default };
@@ -1,73 +0,0 @@
1
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
- import _jsx from '@babel/runtime/helpers/esm/jsx';
3
- import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
4
- import { useMemo } from 'react';
5
- import memoize from 'memoize-one';
6
- import { range } from '@elliemae/ds-utilities/utils';
7
- import DSComboBox, { components } from '@elliemae/ds-form/ComboBox';
8
- import styled from 'styled-components';
9
- import { jsxs } from 'react/jsx-runtime';
10
-
11
- var _span;
12
-
13
- const _excluded = ["children"];
14
-
15
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
-
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
- const InlineDSComboBox = /*#__PURE__*/styled(DSComboBox).withConfig({
19
- componentId: "sc-1oa1180-0"
20
- })(["display:inline-block;margin:0 5px;max-width:250px;"]); // eslint-disable-next-line react/prop-types
21
-
22
- const SingleValue = _ref => {
23
- let {
24
- children
25
- } = _ref,
26
- props = _objectWithoutProperties(_ref, _excluded);
27
-
28
- return /*#__PURE__*/jsxs(components.SingleValue, _objectSpread(_objectSpread({}, props), {}, {
29
- children: [children, " ", _span || (_span = /*#__PURE__*/_jsx("span", {}, void 0, "per page"))]
30
- }));
31
- };
32
-
33
- const generateOption = value => ({
34
- value,
35
- label: value
36
- });
37
-
38
- const getOptions = memoize((step, min, max) => {
39
- const options = range(min, max + step, step).map(generateOption);
40
- return min === 0 ? options.slice(1, options.length) : options;
41
- });
42
-
43
- const PerPageSelector = props => {
44
- const {
45
- pageSize,
46
- pagination,
47
- setPageSize
48
- } = props;
49
- const options = useMemo(() => {
50
- const {
51
- perPageOptions,
52
- perPageStep = 5,
53
- minPerPage = 0,
54
- maxPerPage = 100
55
- } = pagination;
56
- if (perPageOptions) return perPageOptions.map(generateOption);
57
- return getOptions(perPageStep, minPerPage, maxPerPage);
58
- }, [pagination]);
59
- return /*#__PURE__*/_jsx(InlineDSComboBox, {
60
- className: "em-ds-per-page-dropdown",
61
- "aria-label": "Rows per page selector",
62
- components: {
63
- SingleValue
64
- },
65
- onChange: setPageSize,
66
- options: options,
67
- searchable: false,
68
- value: pageSize,
69
- maxOptions: options.length
70
- });
71
- };
72
-
73
- export { PerPageSelector as default };
@@ -1,6 +0,0 @@
1
- const textFilterFn = (unfilteredData, filterKey, filterValue) => {
2
- if (filterValue.length < 3) return unfilteredData;
3
- return unfilteredData.filter(datum => datum[filterKey].includes(filterValue));
4
- };
5
-
6
- export { textFilterFn };
@@ -1,60 +0,0 @@
1
- import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { DATA_TESTID } from '../../../configs/constants.js';
3
- import 'react';
4
- import 'react-virtual';
5
- import '../../../configs/useRowFlattenization.js';
6
- import '@babel/runtime/helpers/esm/defineProperty';
7
- import '@babel/runtime/helpers/esm/jsx';
8
- import '@elliemae/ds-icons';
9
- import 'styled-components';
10
- import '../../../styled.js';
11
- import 'react/jsx-runtime';
12
- import '@elliemae/ds-form/Checkbox';
13
- import '@elliemae/ds-form/Radio';
14
- import '../../../parts/TableContent.js';
15
- import '@elliemae/ds-grid';
16
- import '@elliemae/ds-circular-progress-indicator';
17
- import '@elliemae/ds-icons/WarningTriangle';
18
- import '@elliemae/ds-system';
19
- import '@elliemae/ds-button';
20
- import '../../../DataTableContext.js';
21
- import '../../../parts/Row.js';
22
- import '../../../parts/Footer.js';
23
- import '@elliemae/ds-icons/GripperVertical';
24
- import '../../../parts/HoC/SortableItemContext.js';
25
-
26
- const customCollisionDetection = (activeId, activeParent, dndItems) => (entries, target) => {
27
- var _document$querySelect, _document$querySelect2;
28
-
29
- const entriesWithSameParent = entries.filter(([id]) => {
30
- var _dndItems$find;
31
-
32
- return ((_dndItems$find = dndItems.find(item => item.id === id)) === null || _dndItems$find === void 0 ? void 0 : _dndItems$find.parentId) === activeParent;
33
- });
34
- const dragOverlayRect = (_document$querySelect = (_document$querySelect2 = document.querySelector("[data-testid=\"".concat(DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect()) !== null && _document$querySelect !== void 0 ? _document$querySelect : {
35
- width: 150
36
- };
37
- const originalRect = entriesWithSameParent.find(([id]) => id === activeId);
38
-
39
- if (originalRect[1].offsetLeft <= target.offsetLeft && target.offsetLeft <= originalRect[1].offsetLeft + originalRect[1].width) {
40
- return originalRect[0];
41
- }
42
-
43
- const isLeft = target.offsetLeft <= originalRect[1].offsetLeft + dragOverlayRect.width / 2 + 5;
44
- let match = null; // If going to the left, search the closest offset left
45
- // Otherwise, get the closest offset right
46
-
47
- const collisionPoint = target.offsetLeft + dragOverlayRect.width / 2;
48
- entriesWithSameParent.forEach(entry => {
49
- const [, rect] = entry;
50
- const offsetRight = rect.offsetLeft + rect.width;
51
- if (!match) match = entry;else if (isLeft && Math.abs(collisionPoint - rect.offsetLeft) <= Math.abs(collisionPoint - match[1].offsetLeft)) {
52
- match = entry;
53
- } else if (!isLeft && Math.abs(collisionPoint - offsetRight) <= Math.abs(collisionPoint - match[1].offsetLeft - match[1].width)) {
54
- match = entry;
55
- }
56
- });
57
- return match === null ? null : match[0];
58
- };
59
-
60
- export { customCollisionDetection };
@@ -1,120 +0,0 @@
1
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
- import 'core-js/modules/web.dom-collections.iterator.js';
3
- import { KeyboardCode, getViewRect, closestCorners } from '@dnd-kit/core';
4
- import { DATA_TESTID } from '../../../configs/constants.js';
5
- import 'react';
6
- import 'react-virtual';
7
- import '../../../configs/useRowFlattenization.js';
8
- import '@babel/runtime/helpers/esm/jsx';
9
- import '@elliemae/ds-icons';
10
- import 'styled-components';
11
- import '../../../styled.js';
12
- import 'react/jsx-runtime';
13
- import '@elliemae/ds-form/Checkbox';
14
- import '@elliemae/ds-form/Radio';
15
- import '../../../parts/TableContent.js';
16
- import '@elliemae/ds-grid';
17
- import '@elliemae/ds-circular-progress-indicator';
18
- import '@elliemae/ds-icons/WarningTriangle';
19
- import '@elliemae/ds-system';
20
- import '@elliemae/ds-button';
21
- import '../../../DataTableContext.js';
22
- import '../../../parts/Row.js';
23
- import '../../../parts/Footer.js';
24
- import '@elliemae/ds-icons/GripperVertical';
25
- import '../../../parts/HoC/SortableItemContext.js';
26
-
27
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
-
29
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
- const directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];
31
- const vertical = [KeyboardCode.Up, KeyboardCode.Down];
32
-
33
- const getHorizontalKeyboardCoordinates = ({
34
- items,
35
- active,
36
- over,
37
- event,
38
- currentCoordinates,
39
- droppableContainers,
40
- translatedRect
41
- }) => {
42
- var _document$querySelect, _document$querySelect2;
43
-
44
- if (vertical.includes(event.code)) return undefined;
45
- const activeItem = items.find(item => item.id === active);
46
- const overRect = over.rect;
47
- const layoutRects = []; // Get the reacheable rects depending on the arrow key pressed
48
-
49
- Object.entries(droppableContainers).forEach(([id, container]) => {
50
- if (container !== null && container !== void 0 && container.disabled || !overRect) {
51
- return;
52
- }
53
-
54
- const node = container === null || container === void 0 ? void 0 : container.node.current;
55
-
56
- if (!node) {
57
- return;
58
- }
59
-
60
- const itemParent = items.find(item => item.id === id).parentId;
61
- if (itemParent !== activeItem.parentId) return;
62
- const rect = getViewRect(node);
63
-
64
- if (event.code === KeyboardCode.Left && translatedRect.left > rect.right - 10) {
65
- layoutRects.push([id, rect]);
66
- } else if (event.code === KeyboardCode.Right && translatedRect.left < rect.left) {
67
- layoutRects.push([id, rect]);
68
- }
69
- });
70
- const dragOverlayRect = (_document$querySelect = (_document$querySelect2 = document.querySelector("[data-testid=\"".concat(DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect()) !== null && _document$querySelect !== void 0 ? _document$querySelect : {
71
- width: 150,
72
- left: 0
73
- };
74
- const closestId = closestCorners(layoutRects, translatedRect);
75
- if (!closestId) return undefined;
76
- const closestRect = getViewRect(droppableContainers[closestId].node.current);
77
- const activeRect = getViewRect(droppableContainers[active].node.current);
78
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
79
- x: closestRect.left + (closestRect.width - dragOverlayRect.width) / 2 + (closestRect.offsetLeft < activeRect.left ? -1 : 1)
80
- });
81
- };
82
-
83
- const getHierarchyKeyboardCoordinates = (context, isHorizontalDnD) => (event, {
84
- active,
85
- currentCoordinates,
86
- context: {
87
- over,
88
- translatedRect,
89
- droppableContainers
90
- }
91
- }) => {
92
- if (directions.includes(event.code)) {
93
- event.preventDefault();
94
-
95
- if (!translatedRect) {
96
- return undefined;
97
- }
98
-
99
- const {
100
- current: {
101
- items
102
- }
103
- } = context;
104
- const args = {
105
- items,
106
- active,
107
- over,
108
- event,
109
- currentCoordinates,
110
- droppableContainers,
111
- translatedRect
112
- };
113
- if (isHorizontalDnD) return getHorizontalKeyboardCoordinates(args);
114
- return undefined;
115
- }
116
-
117
- return undefined;
118
- };
119
-
120
- export { getHierarchyKeyboardCoordinates };
@@ -1 +0,0 @@
1
-
@@ -1,50 +0,0 @@
1
- import { useCallback } from 'react';
2
-
3
- const useHierarchyActionHandlers = ({
4
- handlePreviewDragStart,
5
- handlePreviewDragMove,
6
- handlePreviewDragOver,
7
- handlePreviewDragEnd,
8
- handlePreviewDragCancel,
9
- onReorder,
10
- dndItems
11
- }) => {
12
- const onDragStart = useCallback(e => {
13
- handlePreviewDragStart(e);
14
- }, [handlePreviewDragStart]);
15
- const onDragMove = useCallback(e => {
16
- handlePreviewDragMove(e);
17
- }, [handlePreviewDragMove]);
18
- const onDragOver = useCallback(e => {
19
- handlePreviewDragOver(e);
20
- }, [handlePreviewDragOver]);
21
- const onDragEnd = useCallback(e => {
22
- handlePreviewDragEnd(e);
23
- const {
24
- active,
25
- over
26
- } = e;
27
- if (!over) return;
28
-
29
- if (active.id !== over.id) {
30
- const activeIndex = dndItems.findIndex(item => item.id === active.id);
31
- const overIndex = dndItems.findIndex(item => item.id === over.id);
32
- onReorder(dndItems[activeIndex], {
33
- targetIndex: overIndex,
34
- fromIndex: activeIndex
35
- });
36
- }
37
- }, [handlePreviewDragEnd, dndItems, onReorder]);
38
- const onDragCancel = useCallback(e => {
39
- handlePreviewDragCancel(e);
40
- }, [handlePreviewDragCancel]);
41
- return {
42
- onDragStart,
43
- onDragMove,
44
- onDragOver,
45
- onDragEnd,
46
- onDragCancel
47
- };
48
- };
49
-
50
- export { useHierarchyActionHandlers };
@@ -1,32 +0,0 @@
1
- import { useCallback } from 'react';
2
-
3
- const useHierarchyAnnouncements = visibleItemsDictionary => {
4
- const onDragStart = useCallback(id => "Picked up draggable item from position ".concat(visibleItemsDictionary[id].index + 1, "."), [visibleItemsDictionary]);
5
- const onDragMove = useCallback((id, overId) => {
6
- if (overId) {
7
- const overIndex = visibleItemsDictionary[overId].index + 1;
8
- return "Draggable item was moved to position ".concat(overIndex, ".");
9
- }
10
-
11
- return "Draggable item is no longer over a droppable area.";
12
- }, [visibleItemsDictionary]);
13
- const onDragOver = onDragMove;
14
- const onDragEnd = useCallback((id, overId) => {
15
- if (overId) {
16
- const overIndex = visibleItemsDictionary[overId].index + 1;
17
- return "Draggable item was dropped over position ".concat(overIndex, ".");
18
- }
19
-
20
- return "Draggable item was dropped at it's original position.";
21
- }, [visibleItemsDictionary]);
22
- const onDragCancel = useCallback(id => "Dragging was cancelled. Draggable item from position ".concat(visibleItemsDictionary[id].index + 1, " was dropped at it's initial position."), [visibleItemsDictionary]);
23
- return {
24
- onDragStart,
25
- onDragOver,
26
- onDragMove,
27
- onDragEnd,
28
- onDragCancel
29
- };
30
- };
31
-
32
- export { useHierarchyAnnouncements };
@@ -1,87 +0,0 @@
1
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
- import 'core-js/modules/web.dom-collections.iterator.js';
3
- import { useState, useMemo, useRef, useEffect } from 'react';
4
- import { LayoutMeasuringStrategy, useSensors, useSensor, PointerSensor, KeyboardSensor } from '@dnd-kit/core';
5
- import { useHierarchyActionHandlers } from './useHierarchyActionHandlers.js';
6
- import { useHierarchyPreviewHandlers } from './useHierarchyPreviewHandlers.js';
7
- import { getHierarchyKeyboardCoordinates } from './getHierarchyKeyboardCoordinates.js';
8
- import { customCollisionDetection } from './customCollisionDetection.js';
9
- import { useHierarchyAnnouncements } from './useHierarchyAnnouncements.js';
10
-
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
12
-
13
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14
- // if second parameter is true, the space will be done on the horizontal axis
15
-
16
- const adjustTranslate = ({
17
- transform
18
- }, isHorizontalDnD = false) => {
19
- const newTransform = _objectSpread({}, transform);
20
-
21
- if (isHorizontalDnD) {
22
- newTransform.y = transform.y + 15;
23
- } else {
24
- newTransform.y = transform.y - 35;
25
- }
26
-
27
- return newTransform;
28
- };
29
-
30
- const layoutMeasuring = {
31
- strategy: LayoutMeasuringStrategy.Always
32
- };
33
-
34
- const useHierarchyDndkitConfig = ({
35
- flattenedItems,
36
- isHorizontalDnD = false,
37
- onReorder
38
- }) => {
39
- const [activeId, setActiveId] = useState(null);
40
- const [overId, setOverId] = useState(null);
41
- const dndItems = useMemo(() => flattenedItems.map(([item]) => item), [flattenedItems]);
42
- const activeItem = useMemo(() => dndItems.find(item => item.id === activeId), [activeId, dndItems]);
43
- const itemsDictionary = useMemo(() => {
44
- const dictionary = {};
45
- dndItems.forEach(item => {
46
- dictionary[item.id] = item;
47
- });
48
- return dictionary;
49
- }, [dndItems]);
50
- const modifiers = useMemo(() => [options => adjustTranslate(options, isHorizontalDnD)], [isHorizontalDnD]);
51
- const sensorContext = useRef({
52
- items: dndItems
53
- });
54
- useEffect(() => {
55
- sensorContext.current = {
56
- items: dndItems
57
- };
58
- }, [dndItems]);
59
- const coordinateGetter = useMemo(() => getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD), [isHorizontalDnD]);
60
- const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
61
- coordinateGetter
62
- }));
63
- const dragPreviewHandlers = useHierarchyPreviewHandlers({
64
- setActiveId,
65
- setOverId
66
- });
67
- const dragActionHandlers = useHierarchyActionHandlers(_objectSpread(_objectSpread({}, dragPreviewHandlers), {}, {
68
- dndItems,
69
- onReorder
70
- }));
71
- const announcements = useHierarchyAnnouncements(itemsDictionary);
72
- const dndContextProps = useMemo(() => _objectSpread({
73
- announcements,
74
- modifiers,
75
- sensors,
76
- layoutMeasuring,
77
- collisionDetection: customCollisionDetection(activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems)
78
- }, dragActionHandlers), [announcements, modifiers, sensors, activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems, dragActionHandlers]);
79
- return {
80
- dndContextProps,
81
- activeId,
82
- overId,
83
- activeIndex: activeId ? activeItem.index : -1
84
- };
85
- };
86
-
87
- export { useHierarchyDndkitConfig as default };