@elliemae/ds-drag-and-drop 3.4.2 → 3.4.3

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 (68) hide show
  1. package/dist/cjs/hierarchy/customCollisionDetection.js +7 -2
  2. package/dist/cjs/hierarchy/customCollisionDetection.js.map +1 -1
  3. package/dist/cjs/hierarchy/getHierarchyKeyboardCoordinates.js +4 -1
  4. package/dist/cjs/hierarchy/getHierarchyKeyboardCoordinates.js.map +1 -1
  5. package/dist/cjs/hierarchy/index.js +4 -1
  6. package/dist/cjs/hierarchy/index.js.map +1 -1
  7. package/dist/cjs/hierarchy/types.js +4 -1
  8. package/dist/cjs/hierarchy/types.js.map +1 -1
  9. package/dist/cjs/hierarchy/useHierarchyActionHandlers.js +39 -24
  10. package/dist/cjs/hierarchy/useHierarchyActionHandlers.js.map +1 -1
  11. package/dist/cjs/hierarchy/useHierarchyAnnouncements.js +32 -17
  12. package/dist/cjs/hierarchy/useHierarchyAnnouncements.js.map +1 -1
  13. package/dist/cjs/hierarchy/useHierarchyDndkitConfig.js +28 -16
  14. package/dist/cjs/hierarchy/useHierarchyDndkitConfig.js.map +1 -1
  15. package/dist/cjs/hierarchy/useHierarchyPreviewHandlers.js +12 -6
  16. package/dist/cjs/hierarchy/useHierarchyPreviewHandlers.js.map +1 -1
  17. package/dist/cjs/index.js +4 -1
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/tree/constants.js +4 -1
  20. package/dist/cjs/tree/constants.js.map +2 -2
  21. package/dist/cjs/tree/customCollisionDetection.js +30 -21
  22. package/dist/cjs/tree/customCollisionDetection.js.map +1 -1
  23. package/dist/cjs/tree/getTreeKeyboardCoordinates.js +4 -1
  24. package/dist/cjs/tree/getTreeKeyboardCoordinates.js.map +1 -1
  25. package/dist/cjs/tree/index.js +4 -1
  26. package/dist/cjs/tree/index.js.map +1 -1
  27. package/dist/cjs/tree/types.js +4 -1
  28. package/dist/cjs/tree/types.js.map +1 -1
  29. package/dist/cjs/tree/useTreeActionHandlers.js +57 -35
  30. package/dist/cjs/tree/useTreeActionHandlers.js.map +1 -1
  31. package/dist/cjs/tree/useTreeAnnouncements.js +42 -27
  32. package/dist/cjs/tree/useTreeAnnouncements.js.map +1 -1
  33. package/dist/cjs/tree/useTreeDndkitConfig.js +65 -33
  34. package/dist/cjs/tree/useTreeDndkitConfig.js.map +1 -1
  35. package/dist/cjs/tree/useTreePreviewHandlers.js +19 -10
  36. package/dist/cjs/tree/useTreePreviewHandlers.js.map +1 -1
  37. package/dist/cjs/tree/utilities.js +4 -1
  38. package/dist/cjs/tree/utilities.js.map +1 -1
  39. package/dist/esm/hierarchy/customCollisionDetection.js +3 -1
  40. package/dist/esm/hierarchy/customCollisionDetection.js.map +1 -1
  41. package/dist/esm/hierarchy/getHierarchyKeyboardCoordinates.js.map +1 -1
  42. package/dist/esm/hierarchy/index.js.map +1 -1
  43. package/dist/esm/hierarchy/types.js.map +1 -1
  44. package/dist/esm/hierarchy/useHierarchyActionHandlers.js +35 -23
  45. package/dist/esm/hierarchy/useHierarchyActionHandlers.js.map +1 -1
  46. package/dist/esm/hierarchy/useHierarchyAnnouncements.js +28 -16
  47. package/dist/esm/hierarchy/useHierarchyAnnouncements.js.map +1 -1
  48. package/dist/esm/hierarchy/useHierarchyDndkitConfig.js +24 -15
  49. package/dist/esm/hierarchy/useHierarchyDndkitConfig.js.map +1 -1
  50. package/dist/esm/hierarchy/useHierarchyPreviewHandlers.js +8 -5
  51. package/dist/esm/hierarchy/useHierarchyPreviewHandlers.js.map +1 -1
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/tree/constants.js.map +2 -2
  54. package/dist/esm/tree/customCollisionDetection.js +26 -20
  55. package/dist/esm/tree/customCollisionDetection.js.map +1 -1
  56. package/dist/esm/tree/getTreeKeyboardCoordinates.js.map +1 -1
  57. package/dist/esm/tree/index.js.map +1 -1
  58. package/dist/esm/tree/types.js.map +1 -1
  59. package/dist/esm/tree/useTreeActionHandlers.js +53 -34
  60. package/dist/esm/tree/useTreeActionHandlers.js.map +1 -1
  61. package/dist/esm/tree/useTreeAnnouncements.js +38 -26
  62. package/dist/esm/tree/useTreeAnnouncements.js.map +1 -1
  63. package/dist/esm/tree/useTreeDndkitConfig.js +61 -32
  64. package/dist/esm/tree/useTreeDndkitConfig.js.map +1 -1
  65. package/dist/esm/tree/useTreePreviewHandlers.js +15 -9
  66. package/dist/esm/tree/useTreePreviewHandlers.js.map +1 -1
  67. package/dist/esm/tree/utilities.js.map +1 -1
  68. package/package.json +1 -1
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/getHierarchyKeyboardCoordinates.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import {\n closestCorners,\n getClientRect,\n KeyboardCode,\n KeyboardCoordinateGetter,\n DroppableContainer,\n} from '@dnd-kit/core';\nimport { Coordinates } from '@dnd-kit/core/dist/types';\n\nimport { GetKeyboardCoordinatesArgs, SensorContext } from './types';\n\nconst directions: string[] = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\nconst vertical: string[] = [KeyboardCode.Up, KeyboardCode.Down];\n\nconst getHorizontalKeyboardCoordinates = ({\n items,\n active,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n droppableRects,\n}: GetKeyboardCoordinatesArgs): Coordinates | undefined => {\n if (vertical.includes(event.code) || !active) return undefined;\n\n const activeItem = items.find((item) => item.id === active.id);\n\n const layoutRects: DroppableContainer[] = [];\n\n // Get the reacheable rects depending on the arrow key pressed\n droppableContainers.forEach((container) => {\n if (container?.disabled) {\n return;\n }\n const node = container?.node.current;\n if (!node) {\n return;\n }\n const itemParent = items.find((item) => item.id === container.id)?.parentId;\n if (itemParent !== activeItem?.parentId) return;\n const rect = getClientRect(node);\n if (event.code === KeyboardCode.Left && collisionRect.left > rect.left + rect.width - 5) {\n layoutRects.push(container);\n } else if (event.code === KeyboardCode.Right && collisionRect.left < rect.left) {\n layoutRects.push(container);\n }\n });\n\n const sortedRects = closestCorners({\n droppableContainers: layoutRects,\n collisionRect,\n active,\n droppableRects,\n pointerCoordinates: null,\n });\n\n const closestId = sortedRects.length > 0 ? sortedRects[0].id : undefined;\n\n if (!closestId) return undefined;\n\n const closestDroppableContainer = droppableContainers.get(closestId)?.node?.current;\n const activeDroppableContainer = droppableContainers.get(active?.id)?.node?.current;\n\n if (!closestDroppableContainer || !activeDroppableContainer) return undefined;\n\n const closestRect = getClientRect(closestDroppableContainer);\n const activeRect = getClientRect(activeDroppableContainer);\n\n return {\n ...currentCoordinates,\n x: closestRect.left + (closestRect.width - collisionRect.width) / 2 + (closestRect.left < activeRect.left ? -2 : 2),\n };\n};\n\nexport const getHierarchyKeyboardCoordinates: (\n context: SensorContext,\n isHorizontalDnD: boolean,\n) => KeyboardCoordinateGetter = (context, isHorizontalDnD) => {\n const func: KeyboardCoordinateGetter = (\n event,\n { currentCoordinates, context: { active, collisionRect, droppableContainers, droppableRects } },\n ) => {\n if (directions.includes(event.code)) {\n event.preventDefault();\n if (!collisionRect) {\n return undefined;\n }\n\n const {\n current: { items },\n } = context;\n\n const args = {\n items,\n active,\n event,\n currentCoordinates,\n droppableContainers,\n droppableRects,\n collisionRect,\n };\n\n if (isHorizontalDnD) return getHorizontalKeyboardCoordinates(args);\n return undefined;\n }\n return undefined;\n };\n return func;\n};\n"],
5
- "mappings": "AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,aAAuB,CAAC,aAAa,MAAM,aAAa,OAAO,aAAa,IAAI,aAAa,IAAI;AAEvG,MAAM,WAAqB,CAAC,aAAa,IAAI,aAAa,IAAI;AAE9D,MAAM,mCAAmC,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACyD;AACzD,MAAI,SAAS,SAAS,MAAM,IAAI,KAAK,CAAC;AAAQ,WAAO;AAErD,QAAM,aAAa,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,OAAO,EAAE;AAE7D,QAAM,cAAoC,CAAC;AAG3C,sBAAoB,QAAQ,CAAC,cAAc;AACzC,QAAI,WAAW,UAAU;AACvB;AAAA,IACF;AACA,UAAM,OAAO,WAAW,KAAK;AAC7B,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,UAAM,aAAa,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,UAAU,EAAE,GAAG;AACnE,QAAI,eAAe,YAAY;AAAU;AACzC,UAAM,OAAO,cAAc,IAAI;AAC/B,QAAI,MAAM,SAAS,aAAa,QAAQ,cAAc,OAAO,KAAK,OAAO,KAAK,QAAQ,GAAG;AACvF,kBAAY,KAAK,SAAS;AAAA,IAC5B,WAAW,MAAM,SAAS,aAAa,SAAS,cAAc,OAAO,KAAK,MAAM;AAC9E,kBAAY,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF,CAAC;AAED,QAAM,cAAc,eAAe;AAAA,IACjC,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,YAAY,YAAY,SAAS,IAAI,YAAY,GAAG,KAAK;AAE/D,MAAI,CAAC;AAAW,WAAO;AAEvB,QAAM,4BAA4B,oBAAoB,IAAI,SAAS,GAAG,MAAM;AAC5E,QAAM,2BAA2B,oBAAoB,IAAI,QAAQ,EAAE,GAAG,MAAM;AAE5E,MAAI,CAAC,6BAA6B,CAAC;AAA0B,WAAO;AAEpE,QAAM,cAAc,cAAc,yBAAyB;AAC3D,QAAM,aAAa,cAAc,wBAAwB;AAEzD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,YAAY,OAAQ,aAAY,QAAQ,cAAc,SAAS,IAAK,aAAY,OAAO,WAAW,OAAO,KAAK;AAAA,EACnH;AACF;AAEO,MAAM,kCAGmB,CAAC,SAAS,oBAAoB;AAC5D,QAAM,OAAiC,CACrC,OACA,EAAE,oBAAoB,SAAS,EAAE,QAAQ,eAAe,qBAAqB,uBAC1E;AACH,QAAI,WAAW,SAAS,MAAM,IAAI,GAAG;AACnC,YAAM,eAAe;AACrB,UAAI,CAAC,eAAe;AAClB,eAAO;AAAA,MACT;AAEA,YAAM;AAAA,QACJ,SAAS,EAAE;AAAA,UACT;AAEJ,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI;AAAiB,eAAO,iCAAiC,IAAI;AACjE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAKP,MAAM,aAAuB,CAAC,aAAa,MAAM,aAAa,OAAO,aAAa,IAAI,aAAa,IAAI;AAEvG,MAAM,WAAqB,CAAC,aAAa,IAAI,aAAa,IAAI;AAE9D,MAAM,mCAAmC,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2D;AACzD,MAAI,SAAS,SAAS,MAAM,IAAI,KAAK,CAAC;AAAQ,WAAO;AAErD,QAAM,aAAa,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,OAAO,EAAE;AAE7D,QAAM,cAAoC,CAAC;AAG3C,sBAAoB,QAAQ,CAAC,cAAc;AACzC,QAAI,WAAW,UAAU;AACvB;AAAA,IACF;AACA,UAAM,OAAO,WAAW,KAAK;AAC7B,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,UAAM,aAAa,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,UAAU,EAAE,GAAG;AACnE,QAAI,eAAe,YAAY;AAAU;AACzC,UAAM,OAAO,cAAc,IAAI;AAC/B,QAAI,MAAM,SAAS,aAAa,QAAQ,cAAc,OAAO,KAAK,OAAO,KAAK,QAAQ,GAAG;AACvF,kBAAY,KAAK,SAAS;AAAA,IAC5B,WAAW,MAAM,SAAS,aAAa,SAAS,cAAc,OAAO,KAAK,MAAM;AAC9E,kBAAY,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF,CAAC;AAED,QAAM,cAAc,eAAe;AAAA,IACjC,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,YAAY,YAAY,SAAS,IAAI,YAAY,GAAG,KAAK;AAE/D,MAAI,CAAC;AAAW,WAAO;AAEvB,QAAM,4BAA4B,oBAAoB,IAAI,SAAS,GAAG,MAAM;AAC5E,QAAM,2BAA2B,oBAAoB,IAAI,QAAQ,EAAE,GAAG,MAAM;AAE5E,MAAI,CAAC,6BAA6B,CAAC;AAA0B,WAAO;AAEpE,QAAM,cAAc,cAAc,yBAAyB;AAC3D,QAAM,aAAa,cAAc,wBAAwB;AAEzD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,YAAY,QAAQ,YAAY,QAAQ,cAAc,SAAS,KAAK,YAAY,OAAO,WAAW,OAAO,KAAK;AAAA,EACnH;AACF;AAEO,MAAM,kCAGmB,CAAC,SAAS,oBAAoB;AAC5D,QAAM,OAAiC,CACrC,OACA,EAAE,oBAAoB,SAAS,EAAE,QAAQ,eAAe,qBAAqB,eAAe,EAAE,MAC3F;AACH,QAAI,WAAW,SAAS,MAAM,IAAI,GAAG;AACnC,YAAM,eAAe;AACrB,UAAI,CAAC,eAAe;AAClB,eAAO;AAAA,MACT;AAEA,YAAM;AAAA,QACJ,SAAS,EAAE,MAAM;AAAA,MACnB,IAAI;AAEJ,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI;AAAiB,eAAO,iCAAiC,IAAI;AACjE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './useHierarchyDndkitConfig';\n"],
5
- "mappings": "AAAA;ACAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "AAAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;",
6
6
  "names": []
7
7
  }
@@ -8,29 +8,41 @@ const useHierarchyActionHandlers = ({
8
8
  onReorder,
9
9
  dndItems
10
10
  }) => {
11
- const onDragStart = useCallback((e) => {
12
- handlePreviewDragStart(e);
13
- }, [handlePreviewDragStart]);
14
- const onDragMove = useCallback((e) => {
15
- handlePreviewDragMove(e);
16
- }, [handlePreviewDragMove]);
17
- const onDragEnd = useCallback((e) => {
18
- handlePreviewDragEnd(e);
19
- const { active, over } = e;
20
- if (!over)
21
- return;
22
- if (active.id !== over.id) {
23
- const activeIndex = dndItems.findIndex((item) => item.id === active.id);
24
- const overIndex = dndItems.findIndex((item) => item.id === over.id);
25
- onReorder(dndItems[activeIndex], {
26
- targetIndex: overIndex,
27
- fromIndex: activeIndex
28
- });
29
- }
30
- }, [handlePreviewDragEnd, dndItems, onReorder]);
31
- const onDragCancel = useCallback((e) => {
32
- handlePreviewDragCancel(e);
33
- }, [handlePreviewDragCancel]);
11
+ const onDragStart = useCallback(
12
+ (e) => {
13
+ handlePreviewDragStart(e);
14
+ },
15
+ [handlePreviewDragStart]
16
+ );
17
+ const onDragMove = useCallback(
18
+ (e) => {
19
+ handlePreviewDragMove(e);
20
+ },
21
+ [handlePreviewDragMove]
22
+ );
23
+ const onDragEnd = useCallback(
24
+ (e) => {
25
+ handlePreviewDragEnd(e);
26
+ const { active, over } = e;
27
+ if (!over)
28
+ return;
29
+ if (active.id !== over.id) {
30
+ const activeIndex = dndItems.findIndex((item) => item.id === active.id);
31
+ const overIndex = dndItems.findIndex((item) => item.id === over.id);
32
+ onReorder(dndItems[activeIndex], {
33
+ targetIndex: overIndex,
34
+ fromIndex: activeIndex
35
+ });
36
+ }
37
+ },
38
+ [handlePreviewDragEnd, dndItems, onReorder]
39
+ );
40
+ const onDragCancel = useCallback(
41
+ (e) => {
42
+ handlePreviewDragCancel(e);
43
+ },
44
+ [handlePreviewDragCancel]
45
+ );
34
46
  return { onDragStart, onDragMove, onDragEnd, onDragCancel };
35
47
  };
36
48
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/useHierarchyActionHandlers.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback } from 'react';\nimport { DragStartEvent, DragMoveEvent, DragEndEvent, DragCancelEvent } from '@dnd-kit/core';\nimport { UseHierarchyActionHandlersReturn, UseHierarchyActionHandlersArgs } from './types';\n\nexport const useHierarchyActionHandlers = ({\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n onReorder,\n dndItems,\n}: UseHierarchyActionHandlersArgs): UseHierarchyActionHandlersReturn => {\n const onDragStart = useCallback(\n (e: DragStartEvent) => {\n handlePreviewDragStart(e);\n },\n [handlePreviewDragStart],\n );\n\n const onDragMove = useCallback(\n (e: DragMoveEvent) => {\n handlePreviewDragMove(e);\n },\n [handlePreviewDragMove],\n );\n\n const onDragEnd = useCallback(\n (e: DragEndEvent) => {\n handlePreviewDragEnd(e);\n const { active, over } = e;\n\n if (!over) return;\n\n if (active.id !== over.id) {\n const activeIndex = dndItems.findIndex((item) => item.id === active.id);\n const overIndex = dndItems.findIndex((item) => item.id === over.id);\n\n onReorder(dndItems[activeIndex], {\n targetIndex: overIndex,\n fromIndex: activeIndex,\n });\n }\n },\n [handlePreviewDragEnd, dndItems, onReorder],\n );\n\n const onDragCancel = useCallback(\n (e: DragCancelEvent) => {\n handlePreviewDragCancel(e);\n },\n [handlePreviewDragCancel],\n );\n\n return { onDragStart, onDragMove, onDragEnd, onDragCancel };\n};\n"],
5
- "mappings": "AAAA;ACAA;AAIO,MAAM,6BAA6B,CAAC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACsE;AACtE,QAAM,cAAc,YAClB,CAAC,MAAsB;AACrB,2BAAuB,CAAC;AAAA,EAC1B,GACA,CAAC,sBAAsB,CACzB;AAEA,QAAM,aAAa,YACjB,CAAC,MAAqB;AACpB,0BAAsB,CAAC;AAAA,EACzB,GACA,CAAC,qBAAqB,CACxB;AAEA,QAAM,YAAY,YAChB,CAAC,MAAoB;AACnB,yBAAqB,CAAC;AACtB,UAAM,EAAE,QAAQ,SAAS;AAEzB,QAAI,CAAC;AAAM;AAEX,QAAI,OAAO,OAAO,KAAK,IAAI;AACzB,YAAM,cAAc,SAAS,UAAU,CAAC,SAAS,KAAK,OAAO,OAAO,EAAE;AACtE,YAAM,YAAY,SAAS,UAAU,CAAC,SAAS,KAAK,OAAO,KAAK,EAAE;AAElE,gBAAU,SAAS,cAAc;AAAA,QAC/B,aAAa;AAAA,QACb,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF,GACA,CAAC,sBAAsB,UAAU,SAAS,CAC5C;AAEA,QAAM,eAAe,YACnB,CAAC,MAAuB;AACtB,4BAAwB,CAAC;AAAA,EAC3B,GACA,CAAC,uBAAuB,CAC1B;AAEA,SAAO,EAAE,aAAa,YAAY,WAAW,aAAa;AAC5D;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,mBAAmB;AAIrB,MAAM,6BAA6B,CAAC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwE;AACtE,QAAM,cAAc;AAAA,IAClB,CAAC,MAAsB;AACrB,6BAAuB,CAAC;AAAA,IAC1B;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAAa;AAAA,IACjB,CAAC,MAAqB;AACpB,4BAAsB,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,qBAAqB;AAAA,EACxB;AAEA,QAAM,YAAY;AAAA,IAChB,CAAC,MAAoB;AACnB,2BAAqB,CAAC;AACtB,YAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,UAAI,CAAC;AAAM;AAEX,UAAI,OAAO,OAAO,KAAK,IAAI;AACzB,cAAM,cAAc,SAAS,UAAU,CAAC,SAAS,KAAK,OAAO,OAAO,EAAE;AACtE,cAAM,YAAY,SAAS,UAAU,CAAC,SAAS,KAAK,OAAO,KAAK,EAAE;AAElE,kBAAU,SAAS,cAAc;AAAA,UAC/B,aAAa;AAAA,UACb,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB,UAAU,SAAS;AAAA,EAC5C;AAEA,QAAM,eAAe;AAAA,IACnB,CAAC,MAAuB;AACtB,8BAAwB,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC,uBAAuB;AAAA,EAC1B;AAEA,SAAO,EAAE,aAAa,YAAY,WAAW,aAAa;AAC5D;",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,35 @@
1
1
  import * as React from "react";
2
2
  import { useCallback } from "react";
3
3
  const useHierarchyAnnouncements = (visibleItemsDictionary) => {
4
- const onDragStart = useCallback(({ active: { id } }) => `Picked up draggable item from position ${visibleItemsDictionary[id].index + 1}.`, [visibleItemsDictionary]);
5
- const onDragMove = useCallback(({ over }) => {
6
- if (over) {
7
- const overIndex = visibleItemsDictionary[over.id].index + 1;
8
- return `Draggable item was moved to position ${overIndex}.`;
9
- }
10
- return `Draggable item is no longer over a droppable area.`;
11
- }, [visibleItemsDictionary]);
4
+ const onDragStart = useCallback(
5
+ ({ active: { id } }) => `Picked up draggable item from position ${visibleItemsDictionary[id].index + 1}.`,
6
+ [visibleItemsDictionary]
7
+ );
8
+ const onDragMove = useCallback(
9
+ ({ over }) => {
10
+ if (over) {
11
+ const overIndex = visibleItemsDictionary[over.id].index + 1;
12
+ return `Draggable item was moved to position ${overIndex}.`;
13
+ }
14
+ return `Draggable item is no longer over a droppable area.`;
15
+ },
16
+ [visibleItemsDictionary]
17
+ );
12
18
  const onDragOver = onDragMove;
13
- const onDragEnd = useCallback(({ over }) => {
14
- if (over) {
15
- const overIndex = visibleItemsDictionary[over.id].index + 1;
16
- return `Draggable item was dropped over position ${overIndex}.`;
17
- }
18
- return `Draggable item was dropped at it's original position.`;
19
- }, [visibleItemsDictionary]);
20
- const onDragCancel = useCallback(({ active: { id } }) => `Dragging was cancelled. Draggable item from position ${visibleItemsDictionary[id].index + 1} was dropped at it's initial position.`, [visibleItemsDictionary]);
19
+ const onDragEnd = useCallback(
20
+ ({ over }) => {
21
+ if (over) {
22
+ const overIndex = visibleItemsDictionary[over.id].index + 1;
23
+ return `Draggable item was dropped over position ${overIndex}.`;
24
+ }
25
+ return `Draggable item was dropped at it's original position.`;
26
+ },
27
+ [visibleItemsDictionary]
28
+ );
29
+ const onDragCancel = useCallback(
30
+ ({ active: { id } }) => `Dragging was cancelled. Draggable item from position ${visibleItemsDictionary[id].index + 1} was dropped at it's initial position.`,
31
+ [visibleItemsDictionary]
32
+ );
21
33
  return { onDragStart, onDragOver, onDragMove, onDragEnd, onDragCancel };
22
34
  };
23
35
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/useHierarchyAnnouncements.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { Announcements } from '@dnd-kit/core';\nimport { useCallback } from 'react';\nimport { Item } from './types';\n\nexport const useHierarchyAnnouncements = (visibleItemsDictionary: Record<string, Item>): Announcements => {\n const onDragStart: Announcements['onDragStart'] = useCallback(\n ({ active: { id } }) => `Picked up draggable item from position ${visibleItemsDictionary[id].index + 1}.`,\n [visibleItemsDictionary],\n );\n\n const onDragMove: Announcements['onDragMove'] = useCallback(\n ({ over }) => {\n if (over) {\n const overIndex = visibleItemsDictionary[over.id].index + 1;\n return `Draggable item was moved to position ${overIndex}.`;\n }\n\n return `Draggable item is no longer over a droppable area.`;\n },\n [visibleItemsDictionary],\n );\n\n const onDragOver: Announcements['onDragOver'] = onDragMove;\n\n const onDragEnd: Announcements['onDragEnd'] = useCallback(\n ({ over }) => {\n if (over) {\n const overIndex = visibleItemsDictionary[over.id].index + 1;\n return `Draggable item was dropped over position ${overIndex}.`;\n }\n\n return `Draggable item was dropped at it's original position.`;\n },\n [visibleItemsDictionary],\n );\n\n const onDragCancel: Announcements['onDragCancel'] = useCallback(\n ({ active: { id } }) =>\n `Dragging was cancelled. Draggable item from position ${\n visibleItemsDictionary[id].index + 1\n } was dropped at it's initial position.`,\n [visibleItemsDictionary],\n );\n\n return { onDragStart, onDragOver, onDragMove, onDragEnd, onDragCancel };\n};\n"],
5
- "mappings": "AAAA;ACCA;AAGO,MAAM,4BAA4B,CAAC,2BAAgE;AACxG,QAAM,cAA4C,YAChD,CAAC,EAAE,QAAQ,EAAE,WAAW,0CAA0C,uBAAuB,IAAI,QAAQ,MACrG,CAAC,sBAAsB,CACzB;AAEA,QAAM,aAA0C,YAC9C,CAAC,EAAE,WAAW;AACZ,QAAI,MAAM;AACR,YAAM,YAAY,uBAAuB,KAAK,IAAI,QAAQ;AAC1D,aAAO,wCAAwC;AAAA,IACjD;AAEA,WAAO;AAAA,EACT,GACA,CAAC,sBAAsB,CACzB;AAEA,QAAM,aAA0C;AAEhD,QAAM,YAAwC,YAC5C,CAAC,EAAE,WAAW;AACZ,QAAI,MAAM;AACR,YAAM,YAAY,uBAAuB,KAAK,IAAI,QAAQ;AAC1D,aAAO,4CAA4C;AAAA,IACrD;AAEA,WAAO;AAAA,EACT,GACA,CAAC,sBAAsB,CACzB;AAEA,QAAM,eAA8C,YAClD,CAAC,EAAE,QAAQ,EAAE,WACX,wDACE,uBAAuB,IAAI,QAAQ,2CAEvC,CAAC,sBAAsB,CACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,mBAAmB;AAGrB,MAAM,4BAA4B,CAAC,2BAAgE;AACxG,QAAM,cAA4C;AAAA,IAChD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,0CAA0C,uBAAuB,IAAI,QAAQ;AAAA,IACrG,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAA0C;AAAA,IAC9C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,IAAI,QAAQ;AAC1D,eAAO,wCAAwC;AAAA,MACjD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAA0C;AAEhD,QAAM,YAAwC;AAAA,IAC5C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,IAAI,QAAQ;AAC1D,eAAO,4CAA4C;AAAA,MACrD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,eAA8C;AAAA,IAClD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAChB,wDACE,uBAAuB,IAAI,QAAQ;AAAA,IAEvC,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
6
6
  "names": []
7
7
  }
@@ -57,10 +57,16 @@ const useHierarchyDndkitConfig = ({
57
57
  items: dndItems
58
58
  };
59
59
  }, [dndItems]);
60
- const coordinateGetter = useMemo(() => getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD), [isHorizontalDnD]);
61
- const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
62
- coordinateGetter
63
- }));
60
+ const coordinateGetter = useMemo(
61
+ () => getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD),
62
+ [isHorizontalDnD]
63
+ );
64
+ const sensors = useSensors(
65
+ useSensor(PointerSensor),
66
+ useSensor(KeyboardSensor, {
67
+ coordinateGetter
68
+ })
69
+ );
64
70
  const dragPreviewHandlers = useHierarchyPreviewHandlers({
65
71
  setActiveId,
66
72
  onPreviewResetState,
@@ -72,17 +78,20 @@ const useHierarchyDndkitConfig = ({
72
78
  onReorder
73
79
  });
74
80
  const announcements = useHierarchyAnnouncements(itemsDictionary);
75
- const dndContextProps = useMemo(() => ({
76
- accessibility: {
77
- announcements,
78
- container: document.body
79
- },
80
- modifiers,
81
- sensors,
82
- measuring,
83
- collisionDetection: customCollisionDetection(activeId, itemsDictionary[activeId ?? ""]?.parentId, dndItems),
84
- ...dragActionHandlers
85
- }), [announcements, modifiers, sensors, activeId, itemsDictionary, dndItems, dragActionHandlers]);
81
+ const dndContextProps = useMemo(
82
+ () => ({
83
+ accessibility: {
84
+ announcements,
85
+ container: document.body
86
+ },
87
+ modifiers,
88
+ sensors,
89
+ measuring,
90
+ collisionDetection: customCollisionDetection(activeId, itemsDictionary[activeId ?? ""]?.parentId, dndItems),
91
+ ...dragActionHandlers
92
+ }),
93
+ [announcements, modifiers, sensors, activeId, itemsDictionary, dndItems, dragActionHandlers]
94
+ );
86
95
  return {
87
96
  dndContextProps,
88
97
  activeId,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/useHierarchyDndkitConfig.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport { useState, useEffect, useMemo, useRef } from 'react';\nimport {\n useSensor,\n useSensors,\n KeyboardSensor,\n PointerSensor,\n MeasuringConfiguration,\n MeasuringStrategy,\n Modifier,\n} from '@dnd-kit/core';\nimport { useHierarchyActionHandlers } from './useHierarchyActionHandlers';\nimport { useHierarchyPreviewHandlers } from './useHierarchyPreviewHandlers';\nimport type { UseHierarchyDndkitConfigType, SensorContext, Item } from './types';\nimport { getHierarchyKeyboardCoordinates } from './getHierarchyKeyboardCoordinates';\nimport { customCollisionDetection } from './customCollisionDetection';\nimport { useHierarchyAnnouncements } from './useHierarchyAnnouncements';\n\n// we make space for the drop indicator\n// if second parameter is true, the space will be done on the horizontal axis\nconst adjustTranslate = (isHorizontalDnD: boolean): Modifier => {\n const func: Modifier = ({ transform }) => {\n const newTransform = {\n ...transform,\n };\n if (isHorizontalDnD) {\n newTransform.y = transform.y + 15;\n } else {\n newTransform.y = transform.y - 35;\n }\n return newTransform;\n };\n return func;\n};\n\nconst measuring: Partial<MeasuringConfiguration> = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nconst noop = () => null;\n\nexport const useHierarchyDndkitConfig: UseHierarchyDndkitConfigType = ({\n flattenedItems,\n isHorizontalDnD = false,\n onReorder,\n onPreviewResetState = noop,\n onPreviewDragStart = noop,\n}) => {\n const [activeId, setActiveId] = useState('');\n\n const dndItems = useMemo(() => flattenedItems.map(([item]) => item), [flattenedItems]);\n\n const itemsDictionary = useMemo(() => {\n const dictionary: Record<string, Item> = {};\n dndItems.forEach((item) => {\n dictionary[item.id] = item;\n });\n return dictionary;\n }, [dndItems]);\n\n const modifiers: Modifier[] = useMemo(() => [adjustTranslate(isHorizontalDnD)], [isHorizontalDnD]);\n\n const sensorContext: SensorContext = useRef({\n items: dndItems,\n });\n\n useEffect(() => {\n sensorContext.current = {\n items: dndItems,\n };\n }, [dndItems]);\n\n const coordinateGetter = useMemo(\n () => getHierarchyKeyboardCoordinates(sensorContext, isHorizontalDnD),\n [isHorizontalDnD],\n );\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter,\n }),\n );\n\n const dragPreviewHandlers = useHierarchyPreviewHandlers({\n setActiveId,\n onPreviewResetState,\n onPreviewDragStart,\n });\n\n const dragActionHandlers = useHierarchyActionHandlers({\n ...dragPreviewHandlers,\n dndItems,\n onReorder,\n });\n\n const announcements = useHierarchyAnnouncements(itemsDictionary);\n\n const dndContextProps = useMemo(\n () => ({\n accessibility: {\n announcements,\n container: document.body,\n },\n modifiers,\n sensors,\n measuring,\n collisionDetection: customCollisionDetection(activeId, itemsDictionary[activeId ?? '']?.parentId, dndItems),\n ...dragActionHandlers,\n }),\n [announcements, modifiers, sensors, activeId, itemsDictionary, dndItems, dragActionHandlers],\n );\n\n return {\n dndContextProps,\n activeId,\n activeIndex: activeId ? itemsDictionary[activeId]?.index : -1,\n };\n};\n"],
5
- "mappings": "AAAA;ACCA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA;AACA;AAEA;AACA;AACA;AAIA,MAAM,kBAAkB,CAAC,oBAAuC;AAC9D,QAAM,OAAiB,CAAC,EAAE,gBAAgB;AACxC,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,IACL;AACA,QAAI,iBAAiB;AACnB,mBAAa,IAAI,UAAU,IAAI;AAAA,IACjC,OAAO;AACL,mBAAa,IAAI,UAAU,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,YAA6C;AAAA,EACjD,WAAW;AAAA,IACT,UAAU,kBAAkB;AAAA,EAC9B;AACF;AAEA,MAAM,OAAO,MAAM;AAEZ,MAAM,2BAAyD,CAAC;AAAA,EACrE;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,MACjB;AACJ,QAAM,CAAC,UAAU,eAAe,SAAS,EAAE;AAE3C,QAAM,WAAW,QAAQ,MAAM,eAAe,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,cAAc,CAAC;AAErF,QAAM,kBAAkB,QAAQ,MAAM;AACpC,UAAM,aAAmC,CAAC;AAC1C,aAAS,QAAQ,CAAC,SAAS;AACzB,iBAAW,KAAK,MAAM;AAAA,IACxB,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,YAAwB,QAAQ,MAAM,CAAC,gBAAgB,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;AAEjG,QAAM,gBAA+B,OAAO;AAAA,IAC1C,OAAO;AAAA,EACT,CAAC;AAED,YAAU,MAAM;AACd,kBAAc,UAAU;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,mBAAmB,QACvB,MAAM,gCAAgC,eAAe,eAAe,GACpE,CAAC,eAAe,CAClB;AAEA,QAAM,UAAU,WACd,UAAU,aAAa,GACvB,UAAU,gBAAgB;AAAA,IACxB;AAAA,EACF,CAAC,CACH;AAEA,QAAM,sBAAsB,4BAA4B;AAAA,IACtD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,qBAAqB,2BAA2B;AAAA,IACpD,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,gBAAgB,0BAA0B,eAAe;AAE/D,QAAM,kBAAkB,QACtB,MAAO;AAAA,IACL,eAAe;AAAA,MACb;AAAA,MACA,WAAW,SAAS;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,yBAAyB,UAAU,gBAAgB,YAAY,KAAK,UAAU,QAAQ;AAAA,IAC1G,GAAG;AAAA,EACL,IACA,CAAC,eAAe,WAAW,SAAS,UAAU,iBAAiB,UAAU,kBAAkB,CAC7F;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,aAAa,WAAW,gBAAgB,WAAW,QAAQ;AAAA,EAC7D;AACF;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,UAAU,WAAW,SAAS,cAAc;AACrD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAEK;AACP,SAAS,kCAAkC;AAC3C,SAAS,mCAAmC;AAE5C,SAAS,uCAAuC;AAChD,SAAS,gCAAgC;AACzC,SAAS,iCAAiC;AAI1C,MAAM,kBAAkB,CAAC,oBAAuC;AAC9D,QAAM,OAAiB,CAAC,EAAE,UAAU,MAAM;AACxC,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,IACL;AACA,QAAI,iBAAiB;AACnB,mBAAa,IAAI,UAAU,IAAI;AAAA,IACjC,OAAO;AACL,mBAAa,IAAI,UAAU,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,YAA6C;AAAA,EACjD,WAAW;AAAA,IACT,UAAU,kBAAkB;AAAA,EAC9B;AACF;AAEA,MAAM,OAAO,MAAM;AAEZ,MAAM,2BAAyD,CAAC;AAAA,EACrE;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA,sBAAsB;AAAA,EACtB,qBAAqB;AACvB,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,EAAE;AAE3C,QAAM,WAAW,QAAQ,MAAM,eAAe,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,cAAc,CAAC;AAErF,QAAM,kBAAkB,QAAQ,MAAM;AACpC,UAAM,aAAmC,CAAC;AAC1C,aAAS,QAAQ,CAAC,SAAS;AACzB,iBAAW,KAAK,MAAM;AAAA,IACxB,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,YAAwB,QAAQ,MAAM,CAAC,gBAAgB,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;AAEjG,QAAM,gBAA+B,OAAO;AAAA,IAC1C,OAAO;AAAA,EACT,CAAC;AAED,YAAU,MAAM;AACd,kBAAc,UAAU;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,mBAAmB;AAAA,IACvB,MAAM,gCAAgC,eAAe,eAAe;AAAA,IACpE,CAAC,eAAe;AAAA,EAClB;AAEA,QAAM,UAAU;AAAA,IACd,UAAU,aAAa;AAAA,IACvB,UAAU,gBAAgB;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,4BAA4B;AAAA,IACtD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,qBAAqB,2BAA2B;AAAA,IACpD,GAAG;AAAA,IACH;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,gBAAgB,0BAA0B,eAAe;AAE/D,QAAM,kBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,eAAe;AAAA,QACb;AAAA,QACA,WAAW,SAAS;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAoB,yBAAyB,UAAU,gBAAgB,YAAY,KAAK,UAAU,QAAQ;AAAA,MAC1G,GAAG;AAAA,IACL;AAAA,IACA,CAAC,eAAe,WAAW,SAAS,UAAU,iBAAiB,UAAU,kBAAkB;AAAA,EAC7F;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,aAAa,WAAW,gBAAgB,WAAW,QAAQ;AAAA,EAC7D;AACF;",
6
6
  "names": []
7
7
  }
@@ -10,11 +10,14 @@ const useHierarchyPreviewHandlers = ({
10
10
  onPreviewResetState();
11
11
  document.body.style.setProperty("cursor", "");
12
12
  }, [setActiveId, onPreviewResetState]);
13
- const handlePreviewDragStart = useCallback(({ active: { id } }) => {
14
- setActiveId(id.toString());
15
- document.body.style.setProperty("cursor", "grabbing");
16
- onPreviewDragStart();
17
- }, [setActiveId, onPreviewDragStart]);
13
+ const handlePreviewDragStart = useCallback(
14
+ ({ active: { id } }) => {
15
+ setActiveId(id.toString());
16
+ document.body.style.setProperty("cursor", "grabbing");
17
+ onPreviewDragStart();
18
+ },
19
+ [setActiveId, onPreviewDragStart]
20
+ );
18
21
  const handlePreviewDragMove = useCallback(() => null, []);
19
22
  const handlePreviewDragEnd = useCallback(() => {
20
23
  resetState();
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/hierarchy/useHierarchyPreviewHandlers.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback } from 'react';\nimport { DragStartEvent } from '@dnd-kit/core';\nimport type { UseHierarchyPreviewHandlersReturn, UseHierarchyPreviewHandlersArgs } from './types';\n\nexport const useHierarchyPreviewHandlers = ({\n setActiveId,\n onPreviewResetState,\n onPreviewDragStart,\n}: UseHierarchyPreviewHandlersArgs): UseHierarchyPreviewHandlersReturn => {\n const resetState = useCallback(() => {\n setActiveId('');\n onPreviewResetState();\n\n document.body.style.setProperty('cursor', '');\n }, [setActiveId, onPreviewResetState]);\n\n const handlePreviewDragStart = useCallback(\n ({ active: { id } }: DragStartEvent) => {\n setActiveId(id.toString());\n document.body.style.setProperty('cursor', 'grabbing');\n onPreviewDragStart();\n },\n [setActiveId, onPreviewDragStart],\n );\n\n const handlePreviewDragMove = useCallback(() => null, []);\n\n const handlePreviewDragEnd = useCallback(() => {\n resetState();\n }, [resetState]);\n\n const handlePreviewDragCancel = useCallback(() => {\n resetState();\n }, [resetState]);\n\n return {\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n };\n};\n"],
5
- "mappings": "AAAA;ACAA;AAIO,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,MACwE;AACxE,QAAM,aAAa,YAAY,MAAM;AACnC,gBAAY,EAAE;AACd,wBAAoB;AAEpB,aAAS,KAAK,MAAM,YAAY,UAAU,EAAE;AAAA,EAC9C,GAAG,CAAC,aAAa,mBAAmB,CAAC;AAErC,QAAM,yBAAyB,YAC7B,CAAC,EAAE,QAAQ,EAAE,WAA2B;AACtC,gBAAY,GAAG,SAAS,CAAC;AACzB,aAAS,KAAK,MAAM,YAAY,UAAU,UAAU;AACpD,uBAAmB;AAAA,EACrB,GACA,CAAC,aAAa,kBAAkB,CAClC;AAEA,QAAM,wBAAwB,YAAY,MAAM,MAAM,CAAC,CAAC;AAExD,QAAM,uBAAuB,YAAY,MAAM;AAC7C,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,0BAA0B,YAAY,MAAM;AAChD,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,mBAAmB;AAIrB,MAAM,8BAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AACF,MAA0E;AACxE,QAAM,aAAa,YAAY,MAAM;AACnC,gBAAY,EAAE;AACd,wBAAoB;AAEpB,aAAS,KAAK,MAAM,YAAY,UAAU,EAAE;AAAA,EAC9C,GAAG,CAAC,aAAa,mBAAmB,CAAC;AAErC,QAAM,yBAAyB;AAAA,IAC7B,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAsB;AACtC,kBAAY,GAAG,SAAS,CAAC;AACzB,eAAS,KAAK,MAAM,YAAY,UAAU,UAAU;AACpD,yBAAmB;AAAA,IACrB;AAAA,IACA,CAAC,aAAa,kBAAkB;AAAA,EAClC;AAEA,QAAM,wBAAwB,YAAY,MAAM,MAAM,CAAC,CAAC;AAExD,QAAM,uBAAuB,YAAY,MAAM;AAC7C,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,0BAA0B,YAAY,MAAM;AAChD,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './hierarchy';\nexport * from './tree';\n\nexport * from '@dnd-kit/core';\nexport * from '@dnd-kit/sortable';\n"],
5
- "mappings": "AAAA;ACAA;AACA;AAEA;AACA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tree/constants.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export enum DropIndicatorPosition {\n None = 0,\n Before = 1,\n After = 2,\n Inside = 3,\n}\n"],
5
- "mappings": "AAAA;ACAO,IAAK,wBAAL,kBAAK,2BAAL;AACL,0DAAO,KAAP;AACA,4DAAS,KAAT;AACA,2DAAQ,KAAR;AACA,4DAAS,KAAT;AAJU;AAAA;",
6
- "names": []
5
+ "mappings": "AAAA,YAAY,WAAW;ACAhB,IAAK,wBAAL,kBAAKA,2BAAL;AACL,EAAAA,8CAAA,UAAO,KAAP;AACA,EAAAA,8CAAA,YAAS,KAAT;AACA,EAAAA,8CAAA,WAAQ,KAAR;AACA,EAAAA,8CAAA,YAAS,KAAT;AAJU,SAAAA;AAAA,GAAA;",
6
+ "names": ["DropIndicatorPosition"]
7
7
  }
@@ -30,29 +30,35 @@ const customCollisionDetection = (activeId, visibleItemsDictionary, setDropIndic
30
30
  const threshold = collisionRect.height * thresholdRatio;
31
31
  let collidingContainer = null;
32
32
  if (isUp) {
33
- collidingContainer = droppableContainers.reduce((firstRectDown, container) => {
34
- const rect = container.rect.current;
35
- if (rect && firstRectDown.rect.current) {
36
- const { top: rectTop } = rect;
37
- const { top: firstRectDownTop } = firstRectDown.rect.current;
38
- if (rectTop + threshold > collisionRect.top && rectTop < firstRectDownTop) {
39
- return container;
33
+ collidingContainer = droppableContainers.reduce(
34
+ (firstRectDown, container) => {
35
+ const rect = container.rect.current;
36
+ if (rect && firstRectDown.rect.current) {
37
+ const { top: rectTop } = rect;
38
+ const { top: firstRectDownTop } = firstRectDown.rect.current;
39
+ if (rectTop + threshold > collisionRect.top && rectTop < firstRectDownTop) {
40
+ return container;
41
+ }
40
42
  }
41
- }
42
- return firstRectDown;
43
- }, { id: DUMMY_ID, rect: { current: RECT_DOWN } });
43
+ return firstRectDown;
44
+ },
45
+ { id: DUMMY_ID, rect: { current: RECT_DOWN } }
46
+ );
44
47
  } else {
45
- collidingContainer = droppableContainers.reduce((firstRectUp, container) => {
46
- const rect = container.rect.current;
47
- if (rect && firstRectUp.rect.current) {
48
- const { top: rectTop } = rect;
49
- const { top: firstRectUpTop } = firstRectUp.rect.current;
50
- if (rectTop - threshold < collisionRect.top && rectTop > firstRectUpTop) {
51
- return container;
48
+ collidingContainer = droppableContainers.reduce(
49
+ (firstRectUp, container) => {
50
+ const rect = container.rect.current;
51
+ if (rect && firstRectUp.rect.current) {
52
+ const { top: rectTop } = rect;
53
+ const { top: firstRectUpTop } = firstRectUp.rect.current;
54
+ if (rectTop - threshold < collisionRect.top && rectTop > firstRectUpTop) {
55
+ return container;
56
+ }
52
57
  }
53
- }
54
- return firstRectUp;
55
- }, { id: DUMMY_ID, rect: { current: RECT_UP } });
58
+ return firstRectUp;
59
+ },
60
+ { id: DUMMY_ID, rect: { current: RECT_UP } }
61
+ );
56
62
  }
57
63
  if (collidingContainer.id === DUMMY_ID) {
58
64
  return [];
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tree/customCollisionDetection.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable @typescript-eslint/indent */\n/* eslint-disable max-params */\nimport { ClientRect, type CollisionDetection, type DroppableContainer } from '@dnd-kit/core';\nimport { DropIndicatorPosition } from './constants';\nimport { Item } from './types';\n\nconst DUMMY_ID = 'DUMMY_ID_INTERNAL_USE_ONLY';\nconst RECT_UP: ClientRect = {\n top: -Infinity,\n left: 0, // Doesn't matter,\n right: 0, // Doesn't matter,\n bottom: 0, // Doesn't matter,\n width: 0, // Doesn't matter\n height: 0, // Doesn't matter\n};\nconst RECT_DOWN: ClientRect = {\n top: Infinity,\n left: 0, // Doesn't matter,\n right: 0, // Doesn't matter,\n bottom: 0, // Doesn't matter,\n width: 0, // Doesn't matter\n height: 0, // Doesn't matter\n};\n\n// Percentage of height to take into consideration when looking for colliding rects\nconst thresholdRatio = 0.2;\n// Percentage to be inside\nconst insideThreshold = 0.7;\n\nexport const customCollisionDetection = (\n activeId: string,\n visibleItemsDictionary: Record<string, Item>,\n setDropIndicatorPosition: React.Dispatch<React.SetStateAction<DropIndicatorPosition>>,\n maxDragAndDropLevel: number,\n lastPosition: string,\n setLastPosition: React.Dispatch<React.SetStateAction<string>>,\n): CollisionDetection => {\n const func: CollisionDetection = ({ droppableContainers, collisionRect }) => {\n const originalContainer = droppableContainers.find(({ id }) => id === activeId);\n const originalRect = originalContainer?.rect?.current;\n\n // We first check if the item was moved up or down\n // This modifies how to search the matching colliding rect\n let isUp = lastPosition === 'up';\n if (originalRect) {\n isUp = originalRect.top > collisionRect.top;\n }\n\n // Threshold\n const threshold = collisionRect.height * thresholdRatio;\n\n let collidingContainer: DroppableContainer | null = null;\n\n if (isUp) {\n // Up -- We need to find the first rectangle downwards\n collidingContainer = droppableContainers.reduce(\n (firstRectDown, container) => {\n const rect = container.rect.current;\n if (rect && firstRectDown.rect.current) {\n const { top: rectTop } = rect;\n const { top: firstRectDownTop } = firstRectDown.rect.current;\n if (rectTop + threshold > collisionRect.top && rectTop < firstRectDownTop) {\n return container;\n }\n }\n return firstRectDown;\n },\n { id: DUMMY_ID, rect: { current: RECT_DOWN } } as DroppableContainer,\n );\n } else {\n // Down -- We need to find the first rectangle upwards\n collidingContainer = droppableContainers.reduce(\n (firstRectUp, container) => {\n const rect = container.rect.current;\n if (rect && firstRectUp.rect.current) {\n const { top: rectTop } = rect;\n const { top: firstRectUpTop } = firstRectUp.rect.current;\n if (rectTop - threshold < collisionRect.top && rectTop > firstRectUpTop) {\n return container;\n }\n }\n return firstRectUp;\n },\n { id: DUMMY_ID, rect: { current: RECT_UP } } as DroppableContainer,\n );\n }\n\n // If we didn't find a match, return empty array\n if (collidingContainer.id === DUMMY_ID) {\n return [];\n }\n\n const collidingRect = collidingContainer.rect.current;\n\n if (!collidingRect) return [];\n\n // Calculate the intersection interval\n const [top, bottom] = [\n Math.max(collisionRect.top, collidingRect.top),\n Math.min(collisionRect.top + collisionRect.height, collidingRect.top + collidingRect.height),\n ];\n\n // Calculate the percentage of intersection\n const intersectionPercentage = Math.abs(bottom - top) / collidingRect.height;\n\n if (\n intersectionPercentage > insideThreshold &&\n visibleItemsDictionary[collidingContainer.id].depth + 1 <= maxDragAndDropLevel &&\n collidingContainer.id !== activeId\n ) {\n setDropIndicatorPosition(DropIndicatorPosition.Inside);\n } else {\n setDropIndicatorPosition(isUp ? DropIndicatorPosition.Before : DropIndicatorPosition.After);\n }\n\n if (isUp && lastPosition !== 'up') setLastPosition('up');\n else if (!isUp && lastPosition !== 'down') setLastPosition('down');\n\n // Return the id of the match rectangle\n return [{ id: collidingContainer.id }];\n };\n return func;\n};\n"],
5
- "mappings": "AAAA;ACKA;AAGA,MAAM,WAAW;AACjB,MAAM,UAAsB;AAAA,EAC1B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AACA,MAAM,YAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAGA,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB;AAEjB,MAAM,2BAA2B,CACtC,UACA,wBACA,0BACA,qBACA,cACA,oBACuB;AACvB,QAAM,OAA2B,CAAC,EAAE,qBAAqB,oBAAoB;AAC3E,UAAM,oBAAoB,oBAAoB,KAAK,CAAC,EAAE,SAAS,OAAO,QAAQ;AAC9E,UAAM,eAAe,mBAAmB,MAAM;AAI9C,QAAI,OAAO,iBAAiB;AAC5B,QAAI,cAAc;AAChB,aAAO,aAAa,MAAM,cAAc;AAAA,IAC1C;AAGA,UAAM,YAAY,cAAc,SAAS;AAEzC,QAAI,qBAAgD;AAEpD,QAAI,MAAM;AAER,2BAAqB,oBAAoB,OACvC,CAAC,eAAe,cAAc;AAC5B,cAAM,OAAO,UAAU,KAAK;AAC5B,YAAI,QAAQ,cAAc,KAAK,SAAS;AACtC,gBAAM,EAAE,KAAK,YAAY;AACzB,gBAAM,EAAE,KAAK,qBAAqB,cAAc,KAAK;AACrD,cAAI,UAAU,YAAY,cAAc,OAAO,UAAU,kBAAkB;AACzE,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT,GACA,EAAE,IAAI,UAAU,MAAM,EAAE,SAAS,UAAU,EAAE,CAC/C;AAAA,IACF,OAAO;AAEL,2BAAqB,oBAAoB,OACvC,CAAC,aAAa,cAAc;AAC1B,cAAM,OAAO,UAAU,KAAK;AAC5B,YAAI,QAAQ,YAAY,KAAK,SAAS;AACpC,gBAAM,EAAE,KAAK,YAAY;AACzB,gBAAM,EAAE,KAAK,mBAAmB,YAAY,KAAK;AACjD,cAAI,UAAU,YAAY,cAAc,OAAO,UAAU,gBAAgB;AACvE,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT,GACA,EAAE,IAAI,UAAU,MAAM,EAAE,SAAS,QAAQ,EAAE,CAC7C;AAAA,IACF;AAGA,QAAI,mBAAmB,OAAO,UAAU;AACtC,aAAO,CAAC;AAAA,IACV;AAEA,UAAM,gBAAgB,mBAAmB,KAAK;AAE9C,QAAI,CAAC;AAAe,aAAO,CAAC;AAG5B,UAAM,CAAC,KAAK,UAAU;AAAA,MACpB,KAAK,IAAI,cAAc,KAAK,cAAc,GAAG;AAAA,MAC7C,KAAK,IAAI,cAAc,MAAM,cAAc,QAAQ,cAAc,MAAM,cAAc,MAAM;AAAA,IAC7F;AAGA,UAAM,yBAAyB,KAAK,IAAI,SAAS,GAAG,IAAI,cAAc;AAEtE,QACE,yBAAyB,mBACzB,uBAAuB,mBAAmB,IAAI,QAAQ,KAAK,uBAC3D,mBAAmB,OAAO,UAC1B;AACA,+BAAyB,sBAAsB,MAAM;AAAA,IACvD,OAAO;AACL,+BAAyB,OAAO,sBAAsB,SAAS,sBAAsB,KAAK;AAAA,IAC5F;AAEA,QAAI,QAAQ,iBAAiB;AAAM,sBAAgB,IAAI;AAAA,aAC9C,CAAC,QAAQ,iBAAiB;AAAQ,sBAAgB,MAAM;AAGjE,WAAO,CAAC,EAAE,IAAI,mBAAmB,GAAG,CAAC;AAAA,EACvC;AACA,SAAO;AACT;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACKvB,SAAS,6BAA6B;AAGtC,MAAM,WAAW;AACjB,MAAM,UAAsB;AAAA,EAC1B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AACA,MAAM,YAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAGA,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB;AAEjB,MAAM,2BAA2B,CACtC,UACA,wBACA,0BACA,qBACA,cACA,oBACuB;AACvB,QAAM,OAA2B,CAAC,EAAE,qBAAqB,cAAc,MAAM;AAC3E,UAAM,oBAAoB,oBAAoB,KAAK,CAAC,EAAE,GAAG,MAAM,OAAO,QAAQ;AAC9E,UAAM,eAAe,mBAAmB,MAAM;AAI9C,QAAI,OAAO,iBAAiB;AAC5B,QAAI,cAAc;AAChB,aAAO,aAAa,MAAM,cAAc;AAAA,IAC1C;AAGA,UAAM,YAAY,cAAc,SAAS;AAEzC,QAAI,qBAAgD;AAEpD,QAAI,MAAM;AAER,2BAAqB,oBAAoB;AAAA,QACvC,CAAC,eAAe,cAAc;AAC5B,gBAAM,OAAO,UAAU,KAAK;AAC5B,cAAI,QAAQ,cAAc,KAAK,SAAS;AACtC,kBAAM,EAAE,KAAK,QAAQ,IAAI;AACzB,kBAAM,EAAE,KAAK,iBAAiB,IAAI,cAAc,KAAK;AACrD,gBAAI,UAAU,YAAY,cAAc,OAAO,UAAU,kBAAkB;AACzE,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,QACA,EAAE,IAAI,UAAU,MAAM,EAAE,SAAS,UAAU,EAAE;AAAA,MAC/C;AAAA,IACF,OAAO;AAEL,2BAAqB,oBAAoB;AAAA,QACvC,CAAC,aAAa,cAAc;AAC1B,gBAAM,OAAO,UAAU,KAAK;AAC5B,cAAI,QAAQ,YAAY,KAAK,SAAS;AACpC,kBAAM,EAAE,KAAK,QAAQ,IAAI;AACzB,kBAAM,EAAE,KAAK,eAAe,IAAI,YAAY,KAAK;AACjD,gBAAI,UAAU,YAAY,cAAc,OAAO,UAAU,gBAAgB;AACvE,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAAA,QACA,EAAE,IAAI,UAAU,MAAM,EAAE,SAAS,QAAQ,EAAE;AAAA,MAC7C;AAAA,IACF;AAGA,QAAI,mBAAmB,OAAO,UAAU;AACtC,aAAO,CAAC;AAAA,IACV;AAEA,UAAM,gBAAgB,mBAAmB,KAAK;AAE9C,QAAI,CAAC;AAAe,aAAO,CAAC;AAG5B,UAAM,CAAC,KAAK,MAAM,IAAI;AAAA,MACpB,KAAK,IAAI,cAAc,KAAK,cAAc,GAAG;AAAA,MAC7C,KAAK,IAAI,cAAc,MAAM,cAAc,QAAQ,cAAc,MAAM,cAAc,MAAM;AAAA,IAC7F;AAGA,UAAM,yBAAyB,KAAK,IAAI,SAAS,GAAG,IAAI,cAAc;AAEtE,QACE,yBAAyB,mBACzB,uBAAuB,mBAAmB,IAAI,QAAQ,KAAK,uBAC3D,mBAAmB,OAAO,UAC1B;AACA,+BAAyB,sBAAsB,MAAM;AAAA,IACvD,OAAO;AACL,+BAAyB,OAAO,sBAAsB,SAAS,sBAAsB,KAAK;AAAA,IAC5F;AAEA,QAAI,QAAQ,iBAAiB;AAAM,sBAAgB,IAAI;AAAA,aAC9C,CAAC,QAAQ,iBAAiB;AAAQ,sBAAgB,MAAM;AAGjE,WAAO,CAAC,EAAE,IAAI,mBAAmB,GAAG,CAAC;AAAA,EACvC;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tree/getTreeKeyboardCoordinates.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable max-params */\n/* eslint-disable complexity */\nimport {\n closestCorners,\n getClientRect,\n KeyboardCode,\n KeyboardCoordinateGetter,\n DroppableContainer,\n} from '@dnd-kit/core';\nimport { Coordinates } from '@dnd-kit/core/dist/types';\nimport type { GetKeyboardCoordinatesArgs, SensorContext } from './types';\nimport { DropIndicatorPosition } from './constants';\n\nconst directions: string[] = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\nconst horizontal: string[] = [KeyboardCode.Left, KeyboardCode.Right];\n\nconst getVerticalKeyboardCoordinates = ({\n items,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n dropIndicatorPosition,\n maxDragAndDropLevel,\n droppableRects,\n}: GetKeyboardCoordinatesArgs): Coordinates | undefined => {\n if (horizontal.includes(event.code)) return undefined;\n\n const overRect = over.rect;\n\n const layoutRects: DroppableContainer[] = [];\n\n // Get the reacheable rects depending on the arrow key pressed\n droppableContainers.forEach((container) => {\n if (container?.disabled || !overRect) {\n return;\n }\n const rect = container.rect.current;\n\n // We add and substract 2 just for the sake of avoiding edge cases\n if (rect && event.code === KeyboardCode.Down && collisionRect.top - 2 <= rect.top) {\n layoutRects.push(container);\n } else if (rect && event.code === KeyboardCode.Up && collisionRect.top + 2 >= rect.top) {\n layoutRects.push(container);\n }\n });\n\n // Get the closest rect based on dnd-kit closest-corners algorithm\n const sortedRects = closestCorners({\n collisionRect,\n droppableContainers: layoutRects,\n droppableRects,\n active,\n pointerCoordinates: null,\n });\n\n const closestId = sortedRects.length > 0 ? sortedRects[0].id : undefined;\n\n const closestItem = items.find((item) => item.uid === closestId);\n\n const closestElement = droppableContainers.get(closestId)?.node?.current;\n\n // If no rect is closest, do nothing\n if (!closestId || !closestItem || !closestElement) return undefined;\n\n const closestRect = getClientRect(closestElement);\n\n if (event.code === KeyboardCode.Up) {\n // If the drop indicator is inside (or over ourselves)\n // We are gonna go to the before position\n // Else we are gonna go inside the over rect\n if (\n dropIndicatorPosition === DropIndicatorPosition.Inside ||\n closestId === active.id ||\n closestItem.depth + 1 > maxDragAndDropLevel\n ) {\n return {\n ...currentCoordinates,\n y: closestRect.top - collisionRect.height / 2,\n };\n }\n return {\n ...currentCoordinates,\n y: closestRect.top + Math.abs(closestRect.height - collisionRect.height) / 2,\n };\n }\n\n // If the drop indicator is over ourselves and after\n // We need to go inside the next one\n if (closestId === active.id && dropIndicatorPosition === DropIndicatorPosition.After) {\n return {\n ...currentCoordinates,\n y: closestRect.top + collisionRect.height,\n };\n }\n // If the drop indicator is inside, or over ourselves\n // We are gonna go to the after position\n if (\n dropIndicatorPosition === DropIndicatorPosition.Inside ||\n closestId === active.id ||\n closestItem.depth + 1 > maxDragAndDropLevel\n ) {\n return {\n ...currentCoordinates,\n y: closestRect.top + closestRect.height / 2,\n };\n }\n return {\n ...currentCoordinates,\n y: closestRect.top + Math.abs(closestRect.height - collisionRect.height) / 2,\n };\n};\n\nexport const getTreeKeyboardCoordinates: (\n context: SensorContext,\n isHorizontalDnD: boolean,\n maxDragAndDropLevel: number,\n) => KeyboardCoordinateGetter = (context, isHorizontalDnD, maxDragAndDropLevel) => {\n const func: KeyboardCoordinateGetter = (\n event,\n { currentCoordinates, context: { over, droppableContainers, droppableRects, active, collisionRect } },\n ) => {\n if (directions.includes(event.code)) {\n if (!over || !active || !collisionRect) return undefined;\n\n const {\n current: { items, dropIndicatorPosition },\n } = context;\n\n const args = {\n items,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n dropIndicatorPosition,\n droppableRects,\n maxDragAndDropLevel,\n };\n\n if (isHorizontalDnD) return undefined;\n\n const newCoords = getVerticalKeyboardCoordinates(args);\n return newCoords;\n }\n return undefined;\n };\n return func;\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tree/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './useTreeDndkitConfig';\n"],
5
- "mappings": "AAAA;ACAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "AAAA;",
5
+ "mappings": "AAAA,YAAY,WAAW;",
6
6
  "names": []
7
7
  }
@@ -15,40 +15,59 @@ const useTreeActionHandlers = ({
15
15
  dropIndicatorPosition,
16
16
  isDropValid
17
17
  }) => {
18
- const onDragStart = useCallback((e) => {
19
- handlePreviewDragStart(e);
20
- }, [handlePreviewDragStart]);
21
- const onDragMove = useCallback((e) => {
22
- handlePreviewDragMove(e);
23
- }, [handlePreviewDragMove]);
24
- const onDragOver = useCallback((e) => {
25
- handlePreviewDragOver(e);
26
- }, [handlePreviewDragOver]);
27
- const onDragEnd = useCallback((e) => {
28
- handlePreviewDragEnd(e);
29
- const { active, over } = e;
30
- if (over === null || !isDropValid)
31
- return;
32
- const activeIndex = flattenedItems.findIndex((item) => item.uid === active.id);
33
- let considerExpanding = null;
34
- let overIndex = flattenedItems.findIndex((item) => item.uid === over.id);
35
- if (dropIndicatorPosition === DropIndicatorPosition.Inside) {
36
- considerExpanding = over.id;
37
- overIndex = flattenedItems[overIndex].realIndex + flattenedItems[overIndex].childrenCount + 1;
38
- }
39
- if (projected && (activeIndex !== overIndex || flattenedItems[activeIndex].depth !== projected.depth)) {
40
- flattenedItems[activeIndex].parentId = projected.parentId;
41
- flattenedItems[activeIndex].depth = projected.depth;
42
- const newFlattenedData = activeIndex !== overIndex ? arrayMove(flattenedItems, activeIndex, overIndex) : cloneDeep(flattenedItems);
43
- onReorder(newFlattenedData, {
44
- targetIndex: overIndex,
45
- fromIndex: activeIndex
46
- }, considerExpanding?.toString() || "");
47
- }
48
- }, [handlePreviewDragEnd, isDropValid, flattenedItems, dropIndicatorPosition, projected, onReorder]);
49
- const onDragCancel = useCallback((e) => {
50
- handlePreviewDragCancel(e);
51
- }, [handlePreviewDragCancel]);
18
+ const onDragStart = useCallback(
19
+ (e) => {
20
+ handlePreviewDragStart(e);
21
+ },
22
+ [handlePreviewDragStart]
23
+ );
24
+ const onDragMove = useCallback(
25
+ (e) => {
26
+ handlePreviewDragMove(e);
27
+ },
28
+ [handlePreviewDragMove]
29
+ );
30
+ const onDragOver = useCallback(
31
+ (e) => {
32
+ handlePreviewDragOver(e);
33
+ },
34
+ [handlePreviewDragOver]
35
+ );
36
+ const onDragEnd = useCallback(
37
+ (e) => {
38
+ handlePreviewDragEnd(e);
39
+ const { active, over } = e;
40
+ if (over === null || !isDropValid)
41
+ return;
42
+ const activeIndex = flattenedItems.findIndex((item) => item.uid === active.id);
43
+ let considerExpanding = null;
44
+ let overIndex = flattenedItems.findIndex((item) => item.uid === over.id);
45
+ if (dropIndicatorPosition === DropIndicatorPosition.Inside) {
46
+ considerExpanding = over.id;
47
+ overIndex = flattenedItems[overIndex].realIndex + flattenedItems[overIndex].childrenCount + 1;
48
+ }
49
+ if (projected && (activeIndex !== overIndex || flattenedItems[activeIndex].depth !== projected.depth)) {
50
+ flattenedItems[activeIndex].parentId = projected.parentId;
51
+ flattenedItems[activeIndex].depth = projected.depth;
52
+ const newFlattenedData = activeIndex !== overIndex ? arrayMove(flattenedItems, activeIndex, overIndex) : cloneDeep(flattenedItems);
53
+ onReorder(
54
+ newFlattenedData,
55
+ {
56
+ targetIndex: overIndex,
57
+ fromIndex: activeIndex
58
+ },
59
+ considerExpanding?.toString() || ""
60
+ );
61
+ }
62
+ },
63
+ [handlePreviewDragEnd, isDropValid, flattenedItems, dropIndicatorPosition, projected, onReorder]
64
+ );
65
+ const onDragCancel = useCallback(
66
+ (e) => {
67
+ handlePreviewDragCancel(e);
68
+ },
69
+ [handlePreviewDragCancel]
70
+ );
52
71
  return { onDragStart, onDragMove, onDragOver, onDragEnd, onDragCancel };
53
72
  };
54
73
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/tree/useTreeActionHandlers.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { arrayMove } from '@dnd-kit/sortable';\nimport { cloneDeep } from 'lodash';\nimport { useCallback } from 'react';\nimport type { DragStartEvent, DragMoveEvent, DragEndEvent, DragOverEvent, DragCancelEvent } from '@dnd-kit/core';\nimport { DropIndicatorPosition } from './constants';\nimport type { UseTreeActionHandlersType } from './types';\n\nexport const useTreeActionHandlers: UseTreeActionHandlersType = ({\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragOver,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n onReorder,\n flattenedItems,\n projected,\n dropIndicatorPosition,\n isDropValid,\n}) => {\n const onDragStart = useCallback(\n (e: DragStartEvent) => {\n handlePreviewDragStart(e);\n },\n [handlePreviewDragStart],\n );\n\n const onDragMove = useCallback(\n (e: DragMoveEvent) => {\n handlePreviewDragMove(e);\n },\n [handlePreviewDragMove],\n );\n\n const onDragOver = useCallback(\n (e: DragOverEvent) => {\n handlePreviewDragOver(e);\n },\n [handlePreviewDragOver],\n );\n\n const onDragEnd = useCallback(\n (e: DragEndEvent) => {\n handlePreviewDragEnd(e);\n const { active, over } = e;\n\n if (over === null || !isDropValid) return;\n\n const activeIndex = flattenedItems.findIndex((item) => item.uid === active.id);\n\n let considerExpanding = null;\n\n let overIndex = flattenedItems.findIndex((item) => item.uid === over.id);\n // If drop indicator is inside, then put it last,\n // It will be reconstructed well later\n if (dropIndicatorPosition === DropIndicatorPosition.Inside) {\n considerExpanding = over.id;\n overIndex = flattenedItems[overIndex].realIndex + flattenedItems[overIndex].childrenCount + 1;\n }\n\n // If we are dropping the item in a new position, or new depth\n if (projected && (activeIndex !== overIndex || flattenedItems[activeIndex].depth !== projected.depth)) {\n // Change parent and depth from projected data\n flattenedItems[activeIndex].parentId = projected.parentId;\n flattenedItems[activeIndex].depth = projected.depth;\n\n // If same index, don't move the array, just copy it\n const newFlattenedData =\n activeIndex !== overIndex ? arrayMove(flattenedItems, activeIndex, overIndex) : cloneDeep(flattenedItems);\n\n onReorder(\n newFlattenedData,\n {\n targetIndex: overIndex,\n fromIndex: activeIndex,\n },\n considerExpanding?.toString() || '',\n );\n }\n },\n [handlePreviewDragEnd, isDropValid, flattenedItems, dropIndicatorPosition, projected, onReorder],\n );\n\n const onDragCancel = useCallback(\n (e: DragCancelEvent) => {\n handlePreviewDragCancel(e);\n },\n [handlePreviewDragCancel],\n );\n\n return { onDragStart, onDragMove, onDragOver, onDragEnd, onDragCancel };\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAEA;AAGO,MAAM,wBAAmD,CAAC;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACI;AACJ,QAAM,cAAc,YAClB,CAAC,MAAsB;AACrB,2BAAuB,CAAC;AAAA,EAC1B,GACA,CAAC,sBAAsB,CACzB;AAEA,QAAM,aAAa,YACjB,CAAC,MAAqB;AACpB,0BAAsB,CAAC;AAAA,EACzB,GACA,CAAC,qBAAqB,CACxB;AAEA,QAAM,aAAa,YACjB,CAAC,MAAqB;AACpB,0BAAsB,CAAC;AAAA,EACzB,GACA,CAAC,qBAAqB,CACxB;AAEA,QAAM,YAAY,YAChB,CAAC,MAAoB;AACnB,yBAAqB,CAAC;AACtB,UAAM,EAAE,QAAQ,SAAS;AAEzB,QAAI,SAAS,QAAQ,CAAC;AAAa;AAEnC,UAAM,cAAc,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAE7E,QAAI,oBAAoB;AAExB,QAAI,YAAY,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAGvE,QAAI,0BAA0B,sBAAsB,QAAQ;AAC1D,0BAAoB,KAAK;AACzB,kBAAY,eAAe,WAAW,YAAY,eAAe,WAAW,gBAAgB;AAAA,IAC9F;AAGA,QAAI,aAAc,iBAAgB,aAAa,eAAe,aAAa,UAAU,UAAU,QAAQ;AAErG,qBAAe,aAAa,WAAW,UAAU;AACjD,qBAAe,aAAa,QAAQ,UAAU;AAG9C,YAAM,mBACJ,gBAAgB,YAAY,UAAU,gBAAgB,aAAa,SAAS,IAAI,UAAU,cAAc;AAE1G,gBACE,kBACA;AAAA,QACE,aAAa;AAAA,QACb,WAAW;AAAA,MACb,GACA,mBAAmB,SAAS,KAAK,EACnC;AAAA,IACF;AAAA,EACF,GACA,CAAC,sBAAsB,aAAa,gBAAgB,uBAAuB,WAAW,SAAS,CACjG;AAEA,QAAM,eAAe,YACnB,CAAC,MAAuB;AACtB,4BAAwB,CAAC;AAAA,EAC3B,GACA,CAAC,uBAAuB,CAC1B;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAE5B,SAAS,6BAA6B;AAG/B,MAAM,wBAAmD,CAAC;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,cAAc;AAAA,IAClB,CAAC,MAAsB;AACrB,6BAAuB,CAAC;AAAA,IAC1B;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAAa;AAAA,IACjB,CAAC,MAAqB;AACpB,4BAAsB,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,qBAAqB;AAAA,EACxB;AAEA,QAAM,aAAa;AAAA,IACjB,CAAC,MAAqB;AACpB,4BAAsB,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,qBAAqB;AAAA,EACxB;AAEA,QAAM,YAAY;AAAA,IAChB,CAAC,MAAoB;AACnB,2BAAqB,CAAC;AACtB,YAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,UAAI,SAAS,QAAQ,CAAC;AAAa;AAEnC,YAAM,cAAc,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAE7E,UAAI,oBAAoB;AAExB,UAAI,YAAY,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAGvE,UAAI,0BAA0B,sBAAsB,QAAQ;AAC1D,4BAAoB,KAAK;AACzB,oBAAY,eAAe,WAAW,YAAY,eAAe,WAAW,gBAAgB;AAAA,MAC9F;AAGA,UAAI,cAAc,gBAAgB,aAAa,eAAe,aAAa,UAAU,UAAU,QAAQ;AAErG,uBAAe,aAAa,WAAW,UAAU;AACjD,uBAAe,aAAa,QAAQ,UAAU;AAG9C,cAAM,mBACJ,gBAAgB,YAAY,UAAU,gBAAgB,aAAa,SAAS,IAAI,UAAU,cAAc;AAE1G;AAAA,UACE;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,WAAW;AAAA,UACb;AAAA,UACA,mBAAmB,SAAS,KAAK;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB,aAAa,gBAAgB,uBAAuB,WAAW,SAAS;AAAA,EACjG;AAEA,QAAM,eAAe;AAAA,IACnB,CAAC,MAAuB;AACtB,8BAAwB,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC,uBAAuB;AAAA,EAC1B;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
6
6
  "names": []
7
7
  }