@elliemae/ds-data-table 2.0.0-rc.1 → 2.0.0-rc.13

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 (138) hide show
  1. package/cjs/DataTableSchema.js +21 -12
  2. package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +16 -0
  3. package/cjs/addons/Filters/Components/CurrencyRangeFilter/index.js +24 -2
  4. package/cjs/addons/Filters/Components/DateRangeFilter/index.js +4 -1
  5. package/cjs/addons/Filters/Components/NumberRangeFilter/index.js +25 -3
  6. package/cjs/addons/Filters/Components/SingleDateFilter/index.js +4 -1
  7. package/cjs/addons/Filters/Components/index.js +0 -2
  8. package/cjs/addons/Filters/index.js +0 -2
  9. package/cjs/configs/usePaginationConfig.js +1 -1
  10. package/cjs/configs/useRowFlattenization.js +3 -3
  11. package/cjs/exported-related/EditableCell.js +13 -7
  12. package/cjs/exported-related/FilterPopover.js +17 -3
  13. package/cjs/exported-related/FilterTypes.js +0 -1
  14. package/cjs/exported-related/Filters/applyOutOfTheBoxFilters.js +0 -2
  15. package/cjs/exported-related/Filters/index.js +0 -2
  16. package/cjs/exported-related/index.js +0 -2
  17. package/cjs/helpers/refs-helpers.js +2 -2
  18. package/cjs/index.js +0 -2
  19. package/cjs/parts/FilterBar/FiltersBar.js +0 -2
  20. package/cjs/parts/FilterBar/components/index.js +0 -2
  21. package/cjs/parts/Filters/index.js +10 -12
  22. package/cjs/parts/Headers/HeaderCellGroup.js +4 -3
  23. package/cjs/parts/Headers/index.js +1 -1
  24. package/cjs/parts/Headers/useHeaderCellHandlers.js +4 -2
  25. package/cjs/parts/HoC/withConditionalDnDColumnContext.js +37 -16
  26. package/cjs/parts/HoC/withConditionalDnDRowContext.js +11 -12
  27. package/cjs/parts/HoC/withConditionalDnDSortableContext.js +1 -1
  28. package/cjs/parts/HoC/withDnDSortableColumnContext.js +5 -19
  29. package/cjs/parts/HoC/withDnDSortableRowContext.js +3 -17
  30. package/cjs/parts/Row.js +10 -10
  31. package/cjs/parts/Rows.js +1 -1
  32. package/cjs/parts/index.js +1 -1
  33. package/cjs/styled.js +18 -13
  34. package/esm/DataTableSchema.js +21 -12
  35. package/esm/addons/Editables/TextEditableCell/TextEditableCell.js +16 -0
  36. package/esm/addons/Filters/Components/CurrencyRangeFilter/index.js +24 -2
  37. package/esm/addons/Filters/Components/DateRangeFilter/index.js +4 -1
  38. package/esm/addons/Filters/Components/NumberRangeFilter/index.js +25 -3
  39. package/esm/addons/Filters/Components/SingleDateFilter/index.js +4 -1
  40. package/esm/addons/Filters/Components/index.js +0 -1
  41. package/esm/addons/Filters/index.js +0 -1
  42. package/esm/configs/usePaginationConfig.js +1 -1
  43. package/esm/configs/useRowFlattenization.js +3 -3
  44. package/esm/exported-related/EditableCell.js +13 -7
  45. package/esm/exported-related/FilterPopover.js +17 -3
  46. package/esm/exported-related/FilterTypes.js +0 -1
  47. package/esm/exported-related/Filters/applyOutOfTheBoxFilters.js +0 -2
  48. package/esm/exported-related/Filters/index.js +0 -1
  49. package/esm/exported-related/index.js +0 -1
  50. package/esm/helpers/refs-helpers.js +2 -2
  51. package/esm/index.js +0 -1
  52. package/esm/parts/FilterBar/FiltersBar.js +0 -2
  53. package/esm/parts/FilterBar/components/index.js +0 -1
  54. package/esm/parts/Filters/index.js +0 -2
  55. package/esm/parts/Headers/HeaderCellGroup.js +4 -4
  56. package/esm/parts/Headers/index.js +2 -2
  57. package/esm/parts/Headers/useHeaderCellHandlers.js +4 -2
  58. package/esm/parts/HoC/withConditionalDnDColumnContext.js +38 -17
  59. package/esm/parts/HoC/withConditionalDnDRowContext.js +12 -13
  60. package/esm/parts/HoC/withConditionalDnDSortableContext.js +1 -1
  61. package/esm/parts/HoC/withDnDSortableColumnContext.js +6 -20
  62. package/esm/parts/HoC/withDnDSortableRowContext.js +4 -18
  63. package/esm/parts/Row.js +7 -10
  64. package/esm/styled.js +18 -13
  65. package/package.json +26 -103
  66. package/types/DataTable.d.ts +245 -43
  67. package/types/DataTableSchema.d.ts +245 -43
  68. package/types/addons/Filters/Components/SelectFilter/components.d.ts +6 -6
  69. package/types/addons/Filters/Components/index.d.ts +0 -1
  70. package/types/exported-related/FilterTypes.d.ts +0 -1
  71. package/types/exported-related/Filters/index.d.ts +0 -1
  72. package/types/helpers/refs-helpers.d.ts +1 -1
  73. package/types/parts/FilterBar/components/index.d.ts +0 -1
  74. package/types/parts/FilterBar/styled.d.ts +165 -30
  75. package/types/parts/Headers/HeaderCellGroup.d.ts +4 -3
  76. package/types/parts/Row.d.ts +2 -1
  77. package/types/styled.d.ts +21 -19
  78. package/types/types/props.d.ts +2 -2
  79. package/cjs/addons/Filters/Components/TextInputFilter/index.js +0 -92
  80. package/cjs/exported-related/Filters/textFilterFn.js +0 -14
  81. package/cjs/helpers/dndkit/hierarchy/customCollisionDetection.js +0 -76
  82. package/cjs/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +0 -141
  83. package/cjs/helpers/dndkit/hierarchy/types.js +0 -2
  84. package/cjs/helpers/dndkit/hierarchy/useHierarchyActionHandlers.js +0 -55
  85. package/cjs/helpers/dndkit/hierarchy/useHierarchyAnnouncements.js +0 -36
  86. package/cjs/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +0 -109
  87. package/cjs/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +0 -87
  88. package/cjs/helpers/dndkit/tree/customCollisionDetection.js +0 -98
  89. package/cjs/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +0 -139
  90. package/cjs/helpers/dndkit/tree/types.js +0 -2
  91. package/cjs/helpers/dndkit/tree/useTreeActionHandlers.js +0 -75
  92. package/cjs/helpers/dndkit/tree/useTreeAnnouncements.js +0 -55
  93. package/cjs/helpers/dndkit/tree/useTreeDndkitConfig.js +0 -139
  94. package/cjs/helpers/dndkit/tree/useTreePreviewHandlers.js +0 -54
  95. package/cjs/helpers/dndkit/types.js +0 -2
  96. package/cjs/helpers/dndkit/utilities.js +0 -52
  97. package/cjs/parts/FilterBar/components/TextPill.js +0 -42
  98. package/cjs/parts/HoC/DragOverlayContext.js +0 -11
  99. package/esm/addons/Filters/Components/TextInputFilter/index.js +0 -84
  100. package/esm/exported-related/Filters/textFilterFn.js +0 -10
  101. package/esm/helpers/dndkit/hierarchy/customCollisionDetection.js +0 -72
  102. package/esm/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.js +0 -133
  103. package/esm/helpers/dndkit/hierarchy/types.js +0 -1
  104. package/esm/helpers/dndkit/hierarchy/useHierarchyActionHandlers.js +0 -51
  105. package/esm/helpers/dndkit/hierarchy/useHierarchyAnnouncements.js +0 -32
  106. package/esm/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.js +0 -103
  107. package/esm/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.js +0 -83
  108. package/esm/helpers/dndkit/tree/customCollisionDetection.js +0 -94
  109. package/esm/helpers/dndkit/tree/getTreeKeyboardCoordinates.js +0 -131
  110. package/esm/helpers/dndkit/tree/types.js +0 -1
  111. package/esm/helpers/dndkit/tree/useTreeActionHandlers.js +0 -71
  112. package/esm/helpers/dndkit/tree/useTreeAnnouncements.js +0 -51
  113. package/esm/helpers/dndkit/tree/useTreeDndkitConfig.js +0 -133
  114. package/esm/helpers/dndkit/tree/useTreePreviewHandlers.js +0 -50
  115. package/esm/helpers/dndkit/types.js +0 -1
  116. package/esm/helpers/dndkit/utilities.js +0 -47
  117. package/esm/parts/FilterBar/components/TextPill.js +0 -34
  118. package/esm/parts/HoC/DragOverlayContext.js +0 -7
  119. package/types/addons/Filters/Components/TextInputFilter/index.d.ts +0 -3
  120. package/types/exported-related/Filters/textFilterFn.d.ts +0 -2
  121. package/types/helpers/dndkit/hierarchy/customCollisionDetection.d.ts +0 -3
  122. package/types/helpers/dndkit/hierarchy/getHierarchyKeyboardCoordinates.d.ts +0 -3
  123. package/types/helpers/dndkit/hierarchy/types.d.ts +0 -66
  124. package/types/helpers/dndkit/hierarchy/useHierarchyActionHandlers.d.ts +0 -2
  125. package/types/helpers/dndkit/hierarchy/useHierarchyAnnouncements.d.ts +0 -3
  126. package/types/helpers/dndkit/hierarchy/useHierarchyDndkitConfig.d.ts +0 -3
  127. package/types/helpers/dndkit/hierarchy/useHierarchyPreviewHandlers.d.ts +0 -2
  128. package/types/helpers/dndkit/tree/customCollisionDetection.d.ts +0 -4
  129. package/types/helpers/dndkit/tree/getTreeKeyboardCoordinates.d.ts +0 -3
  130. package/types/helpers/dndkit/tree/types.d.ts +0 -83
  131. package/types/helpers/dndkit/tree/useTreeActionHandlers.d.ts +0 -2
  132. package/types/helpers/dndkit/tree/useTreeAnnouncements.d.ts +0 -4
  133. package/types/helpers/dndkit/tree/useTreeDndkitConfig.d.ts +0 -3
  134. package/types/helpers/dndkit/tree/useTreePreviewHandlers.d.ts +0 -2
  135. package/types/helpers/dndkit/types.d.ts +0 -20
  136. package/types/helpers/dndkit/utilities.d.ts +0 -7
  137. package/types/parts/FilterBar/components/TextPill.d.ts +0 -2
  138. package/types/parts/HoC/DragOverlayContext.d.ts +0 -6
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- const useHierarchyActionHandlers = _ref => {
8
- let {
9
- handlePreviewDragStart,
10
- handlePreviewDragMove,
11
- handlePreviewDragOver,
12
- handlePreviewDragEnd,
13
- handlePreviewDragCancel,
14
- onReorder,
15
- dndItems
16
- } = _ref;
17
- const onDragStart = React.useCallback(e => {
18
- handlePreviewDragStart(e);
19
- }, [handlePreviewDragStart]);
20
- const onDragMove = React.useCallback(e => {
21
- handlePreviewDragMove(e);
22
- }, [handlePreviewDragMove]);
23
- const onDragOver = React.useCallback(e => {
24
- handlePreviewDragOver(e);
25
- }, [handlePreviewDragOver]);
26
- const onDragEnd = React.useCallback(e => {
27
- handlePreviewDragEnd(e);
28
- const {
29
- active,
30
- over
31
- } = e;
32
- if (!over) return;
33
-
34
- if (active.id !== over.id) {
35
- const activeIndex = dndItems.findIndex(item => item.id === active.id);
36
- const overIndex = dndItems.findIndex(item => item.id === over.id);
37
- onReorder(dndItems[activeIndex], {
38
- targetIndex: overIndex,
39
- fromIndex: activeIndex
40
- });
41
- }
42
- }, [handlePreviewDragEnd, dndItems, onReorder]);
43
- const onDragCancel = React.useCallback(e => {
44
- handlePreviewDragCancel(e);
45
- }, [handlePreviewDragCancel]);
46
- return {
47
- onDragStart,
48
- onDragMove,
49
- onDragOver,
50
- onDragEnd,
51
- onDragCancel
52
- };
53
- };
54
-
55
- exports.useHierarchyActionHandlers = useHierarchyActionHandlers;
@@ -1,36 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
-
7
- const useHierarchyAnnouncements = visibleItemsDictionary => {
8
- const onDragStart = React.useCallback(id => "Picked up draggable item from position ".concat(visibleItemsDictionary[id].index + 1, "."), [visibleItemsDictionary]);
9
- const onDragMove = React.useCallback((id, overId) => {
10
- if (overId) {
11
- const overIndex = visibleItemsDictionary[overId].index + 1;
12
- return "Draggable item was moved to position ".concat(overIndex, ".");
13
- }
14
-
15
- return "Draggable item is no longer over a droppable area.";
16
- }, [visibleItemsDictionary]);
17
- const onDragOver = onDragMove;
18
- const onDragEnd = React.useCallback((id, overId) => {
19
- if (overId) {
20
- const overIndex = visibleItemsDictionary[overId].index + 1;
21
- return "Draggable item was dropped over position ".concat(overIndex, ".");
22
- }
23
-
24
- return "Draggable item was dropped at it's original position.";
25
- }, [visibleItemsDictionary]);
26
- const onDragCancel = React.useCallback(id => "Dragging was cancelled. Draggable item from position ".concat(visibleItemsDictionary[id].index + 1, " was dropped at it's initial position."), [visibleItemsDictionary]);
27
- return {
28
- onDragStart,
29
- onDragOver,
30
- onDragMove,
31
- onDragEnd,
32
- onDragCancel
33
- };
34
- };
35
-
36
- exports.useHierarchyAnnouncements = useHierarchyAnnouncements;
@@ -1,109 +0,0 @@
1
- 'use strict';
2
-
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- require('core-js/modules/web.dom-collections.iterator.js');
5
- require('core-js/modules/esnext.async-iterator.map.js');
6
- require('core-js/modules/esnext.iterator.map.js');
7
- require('core-js/modules/esnext.async-iterator.find.js');
8
- require('core-js/modules/esnext.iterator.constructor.js');
9
- require('core-js/modules/esnext.iterator.find.js');
10
- require('core-js/modules/esnext.async-iterator.for-each.js');
11
- require('core-js/modules/esnext.iterator.for-each.js');
12
- require('core-js/modules/esnext.async-iterator.filter.js');
13
- require('core-js/modules/esnext.iterator.filter.js');
14
- var React = require('react');
15
- var core = require('@dnd-kit/core');
16
- var useHierarchyActionHandlers = require('./useHierarchyActionHandlers.js');
17
- var useHierarchyPreviewHandlers = require('./useHierarchyPreviewHandlers.js');
18
- var getHierarchyKeyboardCoordinates = require('./getHierarchyKeyboardCoordinates.js');
19
- var customCollisionDetection = require('./customCollisionDetection.js');
20
- var useHierarchyAnnouncements = require('./useHierarchyAnnouncements.js');
21
-
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
-
24
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
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__default["default"](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
- // if second parameter is true, the space will be done on the horizontal axis
30
-
31
- const adjustTranslate = function (_ref) {
32
- let {
33
- transform
34
- } = _ref;
35
- let isHorizontalDnD = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
36
-
37
- const newTransform = _objectSpread({}, transform);
38
-
39
- if (isHorizontalDnD) {
40
- newTransform.y = transform.y + 15;
41
- } else {
42
- newTransform.y = transform.y - 35;
43
- }
44
-
45
- return newTransform;
46
- };
47
-
48
- const layoutMeasuring = {
49
- strategy: core.LayoutMeasuringStrategy.Always
50
- };
51
-
52
- const useHierarchyDndkitConfig = _ref2 => {
53
- let {
54
- flattenedItems,
55
- isHorizontalDnD = false,
56
- onReorder
57
- } = _ref2;
58
- const [activeId, setActiveId] = React.useState(null);
59
- const [overId, setOverId] = React.useState(null);
60
- const dndItems = React.useMemo(() => flattenedItems.map(_ref3 => {
61
- let [item] = _ref3;
62
- return item;
63
- }), [flattenedItems]);
64
- const activeItem = React.useMemo(() => dndItems.find(item => item.id === activeId), [activeId, dndItems]);
65
- const itemsDictionary = React.useMemo(() => {
66
- const dictionary = {};
67
- dndItems.forEach(item => {
68
- dictionary[item.id] = item;
69
- });
70
- return dictionary;
71
- }, [dndItems]);
72
- const modifiers = React.useMemo(() => [options => adjustTranslate(options, isHorizontalDnD)], [isHorizontalDnD]);
73
- const sensorContext = React.useRef({
74
- items: dndItems
75
- });
76
- React.useEffect(() => {
77
- sensorContext.current = {
78
- items: dndItems
79
- };
80
- }, [dndItems]);
81
- const coordinateGetter = React.useMemo(() => getHierarchyKeyboardCoordinates.getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD), [isHorizontalDnD]);
82
- const sensors = core.useSensors(core.useSensor(core.PointerSensor), core.useSensor(core.KeyboardSensor, {
83
- coordinateGetter
84
- }));
85
- const dragPreviewHandlers = useHierarchyPreviewHandlers.useHierarchyPreviewHandlers({
86
- setActiveId,
87
- setOverId
88
- });
89
- const dragActionHandlers = useHierarchyActionHandlers.useHierarchyActionHandlers(_objectSpread(_objectSpread({}, dragPreviewHandlers), {}, {
90
- dndItems,
91
- onReorder
92
- }));
93
- const announcements = useHierarchyAnnouncements.useHierarchyAnnouncements(itemsDictionary);
94
- const dndContextProps = React.useMemo(() => _objectSpread({
95
- announcements,
96
- modifiers,
97
- sensors,
98
- layoutMeasuring,
99
- collisionDetection: customCollisionDetection.customCollisionDetection(activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems)
100
- }, dragActionHandlers), [announcements, modifiers, sensors, activeId, activeItem === null || activeItem === void 0 ? void 0 : activeItem.parentId, dndItems, dragActionHandlers]);
101
- return {
102
- dndContextProps,
103
- activeId,
104
- overId,
105
- activeIndex: activeId ? activeItem.index : -1
106
- };
107
- };
108
-
109
- module.exports = useHierarchyDndkitConfig;
@@ -1,87 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var constants = require('../../../configs/constants.js');
7
- require('core-js/modules/esnext.async-iterator.filter.js');
8
- require('core-js/modules/esnext.iterator.constructor.js');
9
- require('core-js/modules/esnext.iterator.filter.js');
10
- require('core-js/modules/web.dom-collections.iterator.js');
11
- require('core-js/modules/esnext.async-iterator.reduce.js');
12
- require('core-js/modules/esnext.iterator.reduce.js');
13
- require('react-virtual');
14
- require('core-js/modules/esnext.async-iterator.for-each.js');
15
- require('core-js/modules/esnext.iterator.for-each.js');
16
- require('../../../configs/useRowFlattenization.js');
17
- require('@babel/runtime/helpers/defineProperty');
18
- require('core-js/modules/esnext.async-iterator.map.js');
19
- require('core-js/modules/esnext.iterator.map.js');
20
- require('@babel/runtime/helpers/jsx');
21
- require('@elliemae/ds-icons');
22
- require('styled-components');
23
- require('../../../styled.js');
24
- require('react/jsx-runtime');
25
- require('@elliemae/ds-form');
26
- require('../../../parts/TableContent.js');
27
- require('@elliemae/ds-grid');
28
- require('@elliemae/ds-circular-progress-indicator');
29
- require('@elliemae/ds-system');
30
- require('@elliemae/ds-button');
31
- require('../../../DataTableContext.js');
32
- require('../../../parts/Row.js');
33
- require('../../../parts/Footer.js');
34
- require('../../../parts/HoC/SortableItemContext.js');
35
-
36
- const useHierarchyPreviewHandlers = _ref => {
37
- let {
38
- setOverId,
39
- setActiveId
40
- } = _ref;
41
- const resetState = React.useCallback(() => {
42
- setOverId(null);
43
- setActiveId(null);
44
- document.body.style.setProperty('cursor', '');
45
- const el = document.querySelector("[data-testid=\"".concat(constants.DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER, "\"]"));
46
-
47
- el.onscroll = () => null;
48
- }, [setOverId, setActiveId]);
49
- const handlePreviewDragStart = React.useCallback(_ref2 => {
50
- let {
51
- active: {
52
- id
53
- }
54
- } = _ref2;
55
- setActiveId(id);
56
- setOverId(id);
57
- document.body.style.setProperty('cursor', 'grabbing');
58
- const el = document.querySelector("[data-testid=\"".concat(constants.DATA_TESTID.DATA_TABLE_SCROLLABLE_CONTAINER, "\"]"));
59
- const y = el.scrollTop;
60
-
61
- el.onscroll = () => el.scrollTo(0, y);
62
- }, [setActiveId, setOverId]);
63
- const handlePreviewDragMove = React.useCallback(() => null, []);
64
- const handlePreviewDragOver = React.useCallback(_ref3 => {
65
- var _over$id;
66
-
67
- let {
68
- over
69
- } = _ref3;
70
- setOverId((_over$id = over === null || over === void 0 ? void 0 : over.id) !== null && _over$id !== void 0 ? _over$id : null);
71
- }, [setOverId]);
72
- const handlePreviewDragEnd = React.useCallback(() => {
73
- resetState();
74
- }, [resetState]);
75
- const handlePreviewDragCancel = React.useCallback(() => {
76
- resetState();
77
- }, [resetState]);
78
- return {
79
- handlePreviewDragStart,
80
- handlePreviewDragMove,
81
- handlePreviewDragOver,
82
- handlePreviewDragEnd,
83
- handlePreviewDragCancel
84
- };
85
- };
86
-
87
- exports.useHierarchyPreviewHandlers = useHierarchyPreviewHandlers;
@@ -1,98 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- require('core-js/modules/esnext.async-iterator.find.js');
6
- require('core-js/modules/esnext.iterator.constructor.js');
7
- require('core-js/modules/esnext.iterator.find.js');
8
- require('core-js/modules/web.dom-collections.iterator.js');
9
- require('core-js/modules/esnext.async-iterator.reduce.js');
10
- require('core-js/modules/esnext.iterator.reduce.js');
11
- var SortableItemContext = require('../../../parts/HoC/SortableItemContext.js');
12
-
13
- const DUMMY_ID = 'DUMMY_ID_INTERNAL_USE_ONLY';
14
- const RECT_UP = {
15
- offsetTop: -Infinity,
16
- offsetLeft: 0,
17
- // Doesn't matter,
18
- width: 0,
19
- // Doesn't matter
20
- height: 0 // Doesn't matter
21
-
22
- };
23
- const RECT_DOWN = {
24
- offsetTop: Infinity,
25
- offsetLeft: 0,
26
- // Doesn't matter,
27
- width: 0,
28
- // Doesn't matter
29
- height: 0 // Doesn't matter
30
-
31
- }; // Percentage of height to take into consideration when looking for colliding rects
32
-
33
- const thresholdRatio = 0.2; // Percentage to be inside
34
-
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
41
- // This modifies how to search the matching colliding rect
42
-
43
- let isUp = lastPosition === 'up';
44
-
45
- if (originalRect) {
46
- isUp = originalRect[1].offsetTop > rect.top;
47
- } // Threshold
48
-
49
-
50
- const threshold = rect.height * thresholdRatio;
51
- let collidingRect = null;
52
-
53
- if (isUp) {
54
- // Up -- We need to find the first rectangle downwards
55
- collidingRect = rects.reduce((acc, _ref2) => {
56
- let [rectID, rectData] = _ref2;
57
-
58
- if (rectData.offsetTop + threshold > rect.top && rectData.offsetTop < acc[1].offsetTop) {
59
- return [rectID, rectData];
60
- }
61
-
62
- return acc;
63
- }, [DUMMY_ID, RECT_DOWN]);
64
- } else {
65
- // Down -- We need to find the first rectangle upwards
66
- collidingRect = rects.reduce((acc, _ref3) => {
67
- let [rectID, rectData] = _ref3;
68
-
69
- if (rectData.offsetTop - threshold < rect.top && rectData.offsetTop > acc[1].offsetTop) {
70
- return [rectID, rectData];
71
- }
72
-
73
- return acc;
74
- }, [DUMMY_ID, RECT_UP]);
75
- } // If we didn't find a match, return null
76
-
77
-
78
- if (collidingRect[0] === DUMMY_ID) {
79
- return null;
80
- } // Calculate the intersection interval
81
-
82
-
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
84
-
85
- const intersectionPercentage = Math.abs(bottom - top) / collidingRect[1].height;
86
-
87
- if (intersectionPercentage > insideThreshold && visibleItemsDictionary[collidingRect[0]].depth + 1 <= maxDragAndDropLevel && collidingRect[0] !== activeId) {
88
- setDropIndicatorPosition(SortableItemContext.DropIndicatorPosition.Inside);
89
- } else {
90
- setDropIndicatorPosition(isUp ? SortableItemContext.DropIndicatorPosition.Before : SortableItemContext.DropIndicatorPosition.After);
91
- }
92
-
93
- if (isUp && lastPosition !== 'up') setLastPosition('up');else if (!isUp && lastPosition !== 'down') setLastPosition('down'); // Return the id of the match rectangle
94
-
95
- return collidingRect[0];
96
- };
97
-
98
- exports.customCollisionDetection = customCollisionDetection;
@@ -1,139 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- require('core-js/modules/esnext.async-iterator.for-each.js');
7
- require('core-js/modules/esnext.iterator.constructor.js');
8
- require('core-js/modules/esnext.iterator.for-each.js');
9
- require('core-js/modules/web.dom-collections.iterator.js');
10
- require('core-js/modules/esnext.async-iterator.find.js');
11
- require('core-js/modules/esnext.iterator.find.js');
12
- require('core-js/modules/esnext.async-iterator.filter.js');
13
- require('core-js/modules/esnext.iterator.filter.js');
14
- var core = require('@dnd-kit/core');
15
- var SortableItemContext = require('../../../parts/HoC/SortableItemContext.js');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
-
21
- 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; }
22
-
23
- 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__default["default"](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; }
24
- const directions = [core.KeyboardCode.Down, core.KeyboardCode.Right, core.KeyboardCode.Up, core.KeyboardCode.Left];
25
- const horizontal = [core.KeyboardCode.Left, core.KeyboardCode.Right]; // const vertical: string[] = [KeyboardCode.Up, KeyboardCode.Down];
26
-
27
- const getVerticalKeyboardCoordinates = _ref => {
28
- let {
29
- items,
30
- active,
31
- over,
32
- event,
33
- currentCoordinates,
34
- droppableContainers,
35
- translatedRect,
36
- dropIndicatorPosition,
37
- maxDragAndDropLevel
38
- } = _ref;
39
- if (horizontal.includes(event.code)) return undefined;
40
- const activeRect = droppableContainers[active].rect.current;
41
- const overRect = over.rect;
42
- const layoutRects = []; // Get the reacheable rects depending on the arrow key pressed
43
-
44
- Object.entries(droppableContainers).forEach(_ref2 => {
45
- let [id, container] = _ref2;
46
-
47
- if (container !== null && container !== void 0 && container.disabled || !overRect) {
48
- return;
49
- }
50
-
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);
58
-
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]);
63
- }
64
- });
65
- const closestId = core.closestCorners(layoutRects, translatedRect);
66
- if (!closestId) return undefined;
67
- const closestItem = items.find(item => item.uid === closestId);
68
- const closestRect = core.getViewRect(droppableContainers[closestId].node.current);
69
-
70
- if (event.code === core.KeyboardCode.Up) {
71
- // If the drop indicator is inside (or over ourselves)
72
- // We are gonna go to the before position
73
- // Else we are gonna go inside the over rect
74
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active || closestItem.depth + 1 > maxDragAndDropLevel) {
75
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
76
- y: closestRect.top - translatedRect.height / 2
77
- });
78
- }
79
-
80
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
81
- y: closestRect.top + Math.abs(closestRect.height - activeRect.height) / 2
82
- });
83
- } // If the drop indicator is inside (or over ourselves)
84
- // We are gonna go to the after position
85
- // Else we are gonna go inside the over rect
86
-
87
-
88
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside || closestId === active || closestItem.depth + 1 > maxDragAndDropLevel) {
89
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
90
- y: closestRect.top + translatedRect.height / 2
91
- });
92
- }
93
-
94
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
95
- y: closestRect.top + Math.abs(closestRect.height - activeRect.height) / 2
96
- });
97
- };
98
-
99
- const getTreeKeyboardCoordinates = (context, isHorizontalDnD, maxDragAndDropLevel) => (event, _ref3) => {
100
- let {
101
- active,
102
- currentCoordinates,
103
- context: {
104
- over,
105
- translatedRect,
106
- droppableContainers
107
- }
108
- } = _ref3;
109
-
110
- if (directions.includes(event.code)) {
111
- if (!translatedRect) {
112
- return undefined;
113
- }
114
-
115
- const {
116
- current: {
117
- items,
118
- dropIndicatorPosition
119
- }
120
- } = context;
121
- const args = {
122
- items,
123
- active,
124
- over,
125
- event,
126
- currentCoordinates,
127
- droppableContainers,
128
- translatedRect,
129
- dropIndicatorPosition,
130
- maxDragAndDropLevel
131
- };
132
- if (isHorizontalDnD) return undefined;
133
- return getVerticalKeyboardCoordinates(args);
134
- }
135
-
136
- return undefined;
137
- };
138
-
139
- exports.getTreeKeyboardCoordinates = getTreeKeyboardCoordinates;
@@ -1,2 +0,0 @@
1
- 'use strict';
2
-
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var sortable = require('@dnd-kit/sortable');
6
- var lodash = require('lodash');
7
- var React = require('react');
8
- var SortableItemContext = require('../../../parts/HoC/SortableItemContext.js');
9
-
10
- const useTreeActionHandlers = _ref => {
11
- let {
12
- handlePreviewDragStart,
13
- handlePreviewDragMove,
14
- handlePreviewDragOver,
15
- handlePreviewDragEnd,
16
- handlePreviewDragCancel,
17
- onReorder,
18
- flattenedItems,
19
- projected,
20
- dropIndicatorPosition
21
- } = _ref;
22
- const onDragStart = React.useCallback(e => {
23
- handlePreviewDragStart(e);
24
- }, [handlePreviewDragStart]);
25
- const onDragMove = React.useCallback(e => {
26
- handlePreviewDragMove(e);
27
- }, [handlePreviewDragMove]);
28
- const onDragOver = React.useCallback(e => {
29
- handlePreviewDragOver(e);
30
- }, [handlePreviewDragOver]);
31
- const onDragEnd = React.useCallback(e => {
32
- handlePreviewDragEnd(e);
33
- const {
34
- active,
35
- over
36
- } = e;
37
- if (over === null) return;
38
- const activeIndex = flattenedItems.findIndex(item => item.uid === active.id);
39
- let considerExpanding = null;
40
- let overIndex = flattenedItems.findIndex(item => item.uid === over.id); // If drop indicator is inside, then put it last,
41
- // It will be reconstructed well later
42
-
43
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside) {
44
- var _flattenedItems$overI, _flattenedItems$overI2;
45
-
46
- considerExpanding = over.id;
47
- overIndex = flattenedItems[overIndex].realIndex + ((_flattenedItems$overI = (_flattenedItems$overI2 = flattenedItems[overIndex].original.subRows) === null || _flattenedItems$overI2 === void 0 ? void 0 : _flattenedItems$overI2.length) !== null && _flattenedItems$overI !== void 0 ? _flattenedItems$overI : 0) + 1;
48
- } // If we are dropping the item in a new position, or new depth
49
-
50
-
51
- if (activeIndex !== overIndex || flattenedItems[activeIndex].depth !== projected.depth) {
52
- // Change parent and depth from projected data
53
- flattenedItems[activeIndex].parentId = projected.parentId;
54
- flattenedItems[activeIndex].depth = projected.depth; // If same index, don't move the array, just copy it
55
-
56
- const newFlattenedData = activeIndex !== overIndex ? sortable.arrayMove(flattenedItems, activeIndex, overIndex) : lodash.cloneDeep(flattenedItems);
57
- onReorder(newFlattenedData, {
58
- targetIndex: overIndex,
59
- fromIndex: activeIndex
60
- }, considerExpanding);
61
- }
62
- }, [handlePreviewDragEnd, flattenedItems, projected, onReorder, dropIndicatorPosition]);
63
- const onDragCancel = React.useCallback(e => {
64
- handlePreviewDragCancel(e);
65
- }, [handlePreviewDragCancel]);
66
- return {
67
- onDragStart,
68
- onDragMove,
69
- onDragOver,
70
- onDragEnd,
71
- onDragCancel
72
- };
73
- };
74
-
75
- exports.useTreeActionHandlers = useTreeActionHandlers;
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var SortableItemContext = require('../../../parts/HoC/SortableItemContext.js');
7
-
8
- const useTreeAnnouncements = (visibleItemsDictionary, dropIndicatorPosition) => {
9
- const onDragStart = React.useCallback(id => "Picked up draggable item from position ".concat(visibleItemsDictionary[id].realIndex + 1, "."), [visibleItemsDictionary]);
10
- const onDragMove = React.useCallback((id, overId) => {
11
- if (overId) {
12
- const overIndex = visibleItemsDictionary[overId].realIndex + 1;
13
-
14
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside) {
15
- return "Draggable item was moved inside the item at position ".concat(overIndex, ".");
16
- }
17
-
18
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Before) {
19
- return "Draggable item was moved to position ".concat(overIndex - 1, ".");
20
- }
21
-
22
- return "Draggable item was moved to position ".concat(overIndex, ".");
23
- }
24
-
25
- return "Draggable item is no longer over a droppable area.";
26
- }, [visibleItemsDictionary, dropIndicatorPosition]);
27
- const onDragOver = onDragMove;
28
- const onDragEnd = React.useCallback((id, overId) => {
29
- if (overId) {
30
- const overIndex = visibleItemsDictionary[overId].realIndex + 1;
31
-
32
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Inside) {
33
- return "Draggable item was dropped inside the item at position ".concat(overIndex, ".");
34
- }
35
-
36
- if (dropIndicatorPosition === SortableItemContext.DropIndicatorPosition.Before) {
37
- return "Draggable item was dropped over position ".concat(overIndex - 1, ".");
38
- }
39
-
40
- return "Draggable item was dropped over position ".concat(overIndex, ".");
41
- }
42
-
43
- return "Draggable item was dropped at it's original position.";
44
- }, [dropIndicatorPosition, visibleItemsDictionary]);
45
- const onDragCancel = React.useCallback(id => "Dragging was cancelled. Draggable item from position ".concat(visibleItemsDictionary[id].realIndex + 1, " was dropped at it's initial position."), [visibleItemsDictionary]);
46
- return {
47
- onDragStart,
48
- onDragOver,
49
- onDragMove,
50
- onDragEnd,
51
- onDragCancel
52
- };
53
- };
54
-
55
- exports.useTreeAnnouncements = useTreeAnnouncements;