@elliemae/ds-data-table 2.0.0-alpha.10 → 2.0.0-alpha.14

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