@elliemae/ds-drag-and-drop 2.2.0-alpha.2 → 2.2.0-beta.0

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 (77) hide show
  1. package/cjs/hierarchy/customCollisionDetection.js +50 -44
  2. package/cjs/hierarchy/getHierarchyKeyboardCoordinates.js +91 -78
  3. package/cjs/hierarchy/index.js +9 -28
  4. package/cjs/hierarchy/types.js +2 -27
  5. package/cjs/hierarchy/useHierarchyActionHandlers.js +35 -53
  6. package/cjs/hierarchy/useHierarchyAnnouncements.js +26 -45
  7. package/cjs/hierarchy/useHierarchyDndkitConfig.js +83 -77
  8. package/cjs/hierarchy/useHierarchyPreviewHandlers.js +27 -48
  9. package/cjs/index.js +11 -29
  10. package/cjs/tree/constants.js +12 -41
  11. package/cjs/tree/customCollisionDetection.js +95 -64
  12. package/cjs/tree/getTreeKeyboardCoordinates.js +101 -87
  13. package/cjs/tree/index.js +9 -28
  14. package/cjs/tree/types.js +2 -27
  15. package/cjs/tree/useTreeActionHandlers.js +56 -66
  16. package/cjs/tree/useTreeAnnouncements.js +40 -53
  17. package/cjs/tree/useTreeDndkitConfig.js +91 -95
  18. package/cjs/tree/useTreePreviewHandlers.js +37 -53
  19. package/cjs/tree/utilities.js +30 -44
  20. package/esm/hierarchy/customCollisionDetection.js +46 -15
  21. package/esm/hierarchy/getHierarchyKeyboardCoordinates.js +76 -42
  22. package/esm/hierarchy/index.js +1 -3
  23. package/esm/hierarchy/types.js +1 -2
  24. package/esm/hierarchy/useHierarchyActionHandlers.js +31 -24
  25. package/esm/hierarchy/useHierarchyAnnouncements.js +20 -14
  26. package/esm/hierarchy/useHierarchyDndkitConfig.js +66 -45
  27. package/esm/hierarchy/useHierarchyPreviewHandlers.js +19 -15
  28. package/esm/index.js +2 -4
  29. package/esm/tree/constants.js +10 -12
  30. package/esm/tree/customCollisionDetection.js +89 -33
  31. package/esm/tree/getTreeKeyboardCoordinates.js +84 -49
  32. package/esm/tree/index.js +1 -3
  33. package/esm/tree/types.js +1 -2
  34. package/esm/tree/useTreeActionHandlers.js +50 -35
  35. package/esm/tree/useTreeAnnouncements.js +30 -18
  36. package/esm/tree/useTreeDndkitConfig.js +70 -59
  37. package/esm/tree/useTreePreviewHandlers.js +28 -19
  38. package/esm/tree/utilities.js +23 -13
  39. package/package.json +1 -1
  40. package/cjs/hierarchy/customCollisionDetection.js.map +0 -7
  41. package/cjs/hierarchy/getHierarchyKeyboardCoordinates.js.map +0 -7
  42. package/cjs/hierarchy/index.js.map +0 -7
  43. package/cjs/hierarchy/types.js.map +0 -7
  44. package/cjs/hierarchy/useHierarchyActionHandlers.js.map +0 -7
  45. package/cjs/hierarchy/useHierarchyAnnouncements.js.map +0 -7
  46. package/cjs/hierarchy/useHierarchyDndkitConfig.js.map +0 -7
  47. package/cjs/hierarchy/useHierarchyPreviewHandlers.js.map +0 -7
  48. package/cjs/index.js.map +0 -7
  49. package/cjs/tree/constants.js.map +0 -7
  50. package/cjs/tree/customCollisionDetection.js.map +0 -7
  51. package/cjs/tree/getTreeKeyboardCoordinates.js.map +0 -7
  52. package/cjs/tree/index.js.map +0 -7
  53. package/cjs/tree/types.js.map +0 -7
  54. package/cjs/tree/useTreeActionHandlers.js.map +0 -7
  55. package/cjs/tree/useTreeAnnouncements.js.map +0 -7
  56. package/cjs/tree/useTreeDndkitConfig.js.map +0 -7
  57. package/cjs/tree/useTreePreviewHandlers.js.map +0 -7
  58. package/cjs/tree/utilities.js.map +0 -7
  59. package/esm/hierarchy/customCollisionDetection.js.map +0 -7
  60. package/esm/hierarchy/getHierarchyKeyboardCoordinates.js.map +0 -7
  61. package/esm/hierarchy/index.js.map +0 -7
  62. package/esm/hierarchy/types.js.map +0 -7
  63. package/esm/hierarchy/useHierarchyActionHandlers.js.map +0 -7
  64. package/esm/hierarchy/useHierarchyAnnouncements.js.map +0 -7
  65. package/esm/hierarchy/useHierarchyDndkitConfig.js.map +0 -7
  66. package/esm/hierarchy/useHierarchyPreviewHandlers.js.map +0 -7
  67. package/esm/index.js.map +0 -7
  68. package/esm/tree/constants.js.map +0 -7
  69. package/esm/tree/customCollisionDetection.js.map +0 -7
  70. package/esm/tree/getTreeKeyboardCoordinates.js.map +0 -7
  71. package/esm/tree/index.js.map +0 -7
  72. package/esm/tree/types.js.map +0 -7
  73. package/esm/tree/useTreeActionHandlers.js.map +0 -7
  74. package/esm/tree/useTreeAnnouncements.js.map +0 -7
  75. package/esm/tree/useTreeDndkitConfig.js.map +0 -7
  76. package/esm/tree/useTreePreviewHandlers.js.map +0 -7
  77. package/esm/tree/utilities.js.map +0 -7
@@ -1,113 +1,119 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var useHierarchyDndkitConfig_exports = {};
29
- __export(useHierarchyDndkitConfig_exports, {
30
- useHierarchyDndkitConfig: () => useHierarchyDndkitConfig
31
- });
32
- var React = __toESM(require("react"));
33
- var import_react = __toESM(require("react"));
34
- var import_core = __toESM(require("@dnd-kit/core"));
35
- var import_useHierarchyActionHandlers = __toESM(require("./useHierarchyActionHandlers"));
36
- var import_useHierarchyPreviewHandlers = __toESM(require("./useHierarchyPreviewHandlers"));
37
- var import_getHierarchyKeyboardCoordinates = __toESM(require("./getHierarchyKeyboardCoordinates"));
38
- var import_customCollisionDetection = __toESM(require("./customCollisionDetection"));
39
- var import_useHierarchyAnnouncements = __toESM(require("./useHierarchyAnnouncements"));
40
- const adjustTranslate = (isHorizontalDnD) => ({ transform }) => {
41
- const newTransform = {
42
- ...transform
43
- };
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/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.map.js');
8
+ require('core-js/modules/esnext.iterator.map.js');
9
+ require('core-js/modules/esnext.async-iterator.for-each.js');
10
+ require('core-js/modules/esnext.iterator.constructor.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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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 = isHorizontalDnD => _ref => {
32
+ let {
33
+ transform
34
+ } = _ref;
35
+
36
+ const newTransform = _objectSpread({}, transform);
37
+
44
38
  if (isHorizontalDnD) {
45
39
  newTransform.y = transform.y + 15;
46
40
  } else {
47
41
  newTransform.y = transform.y - 35;
48
42
  }
43
+
49
44
  return newTransform;
50
45
  };
46
+
51
47
  const measuring = {
52
48
  droppable: {
53
- strategy: import_core.MeasuringStrategy.Always
49
+ strategy: core.MeasuringStrategy.Always
54
50
  }
55
51
  };
52
+
56
53
  const noop = () => null;
57
- const useHierarchyDndkitConfig = ({
58
- flattenedItems,
59
- dragOverlayDataTestid,
60
- isHorizontalDnD = false,
61
- onReorder,
62
- onPreviewResetState = noop,
63
- onPreviewDragStart = noop
64
- }) => {
65
- const [activeId, setActiveId] = (0, import_react.useState)("");
66
- const dndItems = (0, import_react.useMemo)(() => flattenedItems.map(([item]) => item), [flattenedItems]);
67
- const itemsDictionary = (0, import_react.useMemo)(() => {
54
+
55
+ const useHierarchyDndkitConfig = _ref2 => {
56
+ var _itemsDictionary$acti;
57
+
58
+ let {
59
+ flattenedItems,
60
+ dragOverlayDataTestid,
61
+ isHorizontalDnD = false,
62
+ onReorder,
63
+ onPreviewResetState = noop,
64
+ onPreviewDragStart = noop
65
+ } = _ref2;
66
+ const [activeId, setActiveId] = react.useState('');
67
+ const dndItems = react.useMemo(() => flattenedItems.map(_ref3 => {
68
+ let [item] = _ref3;
69
+ return item;
70
+ }), [flattenedItems]);
71
+ const itemsDictionary = react.useMemo(() => {
68
72
  const dictionary = {};
69
- dndItems.forEach((item) => {
73
+ dndItems.forEach(item => {
70
74
  dictionary[item.id] = item;
71
75
  });
72
76
  return dictionary;
73
77
  }, [dndItems]);
74
- const modifiers = (0, import_react.useMemo)(() => [adjustTranslate(isHorizontalDnD)], [isHorizontalDnD]);
75
- const sensorContext = (0, import_react.useRef)({
78
+ const modifiers = react.useMemo(() => [adjustTranslate(isHorizontalDnD)], [isHorizontalDnD]);
79
+ const sensorContext = react.useRef({
76
80
  items: dndItems
77
81
  });
78
- (0, import_react.useEffect)(() => {
82
+ react.useEffect(() => {
79
83
  sensorContext.current = {
80
84
  items: dndItems
81
85
  };
82
86
  }, [dndItems]);
83
- const coordinateGetter = (0, import_react.useMemo)(() => (0, import_getHierarchyKeyboardCoordinates.getHierarchyKeyboardCoordinates)(sensorContext, dragOverlayDataTestid, isHorizontalDnD), [isHorizontalDnD]);
84
- const sensors = (0, import_core.useSensors)((0, import_core.useSensor)(import_core.PointerSensor), (0, import_core.useSensor)(import_core.KeyboardSensor, {
87
+ const coordinateGetter = react.useMemo(() => getHierarchyKeyboardCoordinates.getHierarchyKeyboardCoordinates(sensorContext, dragOverlayDataTestid, isHorizontalDnD), [isHorizontalDnD]);
88
+ const sensors = core.useSensors(core.useSensor(core.PointerSensor), core.useSensor(core.KeyboardSensor, {
85
89
  coordinateGetter
86
90
  }));
87
- const dragPreviewHandlers = (0, import_useHierarchyPreviewHandlers.useHierarchyPreviewHandlers)({
91
+ const dragPreviewHandlers = useHierarchyPreviewHandlers.useHierarchyPreviewHandlers({
88
92
  setActiveId,
89
93
  onPreviewResetState,
90
94
  onPreviewDragStart
91
95
  });
92
- const dragActionHandlers = (0, import_useHierarchyActionHandlers.useHierarchyActionHandlers)({
93
- ...dragPreviewHandlers,
96
+ const dragActionHandlers = useHierarchyActionHandlers.useHierarchyActionHandlers(_objectSpread(_objectSpread({}, dragPreviewHandlers), {}, {
94
97
  dndItems,
95
98
  onReorder
96
- });
97
- const announcements = (0, import_useHierarchyAnnouncements.useHierarchyAnnouncements)(itemsDictionary);
98
- const dndContextProps = (0, import_react.useMemo)(() => ({
99
- announcements,
100
- modifiers,
101
- sensors,
102
- measuring,
103
- collisionDetection: (0, import_customCollisionDetection.customCollisionDetection)(activeId, itemsDictionary[activeId ?? ""]?.parentId, dndItems),
104
- ...dragActionHandlers
105
- }), [announcements, modifiers, sensors, activeId, itemsDictionary, dndItems, dragActionHandlers]);
99
+ }));
100
+ const announcements = useHierarchyAnnouncements.useHierarchyAnnouncements(itemsDictionary);
101
+ const dndContextProps = react.useMemo(() => {
102
+ var _itemsDictionary;
103
+
104
+ return _objectSpread({
105
+ announcements,
106
+ modifiers,
107
+ sensors,
108
+ measuring,
109
+ collisionDetection: customCollisionDetection.customCollisionDetection(activeId, (_itemsDictionary = itemsDictionary[activeId !== null && activeId !== void 0 ? activeId : '']) === null || _itemsDictionary === void 0 ? void 0 : _itemsDictionary.parentId, dndItems)
110
+ }, dragActionHandlers);
111
+ }, [announcements, modifiers, sensors, activeId, itemsDictionary, dndItems, dragActionHandlers]);
106
112
  return {
107
113
  dndContextProps,
108
114
  activeId,
109
- activeIndex: activeId ? itemsDictionary[activeId]?.index : -1
115
+ activeIndex: activeId ? (_itemsDictionary$acti = itemsDictionary[activeId]) === null || _itemsDictionary$acti === void 0 ? void 0 : _itemsDictionary$acti.index : -1
110
116
  };
111
117
  };
112
- module.exports = __toCommonJS(useHierarchyDndkitConfig_exports);
113
- //# sourceMappingURL=useHierarchyDndkitConfig.js.map
118
+
119
+ exports.useHierarchyDndkitConfig = useHierarchyDndkitConfig;
@@ -1,56 +1,35 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var useHierarchyPreviewHandlers_exports = {};
29
- __export(useHierarchyPreviewHandlers_exports, {
30
- useHierarchyPreviewHandlers: () => useHierarchyPreviewHandlers
31
- });
32
- var React = __toESM(require("react"));
33
- var import_react = __toESM(require("react"));
34
- const useHierarchyPreviewHandlers = ({
35
- setActiveId,
36
- onPreviewResetState,
37
- onPreviewDragStart
38
- }) => {
39
- const resetState = (0, import_react.useCallback)(() => {
40
- setActiveId("");
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var react = require('react');
6
+
7
+ const useHierarchyPreviewHandlers = _ref => {
8
+ let {
9
+ setActiveId,
10
+ onPreviewResetState,
11
+ onPreviewDragStart
12
+ } = _ref;
13
+ const resetState = react.useCallback(() => {
14
+ setActiveId('');
41
15
  onPreviewResetState();
42
- document.body.style.setProperty("cursor", "");
16
+ document.body.style.setProperty('cursor', '');
43
17
  }, [setActiveId, onPreviewResetState]);
44
- const handlePreviewDragStart = (0, import_react.useCallback)(({ active: { id } }) => {
18
+ const handlePreviewDragStart = react.useCallback(_ref2 => {
19
+ let {
20
+ active: {
21
+ id
22
+ }
23
+ } = _ref2;
45
24
  setActiveId(id);
46
- document.body.style.setProperty("cursor", "grabbing");
25
+ document.body.style.setProperty('cursor', 'grabbing');
47
26
  onPreviewDragStart();
48
27
  }, [setActiveId, onPreviewDragStart]);
49
- const handlePreviewDragMove = (0, import_react.useCallback)(() => null, []);
50
- const handlePreviewDragEnd = (0, import_react.useCallback)(() => {
28
+ const handlePreviewDragMove = react.useCallback(() => null, []);
29
+ const handlePreviewDragEnd = react.useCallback(() => {
51
30
  resetState();
52
31
  }, [resetState]);
53
- const handlePreviewDragCancel = (0, import_react.useCallback)(() => {
32
+ const handlePreviewDragCancel = react.useCallback(() => {
54
33
  resetState();
55
34
  }, [resetState]);
56
35
  return {
@@ -60,5 +39,5 @@ const useHierarchyPreviewHandlers = ({
60
39
  handlePreviewDragCancel
61
40
  };
62
41
  };
63
- module.exports = __toCommonJS(useHierarchyPreviewHandlers_exports);
64
- //# sourceMappingURL=useHierarchyPreviewHandlers.js.map
42
+
43
+ exports.useHierarchyPreviewHandlers = useHierarchyPreviewHandlers;
package/cjs/index.js CHANGED
@@ -1,29 +1,11 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __reExport = (target, module2, copyDefault, desc) => {
9
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
10
- for (let key of __getOwnPropNames(module2))
11
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
12
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
13
- }
14
- return target;
15
- };
16
- var __toESM = (module2, isNodeMode) => {
17
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
18
- };
19
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
- return (module2, temp) => {
21
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
22
- };
23
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
- var src_exports = {};
25
- var React = __toESM(require("react"));
26
- __reExport(src_exports, __toESM(require("./hierarchy")));
27
- __reExport(src_exports, __toESM(require("./tree")));
28
- module.exports = __toCommonJS(src_exports);
29
- //# sourceMappingURL=index.js.map
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var useHierarchyDndkitConfig = require('./hierarchy/useHierarchyDndkitConfig.js');
6
+ var useTreeDndkitConfig = require('./tree/useTreeDndkitConfig.js');
7
+
8
+
9
+
10
+ exports.useHierarchyDndkitConfig = useHierarchyDndkitConfig.useHierarchyDndkitConfig;
11
+ exports.useTreeDndkitConfig = useTreeDndkitConfig.useTreeDndkitConfig;
@@ -1,41 +1,12 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var constants_exports = {};
29
- __export(constants_exports, {
30
- DropIndicatorPosition: () => DropIndicatorPosition
31
- });
32
- var React = __toESM(require("react"));
33
- var DropIndicatorPosition = /* @__PURE__ */ ((DropIndicatorPosition2) => {
34
- DropIndicatorPosition2[DropIndicatorPosition2["None"] = 0] = "None";
35
- DropIndicatorPosition2[DropIndicatorPosition2["Before"] = 1] = "Before";
36
- DropIndicatorPosition2[DropIndicatorPosition2["After"] = 2] = "After";
37
- DropIndicatorPosition2[DropIndicatorPosition2["Inside"] = 3] = "Inside";
38
- return DropIndicatorPosition2;
39
- })(DropIndicatorPosition || {});
40
- module.exports = __toCommonJS(constants_exports);
41
- //# sourceMappingURL=constants.js.map
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ exports.DropIndicatorPosition = void 0;
6
+
7
+ (function (DropIndicatorPosition) {
8
+ DropIndicatorPosition[DropIndicatorPosition["None"] = 0] = "None";
9
+ DropIndicatorPosition[DropIndicatorPosition["Before"] = 1] = "Before";
10
+ DropIndicatorPosition[DropIndicatorPosition["After"] = 2] = "After";
11
+ DropIndicatorPosition[DropIndicatorPosition["Inside"] = 3] = "Inside";
12
+ })(exports.DropIndicatorPosition || (exports.DropIndicatorPosition = {}));
@@ -1,106 +1,137 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var customCollisionDetection_exports = {};
29
- __export(customCollisionDetection_exports, {
30
- customCollisionDetection: () => customCollisionDetection
31
- });
32
- var React = __toESM(require("react"));
33
- var import_constants = __toESM(require("./constants"));
34
- const DUMMY_ID = "DUMMY_ID_INTERNAL_USE_ONLY";
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/esnext.async-iterator.reduce.js');
9
+ require('core-js/modules/esnext.iterator.reduce.js');
10
+ require('core-js/modules/web.dom-collections.iterator.js');
11
+ var constants = require('./constants.js');
12
+
13
+ const DUMMY_ID = 'DUMMY_ID_INTERNAL_USE_ONLY';
35
14
  const RECT_UP = {
36
15
  offsetTop: -Infinity,
37
16
  offsetLeft: 0,
17
+ // Doesn't matter,
38
18
  width: 0,
39
- height: 0
19
+ // Doesn't matter
20
+ height: 0 // Doesn't matter
21
+
40
22
  };
41
23
  const RECT_DOWN = {
42
24
  offsetTop: Infinity,
43
25
  offsetLeft: 0,
26
+ // Doesn't matter,
44
27
  width: 0,
45
- height: 0
46
- };
47
- const thresholdRatio = 0.2;
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
+
48
35
  const insideThreshold = 0.7;
49
- const customCollisionDetection = (activeId, visibleItemsDictionary, setDropIndicatorPosition, maxDragAndDropLevel, lastPosition, setLastPosition) => ({ droppableContainers, collisionRect }) => {
50
- const originalContainer = droppableContainers.find(({ id }) => id === activeId);
51
- const originalRect = originalContainer?.rect?.current;
52
- let isUp = lastPosition === "up";
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
50
+ // This modifies how to search the matching colliding rect
51
+
52
+ let isUp = lastPosition === 'up';
53
+
53
54
  if (originalRect) {
54
55
  isUp = originalRect.offsetTop > collisionRect.top;
55
- }
56
+ } // Threshold
57
+
58
+
56
59
  const threshold = collisionRect.height * thresholdRatio;
57
60
  let collidingContainer = null;
61
+
58
62
  if (isUp) {
63
+ // Up -- We need to find the first rectangle downwards
59
64
  collidingContainer = droppableContainers.reduce((firstRectDown, container) => {
60
65
  const rect = container.rect.current;
66
+
61
67
  if (rect && firstRectDown.rect.current) {
62
- const { offsetTop: rectOffsetTop } = rect;
63
- const { offsetTop: firstRectDownOffsetTop } = firstRectDown.rect.current;
68
+ const {
69
+ offsetTop: rectOffsetTop
70
+ } = rect;
71
+ const {
72
+ offsetTop: firstRectDownOffsetTop
73
+ } = firstRectDown.rect.current;
74
+
64
75
  if (rectOffsetTop + threshold > collisionRect.top && rectOffsetTop < firstRectDownOffsetTop) {
65
76
  return container;
66
77
  }
67
78
  }
79
+
68
80
  return firstRectDown;
69
- }, { id: DUMMY_ID, rect: { current: RECT_DOWN } });
81
+ }, {
82
+ id: DUMMY_ID,
83
+ rect: {
84
+ current: RECT_DOWN
85
+ }
86
+ });
70
87
  } else {
88
+ // Down -- We need to find the first rectangle upwards
71
89
  collidingContainer = droppableContainers.reduce((firstRectUp, container) => {
72
90
  const rect = container.rect.current;
91
+
73
92
  if (rect && firstRectUp.rect.current) {
74
- const { offsetTop: rectOffsetTop } = rect;
75
- const { offsetTop: firstRectUpOffsetTop } = firstRectUp.rect.current;
93
+ const {
94
+ offsetTop: rectOffsetTop
95
+ } = rect;
96
+ const {
97
+ offsetTop: firstRectUpOffsetTop
98
+ } = firstRectUp.rect.current;
99
+
76
100
  if (rectOffsetTop - threshold < collisionRect.top && rectOffsetTop > firstRectUpOffsetTop) {
77
101
  return container;
78
102
  }
79
103
  }
104
+
80
105
  return firstRectUp;
81
- }, { id: DUMMY_ID, rect: { current: RECT_UP } });
82
- }
106
+ }, {
107
+ id: DUMMY_ID,
108
+ rect: {
109
+ current: RECT_UP
110
+ }
111
+ });
112
+ } // If we didn't find a match, return null
113
+
114
+
83
115
  if (collidingContainer.id === DUMMY_ID) {
84
116
  return null;
85
117
  }
118
+
86
119
  const collidingRect = collidingContainer.rect.current;
87
- if (!collidingRect)
88
- return null;
89
- const [top, bottom] = [
90
- Math.max(collisionRect.top, collidingRect.offsetTop),
91
- Math.min(collisionRect.bottom, collidingRect.offsetTop + collidingRect.height)
92
- ];
120
+ if (!collidingRect) return null; // Calculate the intersection interval
121
+
122
+ const [top, bottom] = [Math.max(collisionRect.top, collidingRect.offsetTop), Math.min(collisionRect.bottom, collidingRect.offsetTop + collidingRect.height)]; // Calculate the percentage of intersection
123
+
93
124
  const intersectionPercentage = Math.abs(bottom - top) / collidingRect.height;
125
+
94
126
  if (intersectionPercentage > insideThreshold && visibleItemsDictionary[collidingContainer.id].depth + 1 <= maxDragAndDropLevel && collidingContainer.id !== activeId) {
95
- setDropIndicatorPosition(import_constants.DropIndicatorPosition.Inside);
127
+ setDropIndicatorPosition(constants.DropIndicatorPosition.Inside);
96
128
  } else {
97
- setDropIndicatorPosition(isUp ? import_constants.DropIndicatorPosition.Before : import_constants.DropIndicatorPosition.After);
129
+ setDropIndicatorPosition(isUp ? constants.DropIndicatorPosition.Before : constants.DropIndicatorPosition.After);
98
130
  }
99
- if (isUp && lastPosition !== "up")
100
- setLastPosition("up");
101
- else if (!isUp && lastPosition !== "down")
102
- setLastPosition("down");
131
+
132
+ if (isUp && lastPosition !== 'up') setLastPosition('up');else if (!isUp && lastPosition !== 'down') setLastPosition('down'); // Return the id of the match rectangle
133
+
103
134
  return collidingContainer.id;
104
135
  };
105
- module.exports = __toCommonJS(customCollisionDetection_exports);
106
- //# sourceMappingURL=customCollisionDetection.js.map
136
+
137
+ exports.customCollisionDetection = customCollisionDetection;