@elliemae/ds-data-table 2.0.0-rc.4 → 2.0.0-rc.8

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 (87) hide show
  1. package/cjs/DataTableSchema.js +1 -1
  2. package/cjs/addons/Filters/Components/index.js +0 -2
  3. package/cjs/addons/Filters/index.js +0 -2
  4. package/cjs/exported-related/FilterPopover.js +17 -3
  5. package/cjs/exported-related/FilterTypes.js +0 -1
  6. package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +0 -2
  7. package/cjs/exported-related/Filters/index.js +0 -2
  8. package/cjs/exported-related/index.js +0 -2
  9. package/cjs/helpers/dndkit/hierarchy/customCollisionDetection.js +27 -14
  10. package/cjs/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +22 -20
  11. package/cjs/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +5 -3
  12. package/cjs/helpers/dndkit/tree/customCollisionDetection.js +45 -25
  13. package/cjs/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +25 -30
  14. package/cjs/helpers/dndkit/tree/useTreeDndkitConfig.js +5 -3
  15. package/cjs/helpers/refs-helpers.js +2 -2
  16. package/cjs/index.js +0 -2
  17. package/cjs/parts/FilterBar/FiltersBar.js +0 -2
  18. package/cjs/parts/FilterBar/components/index.js +0 -2
  19. package/cjs/parts/Filters/index.js +10 -12
  20. package/cjs/parts/Headers/HeaderCellGroup.js +4 -3
  21. package/cjs/parts/Headers/index.js +1 -1
  22. package/cjs/parts/HoC/withConditionalDnDColumnContext.js +17 -13
  23. package/cjs/parts/HoC/withConditionalDnDRowContext.js +9 -10
  24. package/cjs/parts/HoC/withConditionalDnDSortableContext.js +1 -1
  25. package/cjs/parts/HoC/withDnDSortableColumnContext.js +5 -19
  26. package/cjs/parts/HoC/withDnDSortableRowContext.js +3 -17
  27. package/cjs/parts/Row.js +10 -10
  28. package/cjs/parts/Rows.js +1 -1
  29. package/cjs/parts/index.js +1 -1
  30. package/cjs/styled.js +1 -1
  31. package/esm/DataTableSchema.js +1 -1
  32. package/esm/addons/Filters/Components/index.js +0 -1
  33. package/esm/addons/Filters/index.js +0 -1
  34. package/esm/exported-related/FilterPopover.js +17 -3
  35. package/esm/exported-related/FilterTypes.js +0 -1
  36. package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +0 -2
  37. package/esm/exported-related/Filters/index.js +0 -1
  38. package/esm/exported-related/index.js +0 -1
  39. package/esm/helpers/dndkit/hierarchy/customCollisionDetection.js +27 -14
  40. package/esm/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +22 -20
  41. package/esm/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +6 -4
  42. package/esm/helpers/dndkit/tree/customCollisionDetection.js +45 -25
  43. package/esm/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +26 -31
  44. package/esm/helpers/dndkit/tree/useTreeDndkitConfig.js +6 -4
  45. package/esm/helpers/refs-helpers.js +2 -2
  46. package/esm/index.js +0 -1
  47. package/esm/parts/FilterBar/FiltersBar.js +0 -2
  48. package/esm/parts/FilterBar/components/index.js +0 -1
  49. package/esm/parts/Filters/index.js +0 -2
  50. package/esm/parts/Headers/HeaderCellGroup.js +4 -4
  51. package/esm/parts/Headers/index.js +2 -2
  52. package/esm/parts/HoC/withConditionalDnDColumnContext.js +19 -15
  53. package/esm/parts/HoC/withConditionalDnDRowContext.js +11 -12
  54. package/esm/parts/HoC/withConditionalDnDSortableContext.js +1 -1
  55. package/esm/parts/HoC/withDnDSortableColumnContext.js +6 -20
  56. package/esm/parts/HoC/withDnDSortableRowContext.js +4 -18
  57. package/esm/parts/Row.js +7 -10
  58. package/esm/styled.js +1 -1
  59. package/package.json +17 -33
  60. package/types/DataTable.d.ts +245 -43
  61. package/types/DataTableSchema.d.ts +245 -43
  62. package/types/addons/Filters/Components/SelectFilter/components.d.ts +6 -6
  63. package/types/addons/Filters/Components/index.d.ts +0 -1
  64. package/types/exported-related/FilterTypes.d.ts +0 -1
  65. package/types/exported-related/Filters/index.d.ts +0 -1
  66. package/types/helpers/dndkit/hierarchy/types.d.ts +3 -3
  67. package/types/helpers/dndkit/tree/types.d.ts +3 -4
  68. package/types/helpers/dndkit/types.d.ts +2 -2
  69. package/types/helpers/refs-helpers.d.ts +1 -1
  70. package/types/parts/FilterBar/components/index.d.ts +0 -1
  71. package/types/parts/FilterBar/styled.d.ts +165 -30
  72. package/types/parts/Headers/HeaderCellGroup.d.ts +4 -3
  73. package/types/parts/Row.d.ts +2 -1
  74. package/types/styled.d.ts +19 -19
  75. package/types/types/props.d.ts +2 -2
  76. package/cjs/addons/Filters/Components/TextInputFilter/index.js +0 -92
  77. package/cjs/exported-related/Filters/textFilterFn.js +0 -14
  78. package/cjs/parts/FilterBar/components/TextPill.js +0 -42
  79. package/cjs/parts/HoC/DragOverlayContext.js +0 -11
  80. package/esm/addons/Filters/Components/TextInputFilter/index.js +0 -84
  81. package/esm/exported-related/Filters/textFilterFn.js +0 -10
  82. package/esm/parts/FilterBar/components/TextPill.js +0 -34
  83. package/esm/parts/HoC/DragOverlayContext.js +0 -7
  84. package/types/addons/Filters/Components/TextInputFilter/index.d.ts +0 -3
  85. package/types/exported-related/Filters/textFilterFn.d.ts +0 -2
  86. package/types/parts/FilterBar/components/TextPill.d.ts +0 -2
  87. package/types/parts/HoC/DragOverlayContext.d.ts +0 -6
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var reactDesc = require('react-desc');
6
6
 
7
7
  /* eslint-disable max-lines */
8
- const outOfTheBoxFilterType = reactDesc.PropTypes.oneOf(['ds-filter-select', 'ds-filter-multi-select', 'ds-filter-text', 'ds-filter-single-date', 'ds-filter-date-range', 'ds-filter-number-range']);
8
+ const outOfTheBoxFilterType = reactDesc.PropTypes.oneOf(['ds-filter-select', 'ds-filter-multi-select', 'ds-filter-single-date', 'ds-filter-date-range', 'ds-filter-number-range']);
9
9
  const textWrappingType = reactDesc.PropTypes.oneOf(['wrap', 'wrap-all', 'truncate']);
10
10
  const rowVariantType = reactDesc.PropTypes.oneOf(['ds_header_group_row', 'ds_primary_row', 'ds_secondary_row']);
11
11
  const columnPropTypes = {
@@ -9,7 +9,6 @@ var index$3 = require('./CurrencyRangeFilter/index.js');
9
9
  var SingleSelectFilter = require('./SelectFilter/SingleSelectFilter.js');
10
10
  var MultiSelectFilter = require('./SelectFilter/MultiSelectFilter.js');
11
11
  var index$4 = require('./SingleDateFilter/index.js');
12
- var index$5 = require('./TextInputFilter/index.js');
13
12
 
14
13
 
15
14
 
@@ -20,4 +19,3 @@ exports.CurrencyRangeFilter = index$3.CurrencyRangeFilter;
20
19
  exports.SingleSelectFilter = SingleSelectFilter.SingleSelectFilter;
21
20
  exports.MultiSelectFilter = MultiSelectFilter.MultiSelectFilter;
22
21
  exports.SingleDateFilter = index$4.SingleDateFilter;
23
- exports.TextInputFilter = index$5.TextInputFilter;
@@ -9,7 +9,6 @@ var index$3 = require('./Components/CurrencyRangeFilter/index.js');
9
9
  var SingleSelectFilter = require('./Components/SelectFilter/SingleSelectFilter.js');
10
10
  var MultiSelectFilter = require('./Components/SelectFilter/MultiSelectFilter.js');
11
11
  var index$4 = require('./Components/SingleDateFilter/index.js');
12
- var index$5 = require('./Components/TextInputFilter/index.js');
13
12
 
14
13
 
15
14
 
@@ -20,4 +19,3 @@ exports.CurrencyRangeFilter = index$3.CurrencyRangeFilter;
20
19
  exports.SingleSelectFilter = SingleSelectFilter.SingleSelectFilter;
21
20
  exports.MultiSelectFilter = MultiSelectFilter.MultiSelectFilter;
22
21
  exports.SingleDateFilter = index$4.SingleDateFilter;
23
- exports.TextInputFilter = index$5.TextInputFilter;
@@ -52,6 +52,9 @@ const FilterButton = /*#__PURE__*/styled__default["default"].span.withConfig({
52
52
  const Button = /*#__PURE__*/styled__default["default"](DSButton__default["default"]).withConfig({
53
53
  componentId: "sc-16i88ut-1"
54
54
  })(["position:relative;justify-self:flex-end;"]);
55
+ const PopperContent = /*#__PURE__*/styled__default["default"].div.withConfig({
56
+ componentId: "sc-16i88ut-2"
57
+ })(["background-color:'#fff';"]);
55
58
  const FilterPopover = _ref2 => {
56
59
  var _column$ref$current$o, _column$ref, _column$ref$current;
57
60
 
@@ -152,9 +155,20 @@ const FilterPopover = _ref2 => {
152
155
  minWidth: (_column$ref$current$o = (_column$ref = column.ref) === null || _column$ref === void 0 ? void 0 : (_column$ref$current = _column$ref.current) === null || _column$ref$current === void 0 ? void 0 : _column$ref$current.offsetWidth) !== null && _column$ref$current$o !== void 0 ? _column$ref$current$o : '0px'
153
156
  }),
154
157
  placementOrderPreference: ['bottom-end']
155
- }, void 0, /*#__PURE__*/jsxRuntime.jsx("div", {
156
- style: {
157
- backgroundColor: '#fff'
158
+ }, void 0, /*#__PURE__*/jsxRuntime.jsx(PopperContent, {
159
+ onKeyDown: e => {
160
+ if (e.code === 'Tab') {
161
+ setTimeout(() => {
162
+ var _popperRef$current;
163
+
164
+ if (!(popperRef !== null && popperRef !== void 0 && (_popperRef$current = popperRef.current) !== null && _popperRef$current !== void 0 && _popperRef$current.contains(document.activeElement))) {
165
+ patchHeader(columnId, {
166
+ hideFilterMenu: true,
167
+ hideFilterButton: false
168
+ });
169
+ }
170
+ });
171
+ }
158
172
  },
159
173
  ref: popperRef,
160
174
  children: menuContent
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const FILTER_TYPES = {
6
6
  SELECT: 'ds-filter-select',
7
7
  MULTI_SELECT: 'ds-filter-multi-select',
8
- TEXT: 'ds-filter-text',
9
8
  SINGLE_DATE: 'ds-filter-single-date',
10
9
  DATE_RANGE: 'ds-filter-date-range',
11
10
  DATE_SWITCHER: 'ds-filter-date-switcher',
@@ -7,7 +7,6 @@ require('core-js/modules/esnext.iterator.constructor.js');
7
7
  require('core-js/modules/esnext.iterator.for-each.js');
8
8
  var singleSelectFilterFn = require('./singleSelectFilterFn.js');
9
9
  var multiSelectFilterFn = require('./multiSelectFilterFn.js');
10
- var textFilterFn = require('./textFilterFn.js');
11
10
  var singleDateFilterFn = require('./singleDateFilterFn.js');
12
11
  var dateRangeFilterFn = require('./dateRangeFilterFn.js');
13
12
  var dateSwitcherFilterFn = require('./dateSwitcherFilterFn.js');
@@ -19,7 +18,6 @@ var FilterTypes = require('../FilterTypes.js');
19
18
  const filterMapper = {
20
19
  [FilterTypes.FILTER_TYPES.SELECT]: singleSelectFilterFn.singleSelectFilterFn,
21
20
  [FilterTypes.FILTER_TYPES.MULTI_SELECT]: multiSelectFilterFn.multiSelectFilterFn,
22
- [FilterTypes.FILTER_TYPES.TEXT]: textFilterFn.textFilterFn,
23
21
  [FilterTypes.FILTER_TYPES.SINGLE_DATE]: singleDateFilterFn.singleDateFilterFn,
24
22
  [FilterTypes.FILTER_TYPES.DATE_RANGE]: dateRangeFilterFn.dateRangeFilterFn,
25
23
  [FilterTypes.FILTER_TYPES.DATE_SWITCHER]: dateSwitcherFilterFn.dateSwitcherFilterFn,
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var applyOutOfTheBoxFilters = require('./applyOutOfTheBoxFilters.js');
6
- var textFilterFn = require('./textFilterFn.js');
7
6
  var singleDateFilterFn = require('./singleDateFilterFn.js');
8
7
  var singleSelectFilterFn = require('./singleSelectFilterFn.js');
9
8
  var multiSelectFilterFn = require('./multiSelectFilterFn.js');
@@ -14,7 +13,6 @@ var dateRangeFilterFn = require('./dateRangeFilterFn.js');
14
13
 
15
14
 
16
15
  exports.applyOutOfTheBoxFilters = applyOutOfTheBoxFilters.applyOutOfTheBoxFilters;
17
- exports.textFilterFn = textFilterFn.textFilterFn;
18
16
  exports.singleDateFilterFn = singleDateFilterFn.singleDateFilterFn;
19
17
  exports.singleSelectFilterFn = singleSelectFilterFn.singleSelectFilterFn;
20
18
  exports.multiSelectFilterFn = multiSelectFilterFn.multiSelectFilterFn;
@@ -9,7 +9,6 @@ var groupBy = require('./groupBy.js');
9
9
  var FilterTypes = require('./FilterTypes.js');
10
10
  var RowVariants = require('./RowVariants.js');
11
11
  var applyOutOfTheBoxFilters = require('./Filters/applyOutOfTheBoxFilters.js');
12
- var textFilterFn = require('./Filters/textFilterFn.js');
13
12
  var singleDateFilterFn = require('./Filters/singleDateFilterFn.js');
14
13
  var singleSelectFilterFn = require('./Filters/singleSelectFilterFn.js');
15
14
  var multiSelectFilterFn = require('./Filters/multiSelectFilterFn.js');
@@ -28,7 +27,6 @@ exports.ROW_VARIANTS = RowVariants.ROW_VARIANTS;
28
27
  exports.ROW_VARIANT_COMPACT_KEY = RowVariants.ROW_VARIANT_COMPACT_KEY;
29
28
  exports.ROW_VARIANT_KEY = RowVariants.ROW_VARIANT_KEY;
30
29
  exports.applyOutOfTheBoxFilters = applyOutOfTheBoxFilters.applyOutOfTheBoxFilters;
31
- exports.textFilterFn = textFilterFn.textFilterFn;
32
30
  exports.singleDateFilterFn = singleDateFilterFn.singleDateFilterFn;
33
31
  exports.singleSelectFilterFn = singleSelectFilterFn.singleSelectFilterFn;
34
32
  exports.multiSelectFilterFn = multiSelectFilterFn.multiSelectFilterFn;
@@ -5,12 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  require('core-js/modules/esnext.async-iterator.filter.js');
6
6
  require('core-js/modules/esnext.iterator.constructor.js');
7
7
  require('core-js/modules/esnext.iterator.filter.js');
8
- require('core-js/modules/web.dom-collections.iterator.js');
9
8
  require('core-js/modules/esnext.async-iterator.find.js');
10
9
  require('core-js/modules/esnext.iterator.find.js');
11
10
  require('core-js/modules/esnext.async-iterator.for-each.js');
12
11
  require('core-js/modules/esnext.iterator.for-each.js');
13
12
  var constants = require('../../../configs/constants.js');
13
+ require('core-js/modules/web.dom-collections.iterator.js');
14
14
  require('core-js/modules/esnext.async-iterator.reduce.js');
15
15
  require('core-js/modules/esnext.iterator.reduce.js');
16
16
  require('react');
@@ -35,42 +35,55 @@ require('../../../parts/Row.js');
35
35
  require('../../../parts/Footer.js');
36
36
  require('../../../parts/HoC/SortableItemContext.js');
37
37
 
38
- const customCollisionDetection = (activeId, activeParent, dndItems) => (entries, target) => {
38
+ const customCollisionDetection = (activeId, activeParent, dndItems) => _ref => {
39
39
  var _document$querySelect, _document$querySelect2;
40
40
 
41
- const entriesWithSameParent = entries.filter(_ref => {
41
+ let {
42
+ droppableContainers,
43
+ collisionRect
44
+ } = _ref;
45
+ const entriesWithSameParent = droppableContainers.filter(_ref2 => {
42
46
  var _dndItems$find;
43
47
 
44
- let [id] = _ref;
48
+ let {
49
+ id
50
+ } = _ref2;
45
51
  return ((_dndItems$find = dndItems.find(item => item.id === id)) === null || _dndItems$find === void 0 ? void 0 : _dndItems$find.parentId) === activeParent;
46
52
  });
47
53
  const dragOverlayRect = (_document$querySelect = (_document$querySelect2 = document.querySelector("[data-testid=\"".concat(constants.DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect()) !== null && _document$querySelect !== void 0 ? _document$querySelect : {
48
54
  width: 150
49
55
  };
50
- const originalRect = entriesWithSameParent.find(_ref2 => {
51
- let [id] = _ref2;
56
+ const originalContainer = entriesWithSameParent.find(_ref3 => {
57
+ let {
58
+ id
59
+ } = _ref3;
52
60
  return id === activeId;
53
61
  });
62
+ const originalRect = originalContainer.rect.current;
54
63
 
55
- if (originalRect[1].offsetLeft <= target.offsetLeft && target.offsetLeft <= originalRect[1].offsetLeft + originalRect[1].width) {
56
- return originalRect[0];
64
+ if (originalRect.offsetLeft <= collisionRect.offsetLeft && collisionRect.offsetLeft <= originalRect.offsetLeft + originalRect.width) {
65
+ return originalContainer.id;
57
66
  }
58
67
 
59
- const isLeft = target.offsetLeft <= originalRect[1].offsetLeft + dragOverlayRect.width / 2 + 5;
68
+ const isLeft = collisionRect.offsetLeft <= originalRect.offsetLeft + dragOverlayRect.width / 2 + 5;
60
69
  let match = null; // If going to the left, search the closest offset left
61
70
  // Otherwise, get the closest offset right
62
71
 
63
- const collisionPoint = target.offsetLeft + dragOverlayRect.width / 2;
72
+ const collisionPoint = collisionRect.offsetLeft + dragOverlayRect.width / 2;
64
73
  entriesWithSameParent.forEach(entry => {
65
- const [, rect] = entry;
74
+ const {
75
+ rect: {
76
+ current: rect
77
+ }
78
+ } = entry;
66
79
  const offsetRight = rect.offsetLeft + rect.width;
67
- if (!match) match = entry;else if (isLeft && Math.abs(collisionPoint - rect.offsetLeft) <= Math.abs(collisionPoint - match[1].offsetLeft)) {
80
+ if (!match) match = entry;else if (isLeft && Math.abs(collisionPoint - rect.offsetLeft) <= Math.abs(collisionPoint - match.rect.current.offsetLeft)) {
68
81
  match = entry;
69
- } else if (!isLeft && Math.abs(collisionPoint - offsetRight) <= Math.abs(collisionPoint - match[1].offsetLeft - match[1].width)) {
82
+ } else if (!isLeft && Math.abs(collisionPoint - offsetRight) <= Math.abs(collisionPoint - match.rect.current.offsetLeft - match.rect.current.width)) {
70
83
  match = entry;
71
84
  }
72
85
  });
73
- return match === null ? null : match[0];
86
+ return match === null ? null : match.id;
74
87
  };
75
88
 
76
89
  exports.customCollisionDetection = customCollisionDetection;
@@ -8,11 +8,11 @@ require('core-js/modules/esnext.iterator.constructor.js');
8
8
  require('core-js/modules/esnext.iterator.find.js');
9
9
  require('core-js/modules/esnext.async-iterator.for-each.js');
10
10
  require('core-js/modules/esnext.iterator.for-each.js');
11
- require('core-js/modules/web.dom-collections.iterator.js');
12
11
  require('core-js/modules/esnext.async-iterator.filter.js');
13
12
  require('core-js/modules/esnext.iterator.filter.js');
14
13
  var core = require('@dnd-kit/core');
15
14
  var constants = require('../../../configs/constants.js');
15
+ require('core-js/modules/web.dom-collections.iterator.js');
16
16
  require('core-js/modules/esnext.async-iterator.reduce.js');
17
17
  require('core-js/modules/esnext.iterator.reduce.js');
18
18
  require('react');
@@ -56,16 +56,14 @@ const getHorizontalKeyboardCoordinates = _ref => {
56
56
  event,
57
57
  currentCoordinates,
58
58
  droppableContainers,
59
- translatedRect
59
+ collisionRect
60
60
  } = _ref;
61
61
  if (vertical.includes(event.code)) return undefined;
62
- const activeItem = items.find(item => item.id === active);
62
+ const activeItem = items.find(item => item.id === active.id);
63
63
  const overRect = over.rect;
64
64
  const layoutRects = []; // Get the reacheable rects depending on the arrow key pressed
65
65
 
66
- Object.entries(droppableContainers).forEach(_ref2 => {
67
- let [id, container] = _ref2;
68
-
66
+ droppableContainers.forEach(container => {
69
67
  if (container !== null && container !== void 0 && container.disabled || !overRect) {
70
68
  return;
71
69
  }
@@ -76,44 +74,48 @@ const getHorizontalKeyboardCoordinates = _ref => {
76
74
  return;
77
75
  }
78
76
 
79
- const itemParent = items.find(item => item.id === id).parentId;
77
+ const itemParent = items.find(item => item.id === container.id).parentId;
80
78
  if (itemParent !== activeItem.parentId) return;
81
79
  const rect = core.getViewRect(node);
82
80
 
83
- if (event.code === core.KeyboardCode.Left && translatedRect.left > rect.right - 10) {
84
- layoutRects.push([id, rect]);
85
- } else if (event.code === core.KeyboardCode.Right && translatedRect.left < rect.left) {
86
- layoutRects.push([id, rect]);
81
+ if (event.code === core.KeyboardCode.Left && collisionRect.left > rect.right - 10) {
82
+ layoutRects.push(container);
83
+ } else if (event.code === core.KeyboardCode.Right && collisionRect.left < rect.left) {
84
+ layoutRects.push(container);
87
85
  }
88
86
  });
89
87
  const dragOverlayRect = (_document$querySelect = (_document$querySelect2 = document.querySelector("[data-testid=\"".concat(constants.DATA_TESTID.DATA_TABLE_COLUMN_DRAG_OVERLAY, "\"]"))) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getBoundingClientRect()) !== null && _document$querySelect !== void 0 ? _document$querySelect : {
90
88
  width: 150,
91
89
  left: 0
92
90
  };
93
- const closestId = core.closestCorners(layoutRects, translatedRect);
91
+ const closestId = core.closestCorners({
92
+ droppableContainers: layoutRects,
93
+ collisionRect,
94
+ active
95
+ });
94
96
  if (!closestId) return undefined;
95
- const closestRect = core.getViewRect(droppableContainers[closestId].node.current);
96
- const activeRect = core.getViewRect(droppableContainers[active].node.current);
97
+ const closestRect = core.getViewRect(droppableContainers.get(closestId).node.current);
98
+ const activeRect = core.getViewRect(droppableContainers.get(active.id).node.current);
97
99
  return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
98
100
  x: closestRect.left + (closestRect.width - dragOverlayRect.width) / 2 + (closestRect.offsetLeft < activeRect.left ? -1 : 1)
99
101
  });
100
102
  };
101
103
 
102
- const getHierarchyKeyboardCoordinates = (context, isHorizontalDnD) => (event, _ref3) => {
104
+ const getHierarchyKeyboardCoordinates = (context, isHorizontalDnD) => (event, _ref2) => {
103
105
  let {
104
- active,
105
106
  currentCoordinates,
106
107
  context: {
108
+ active,
107
109
  over,
108
- translatedRect,
110
+ collisionRect,
109
111
  droppableContainers
110
112
  }
111
- } = _ref3;
113
+ } = _ref2;
112
114
 
113
115
  if (directions.includes(event.code)) {
114
116
  event.preventDefault();
115
117
 
116
- if (!translatedRect) {
118
+ if (!collisionRect) {
117
119
  return undefined;
118
120
  }
119
121
 
@@ -129,7 +131,7 @@ const getHierarchyKeyboardCoordinates = (context, isHorizontalDnD) => (event, _r
129
131
  event,
130
132
  currentCoordinates,
131
133
  droppableContainers,
132
- translatedRect
134
+ collisionRect
133
135
  };
134
136
  if (isHorizontalDnD) return getHorizontalKeyboardCoordinates(args);
135
137
  return undefined;
@@ -45,8 +45,10 @@ const adjustTranslate = function (_ref) {
45
45
  return newTransform;
46
46
  };
47
47
 
48
- const layoutMeasuring = {
49
- strategy: core.LayoutMeasuringStrategy.Always
48
+ const measuring = {
49
+ droppable: {
50
+ strategy: core.MeasuringStrategy.Always
51
+ }
50
52
  };
51
53
 
52
54
  const useHierarchyDndkitConfig = _ref2 => {
@@ -95,7 +97,7 @@ const useHierarchyDndkitConfig = _ref2 => {
95
97
  announcements,
96
98
  modifiers,
97
99
  sensors,
98
- layoutMeasuring,
100
+ measuring,
99
101
  collisionDetection: customCollisionDetection.customCollisionDetection(activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems)
100
102
  }, dragActionHandlers), [announcements, modifiers, sensors, activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems, dragActionHandlers]);
101
103
  return {
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  require('core-js/modules/esnext.async-iterator.find.js');
6
6
  require('core-js/modules/esnext.iterator.constructor.js');
7
7
  require('core-js/modules/esnext.iterator.find.js');
8
- require('core-js/modules/web.dom-collections.iterator.js');
9
8
  require('core-js/modules/esnext.async-iterator.reduce.js');
10
9
  require('core-js/modules/esnext.iterator.reduce.js');
10
+ require('core-js/modules/web.dom-collections.iterator.js');
11
11
  var SortableItemContext = require('../../../parts/HoC/SortableItemContext.js');
12
12
 
13
13
  const DUMMY_ID = 'DUMMY_ID_INTERNAL_USE_ONLY';
@@ -33,58 +33,78 @@ const RECT_DOWN = {
33
33
  const thresholdRatio = 0.2; // Percentage to be inside
34
34
 
35
35
  const insideThreshold = 0.7;
36
- const customCollisionDetection = (activeId, visibleItemsDictionary, setDropIndicatorPosition, maxDragAndDropLevel, lastPosition, setLastPosition) => (rects, rect) => {
37
- const originalRect = rects.find(_ref => {
38
- let [rectId] = _ref;
39
- return rectId === activeId;
40
- }); // We first check if the item was moved up or down
36
+ const customCollisionDetection = (activeId, visibleItemsDictionary, setDropIndicatorPosition, maxDragAndDropLevel, lastPosition, setLastPosition) => _ref => {
37
+ var _originalContainer$re;
38
+
39
+ let {
40
+ droppableContainers,
41
+ collisionRect
42
+ } = _ref;
43
+ const originalContainer = droppableContainers.find(_ref2 => {
44
+ let {
45
+ id
46
+ } = _ref2;
47
+ return id === activeId;
48
+ });
49
+ const originalRect = originalContainer === null || originalContainer === void 0 ? void 0 : (_originalContainer$re = originalContainer.rect) === null || _originalContainer$re === void 0 ? void 0 : _originalContainer$re.current; // We first check if the item was moved up or down
41
50
  // This modifies how to search the matching colliding rect
42
51
 
43
52
  let isUp = lastPosition === 'up';
44
53
 
45
54
  if (originalRect) {
46
- isUp = originalRect[1].offsetTop > rect.top;
55
+ isUp = originalRect.offsetTop > collisionRect.top;
47
56
  } // Threshold
48
57
 
49
58
 
50
- const threshold = rect.height * thresholdRatio;
51
- let collidingRect = null;
59
+ const threshold = collisionRect.height * thresholdRatio;
60
+ let collidingContainer = null;
52
61
 
53
62
  if (isUp) {
54
63
  // Up -- We need to find the first rectangle downwards
55
- collidingRect = rects.reduce((acc, _ref2) => {
56
- let [rectID, rectData] = _ref2;
64
+ collidingContainer = droppableContainers.reduce((acc, container) => {
65
+ const rect = container.rect.current;
57
66
 
58
- if (rectData.offsetTop + threshold > rect.top && rectData.offsetTop < acc[1].offsetTop) {
59
- return [rectID, rectData];
67
+ if (rect.offsetTop + threshold > collisionRect.top && rect.offsetTop < acc.rect.current.offsetTop) {
68
+ return container;
60
69
  }
61
70
 
62
71
  return acc;
63
- }, [DUMMY_ID, RECT_DOWN]);
72
+ }, {
73
+ id: DUMMY_ID,
74
+ rect: {
75
+ current: RECT_DOWN
76
+ }
77
+ });
64
78
  } else {
65
79
  // Down -- We need to find the first rectangle upwards
66
- collidingRect = rects.reduce((acc, _ref3) => {
67
- let [rectID, rectData] = _ref3;
80
+ collidingContainer = droppableContainers.reduce((acc, container) => {
81
+ const rect = container.rect.current;
68
82
 
69
- if (rectData.offsetTop - threshold < rect.top && rectData.offsetTop > acc[1].offsetTop) {
70
- return [rectID, rectData];
83
+ if (rect.offsetTop - threshold < collisionRect.top && rect.offsetTop > acc.rect.current.offsetTop) {
84
+ return container;
71
85
  }
72
86
 
73
87
  return acc;
74
- }, [DUMMY_ID, RECT_UP]);
88
+ }, {
89
+ id: DUMMY_ID,
90
+ rect: {
91
+ current: RECT_UP
92
+ }
93
+ });
75
94
  } // If we didn't find a match, return null
76
95
 
77
96
 
78
- if (collidingRect[0] === DUMMY_ID) {
97
+ if (collidingContainer.id === DUMMY_ID) {
79
98
  return null;
80
- } // Calculate the intersection interval
99
+ }
81
100
 
101
+ const collidingRect = collidingContainer.rect.current; // Calculate the intersection interval
82
102
 
83
- const [top, bottom] = [Math.max(rect.top, collidingRect[1].offsetTop), Math.min(rect.bottom, collidingRect[1].offsetTop + collidingRect[1].height)]; // Calculate the percentage of intersection
103
+ const [top, bottom] = [Math.max(collisionRect.top, collidingRect.offsetTop), Math.min(collisionRect.bottom, collidingRect.offsetTop + collidingRect.height)]; // Calculate the percentage of intersection
84
104
 
85
- const intersectionPercentage = Math.abs(bottom - top) / collidingRect[1].height;
105
+ const intersectionPercentage = Math.abs(bottom - top) / collidingRect.height;
86
106
 
87
- if (intersectionPercentage > insideThreshold && visibleItemsDictionary[collidingRect[0]].depth + 1 <= maxDragAndDropLevel && collidingRect[0] !== activeId) {
107
+ if (intersectionPercentage > insideThreshold && visibleItemsDictionary[collidingContainer.id].depth + 1 <= maxDragAndDropLevel && collidingContainer.id !== activeId) {
88
108
  setDropIndicatorPosition(SortableItemContext.DropIndicatorPosition.Inside);
89
109
  } else {
90
110
  setDropIndicatorPosition(isUp ? SortableItemContext.DropIndicatorPosition.Before : SortableItemContext.DropIndicatorPosition.After);
@@ -92,7 +112,7 @@ const customCollisionDetection = (activeId, visibleItemsDictionary, setDropIndic
92
112
 
93
113
  if (isUp && lastPosition !== 'up') setLastPosition('up');else if (!isUp && lastPosition !== 'down') setLastPosition('down'); // Return the id of the match rectangle
94
114
 
95
- return collidingRect[0];
115
+ return collidingContainer.id;
96
116
  };
97
117
 
98
118
  exports.customCollisionDetection = customCollisionDetection;
@@ -6,7 +6,6 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
6
  require('core-js/modules/esnext.async-iterator.for-each.js');
7
7
  require('core-js/modules/esnext.iterator.constructor.js');
8
8
  require('core-js/modules/esnext.iterator.for-each.js');
9
- require('core-js/modules/web.dom-collections.iterator.js');
10
9
  require('core-js/modules/esnext.async-iterator.find.js');
11
10
  require('core-js/modules/esnext.iterator.find.js');
12
11
  require('core-js/modules/esnext.async-iterator.filter.js');
@@ -32,80 +31,76 @@ const getVerticalKeyboardCoordinates = _ref => {
32
31
  event,
33
32
  currentCoordinates,
34
33
  droppableContainers,
35
- translatedRect,
34
+ collisionRect,
36
35
  dropIndicatorPosition,
37
36
  maxDragAndDropLevel
38
37
  } = _ref;
39
38
  if (horizontal.includes(event.code)) return undefined;
40
- const activeRect = droppableContainers[active].rect.current;
41
39
  const overRect = over.rect;
42
40
  const layoutRects = []; // Get the reacheable rects depending on the arrow key pressed
43
41
 
44
- Object.entries(droppableContainers).forEach(_ref2 => {
45
- let [id, container] = _ref2;
46
-
42
+ droppableContainers.forEach(container => {
47
43
  if (container !== null && container !== void 0 && container.disabled || !overRect) {
48
44
  return;
49
45
  }
50
46
 
51
- const node = container === null || container === void 0 ? void 0 : container.node.current;
52
-
53
- if (!node) {
54
- return;
55
- }
56
-
57
- const rect = core.getViewRect(node);
47
+ const rect = container.rect.current;
58
48
 
59
- if (event.code === core.KeyboardCode.Down && translatedRect.top - 2 <= rect.top) {
60
- layoutRects.push([id, rect]);
61
- } else if (event.code === core.KeyboardCode.Up && translatedRect.top >= rect.top) {
62
- layoutRects.push([id, rect]);
49
+ if (event.code === core.KeyboardCode.Down && collisionRect.top - 2 <= rect.offsetTop) {
50
+ layoutRects.push(container);
51
+ } else if (event.code === core.KeyboardCode.Up && collisionRect.top >= rect.offsetTop) {
52
+ layoutRects.push(container);
63
53
  }
64
54
  });
65
- const closestId = core.closestCorners(layoutRects, translatedRect);
55
+ const closestId = core.closestCorners({
56
+ collisionRect,
57
+ droppableContainers: layoutRects,
58
+ active
59
+ });
66
60
  if (!closestId) return undefined;
67
61
  const closestItem = items.find(item => item.uid === closestId);
68
- const closestRect = core.getViewRect(droppableContainers[closestId].node.current);
62
+ const closestRect = core.getViewRect(droppableContainers.get(closestId).node.current);
69
63
 
70
64
  if (event.code === core.KeyboardCode.Up) {
71
65
  // If the drop indicator is inside (or over ourselves)
72
66
  // We are gonna go to the before position
73
67
  // Else we are gonna go inside the over rect
74
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active || closestItem.depth + 1 > maxDragAndDropLevel) {
68
+ if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active.id || closestItem.depth + 1 > maxDragAndDropLevel) {
75
69
  return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
76
- y: closestRect.top - translatedRect.height / 2
70
+ y: closestRect.top - collisionRect.height / 2
77
71
  });
78
72
  }
79
73
 
80
74
  return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
81
- y: closestRect.top + Math.abs(closestRect.height - activeRect.height) / 2
75
+ y: closestRect.top + Math.abs(closestRect.height - collisionRect.height) / 2
82
76
  });
83
77
  } // If the drop indicator is inside (or over ourselves)
84
78
  // We are gonna go to the after position
85
79
  // Else we are gonna go inside the over rect
86
80
 
87
81
 
88
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active || closestItem.depth + 1 > maxDragAndDropLevel) {
82
+ if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active.id || closestItem.depth + 1 > maxDragAndDropLevel) {
89
83
  return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
90
- y: closestRect.top + translatedRect.height / 2
84
+ y: closestRect.top + collisionRect.height / 2
91
85
  });
92
86
  }
93
87
 
94
88
  return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
95
- y: closestRect.top + Math.abs(closestRect.height - activeRect.height) / 2
89
+ y: closestRect.top + Math.abs(closestRect.height - collisionRect.height) / 2
96
90
  });
97
91
  };
98
92
 
99
- const getTreeKeyboardCoordinates = (context, isHorizontalDnD, maxDragAndDropLevel) => (event, _ref3) => {
93
+ const getTreeKeyboardCoordinates = (context, isHorizontalDnD, maxDragAndDropLevel) => (event, _ref2) => {
100
94
  let {
101
- active,
102
95
  currentCoordinates,
103
96
  context: {
104
97
  over,
105
98
  translatedRect,
106
- droppableContainers
99
+ droppableContainers,
100
+ active,
101
+ collisionRect
107
102
  }
108
- } = _ref3;
103
+ } = _ref2;
109
104
 
110
105
  if (directions.includes(event.code)) {
111
106
  if (!translatedRect) {
@@ -125,7 +120,7 @@ const getTreeKeyboardCoordinates = (context, isHorizontalDnD, maxDragAndDropLeve
125
120
  event,
126
121
  currentCoordinates,
127
122
  droppableContainers,
128
- translatedRect,
123
+ collisionRect,
129
124
  dropIndicatorPosition,
130
125
  maxDragAndDropLevel
131
126
  };
@@ -45,8 +45,10 @@ const adjustTranslate = function (_ref) {
45
45
  return newTransform;
46
46
  };
47
47
 
48
- const layoutMeasuring = {
49
- strategy: core.LayoutMeasuringStrategy.BeforeDragging
48
+ const measuring = {
49
+ droppable: {
50
+ strategy: core.MeasuringStrategy.BeforeDragging
51
+ }
50
52
  };
51
53
 
52
54
  const useTreeDndkitConfig = _ref2 => {
@@ -117,7 +119,7 @@ const useTreeDndkitConfig = _ref2 => {
117
119
  announcements,
118
120
  modifiers,
119
121
  sensors,
120
- layoutMeasuring,
122
+ measuring,
121
123
  collisionDetection: customCollisionDetection.customCollisionDetection(activeId, visibleItemsDictionary, setDropIndicatorPosition, maxDragAndDropLevel, lastPosition, setLastPosition)
122
124
  }, dragActionHandlers), [announcements, modifiers, sensors, dragActionHandlers, visibleItemsDictionary, setDropIndicatorPosition, activeId, maxDragAndDropLevel, lastPosition, setLastPosition]);
123
125
  const sortableContextProps = React.useMemo(() => ({
@@ -15,8 +15,8 @@ const setMultipleRefs = function () {
15
15
  }
16
16
 
17
17
  const filteredRefs = refs.filter(Boolean);
18
- if (!filteredRefs.length) return null;
19
- if (filteredRefs.length === 0) return filteredRefs[0];
18
+ if (!filteredRefs.length) return () => null;
19
+ if (filteredRefs.length === 0) return () => null;
20
20
  return newRef => {
21
21
  filteredRefs.forEach(refToBeUpdated => {
22
22
  if (typeof refToBeUpdated === 'function') {
package/cjs/index.js CHANGED
@@ -10,7 +10,6 @@ var groupBy = require('./exported-related/groupBy.js');
10
10
  var FilterTypes = require('./exported-related/FilterTypes.js');
11
11
  var RowVariants = require('./exported-related/RowVariants.js');
12
12
  var applyOutOfTheBoxFilters = require('./exported-related/Filters/applyOutOfTheBoxFilters.js');
13
- var textFilterFn = require('./exported-related/Filters/textFilterFn.js');
14
13
  var singleDateFilterFn = require('./exported-related/Filters/singleDateFilterFn.js');
15
14
  var singleSelectFilterFn = require('./exported-related/Filters/singleSelectFilterFn.js');
16
15
  var multiSelectFilterFn = require('./exported-related/Filters/multiSelectFilterFn.js');
@@ -31,7 +30,6 @@ exports.ROW_VARIANTS = RowVariants.ROW_VARIANTS;
31
30
  exports.ROW_VARIANT_COMPACT_KEY = RowVariants.ROW_VARIANT_COMPACT_KEY;
32
31
  exports.ROW_VARIANT_KEY = RowVariants.ROW_VARIANT_KEY;
33
32
  exports.applyOutOfTheBoxFilters = applyOutOfTheBoxFilters.applyOutOfTheBoxFilters;
34
- exports.textFilterFn = textFilterFn.textFilterFn;
35
33
  exports.singleDateFilterFn = singleDateFilterFn.singleDateFilterFn;
36
34
  exports.singleSelectFilterFn = singleSelectFilterFn.singleSelectFilterFn;
37
35
  exports.multiSelectFilterFn = multiSelectFilterFn.multiSelectFilterFn;