@elliemae/ds-drag-and-drop 3.35.0 → 3.36.0-next.1

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 (48) hide show
  1. package/dist/cjs/exported-related/DropIndicator.js.map +1 -1
  2. package/dist/cjs/hierarchy/customCollisionDetection.js +2 -4
  3. package/dist/cjs/hierarchy/customCollisionDetection.js.map +1 -1
  4. package/dist/cjs/hierarchy/getHierarchyKeyboardCoordinates.js +5 -10
  5. package/dist/cjs/hierarchy/getHierarchyKeyboardCoordinates.js.map +1 -1
  6. package/dist/cjs/hierarchy/useHierarchyActionHandlers.js +1 -2
  7. package/dist/cjs/hierarchy/useHierarchyActionHandlers.js.map +1 -1
  8. package/dist/cjs/hierarchy/useHierarchyAnnouncements.js.map +1 -1
  9. package/dist/cjs/tree/customCollisionDetection.js +2 -4
  10. package/dist/cjs/tree/customCollisionDetection.js.map +1 -1
  11. package/dist/cjs/tree/getTreeKeyboardCoordinates.js +4 -8
  12. package/dist/cjs/tree/getTreeKeyboardCoordinates.js.map +1 -1
  13. package/dist/cjs/tree/useMultiTreeDndkitConfig.js +5 -10
  14. package/dist/cjs/tree/useMultiTreeDndkitConfig.js.map +1 -1
  15. package/dist/cjs/tree/useTreeActionHandlers.js +3 -6
  16. package/dist/cjs/tree/useTreeActionHandlers.js.map +1 -1
  17. package/dist/cjs/tree/useTreeAnnouncements.js.map +1 -1
  18. package/dist/cjs/tree/useTreeDndkitConfig.js +1 -2
  19. package/dist/cjs/tree/useTreeDndkitConfig.js.map +1 -1
  20. package/dist/cjs/tree/useTreePreviewHandlers.js +1 -2
  21. package/dist/cjs/tree/useTreePreviewHandlers.js.map +1 -1
  22. package/dist/cjs/tree/utilities.js +2 -4
  23. package/dist/cjs/tree/utilities.js.map +1 -1
  24. package/dist/esm/exported-related/DropIndicator.js.map +1 -1
  25. package/dist/esm/hierarchy/customCollisionDetection.js +2 -4
  26. package/dist/esm/hierarchy/customCollisionDetection.js.map +1 -1
  27. package/dist/esm/hierarchy/getHierarchyKeyboardCoordinates.js +5 -10
  28. package/dist/esm/hierarchy/getHierarchyKeyboardCoordinates.js.map +1 -1
  29. package/dist/esm/hierarchy/useHierarchyActionHandlers.js +1 -2
  30. package/dist/esm/hierarchy/useHierarchyActionHandlers.js.map +1 -1
  31. package/dist/esm/hierarchy/useHierarchyAnnouncements.js.map +1 -1
  32. package/dist/esm/tree/customCollisionDetection.js +2 -4
  33. package/dist/esm/tree/customCollisionDetection.js.map +1 -1
  34. package/dist/esm/tree/getTreeKeyboardCoordinates.js +4 -8
  35. package/dist/esm/tree/getTreeKeyboardCoordinates.js.map +1 -1
  36. package/dist/esm/tree/useMultiTreeDndkitConfig.js +5 -10
  37. package/dist/esm/tree/useMultiTreeDndkitConfig.js.map +1 -1
  38. package/dist/esm/tree/useTreeActionHandlers.js +3 -6
  39. package/dist/esm/tree/useTreeActionHandlers.js.map +1 -1
  40. package/dist/esm/tree/useTreeAnnouncements.js.map +1 -1
  41. package/dist/esm/tree/useTreeDndkitConfig.js +1 -2
  42. package/dist/esm/tree/useTreeDndkitConfig.js.map +1 -1
  43. package/dist/esm/tree/useTreePreviewHandlers.js +1 -2
  44. package/dist/esm/tree/useTreePreviewHandlers.js.map +1 -1
  45. package/dist/esm/tree/utilities.js +2 -4
  46. package/dist/esm/tree/utilities.js.map +1 -1
  47. package/dist/types/tree/utilities.d.ts +1 -1
  48. package/package.json +6 -6
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/exported-related/DropIndicator.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { styled } from '@elliemae/ds-system';\n\ntype DropIndicatorPositionT = (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition] | false;\ninterface DropIndicatorPropsT {\n vertical: boolean;\n dropIndicatorPosition: DropIndicatorPositionT;\n isLast?: boolean;\n isDropValid: boolean;\n}\n\nconst DropIndicatorPosition = {\n None: 'none',\n Before: 'before',\n After: 'after',\n Inside: 'inside',\n};\n\nconst getPositionStyles = ({\n dropIndicatorPosition,\n vertical,\n}: {\n dropIndicatorPosition: (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition];\n vertical: boolean;\n}) => {\n if (vertical) {\n return `\n left: ${dropIndicatorPosition === DropIndicatorPosition.Before ? '0' : 'unset'};\n right: ${dropIndicatorPosition === DropIndicatorPosition.After ? '0' : 'unset'};\n `;\n }\n return `\n top: ${dropIndicatorPosition === DropIndicatorPosition.Before ? '0' : 'unset'};\n bottom: ${dropIndicatorPosition === DropIndicatorPosition.After ? '0' : 'unset'};\n `;\n};\n\nconst getCircleStyles = ({\n dropIndicatorPosition,\n vertical,\n}: {\n dropIndicatorPosition: (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition];\n vertical: boolean;\n}) => ({\n position: 'absolute',\n zIndex: 1000,\n top: vertical || dropIndicatorPosition === DropIndicatorPosition.After ? 'unset' : '-2px',\n bottom: vertical || dropIndicatorPosition === DropIndicatorPosition.Before ? 'unset' : '-2px',\n left: !vertical || dropIndicatorPosition === DropIndicatorPosition.After ? 'unset' : '-2px',\n right: !vertical || dropIndicatorPosition === DropIndicatorPosition.Before ? 'unset' : '-2px',\n opacity: 1,\n});\n\nconst StyledIndicator = styled.div<{ isDropValid: boolean; vertical: boolean; dropIndicatorPosition: string }>`\n position: absolute;\n ${getPositionStyles}\n box-sizing: border-box;\n width: ${(props) => (props.vertical ? '2px' : '100%')};\n height: ${(props) => (props.vertical ? '100%' : '2px')};\n background-color: ${({ isDropValid, theme }) => (isDropValid ? theme.colors.brand[600] : theme.colors.danger[900])};\n z-index: ${1000};\n`;\n\nconst CircleIndicator = (style: Record<string, unknown>, isDropValid: boolean) => (\n <svg height=\"6\" width=\"6\" style={style}>\n <circle cx=\"3\" cy=\"3\" r=\"3\" strokeWidth=\"0\" fill={isDropValid ? '#1E79C2' : '#C64252'} />\n </svg>\n);\n\nexport const DropIndicator = (props: DropIndicatorPropsT) => {\n const { vertical, dropIndicatorPosition, isLast, isDropValid } = props;\n if (\n dropIndicatorPosition === false ||\n dropIndicatorPosition === DropIndicatorPosition.None ||\n dropIndicatorPosition === DropIndicatorPosition.Inside\n )\n return null;\n\n const safeDropIndicatorPosition = isLast ? DropIndicatorPosition.Before : dropIndicatorPosition;\n\n return (\n <>\n {CircleIndicator(getCircleStyles({ ...props, dropIndicatorPosition: safeDropIndicatorPosition }), isDropValid)}\n <StyledIndicator\n vertical={vertical}\n dropIndicatorPosition={safeDropIndicatorPosition}\n isDropValid={isDropValid}\n />\n </>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADgEnB;AAhEJ,uBAAuB;AAUvB,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,UAAU;AACZ,WAAO;AAAA,cACG,0BAA0B,sBAAsB,SAAS,MAAM;AAAA,eAC9D,0BAA0B,sBAAsB,QAAQ,MAAM;AAAA;AAAA,EAE3E;AACA,SAAO;AAAA,aACI,0BAA0B,sBAAsB,SAAS,MAAM;AAAA,gBAC5D,0BAA0B,sBAAsB,QAAQ,MAAM;AAAA;AAE9E;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AACF,OAGO;AAAA,EACL,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACnF,QAAQ,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,MAAM,CAAC,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACrF,OAAO,CAAC,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,SAAS;AACX;AAEA,MAAM,kBAAkB,wBAAO;AAAA;AAAA,IAE3B;AAAA;AAAA,WAEO,CAAC,UAAW,MAAM,WAAW,QAAQ;AAAA,YACpC,CAAC,UAAW,MAAM,WAAW,SAAS;AAAA,sBAC5B,CAAC,EAAE,aAAa,MAAM,MAAO,cAAc,MAAM,OAAO,MAAM,GAAG,IAAI,MAAM,OAAO,OAAO,GAAG;AAAA,aACrG;AAAA;AAGb,MAAM,kBAAkB,CAAC,OAAgC,gBACvD,4CAAC,SAAI,QAAO,KAAI,OAAM,KAAI,OACxB,sDAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,aAAY,KAAI,MAAM,cAAc,YAAY,WAAW,GACzF;AAGK,MAAM,gBAAgB,CAAC,UAA+B;AAC3D,QAAM,EAAE,UAAU,uBAAuB,QAAQ,YAAY,IAAI;AACjE,MACE,0BAA0B,SAC1B,0BAA0B,sBAAsB,QAChD,0BAA0B,sBAAsB;AAEhD,WAAO;AAET,QAAM,4BAA4B,SAAS,sBAAsB,SAAS;AAE1E,SACE,4EACG;AAAA,oBAAgB,gBAAgB,EAAE,GAAG,OAAO,uBAAuB,0BAA0B,CAAC,GAAG,WAAW;AAAA,IAC7G;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,uBAAuB;AAAA,QACvB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADgEnB;AAhEJ,uBAAuB;AAUvB,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,UAAU;AACZ,WAAO;AAAA,cACG,0BAA0B,sBAAsB,SAAS,MAAM,OAAO;AAAA,eACrE,0BAA0B,sBAAsB,QAAQ,MAAM,OAAO;AAAA;AAAA,EAElF;AACA,SAAO;AAAA,aACI,0BAA0B,sBAAsB,SAAS,MAAM,OAAO;AAAA,gBACnE,0BAA0B,sBAAsB,QAAQ,MAAM,OAAO;AAAA;AAErF;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AACF,OAGO;AAAA,EACL,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACnF,QAAQ,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,MAAM,CAAC,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACrF,OAAO,CAAC,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,SAAS;AACX;AAEA,MAAM,kBAAkB,wBAAO;AAAA;AAAA,IAE3B,iBAAiB;AAAA;AAAA,WAEV,CAAC,UAAW,MAAM,WAAW,QAAQ,MAAO;AAAA,YAC3C,CAAC,UAAW,MAAM,WAAW,SAAS,KAAM;AAAA,sBAClC,CAAC,EAAE,aAAa,MAAM,MAAO,cAAc,MAAM,OAAO,MAAM,GAAG,IAAI,MAAM,OAAO,OAAO,GAAG,CAAE;AAAA,aACvG,GAAI;AAAA;AAGjB,MAAM,kBAAkB,CAAC,OAAgC,gBACvD,4CAAC,SAAI,QAAO,KAAI,OAAM,KAAI,OACxB,sDAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,aAAY,KAAI,MAAM,cAAc,YAAY,WAAW,GACzF;AAGK,MAAM,gBAAgB,CAAC,UAA+B;AAC3D,QAAM,EAAE,UAAU,uBAAuB,QAAQ,YAAY,IAAI;AACjE,MACE,0BAA0B,SAC1B,0BAA0B,sBAAsB,QAChD,0BAA0B,sBAAsB;AAEhD,WAAO;AAET,QAAM,4BAA4B,SAAS,sBAAsB,SAAS;AAE1E,SACE,4EACG;AAAA,oBAAgB,gBAAgB,EAAE,GAAG,OAAO,uBAAuB,0BAA0B,CAAC,GAAG,WAAW;AAAA,IAC7G;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,uBAAuB;AAAA,QACvB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -34,16 +34,14 @@ module.exports = __toCommonJS(customCollisionDetection_exports);
34
34
  var React = __toESM(require("react"));
35
35
  const customCollisionDetection = (sensorContext) => ({ droppableContainers, collisionRect }) => {
36
36
  const { flattenedItems, active, itemsDictionary } = sensorContext.current;
37
- if (!active)
38
- return [];
37
+ if (!active) return [];
39
38
  const activeParent = itemsDictionary[active.id].parentId;
40
39
  const entriesWithSameParent = droppableContainers.filter(
41
40
  ({ id }) => flattenedItems.find((item) => item.uid === id)?.parentId === activeParent
42
41
  );
43
42
  const originalContainer = entriesWithSameParent.find(({ id }) => id === active.id);
44
43
  const originalRect = originalContainer?.rect?.current;
45
- if (!originalRect)
46
- return [];
44
+ if (!originalRect) return [];
47
45
  if (originalRect.left <= collisionRect.left && collisionRect.left <= originalRect.left + originalRect.width) {
48
46
  return [{ id: originalContainer.id }];
49
47
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hierarchy/customCollisionDetection.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable indent, complexity */\nimport { type CollisionDetection, type DroppableContainer } from '@dnd-kit/core';\nimport type { DnDKitHierarchy } from './types.js';\n\nexport const customCollisionDetection =\n <T,>(sensorContext: DnDKitHierarchy.SensorContext<T>): CollisionDetection =>\n ({ droppableContainers, collisionRect }) => {\n const { flattenedItems, active, itemsDictionary } = sensorContext.current;\n\n if (!active) return [];\n\n const activeParent = itemsDictionary[active.id].parentId;\n\n const entriesWithSameParent = droppableContainers.filter(\n ({ id }) => flattenedItems.find((item) => item.uid === id)?.parentId === activeParent,\n );\n\n const originalContainer = entriesWithSameParent.find(({ id }) => id === active.id);\n const originalRect = originalContainer?.rect?.current;\n\n if (!originalRect) return [];\n\n if (originalRect.left <= collisionRect.left && collisionRect.left <= originalRect.left + originalRect.width) {\n return [{ id: originalContainer.id }];\n }\n\n const isLeft = collisionRect.left <= originalRect.left + collisionRect.width / 2 + 5;\n\n let match: DroppableContainer | null = null;\n // If going to the left, search the closest offset left\n // Otherwise, get the closest offset right\n const collisionPoint = collisionRect.left + collisionRect.width / 2;\n entriesWithSameParent.forEach((entry) => {\n const rect = entry.rect.current;\n\n if (rect !== null) {\n const offsetRight = rect.left + rect.width;\n\n if (!match) {\n match = entry;\n } else if (\n match &&\n match.rect.current &&\n isLeft &&\n Math.abs(collisionPoint - rect.left) <= Math.abs(collisionPoint - match.rect.current.left)\n ) {\n match = entry;\n } else if (\n match &&\n match.rect.current &&\n !isLeft &&\n Math.abs(collisionPoint - offsetRight) <=\n Math.abs(collisionPoint - match.rect.current.left - match.rect.current.width)\n ) {\n match = entry;\n }\n }\n });\n // Typescript believes match is always null for some reason\n const matchCastedForSomeReason = match as DroppableContainer | null;\n return matchCastedForSomeReason === null ? [] : [{ id: matchCastedForSomeReason.id }];\n };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIhB,MAAM,2BACX,CAAK,kBACL,CAAC,EAAE,qBAAqB,cAAc,MAAM;AAC1C,QAAM,EAAE,gBAAgB,QAAQ,gBAAgB,IAAI,cAAc;AAElE,MAAI,CAAC;AAAQ,WAAO,CAAC;AAErB,QAAM,eAAe,gBAAgB,OAAO,EAAE,EAAE;AAEhD,QAAM,wBAAwB,oBAAoB;AAAA,IAChD,CAAC,EAAE,GAAG,MAAM,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,GAAG,aAAa;AAAA,EAC3E;AAEA,QAAM,oBAAoB,sBAAsB,KAAK,CAAC,EAAE,GAAG,MAAM,OAAO,OAAO,EAAE;AACjF,QAAM,eAAe,mBAAmB,MAAM;AAE9C,MAAI,CAAC;AAAc,WAAO,CAAC;AAE3B,MAAI,aAAa,QAAQ,cAAc,QAAQ,cAAc,QAAQ,aAAa,OAAO,aAAa,OAAO;AAC3G,WAAO,CAAC,EAAE,IAAI,kBAAkB,GAAG,CAAC;AAAA,EACtC;AAEA,QAAM,SAAS,cAAc,QAAQ,aAAa,OAAO,cAAc,QAAQ,IAAI;AAEnF,MAAI,QAAmC;AAGvC,QAAM,iBAAiB,cAAc,OAAO,cAAc,QAAQ;AAClE,wBAAsB,QAAQ,CAAC,UAAU;AACvC,UAAM,OAAO,MAAM,KAAK;AAExB,QAAI,SAAS,MAAM;AACjB,YAAM,cAAc,KAAK,OAAO,KAAK;AAErC,UAAI,CAAC,OAAO;AACV,gBAAQ;AAAA,MACV,WACE,SACA,MAAM,KAAK,WACX,UACA,KAAK,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,IAAI,iBAAiB,MAAM,KAAK,QAAQ,IAAI,GACzF;AACA,gBAAQ;AAAA,MACV,WACE,SACA,MAAM,KAAK,WACX,CAAC,UACD,KAAK,IAAI,iBAAiB,WAAW,KACnC,KAAK,IAAI,iBAAiB,MAAM,KAAK,QAAQ,OAAO,MAAM,KAAK,QAAQ,KAAK,GAC9E;AACA,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,2BAA2B;AACjC,SAAO,6BAA6B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,yBAAyB,GAAG,CAAC;AACtF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIhB,MAAM,2BACX,CAAK,kBACL,CAAC,EAAE,qBAAqB,cAAc,MAAM;AAC1C,QAAM,EAAE,gBAAgB,QAAQ,gBAAgB,IAAI,cAAc;AAElE,MAAI,CAAC,OAAQ,QAAO,CAAC;AAErB,QAAM,eAAe,gBAAgB,OAAO,EAAE,EAAE;AAEhD,QAAM,wBAAwB,oBAAoB;AAAA,IAChD,CAAC,EAAE,GAAG,MAAM,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,GAAG,aAAa;AAAA,EAC3E;AAEA,QAAM,oBAAoB,sBAAsB,KAAK,CAAC,EAAE,GAAG,MAAM,OAAO,OAAO,EAAE;AACjF,QAAM,eAAe,mBAAmB,MAAM;AAE9C,MAAI,CAAC,aAAc,QAAO,CAAC;AAE3B,MAAI,aAAa,QAAQ,cAAc,QAAQ,cAAc,QAAQ,aAAa,OAAO,aAAa,OAAO;AAC3G,WAAO,CAAC,EAAE,IAAI,kBAAkB,GAAG,CAAC;AAAA,EACtC;AAEA,QAAM,SAAS,cAAc,QAAQ,aAAa,OAAO,cAAc,QAAQ,IAAI;AAEnF,MAAI,QAAmC;AAGvC,QAAM,iBAAiB,cAAc,OAAO,cAAc,QAAQ;AAClE,wBAAsB,QAAQ,CAAC,UAAU;AACvC,UAAM,OAAO,MAAM,KAAK;AAExB,QAAI,SAAS,MAAM;AACjB,YAAM,cAAc,KAAK,OAAO,KAAK;AAErC,UAAI,CAAC,OAAO;AACV,gBAAQ;AAAA,MACV,WACE,SACA,MAAM,KAAK,WACX,UACA,KAAK,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,IAAI,iBAAiB,MAAM,KAAK,QAAQ,IAAI,GACzF;AACA,gBAAQ;AAAA,MACV,WACE,SACA,MAAM,KAAK,WACX,CAAC,UACD,KAAK,IAAI,iBAAiB,WAAW,KACnC,KAAK,IAAI,iBAAiB,MAAM,KAAK,QAAQ,OAAO,MAAM,KAAK,QAAQ,KAAK,GAC9E;AACA,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,2BAA2B;AACjC,SAAO,6BAA6B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,yBAAyB,GAAG,CAAC;AACtF;",
6
6
  "names": []
7
7
  }
@@ -44,8 +44,7 @@ const getHorizontalKeyboardCoordinates = ({
44
44
  collisionRect,
45
45
  droppableRects
46
46
  }) => {
47
- if (vertical.includes(event.code) || !active)
48
- return void 0;
47
+ if (vertical.includes(event.code) || !active) return void 0;
49
48
  const activeItem = flattenedItems.find((item) => item.uid === active.id);
50
49
  const layoutRects = [];
51
50
  droppableContainers.forEach((container) => {
@@ -57,8 +56,7 @@ const getHorizontalKeyboardCoordinates = ({
57
56
  return;
58
57
  }
59
58
  const itemParent = flattenedItems.find((item) => item.uid === container.id)?.parentId;
60
- if (itemParent !== activeItem?.parentId)
61
- return;
59
+ if (itemParent !== activeItem?.parentId) return;
62
60
  const rect = (0, import_core.getClientRect)(node);
63
61
  if (event.code === import_core.KeyboardCode.Left && collisionRect.left > rect.left + rect.width - 5) {
64
62
  layoutRects.push(container);
@@ -74,12 +72,10 @@ const getHorizontalKeyboardCoordinates = ({
74
72
  pointerCoordinates: null
75
73
  });
76
74
  const closestId = sortedRects.length > 0 ? sortedRects[0].id : void 0;
77
- if (!closestId)
78
- return void 0;
75
+ if (!closestId) return void 0;
79
76
  const closestDroppableContainer = droppableContainers.get(closestId)?.node?.current;
80
77
  const activeDroppableContainer = droppableContainers.get(active?.id)?.node?.current;
81
- if (!closestDroppableContainer || !activeDroppableContainer)
82
- return void 0;
78
+ if (!closestDroppableContainer || !activeDroppableContainer) return void 0;
83
79
  const closestRect = (0, import_core.getClientRect)(closestDroppableContainer);
84
80
  const activeRect = (0, import_core.getClientRect)(activeDroppableContainer);
85
81
  return {
@@ -104,8 +100,7 @@ const getHierarchyKeyboardCoordinates = (context) => {
104
100
  droppableRects,
105
101
  collisionRect
106
102
  };
107
- if (isHorizontalDnD)
108
- return getHorizontalKeyboardCoordinates(args);
103
+ if (isHorizontalDnD) return getHorizontalKeyboardCoordinates(args);
109
104
  return void 0;
110
105
  }
111
106
  return void 0;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hierarchy/getHierarchyKeyboardCoordinates.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import type { KeyboardCoordinateGetter, DroppableContainer } from '@dnd-kit/core';\nimport { closestCorners, getClientRect, KeyboardCode } from '@dnd-kit/core';\nimport type { Coordinates } from '@dnd-kit/core/dist/types';\nimport type { DnDKitHierarchy } from './types.js';\n\nconst directions: string[] = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\nconst vertical: string[] = [KeyboardCode.Up, KeyboardCode.Down];\n\nconst getHorizontalKeyboardCoordinates = <T,>({\n flattenedItems,\n active,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n droppableRects,\n}: DnDKitHierarchy.GetKeyboardCoordinatesArgs<T>): Coordinates | undefined => {\n if (vertical.includes(event.code) || !active) return undefined;\n\n const activeItem = flattenedItems.find((item) => item.uid === 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 = flattenedItems.find((item) => item.uid === 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: <T>(\n context: DnDKitHierarchy.SensorContext<T>,\n) => KeyboardCoordinateGetter = (context) => {\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 { flattenedItems, isHorizontalDnD } = context.current;\n\n const args = {\n flattenedItems,\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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,kBAA4D;AAI5D,MAAM,aAAuB,CAAC,yBAAa,MAAM,yBAAa,OAAO,yBAAa,IAAI,yBAAa,IAAI;AAEvG,MAAM,WAAqB,CAAC,yBAAa,IAAI,yBAAa,IAAI;AAE9D,MAAM,mCAAmC,CAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8E;AAC5E,MAAI,SAAS,SAAS,MAAM,IAAI,KAAK,CAAC;AAAQ,WAAO;AAErD,QAAM,aAAa,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAEvE,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,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,UAAU,EAAE,GAAG;AAC7E,QAAI,eAAe,YAAY;AAAU;AACzC,UAAM,WAAO,2BAAc,IAAI;AAC/B,QAAI,MAAM,SAAS,yBAAa,QAAQ,cAAc,OAAO,KAAK,OAAO,KAAK,QAAQ,GAAG;AACvF,kBAAY,KAAK,SAAS;AAAA,IAC5B,WAAW,MAAM,SAAS,yBAAa,SAAS,cAAc,OAAO,KAAK,MAAM;AAC9E,kBAAY,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF,CAAC;AAED,QAAM,kBAAc,4BAAe;AAAA,IACjC,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,YAAY,YAAY,SAAS,IAAI,YAAY,CAAC,EAAE,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,kBAAc,2BAAc,yBAAyB;AAC3D,QAAM,iBAAa,2BAAc,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,kCAEmB,CAAC,YAAY;AAC3C,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,EAAE,gBAAgB,gBAAgB,IAAI,QAAQ;AAEpD,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;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,kBAA4D;AAI5D,MAAM,aAAuB,CAAC,yBAAa,MAAM,yBAAa,OAAO,yBAAa,IAAI,yBAAa,IAAI;AAEvG,MAAM,WAAqB,CAAC,yBAAa,IAAI,yBAAa,IAAI;AAE9D,MAAM,mCAAmC,CAAK;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8E;AAC5E,MAAI,SAAS,SAAS,MAAM,IAAI,KAAK,CAAC,OAAQ,QAAO;AAErD,QAAM,aAAa,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAEvE,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,eAAe,KAAK,CAAC,SAAS,KAAK,QAAQ,UAAU,EAAE,GAAG;AAC7E,QAAI,eAAe,YAAY,SAAU;AACzC,UAAM,WAAO,2BAAc,IAAI;AAC/B,QAAI,MAAM,SAAS,yBAAa,QAAQ,cAAc,OAAO,KAAK,OAAO,KAAK,QAAQ,GAAG;AACvF,kBAAY,KAAK,SAAS;AAAA,IAC5B,WAAW,MAAM,SAAS,yBAAa,SAAS,cAAc,OAAO,KAAK,MAAM;AAC9E,kBAAY,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF,CAAC;AAED,QAAM,kBAAc,4BAAe;AAAA,IACjC,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,YAAY,YAAY,SAAS,IAAI,YAAY,CAAC,EAAE,KAAK;AAE/D,MAAI,CAAC,UAAW,QAAO;AAEvB,QAAM,4BAA4B,oBAAoB,IAAI,SAAS,GAAG,MAAM;AAC5E,QAAM,2BAA2B,oBAAoB,IAAI,QAAQ,EAAE,GAAG,MAAM;AAE5E,MAAI,CAAC,6BAA6B,CAAC,yBAA0B,QAAO;AAEpE,QAAM,kBAAc,2BAAc,yBAAyB;AAC3D,QAAM,iBAAa,2BAAc,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,kCAEmB,CAAC,YAAY;AAC3C,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,EAAE,gBAAgB,gBAAgB,IAAI,QAAQ;AAEpD,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,gBAAiB,QAAO,iCAAiC,IAAI;AACjE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -57,8 +57,7 @@ const useHierarchyActionHandlers = ({
57
57
  (e) => {
58
58
  handlePreviewDragEnd(e);
59
59
  const { active, over } = e;
60
- if (!over)
61
- return;
60
+ if (!over) return;
62
61
  if (active.id !== over.id) {
63
62
  const activeIndex = flattenedItems.findIndex((item) => item.uid === active.id);
64
63
  const overIndex = flattenedItems.findIndex((item) => item.uid === over.id);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hierarchy/useHierarchyActionHandlers.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { useCallback } from 'react';\nimport type { DragStartEvent, DragMoveEvent, DragEndEvent, DragCancelEvent } from '@dnd-kit/core';\nimport type { DnDKitHierarchy } from './types.js';\n\nexport const useHierarchyActionHandlers = <T,>({\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n onReorder,\n flattenedItems,\n}: DnDKitHierarchy.UseHierarchyActionHandlersArgs<T>): DnDKitHierarchy.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 = flattenedItems.findIndex((item) => item.uid === active.id);\n const overIndex = flattenedItems.findIndex((item) => item.uid === over.id);\n\n onReorder(flattenedItems[activeIndex], {\n targetIndex: overIndex,\n fromIndex: activeIndex,\n });\n }\n },\n [handlePreviewDragEnd, flattenedItems, 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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAIrB,MAAM,6BAA6B,CAAK;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2G;AACzG,QAAM,kBAAc;AAAA,IAClB,CAAC,MAAsB;AACrB,6BAAuB,CAAC;AAAA,IAC1B;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAAa;AAAA,IACjB,CAAC,MAAqB;AACpB,4BAAsB,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,qBAAqB;AAAA,EACxB;AAEA,QAAM,gBAAY;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,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAC7E,cAAM,YAAY,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAEzE,kBAAU,eAAe,WAAW,GAAG;AAAA,UACrC,aAAa;AAAA,UACb,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB,gBAAgB,SAAS;AAAA,EAClD;AAEA,QAAM,mBAAe;AAAA,IACnB,CAAC,MAAuB;AACtB,8BAAwB,CAAC;AAAA,IAC3B;AAAA,IACA,CAAC,uBAAuB;AAAA,EAC1B;AAEA,SAAO,EAAE,aAAa,YAAY,WAAW,aAAa;AAC5D;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAIrB,MAAM,6BAA6B,CAAK;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2G;AACzG,QAAM,kBAAc;AAAA,IAClB,CAAC,MAAsB;AACrB,6BAAuB,CAAC;AAAA,IAC1B;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAAa;AAAA,IACjB,CAAC,MAAqB;AACpB,4BAAsB,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,qBAAqB;AAAA,EACxB;AAEA,QAAM,gBAAY;AAAA,IAChB,CAAC,MAAoB;AACnB,2BAAqB,CAAC;AACtB,YAAM,EAAE,QAAQ,KAAK,IAAI;AAEzB,UAAI,CAAC,KAAM;AAEX,UAAI,OAAO,OAAO,KAAK,IAAI;AACzB,cAAM,cAAc,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,OAAO,EAAE;AAC7E,cAAM,YAAY,eAAe,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAEzE,kBAAU,eAAe,WAAW,GAAG;AAAA,UACrC,aAAa;AAAA,UACb,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB,gBAAgB,SAAS;AAAA,EAClD;AAEA,QAAM,mBAAe;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
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hierarchy/useHierarchyAnnouncements.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import type { Announcements, UniqueIdentifier } from '@dnd-kit/core';\nimport { useCallback } from 'react';\nimport type { DnDKitHierarchy } from './types.js';\n\nexport const useHierarchyAnnouncements = <T,>(\n visibleItemsDictionary: Record<UniqueIdentifier, DnDKitHierarchy.Item<T>>,\n): Announcements => {\n const onDragStart: Announcements['onDragStart'] = useCallback(\n ({ active: { id } }) => `Picked up draggable item from position ${visibleItemsDictionary[id].realIndex + 1}.`,\n [visibleItemsDictionary],\n );\n\n const onDragMove: Announcements['onDragOver'] = useCallback(\n ({ over }) => {\n if (over) {\n const overIndex = visibleItemsDictionary[over.id].realIndex + 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].realIndex + 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].realIndex + 1\n } was dropped at it's initial position.`,\n [visibleItemsDictionary],\n );\n\n return { onDragStart, onDragOver, onDragMove, onDragEnd, onDragCancel };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA4B;AAGrB,MAAM,4BAA4B,CACvC,2BACkB;AAClB,QAAM,kBAA4C;AAAA,IAChD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,0CAA0C,uBAAuB,EAAE,EAAE,YAAY;AAAA,IACzG,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAA0C;AAAA,IAC9C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,eAAO,wCAAwC;AAAA,MACjD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAA0C;AAEhD,QAAM,gBAAwC;AAAA,IAC5C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,eAAO,4CAA4C;AAAA,MACrD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,mBAA8C;AAAA,IAClD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAChB,wDACE,uBAAuB,EAAE,EAAE,YAAY;AAAA,IAE3C,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA4B;AAGrB,MAAM,4BAA4B,CACvC,2BACkB;AAClB,QAAM,kBAA4C;AAAA,IAChD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,0CAA0C,uBAAuB,EAAE,EAAE,YAAY,CAAC;AAAA,IAC1G,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAA0C;AAAA,IAC9C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,eAAO,wCAAwC,SAAS;AAAA,MAC1D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,aAA0C;AAEhD,QAAM,gBAAwC;AAAA,IAC5C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,eAAO,4CAA4C,SAAS;AAAA,MAC9D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,mBAA8C;AAAA,IAClD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAChB,wDACE,uBAAuB,EAAE,EAAE,YAAY,CACzC;AAAA,IACF,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
6
6
  "names": []
7
7
  }
@@ -38,8 +38,7 @@ const insideThreshold = 0.7;
38
38
  const customCollisionDetection = (sensorContext) => {
39
39
  const func = ({ droppableContainers, collisionRect, droppableRects, ...args }) => {
40
40
  const { active, flattenedItemsDictionary, maxDragAndDropLevel, containersRef } = sensorContext.current;
41
- if (!active)
42
- return [];
41
+ if (!active) return [];
43
42
  const rectIntersectionCollisions = (0, import_core.rectIntersection)({
44
43
  ...args,
45
44
  droppableRects,
@@ -62,8 +61,7 @@ const customCollisionDetection = (sensorContext) => {
62
61
  return [{ id: closestContainerOfContainersId, data: { dropIndicatorPosition } }];
63
62
  }
64
63
  const collidingRect = possibleCollidingContainers.find((container) => container.id === collidingContainer.id)?.rect?.current;
65
- if (!collidingRect)
66
- return [];
64
+ if (!collidingRect) return [];
67
65
  const [top, bottom] = [
68
66
  Math.max(collisionRect.top, collidingRect.top),
69
67
  Math.min(collisionRect.top + collisionRect.height, collidingRect.top + collidingRect.height)
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/customCollisionDetection.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { DropIndicatorPosition } from './constants.js';\nimport { type CollisionDetection, rectIntersection, closestCorners } from '@dnd-kit/core';\nimport type { DnDKitTree } from './types.js';\n// Percentage to be inside\nconst insideThreshold = 0.7;\n\nexport const customCollisionDetection = <T,>(sensorContext: DnDKitTree.SensorContext<T>): CollisionDetection => {\n const func: CollisionDetection = ({ droppableContainers, collisionRect, droppableRects, ...args }) => {\n const { active, flattenedItemsDictionary, maxDragAndDropLevel, containersRef } = sensorContext.current;\n\n if (!active) return [];\n\n const rectIntersectionCollisions = rectIntersection({\n ...args,\n droppableRects,\n collisionRect,\n droppableContainers: droppableContainers.filter(({ id }) => containersRef.current.includes(id)),\n });\n\n const { id: closestContainerOfContainersId } = rectIntersectionCollisions[0] ?? {};\n\n const possibleCollidingContainers = droppableContainers.filter(\n (container) =>\n !containersRef.current.includes(container.id) &&\n flattenedItemsDictionary[container.id].container === closestContainerOfContainersId,\n );\n\n const [collidingContainer, nearesCollidingContainer] = closestCorners({\n ...args,\n droppableRects,\n collisionRect,\n droppableContainers: possibleCollidingContainers,\n });\n\n let dropIndicatorPosition: DnDKitTree.DropIndicatorPositionValues = DropIndicatorPosition.None;\n\n // If we didn't find a match, return empty array\n if (!collidingContainer) {\n dropIndicatorPosition = DropIndicatorPosition.Inside;\n return [{ id: closestContainerOfContainersId, data: { dropIndicatorPosition } }];\n }\n\n const collidingRect = possibleCollidingContainers.find((container) => container.id === collidingContainer.id)?.rect\n ?.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) / Math.min(collisionRect.height, collidingRect.height);\n const isBefore = collisionRect.top + collisionRect.height / 2 < collidingRect.top + collidingRect.height / 2;\n if (\n intersectionPercentage > insideThreshold &&\n flattenedItemsDictionary[collidingContainer.id].depth + 1 <= maxDragAndDropLevel &&\n collidingContainer.id !== active.id\n ) {\n dropIndicatorPosition = DropIndicatorPosition.Inside;\n } else {\n const isFirstElement = flattenedItemsDictionary[collidingContainer.id].realIndex === 0;\n if (isFirstElement) {\n dropIndicatorPosition = isBefore ? DropIndicatorPosition.Before : DropIndicatorPosition.After;\n } else {\n dropIndicatorPosition = DropIndicatorPosition.After;\n }\n }\n\n // Return the id of the match rectangle\n return [\n {\n id:\n isBefore && dropIndicatorPosition === DropIndicatorPosition.After\n ? nearesCollidingContainer.id\n : collidingContainer.id,\n data: { dropIndicatorPosition },\n },\n ];\n };\n return func;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,uBAAsC;AACtC,kBAA0E;AAG1E,MAAM,kBAAkB;AAEjB,MAAM,2BAA2B,CAAK,kBAAmE;AAC9G,QAAM,OAA2B,CAAC,EAAE,qBAAqB,eAAe,gBAAgB,GAAG,KAAK,MAAM;AACpG,UAAM,EAAE,QAAQ,0BAA0B,qBAAqB,cAAc,IAAI,cAAc;AAE/F,QAAI,CAAC;AAAQ,aAAO,CAAC;AAErB,UAAM,iCAA6B,8BAAiB;AAAA,MAClD,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,qBAAqB,oBAAoB,OAAO,CAAC,EAAE,GAAG,MAAM,cAAc,QAAQ,SAAS,EAAE,CAAC;AAAA,IAChG,CAAC;AAED,UAAM,EAAE,IAAI,+BAA+B,IAAI,2BAA2B,CAAC,KAAK,CAAC;AAEjF,UAAM,8BAA8B,oBAAoB;AAAA,MACtD,CAAC,cACC,CAAC,cAAc,QAAQ,SAAS,UAAU,EAAE,KAC5C,yBAAyB,UAAU,EAAE,EAAE,cAAc;AAAA,IACzD;AAEA,UAAM,CAAC,oBAAoB,wBAAwB,QAAI,4BAAe;AAAA,MACpE,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,qBAAqB;AAAA,IACvB,CAAC;AAED,QAAI,wBAAgE,uCAAsB;AAG1F,QAAI,CAAC,oBAAoB;AACvB,8BAAwB,uCAAsB;AAC9C,aAAO,CAAC,EAAE,IAAI,gCAAgC,MAAM,EAAE,sBAAsB,EAAE,CAAC;AAAA,IACjF;AAEA,UAAM,gBAAgB,4BAA4B,KAAK,CAAC,cAAc,UAAU,OAAO,mBAAmB,EAAE,GAAG,MAC3G;AAEJ,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,KAAK,IAAI,cAAc,QAAQ,cAAc,MAAM;AAC3G,UAAM,WAAW,cAAc,MAAM,cAAc,SAAS,IAAI,cAAc,MAAM,cAAc,SAAS;AAC3G,QACE,yBAAyB,mBACzB,yBAAyB,mBAAmB,EAAE,EAAE,QAAQ,KAAK,uBAC7D,mBAAmB,OAAO,OAAO,IACjC;AACA,8BAAwB,uCAAsB;AAAA,IAChD,OAAO;AACL,YAAM,iBAAiB,yBAAyB,mBAAmB,EAAE,EAAE,cAAc;AACrF,UAAI,gBAAgB;AAClB,gCAAwB,WAAW,uCAAsB,SAAS,uCAAsB;AAAA,MAC1F,OAAO;AACL,gCAAwB,uCAAsB;AAAA,MAChD;AAAA,IACF;AAGA,WAAO;AAAA,MACL;AAAA,QACE,IACE,YAAY,0BAA0B,uCAAsB,QACxD,yBAAyB,KACzB,mBAAmB;AAAA,QACzB,MAAM,EAAE,sBAAsB;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,uBAAsC;AACtC,kBAA0E;AAG1E,MAAM,kBAAkB;AAEjB,MAAM,2BAA2B,CAAK,kBAAmE;AAC9G,QAAM,OAA2B,CAAC,EAAE,qBAAqB,eAAe,gBAAgB,GAAG,KAAK,MAAM;AACpG,UAAM,EAAE,QAAQ,0BAA0B,qBAAqB,cAAc,IAAI,cAAc;AAE/F,QAAI,CAAC,OAAQ,QAAO,CAAC;AAErB,UAAM,iCAA6B,8BAAiB;AAAA,MAClD,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,qBAAqB,oBAAoB,OAAO,CAAC,EAAE,GAAG,MAAM,cAAc,QAAQ,SAAS,EAAE,CAAC;AAAA,IAChG,CAAC;AAED,UAAM,EAAE,IAAI,+BAA+B,IAAI,2BAA2B,CAAC,KAAK,CAAC;AAEjF,UAAM,8BAA8B,oBAAoB;AAAA,MACtD,CAAC,cACC,CAAC,cAAc,QAAQ,SAAS,UAAU,EAAE,KAC5C,yBAAyB,UAAU,EAAE,EAAE,cAAc;AAAA,IACzD;AAEA,UAAM,CAAC,oBAAoB,wBAAwB,QAAI,4BAAe;AAAA,MACpE,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,qBAAqB;AAAA,IACvB,CAAC;AAED,QAAI,wBAAgE,uCAAsB;AAG1F,QAAI,CAAC,oBAAoB;AACvB,8BAAwB,uCAAsB;AAC9C,aAAO,CAAC,EAAE,IAAI,gCAAgC,MAAM,EAAE,sBAAsB,EAAE,CAAC;AAAA,IACjF;AAEA,UAAM,gBAAgB,4BAA4B,KAAK,CAAC,cAAc,UAAU,OAAO,mBAAmB,EAAE,GAAG,MAC3G;AAEJ,QAAI,CAAC,cAAe,QAAO,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,KAAK,IAAI,cAAc,QAAQ,cAAc,MAAM;AAC3G,UAAM,WAAW,cAAc,MAAM,cAAc,SAAS,IAAI,cAAc,MAAM,cAAc,SAAS;AAC3G,QACE,yBAAyB,mBACzB,yBAAyB,mBAAmB,EAAE,EAAE,QAAQ,KAAK,uBAC7D,mBAAmB,OAAO,OAAO,IACjC;AACA,8BAAwB,uCAAsB;AAAA,IAChD,OAAO;AACL,YAAM,iBAAiB,yBAAyB,mBAAmB,EAAE,EAAE,cAAc;AACrF,UAAI,gBAAgB;AAClB,gCAAwB,WAAW,uCAAsB,SAAS,uCAAsB;AAAA,MAC1F,OAAO;AACL,gCAAwB,uCAAsB;AAAA,MAChD;AAAA,IACF;AAGA,WAAO;AAAA,MACL;AAAA,QACE,IACE,YAAY,0BAA0B,uCAAsB,QACxD,yBAAyB,KACzB,mBAAmB;AAAA,QACzB,MAAM,EAAE,sBAAsB;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -79,8 +79,7 @@ const getVerticalKeyboardCoordinates = ({
79
79
  });
80
80
  const closestId = sortedRects.length > 0 ? sortedRects[0].id : void 0;
81
81
  const closestElement = droppableContainers.get(closestId)?.node?.current;
82
- if (!closestId || !closestElement)
83
- return void 0;
82
+ if (!closestId || !closestElement) return void 0;
84
83
  const closestRect = (0, import_core.getClientRect)(closestElement);
85
84
  if (event.code === "ArrowRight" || event.code === "ArrowLeft") {
86
85
  let coordsInY = currentCoordinates.y;
@@ -93,8 +92,7 @@ const getVerticalKeyboardCoordinates = ({
93
92
  };
94
93
  }
95
94
  const closestItem = flattenedItems[activeDraggableContainer]?.find((item) => item.uid === closestId);
96
- if (!closestItem && !closestId)
97
- return void 0;
95
+ if (!closestItem && !closestId) return void 0;
98
96
  const overContainerHasChanged = !closestItem;
99
97
  if (event.code === "ArrowUp") {
100
98
  if (dropIndicatorPosition === import_constants.DropIndicatorPosition.Inside || closestId === active.id || closestItem && closestItem.depth + 1 > maxDragAndDropLevel) {
@@ -140,8 +138,7 @@ const getVerticalKeyboardCoordinates = ({
140
138
  const getTreeKeyboardCoordinates = (context) => {
141
139
  const func = (event, { currentCoordinates, context: { over, droppableContainers, droppableRects, active, collisionRect } }) => {
142
140
  if (directions.includes(event.code)) {
143
- if (!over || !active || !collisionRect)
144
- return void 0;
141
+ if (!over || !active || !collisionRect) return void 0;
145
142
  const {
146
143
  items: flattenedItems,
147
144
  dropIndicatorPosition,
@@ -164,8 +161,7 @@ const getTreeKeyboardCoordinates = (context) => {
164
161
  flattenedItemsDictionary,
165
162
  containersRef
166
163
  };
167
- if (isHorizontalDnD)
168
- return void 0;
164
+ if (isHorizontalDnD) return void 0;
169
165
  const newCoords = getVerticalKeyboardCoordinates(args);
170
166
  return newCoords;
171
167
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/getTreeKeyboardCoordinates.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-params */\n/* eslint-disable complexity */\nimport type { KeyboardCoordinateGetter, DroppableContainer } from '@dnd-kit/core';\nimport { closestCorners, getClientRect, KeyboardCode } from '@dnd-kit/core';\nimport type { Coordinates } from '@dnd-kit/core/dist/types';\nimport type { DnDKitTree } from './types.js';\nimport { DropIndicatorPosition } from './constants.js';\n\nconst directions: string[] = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\n\nconst getVerticalKeyboardCoordinates = <T,>({\n flattenedItems,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n dropIndicatorPosition,\n maxDragAndDropLevel,\n droppableRects,\n flattenedItemsDictionary,\n}: DnDKitTree.GetKeyboardCoordinatesArgs<T>): Coordinates | undefined => {\n // if (horizontal.includes(event.code)) return undefined;\n\n const overRect = over.rect;\n\n const layoutRects: DroppableContainer[] = [];\n const activeDraggableContainer = flattenedItemsDictionary[over.id]?.container || 'root';\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 if (event.code === 'ArrowRight') {\n if (rect && collisionRect.left + collisionRect.width < rect.left) {\n layoutRects.push(container);\n }\n } else if (event.code === 'ArrowLeft') {\n if (rect && collisionRect.left + collisionRect.width > rect.right) {\n layoutRects.push(container);\n }\n } else if (rect && event.code === 'ArrowDown' && collisionRect.top - 2 <= rect.top) {\n // We add and substract 2 just for the sake of avoiding edge cases\n layoutRects.push(container);\n } else if (rect && event.code === 'ArrowUp' && 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 const closestElement = droppableContainers.get(closestId)?.node?.current;\n if (!closestId || !closestElement) return undefined;\n\n const closestRect = getClientRect(closestElement);\n\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\n let coordsInY = currentCoordinates.y;\n\n // with this we check that the closest rect is not too far from the current coordinates\n // if it is, we are gonna go to the closest rect but in the y axis\n // if it is not, we are gonna go to the closest rect in the x axis and the current y axis\n if (\n (DropIndicatorPosition.Inside === dropIndicatorPosition &&\n Math.abs(closestRect.top - currentCoordinates.y) > 5) ||\n (DropIndicatorPosition.Inside !== dropIndicatorPosition &&\n Math.abs(closestRect.top - (currentCoordinates.y + collisionRect.height / 2)) > 5)\n ) {\n coordsInY =\n closestRect.top > currentCoordinates.y\n ? closestRect.top - collisionRect.height / 2\n : closestRect.bottom - collisionRect.height / 2;\n }\n return {\n x: closestRect.left + 30,\n y: coordsInY,\n };\n }\n\n const closestItem = flattenedItems[activeDraggableContainer]?.find((item) => item.uid === closestId);\n\n // If no rect is closest, do nothing\n if (!closestItem && !closestId) return undefined;\n const overContainerHasChanged = !closestItem;\n if (event.code === 'ArrowUp') {\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 && closestItem.depth + 1 > maxDragAndDropLevel)\n ) {\n return {\n x: closestRect.left + 30,\n y: closestRect.top - collisionRect.height / 2,\n };\n }\n\n // changed the container\n if (overContainerHasChanged) {\n return {\n y: closestRect.bottom - collisionRect.height / 2,\n x: closestRect.left + 30,\n };\n }\n return {\n x: closestRect.left + 30,\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 x: closestRect.left + 30,\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 && closestItem.depth + 1 > maxDragAndDropLevel)\n ) {\n return {\n y: closestRect.top + closestRect.height / 2,\n x: closestRect.left + 30,\n };\n }\n\n // changed the container\n if (overContainerHasChanged) {\n return {\n y: closestRect.top - collisionRect.height / 2,\n x: closestRect.left + 30,\n };\n }\n\n return {\n x: closestRect.left + 30,\n y: closestRect.top + Math.abs(closestRect.height - collisionRect.height) / 2,\n };\n};\n\nexport const getTreeKeyboardCoordinates: <T>(context: DnDKitTree.SensorContext<T>) => KeyboardCoordinateGetter = (\n context,\n) => {\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 items: flattenedItems,\n dropIndicatorPosition,\n maxDragAndDropLevel,\n isHorizontalDnD,\n flattenedItemsDictionary,\n containersRef,\n } = context.current;\n\n const args = {\n flattenedItems,\n active,\n over,\n event,\n currentCoordinates,\n droppableContainers,\n collisionRect,\n dropIndicatorPosition,\n droppableRects,\n maxDragAndDropLevel,\n flattenedItemsDictionary,\n containersRef,\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", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -110,17 +110,14 @@ const useMultiTreeDndkitConfig = ({
110
110
  Object.keys(flattenedItems).forEach((container) => {
111
111
  flattenedItems[container].forEach((item) => {
112
112
  dictionary[item.uid] = item;
113
- if (!item.container)
114
- return;
115
- if (!containersRef.current.includes(item.container))
116
- containersRef.current.push(item.container);
113
+ if (!item.container) return;
114
+ if (!containersRef.current.includes(item.container)) containersRef.current.push(item.container);
117
115
  });
118
116
  });
119
117
  return dictionary;
120
118
  }, [flattenedItems]);
121
119
  const isDropValid = (0, import_react.useMemo)(() => {
122
- if (!active || !over)
123
- return true;
120
+ if (!active || !over) return true;
124
121
  return getIsDropValid(
125
122
  flattenedItemsDictionary[active.id],
126
123
  flattenedItemsDictionary[over.id],
@@ -210,13 +207,11 @@ const useMultiTreeDndkitConfig = ({
210
207
  [sortedIds]
211
208
  );
212
209
  const activeItem = (0, import_react.useMemo)(() => {
213
- if (!active)
214
- return null;
210
+ if (!active) return null;
215
211
  return flattenedItemsDictionary[active.id];
216
212
  }, [active, flattenedItemsDictionary]);
217
213
  const overItem = (0, import_react.useMemo)(() => {
218
- if (!over)
219
- return null;
214
+ if (!over) return null;
220
215
  return flattenedItemsDictionary[over.id];
221
216
  }, [flattenedItemsDictionary, over]);
222
217
  return {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/useMultiTreeDndkitConfig.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useState, useEffect, useMemo, useRef } from 'react';\nimport { type TypescriptHelpersT } from '@elliemae/ds-typescript-helpers';\nimport type { Active, MeasuringConfiguration, Modifier, Over, UniqueIdentifier } from '@dnd-kit/core';\nimport { useSensor, useSensors, KeyboardSensor, PointerSensor, MeasuringStrategy } from '@dnd-kit/core';\nimport { useTreePreviewHandlers } from './useTreePreviewHandlers.js';\nimport { getTreeKeyboardCoordinates } from './getTreeKeyboardCoordinates.js';\nimport { getProjection, removeChildrenOf } from './utilities.js';\nimport { useTreeActionHandlers } from './useTreeActionHandlers.js';\nimport type { DnDKitTree } from './types.js';\nimport { DropIndicatorPosition } from './constants.js';\nimport { customCollisionDetection } from './customCollisionDetection.js';\nimport { useTreeAnnouncements } from './useTreeAnnouncements.js';\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, sortedIds: Record<string, UniqueIdentifier[]>): Modifier => {\n const func: Modifier = ({ transform, activatorEvent, active }) => {\n const newTransform = {\n ...transform,\n };\n if (isHorizontalDnD) {\n newTransform.x = transform.x + 25;\n } else {\n newTransform.x = transform.x + 15;\n if (['Enter', 'Space'].includes((activatorEvent as KeyboardEvent)?.code)) {\n // @todo we need to make it multi container functional\n const firstContainer = Object.keys(sortedIds)[0];\n const isLast = active?.id === sortedIds[firstContainer][sortedIds[firstContainer].length - 1];\n const keyboardTranslate = ((isLast ? -1 : 1) * (active?.rect?.current?.initial?.height ?? 0)) / 2;\n newTransform.y = transform.y + keyboardTranslate;\n }\n }\n return newTransform;\n };\n return func;\n};\n\nconst measuring: Partial<MeasuringConfiguration> = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nexport const useMultiTreeDndkitConfig = <T,>({\n flattenedItems,\n onReorder,\n isHorizontalDnD = false,\n isExpandable = false,\n getIsDropValid = () => true,\n maxDragAndDropLevel = Infinity,\n}: DnDKitTree.UseMultiTreeConfigArgs<T>): DnDKitTree.UseTreeConfigReturn<T> => {\n const [active, setActive] = useState<Active | null>(null);\n const [over, setOver] = useState<Over | null>(null);\n const [dropIndicatorPosition, setDropIndicatorPosition] = useState<DnDKitTree.DropIndicatorPositionValues>(\n DropIndicatorPosition.None,\n );\n // Sorted ids for the library\n const sortedIds = useMemo(\n () =>\n Object.keys(flattenedItems).reduce(\n (acc, curr) => {\n acc[curr] = flattenedItems[curr].map((item) => item.uid);\n return acc;\n },\n {} as Record<string, UniqueIdentifier[]>,\n ),\n [flattenedItems],\n );\n\n /**\n * List of unique containers\n */\n const containersRef = useRef([] as string[]);\n\n const visibleFlattenedItems = useMemo(() => {\n const dictionary: Record<string, DnDKitTree.Item<T>[]> = {};\n const collapsedItems: Record<UniqueIdentifier, boolean | undefined> = {};\n Object.keys(flattenedItems).forEach((container) => {\n const itemWithNoActiveChildren = removeChildrenOf(flattenedItems[container], active?.id);\n\n dictionary[container] = [];\n\n itemWithNoActiveChildren.forEach((item) => {\n if (item.parentId === null || !collapsedItems[item.parentId]) {\n dictionary[container].push(item);\n }\n collapsedItems[item.uid] = item.collapsed;\n });\n });\n return dictionary;\n }, [active?.id, flattenedItems]);\n\n /**\n * Dictionary from UID to ITEM\n * This dictionary is computed since on every DnD move, I need to know the\n * depth of a particular item, so O(1) per DnD move instead of O(#ITEMS)\n */\n const flattenedItemsDictionary = useMemo(() => {\n const dictionary: Record<UniqueIdentifier, TypescriptHelpersT.ObjectValues<typeof flattenedItems>[0]> = {};\n Object.keys(flattenedItems).forEach((container) => {\n flattenedItems[container].forEach((item) => {\n dictionary[item.uid] = item;\n if (!item.container) return;\n if (!containersRef.current.includes(item.container)) containersRef.current.push(item.container);\n });\n });\n return dictionary;\n }, [flattenedItems]);\n\n const isDropValid = useMemo(() => {\n if (!active || !over) return true;\n return getIsDropValid(\n flattenedItemsDictionary[active.id],\n flattenedItemsDictionary[over.id],\n dropIndicatorPosition,\n );\n }, [getIsDropValid, flattenedItemsDictionary, active, over, dropIndicatorPosition]);\n\n const modifiers: Modifier[] = useMemo(\n () => [adjustTranslate(isHorizontalDnD, sortedIds)],\n [isHorizontalDnD, sortedIds],\n );\n\n const sensorContext: DnDKitTree.SensorContext<T> = useRef({\n items: flattenedItems,\n dropIndicatorPosition,\n setDropIndicatorPosition,\n isHorizontalDnD,\n maxDragAndDropLevel,\n active,\n flattenedItemsDictionary,\n containersRef,\n });\n\n useEffect(() => {\n sensorContext.current = {\n items: flattenedItems,\n dropIndicatorPosition,\n isHorizontalDnD,\n maxDragAndDropLevel,\n active,\n flattenedItemsDictionary,\n containersRef,\n };\n }, [flattenedItems, dropIndicatorPosition, isHorizontalDnD, maxDragAndDropLevel, active, flattenedItemsDictionary]);\n\n const coordinateGetter = useMemo(() => getTreeKeyboardCoordinates(sensorContext), []);\n\n const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, { coordinateGetter }));\n\n // where is the activeItem being positioned (depth and parent)\n const projected = useMemo(\n () =>\n over && active\n ? getProjection(\n visibleFlattenedItems,\n flattenedItemsDictionary,\n over,\n dropIndicatorPosition,\n isExpandable,\n active,\n )\n : null,\n [over, visibleFlattenedItems, flattenedItemsDictionary, dropIndicatorPosition, isExpandable, active],\n );\n\n const dragPreviewHandlers = useTreePreviewHandlers({\n setActive,\n setOver,\n setDropIndicatorPosition,\n });\n\n const dragActionHandlers = useTreeActionHandlers({\n ...dragPreviewHandlers,\n onReorder,\n projected,\n flattenedItems,\n dropIndicatorPosition,\n isDropValid,\n flattenedItemsDictionary: flattenedItemsDictionary,\n containersRef,\n });\n\n const announcements = useTreeAnnouncements(flattenedItemsDictionary, dropIndicatorPosition);\n\n const collisionDetection = customCollisionDetection(sensorContext);\n\n const dndContextProps = useMemo(\n () => ({\n accessibility: {\n announcements,\n container: document.body,\n },\n modifiers,\n sensors,\n measuring,\n collisionDetection,\n ...dragActionHandlers,\n }),\n [announcements, modifiers, sensors, collisionDetection, dragActionHandlers],\n );\n\n const sortableContextProps = useMemo(\n () =>\n Object.keys(sortedIds).reduce(\n (acc, curr) => {\n acc[curr] = {\n items: sortedIds[curr],\n strategy: () => null,\n };\n return acc;\n },\n {} as Record<string, DnDKitTree.SortableContextPropsType>,\n ),\n [sortedIds],\n );\n\n const activeItem = useMemo(() => {\n if (!active) return null;\n return flattenedItemsDictionary[active.id];\n }, [active, flattenedItemsDictionary]);\n\n const overItem = useMemo(() => {\n if (!over) return null;\n return flattenedItemsDictionary[over.id];\n }, [flattenedItemsDictionary, over]);\n\n return {\n dndContextProps,\n sortableContextProps,\n isDropValid,\n active,\n activeItem,\n over,\n overItem,\n dropIndicatorPosition,\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAqD;AAGrD,kBAAwF;AACxF,oCAAuC;AACvC,wCAA2C;AAC3C,uBAAgD;AAChD,mCAAsC;AAEtC,uBAAsC;AACtC,sCAAyC;AACzC,kCAAqC;AAIrC,MAAM,kBAAkB,CAAC,iBAA0B,cAA4D;AAC7G,QAAM,OAAiB,CAAC,EAAE,WAAW,gBAAgB,OAAO,MAAM;AAChE,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,IACL;AACA,QAAI,iBAAiB;AACnB,mBAAa,IAAI,UAAU,IAAI;AAAA,IACjC,OAAO;AACL,mBAAa,IAAI,UAAU,IAAI;AAC/B,UAAI,CAAC,SAAS,OAAO,EAAE,SAAU,gBAAkC,IAAI,GAAG;AAExE,cAAM,iBAAiB,OAAO,KAAK,SAAS,EAAE,CAAC;AAC/C,cAAM,SAAS,QAAQ,OAAO,UAAU,cAAc,EAAE,UAAU,cAAc,EAAE,SAAS,CAAC;AAC5F,cAAM,qBAAsB,SAAS,KAAK,MAAM,QAAQ,MAAM,SAAS,SAAS,UAAU,KAAM;AAChG,qBAAa,IAAI,UAAU,IAAI;AAAA,MACjC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,YAA6C;AAAA,EACjD,WAAW;AAAA,IACT,UAAU,8BAAkB;AAAA,EAC9B;AACF;AAEO,MAAM,2BAA2B,CAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,sBAAsB;AACxB,MAA+E;AAC7E,QAAM,CAAC,QAAQ,SAAS,QAAI,uBAAwB,IAAI;AACxD,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAsB,IAAI;AAClD,QAAM,CAAC,uBAAuB,wBAAwB,QAAI;AAAA,IACxD,uCAAsB;AAAA,EACxB;AAEA,QAAM,gBAAY;AAAA,IAChB,MACE,OAAO,KAAK,cAAc,EAAE;AAAA,MAC1B,CAAC,KAAK,SAAS;AACb,YAAI,IAAI,IAAI,eAAe,IAAI,EAAE,IAAI,CAAC,SAAS,KAAK,GAAG;AACvD,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAAA,IACF,CAAC,cAAc;AAAA,EACjB;AAKA,QAAM,oBAAgB,qBAAO,CAAC,CAAa;AAE3C,QAAM,4BAAwB,sBAAQ,MAAM;AAC1C,UAAM,aAAmD,CAAC;AAC1D,UAAM,iBAAgE,CAAC;AACvE,WAAO,KAAK,cAAc,EAAE,QAAQ,CAAC,cAAc;AACjD,YAAM,+BAA2B,mCAAiB,eAAe,SAAS,GAAG,QAAQ,EAAE;AAEvF,iBAAW,SAAS,IAAI,CAAC;AAEzB,+BAAyB,QAAQ,CAAC,SAAS;AACzC,YAAI,KAAK,aAAa,QAAQ,CAAC,eAAe,KAAK,QAAQ,GAAG;AAC5D,qBAAW,SAAS,EAAE,KAAK,IAAI;AAAA,QACjC;AACA,uBAAe,KAAK,GAAG,IAAI,KAAK;AAAA,MAClC,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC;AAO/B,QAAM,+BAA2B,sBAAQ,MAAM;AAC7C,UAAM,aAAkG,CAAC;AACzG,WAAO,KAAK,cAAc,EAAE,QAAQ,CAAC,cAAc;AACjD,qBAAe,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC1C,mBAAW,KAAK,GAAG,IAAI;AACvB,YAAI,CAAC,KAAK,UAAW;AACrB,YAAI,CAAC,cAAc,QAAQ,SAAS,KAAK,SAAS,EAAG,eAAc,QAAQ,KAAK,KAAK,SAAS;AAAA,MAChG,CAAC;AAAA,IACH,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,kBAAc,sBAAQ,MAAM;AAChC,QAAI,CAAC,UAAU,CAAC,KAAM,QAAO;AAC7B,WAAO;AAAA,MACL,yBAAyB,OAAO,EAAE;AAAA,MAClC,yBAAyB,KAAK,EAAE;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,gBAAgB,0BAA0B,QAAQ,MAAM,qBAAqB,CAAC;AAElF,QAAM,gBAAwB;AAAA,IAC5B,MAAM,CAAC,gBAAgB,iBAAiB,SAAS,CAAC;AAAA,IAClD,CAAC,iBAAiB,SAAS;AAAA,EAC7B;AAEA,QAAM,oBAA6C,qBAAO;AAAA,IACxD,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,8BAAU,MAAM;AACd,kBAAc,UAAU;AAAA,MACtB,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,gBAAgB,uBAAuB,iBAAiB,qBAAqB,QAAQ,wBAAwB,CAAC;AAElH,QAAM,uBAAmB,sBAAQ,UAAM,8DAA2B,aAAa,GAAG,CAAC,CAAC;AAEpF,QAAM,cAAU,4BAAW,uBAAU,yBAAa,OAAG,uBAAU,4BAAgB,EAAE,iBAAiB,CAAC,CAAC;AAGpG,QAAM,gBAAY;AAAA,IAChB,MACE,QAAQ,aACJ;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IACA;AAAA,IACN,CAAC,MAAM,uBAAuB,0BAA0B,uBAAuB,cAAc,MAAM;AAAA,EACrG;AAEA,QAAM,0BAAsB,sDAAuB;AAAA,IACjD;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,yBAAqB,oDAAsB;AAAA,IAC/C,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,oBAAgB,kDAAqB,0BAA0B,qBAAqB;AAE1F,QAAM,yBAAqB,0DAAyB,aAAa;AAEjE,QAAM,sBAAkB;AAAA,IACtB,OAAO;AAAA,MACL,eAAe;AAAA,QACb;AAAA,QACA,WAAW,SAAS;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA,CAAC,eAAe,WAAW,SAAS,oBAAoB,kBAAkB;AAAA,EAC5E;AAEA,QAAM,2BAAuB;AAAA,IAC3B,MACE,OAAO,KAAK,SAAS,EAAE;AAAA,MACrB,CAAC,KAAK,SAAS;AACb,YAAI,IAAI,IAAI;AAAA,UACV,OAAO,UAAU,IAAI;AAAA,UACrB,UAAU,MAAM;AAAA,QAClB;AACA,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AAAA,IACF,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,iBAAa,sBAAQ,MAAM;AAC/B,QAAI,CAAC,OAAQ,QAAO;AACpB,WAAO,yBAAyB,OAAO,EAAE;AAAA,EAC3C,GAAG,CAAC,QAAQ,wBAAwB,CAAC;AAErC,QAAM,eAAW,sBAAQ,MAAM;AAC7B,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,yBAAyB,KAAK,EAAE;AAAA,EACzC,GAAG,CAAC,0BAA0B,IAAI,CAAC;AAEnC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -72,10 +72,8 @@ const useTreeActionHandlers = ({
72
72
  (e) => {
73
73
  handlePreviewDragEnd(e);
74
74
  const { active, over } = e;
75
- if (over === null || !isDropValid)
76
- return;
77
- if (over.id === active.id)
78
- return;
75
+ if (over === null || !isDropValid) return;
76
+ if (over.id === active.id) return;
79
77
  const isOverContainerOfContainer = containersRef.current.includes(over.id);
80
78
  const overContainer = isOverContainerOfContainer ? over.id : flattenedItemsDictionary[over.id]?.container || "root";
81
79
  const activeContainer = flattenedItemsDictionary[active.id].container || "root";
@@ -83,8 +81,7 @@ const useTreeActionHandlers = ({
83
81
  let considerExpanding = null;
84
82
  let overIndex = flattenedItems[overContainer].findIndex((item) => item.uid === over.id);
85
83
  const isUp = overIndex < activeIndex;
86
- if (dropIndicatorPosition === "after" && (isUp || activeContainer !== overContainer))
87
- overIndex += 1;
84
+ if (dropIndicatorPosition === "after" && (isUp || activeContainer !== overContainer)) overIndex += 1;
88
85
  if (dropIndicatorPosition === import_constants.DropIndicatorPosition.Inside && !isOverContainerOfContainer) {
89
86
  considerExpanding = over.id;
90
87
  overIndex = flattenedItems[overContainer][overIndex].realIndex + flattenedItems[overContainer][overIndex].childrenCount + 1;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/useTreeActionHandlers.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable complexity */\n/* eslint-disable max-statements */\nimport { 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.js';\nimport type { DnDKitTree } from './types.js';\n\nexport const useTreeActionHandlers = <T,>({\n handlePreviewDragStart,\n handlePreviewDragMove,\n handlePreviewDragOver,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n onReorder,\n flattenedItems,\n projected,\n dropIndicatorPosition,\n isDropValid,\n flattenedItemsDictionary,\n containersRef,\n}: DnDKitTree.UseTreeActionHandlersArgs<T>): DnDKitTree.UseTreeActionHandlersReturn => {\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 if (over.id === active.id) return;\n\n const isOverContainerOfContainer = containersRef.current.includes(over.id);\n const overContainer = isOverContainerOfContainer\n ? over.id\n : flattenedItemsDictionary[over.id]?.container || 'root';\n const activeContainer = flattenedItemsDictionary[active.id].container || 'root';\n\n const activeIndex = flattenedItems[activeContainer].findIndex((item) => item.uid === active.id);\n\n let considerExpanding = null;\n\n let overIndex = flattenedItems[overContainer].findIndex((item) => item.uid === over.id);\n const isUp = overIndex < activeIndex;\n\n if (dropIndicatorPosition === 'after' && (isUp || activeContainer !== overContainer)) overIndex += 1;\n // If drop indicator is inside, then put it last,\n // It will be reconstructed well later\n if (dropIndicatorPosition === DropIndicatorPosition.Inside && !isOverContainerOfContainer) {\n considerExpanding = over.id;\n overIndex =\n flattenedItems[overContainer][overIndex].realIndex +\n flattenedItems[overContainer][overIndex].childrenCount +\n 1;\n }\n\n // If we are dropping the item in a new position, or new depth or new container\n if (\n projected &&\n (activeIndex !== overIndex ||\n flattenedItems[activeContainer][activeIndex].depth !== projected.depth ||\n activeContainer !== overContainer)\n ) {\n // Change parent and depth from projected data\n flattenedItems[activeContainer][activeIndex].parentId = projected.parentId;\n flattenedItems[activeContainer][activeIndex].depth = projected.depth;\n\n // If same index, don't move the array, just copy it\n\n // not deep cloning here would break data-table\n const newFlattenedData = cloneDeep(flattenedItems);\n\n if (isOverContainerOfContainer) {\n if (newFlattenedData[overContainer].length === 0) {\n newFlattenedData[overContainer][0] = { ...flattenedItems[activeContainer][activeIndex] };\n } else {\n newFlattenedData[overContainer].push({ ...flattenedItems[activeContainer][activeIndex] });\n }\n newFlattenedData[activeContainer].splice(activeIndex, 1);\n } else if (activeContainer !== overContainer) {\n newFlattenedData[overContainer].splice(overIndex, 0, newFlattenedData[activeContainer][activeIndex]);\n newFlattenedData[activeContainer].splice(activeIndex, 1);\n } else {\n newFlattenedData[activeContainer] = arrayMove(flattenedItems[activeContainer], activeIndex, overIndex);\n }\n\n onReorder(flattenedItems[activeContainer][activeIndex], overIndex, {\n over: flattenedItems[activeContainer][overIndex],\n fromIndex: activeIndex,\n considerExpanding: considerExpanding,\n movedData: newFlattenedData,\n flattenedItems,\n overContainer,\n projectedMove: projected,\n });\n }\n },\n [\n handlePreviewDragEnd,\n isDropValid,\n containersRef,\n flattenedItemsDictionary,\n flattenedItems,\n dropIndicatorPosition,\n projected,\n onReorder,\n ],\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", "import * as React from 'react';\nexport { React };\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": ["../../../src/tree/useTreeAnnouncements.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import type { Announcements, UniqueIdentifier } from '@dnd-kit/core';\nimport { useCallback } from 'react';\nimport { DropIndicatorPosition } from './constants.js';\nimport type { DnDKitTree } from './types.js';\n\nexport const useTreeAnnouncements = <T,>(\n visibleItemsDictionary: Record<UniqueIdentifier, DnDKitTree.Item<T>>,\n dropIndicatorPosition: DnDKitTree.DropIndicatorPositionValues,\n): Announcements => {\n const onDragStart: Announcements['onDragStart'] = useCallback(\n ({ active: { id } }) => `Picked up draggable item from position ${visibleItemsDictionary[id]?.realIndex + 1}.`,\n [visibleItemsDictionary],\n );\n\n const onDragMove: Announcements['onDragOver'] = useCallback(\n ({ over }) => {\n if (over) {\n if (!visibleItemsDictionary[over.id]) {\n return `Draggable item was moved a container.`;\n }\n const overIndex = visibleItemsDictionary[over.id].realIndex + 1;\n if (dropIndicatorPosition === DropIndicatorPosition.Inside) {\n return `Draggable item was moved inside the item at position ${overIndex}.`;\n }\n if (dropIndicatorPosition === DropIndicatorPosition.Before) {\n return `Draggable item was moved to position ${overIndex - 1}.`;\n }\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, dropIndicatorPosition],\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]?.realIndex + 1;\n if (dropIndicatorPosition === DropIndicatorPosition.Inside) {\n return `Draggable item was dropped inside the item at position ${overIndex}.`;\n }\n if (dropIndicatorPosition === DropIndicatorPosition.Before) {\n return `Draggable item was dropped over position ${overIndex - 1}.`;\n }\n return `Draggable item was dropped over position ${overIndex}.`;\n }\n\n return `Draggable item was dropped at it's original position.`;\n },\n [dropIndicatorPosition, visibleItemsDictionary],\n );\n\n const onDragCancel: Announcements['onDragCancel'] = useCallback(\n ({ active: { id } }) =>\n `Dragging was cancelled. Draggable item from position ${\n visibleItemsDictionary[id].realIndex + 1\n } was dropped at it's initial position.`,\n [visibleItemsDictionary],\n );\n\n return { onDragStart, onDragOver, onDragMove, onDragEnd, onDragCancel };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA4B;AAC5B,uBAAsC;AAG/B,MAAM,uBAAuB,CAClC,wBACA,0BACkB;AAClB,QAAM,kBAA4C;AAAA,IAChD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,0CAA0C,uBAAuB,EAAE,GAAG,YAAY;AAAA,IAC1G,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAA0C;AAAA,IAC9C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,YAAI,CAAC,uBAAuB,KAAK,EAAE,GAAG;AACpC,iBAAO;AAAA,QACT;AACA,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,wDAAwD;AAAA,QACjE;AACA,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,wCAAwC,YAAY;AAAA,QAC7D;AACA,eAAO,wCAAwC;AAAA,MACjD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,wBAAwB,qBAAqB;AAAA,EAChD;AAEA,QAAM,aAA0C;AAEhD,QAAM,gBAAwC;AAAA,IAC5C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,GAAG,YAAY;AAC/D,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,0DAA0D;AAAA,QACnE;AACA,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,4CAA4C,YAAY;AAAA,QACjE;AACA,eAAO,4CAA4C;AAAA,MACrD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,uBAAuB,sBAAsB;AAAA,EAChD;AAEA,QAAM,mBAA8C;AAAA,IAClD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAChB,wDACE,uBAAuB,EAAE,EAAE,YAAY;AAAA,IAE3C,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAA4B;AAC5B,uBAAsC;AAG/B,MAAM,uBAAuB,CAClC,wBACA,0BACkB;AAClB,QAAM,kBAA4C;AAAA,IAChD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,0CAA0C,uBAAuB,EAAE,GAAG,YAAY,CAAC;AAAA,IAC3G,CAAC,sBAAsB;AAAA,EACzB;AAEA,QAAM,iBAA0C;AAAA,IAC9C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,YAAI,CAAC,uBAAuB,KAAK,EAAE,GAAG;AACpC,iBAAO;AAAA,QACT;AACA,cAAM,YAAY,uBAAuB,KAAK,EAAE,EAAE,YAAY;AAC9D,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,wDAAwD,SAAS;AAAA,QAC1E;AACA,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,wCAAwC,YAAY,CAAC;AAAA,QAC9D;AACA,eAAO,wCAAwC,SAAS;AAAA,MAC1D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,wBAAwB,qBAAqB;AAAA,EAChD;AAEA,QAAM,aAA0C;AAEhD,QAAM,gBAAwC;AAAA,IAC5C,CAAC,EAAE,KAAK,MAAM;AACZ,UAAI,MAAM;AACR,cAAM,YAAY,uBAAuB,KAAK,EAAE,GAAG,YAAY;AAC/D,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,0DAA0D,SAAS;AAAA,QAC5E;AACA,YAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,iBAAO,4CAA4C,YAAY,CAAC;AAAA,QAClE;AACA,eAAO,4CAA4C,SAAS;AAAA,MAC9D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,uBAAuB,sBAAsB;AAAA,EAChD;AAEA,QAAM,mBAA8C;AAAA,IAClD,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAChB,wDACE,uBAAuB,EAAE,EAAE,YAAY,CACzC;AAAA,IACF,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO,EAAE,aAAa,YAAY,YAAY,WAAW,aAAa;AACxE;",
6
6
  "names": []
7
7
  }
@@ -47,8 +47,7 @@ const useTreeDndkitConfig = ({
47
47
  return {
48
48
  root: flattenedItemsProp
49
49
  };
50
- } else
51
- return flattenedItemsProp;
50
+ } else return flattenedItemsProp;
52
51
  }, [flattenedItemsProp]);
53
52
  return (0, import_useMultiTreeDndkitConfig.useMultiTreeDndkitConfig)({
54
53
  flattenedItems,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/useTreeDndkitConfig.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { useMemo } from 'react';\nimport { useMultiTreeDndkitConfig } from './useMultiTreeDndkitConfig.js';\nimport type { DnDKitTree } from './types.js';\n\nexport const useTreeDndkitConfig = <T,>({\n flattenedItems: flattenedItemsProp,\n onReorder,\n isHorizontalDnD = false,\n isExpandable = false,\n getIsDropValid = () => true,\n maxDragAndDropLevel = Infinity,\n}: DnDKitTree.UseTreeConfigArgs<T>): DnDKitTree.UseTreeConfigReturn<T> => {\n const flattenedItems: Record<string, DnDKitTree.Item<T>[]> = useMemo(() => {\n if (Array.isArray(flattenedItemsProp)) {\n return {\n root: flattenedItemsProp,\n } as Record<string, DnDKitTree.Item<T>[]>;\n } else return flattenedItemsProp;\n }, [flattenedItemsProp]);\n\n return useMultiTreeDndkitConfig({\n flattenedItems,\n onReorder,\n isHorizontalDnD,\n isExpandable,\n getIsDropValid,\n maxDragAndDropLevel,\n });\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAwB;AACxB,sCAAyC;AAGlC,MAAM,sBAAsB,CAAK;AAAA,EACtC,gBAAgB;AAAA,EAChB;AAAA,EACA,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,sBAAsB;AACxB,MAA0E;AACxE,QAAM,qBAAuD,sBAAQ,MAAM;AACzE,QAAI,MAAM,QAAQ,kBAAkB,GAAG;AACrC,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAAO,aAAO;AAAA,EAChB,GAAG,CAAC,kBAAkB,CAAC;AAEvB,aAAO,0DAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADEvB,mBAAwB;AACxB,sCAAyC;AAGlC,MAAM,sBAAsB,CAAK;AAAA,EACtC,gBAAgB;AAAA,EAChB;AAAA,EACA,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,sBAAsB;AACxB,MAA0E;AACxE,QAAM,qBAAuD,sBAAQ,MAAM;AACzE,QAAI,MAAM,QAAQ,kBAAkB,GAAG;AACrC,aAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF,MAAO,QAAO;AAAA,EAChB,GAAG,CAAC,kBAAkB,CAAC;AAEvB,aAAO,0DAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -52,8 +52,7 @@ const useTreePreviewHandlers = ({
52
52
  );
53
53
  const handlePreviewDragMove = (0, import_react.useCallback)(
54
54
  ({ collisions }) => {
55
- if (collisions === null || collisions.length === 0)
56
- return;
55
+ if (collisions === null || collisions.length === 0) return;
57
56
  const firstCollision = collisions[0];
58
57
  const dropIndicatorPosition = firstCollision.data?.dropIndicatorPosition;
59
58
  setDropIndicatorPosition(dropIndicatorPosition);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/useTreePreviewHandlers.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["import { useCallback } from 'react';\nimport type { DragStartEvent, DragOverEvent, DragMoveEvent } from '@dnd-kit/core';\nimport type { DnDKitTree } from './types.js';\n\nexport const useTreePreviewHandlers = ({\n setActive,\n setOver,\n setDropIndicatorPosition,\n}: DnDKitTree.UseTreePreviewHandlersArgs): DnDKitTree.UseTreePreviewHandlersReturn => {\n const resetState = useCallback(() => {\n setOver(null);\n setActive(null);\n\n document.body.style.setProperty('cursor', '');\n }, [setOver, setActive]);\n\n const handlePreviewDragStart = useCallback(\n ({ active }: DragStartEvent) => {\n setActive(active);\n document.body.style.setProperty('cursor', 'grabbing');\n },\n [setActive],\n );\n\n const handlePreviewDragMove = useCallback(\n ({ collisions }: DragMoveEvent) => {\n if (collisions === null || collisions.length === 0) return;\n\n const firstCollision = collisions[0];\n\n const dropIndicatorPosition = (firstCollision.data as DnDKitTree.DragEventData)?.dropIndicatorPosition;\n\n setDropIndicatorPosition(dropIndicatorPosition);\n },\n [setDropIndicatorPosition],\n );\n\n const handlePreviewDragOver = useCallback(\n ({ over }: DragOverEvent) => {\n setOver(over);\n },\n [setOver],\n );\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 handlePreviewDragOver,\n handlePreviewDragEnd,\n handlePreviewDragCancel,\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAIrB,MAAM,yBAAyB,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,MAAsF;AACpF,QAAM,iBAAa,0BAAY,MAAM;AACnC,YAAQ,IAAI;AACZ,cAAU,IAAI;AAEd,aAAS,KAAK,MAAM,YAAY,UAAU,EAAE;AAAA,EAC9C,GAAG,CAAC,SAAS,SAAS,CAAC;AAEvB,QAAM,6BAAyB;AAAA,IAC7B,CAAC,EAAE,OAAO,MAAsB;AAC9B,gBAAU,MAAM;AAChB,eAAS,KAAK,MAAM,YAAY,UAAU,UAAU;AAAA,IACtD;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,4BAAwB;AAAA,IAC5B,CAAC,EAAE,WAAW,MAAqB;AACjC,UAAI,eAAe,QAAQ,WAAW,WAAW;AAAG;AAEpD,YAAM,iBAAiB,WAAW,CAAC;AAEnC,YAAM,wBAAyB,eAAe,MAAmC;AAEjF,+BAAyB,qBAAqB;AAAA,IAChD;AAAA,IACA,CAAC,wBAAwB;AAAA,EAC3B;AAEA,QAAM,4BAAwB;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAqB;AAC3B,cAAQ,IAAI;AAAA,IACd;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,QAAM,2BAAuB,0BAAY,MAAM;AAC7C,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,8BAA0B,0BAAY,MAAM;AAChD,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA4B;AAIrB,MAAM,yBAAyB,CAAC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,MAAsF;AACpF,QAAM,iBAAa,0BAAY,MAAM;AACnC,YAAQ,IAAI;AACZ,cAAU,IAAI;AAEd,aAAS,KAAK,MAAM,YAAY,UAAU,EAAE;AAAA,EAC9C,GAAG,CAAC,SAAS,SAAS,CAAC;AAEvB,QAAM,6BAAyB;AAAA,IAC7B,CAAC,EAAE,OAAO,MAAsB;AAC9B,gBAAU,MAAM;AAChB,eAAS,KAAK,MAAM,YAAY,UAAU,UAAU;AAAA,IACtD;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,4BAAwB;AAAA,IAC5B,CAAC,EAAE,WAAW,MAAqB;AACjC,UAAI,eAAe,QAAQ,WAAW,WAAW,EAAG;AAEpD,YAAM,iBAAiB,WAAW,CAAC;AAEnC,YAAM,wBAAyB,eAAe,MAAmC;AAEjF,+BAAyB,qBAAqB;AAAA,IAChD;AAAA,IACA,CAAC,wBAAwB;AAAA,EAC3B;AAEA,QAAM,4BAAwB;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAqB;AAC3B,cAAQ,IAAI;AAAA,IACd;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,QAAM,2BAAuB,0BAAY,MAAM;AAC7C,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,8BAA0B,0BAAY,MAAM;AAChD,eAAW;AAAA,EACb,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -35,8 +35,7 @@ module.exports = __toCommonJS(utilities_exports);
35
35
  var React = __toESM(require("react"));
36
36
  var import_constants = require("./constants.js");
37
37
  const getMinDepth = (item) => {
38
- if (item)
39
- return item.depth;
38
+ if (item) return item.depth;
40
39
  return 0;
41
40
  };
42
41
  const getProjection = (visibleItems, itemsDictonary, over, dropIndicatorPosition, isExpandable, active) => {
@@ -72,8 +71,7 @@ const getProjection = (visibleItems, itemsDictonary, over, dropIndicatorPosition
72
71
  return { depth: getMinDepth(nextItem), parentId: nextItem?.parentId, position };
73
72
  };
74
73
  const removeChildrenOf = (items, id) => {
75
- if (id === null || id === void 0)
76
- return items;
74
+ if (id === null || id === void 0) return items;
77
75
  const excludeParentIds = [id];
78
76
  return items.filter((item) => {
79
77
  if (item.parentId !== null && excludeParentIds.includes(item.parentId)) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tree/utilities.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable max-params */\nimport type { Over, Active, UniqueIdentifier } from '@dnd-kit/core';\nimport { DropIndicatorPosition } from './constants.js';\nimport type { DnDKitTree } from './types.js';\n\nconst getMinDepth = <T,>(item: DnDKitTree.Item<T>) => {\n if (item) return item.depth;\n return 0;\n};\n\nexport const getProjection = <T,>(\n visibleItems: Record<string, DnDKitTree.Item<T>[]>,\n itemsDictonary: Record<UniqueIdentifier, DnDKitTree.Item<T>>,\n over: Over,\n dropIndicatorPosition: DnDKitTree.DropIndicatorPositionValues,\n isExpandable: boolean,\n active: Active,\n): { depth: number; parentId: UniqueIdentifier | null; position?: number } | null => {\n if (!itemsDictonary[over.id]) {\n return { depth: 0, parentId: null };\n }\n\n const overElement = itemsDictonary[over.id];\n const overContainer = itemsDictonary[over.id].container || 'root';\n const activeElement = itemsDictonary[active.id];\n const activeContainer = itemsDictonary[active.id].container || 'root';\n if (dropIndicatorPosition === DropIndicatorPosition.None) {\n return null;\n }\n\n const visibleItemsByContainer = visibleItems[overContainer];\n\n const overIndex = visibleItemsByContainer.findIndex((item) => item.uid === over.id);\n\n const previousItem = visibleItemsByContainer[overIndex];\n const nextItem = visibleItemsByContainer[overIndex + 1];\n\n if (dropIndicatorPosition === DropIndicatorPosition.Inside && isExpandable) {\n return {\n depth: itemsDictonary[over.id].depth + 1,\n parentId: over.id,\n position: over.id === activeElement.parentId ? 0 : previousItem?.childrenCount ?? 0,\n };\n }\n if (dropIndicatorPosition === DropIndicatorPosition.Before) {\n return { depth: getMinDepth(previousItem), parentId: previousItem.parentId, position: 0 };\n }\n\n const isUp = previousItem?.realIndex < activeElement.realIndex;\n let position =\n nextItem === undefined || (activeContainer === overContainer && !isUp) ? previousItem?.index : nextItem.index;\n\n if (\n (activeContainer !== overContainer || activeElement.parentId !== overElement.parentId) &&\n nextItem === undefined\n ) {\n position += 1;\n }\n\n return { depth: getMinDepth(nextItem), parentId: nextItem?.parentId, position };\n};\n\nexport const removeChildrenOf = <T, S extends Pick<DnDKitTree.Item<T>, 'uid' | 'parentId'>>(\n items: S[],\n id: UniqueIdentifier | null | undefined,\n): S[] => {\n if (id === null || id === undefined) return items;\n const excludeParentIds = [id];\n\n return items.filter((item) => {\n if (item.parentId !== null && excludeParentIds.includes(item.parentId)) {\n excludeParentIds.push(item.uid);\n return false;\n }\n return true;\n });\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,uBAAsC;AAGtC,MAAM,cAAc,CAAK,SAA6B;AACpD,MAAI;AAAM,WAAO,KAAK;AACtB,SAAO;AACT;AAEO,MAAM,gBAAgB,CAC3B,cACA,gBACA,MACA,uBACA,cACA,WACmF;AACnF,MAAI,CAAC,eAAe,KAAK,EAAE,GAAG;AAC5B,WAAO,EAAE,OAAO,GAAG,UAAU,KAAK;AAAA,EACpC;AAEA,QAAM,cAAc,eAAe,KAAK,EAAE;AAC1C,QAAM,gBAAgB,eAAe,KAAK,EAAE,EAAE,aAAa;AAC3D,QAAM,gBAAgB,eAAe,OAAO,EAAE;AAC9C,QAAM,kBAAkB,eAAe,OAAO,EAAE,EAAE,aAAa;AAC/D,MAAI,0BAA0B,uCAAsB,MAAM;AACxD,WAAO;AAAA,EACT;AAEA,QAAM,0BAA0B,aAAa,aAAa;AAE1D,QAAM,YAAY,wBAAwB,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAElF,QAAM,eAAe,wBAAwB,SAAS;AACtD,QAAM,WAAW,wBAAwB,YAAY,CAAC;AAEtD,MAAI,0BAA0B,uCAAsB,UAAU,cAAc;AAC1E,WAAO;AAAA,MACL,OAAO,eAAe,KAAK,EAAE,EAAE,QAAQ;AAAA,MACvC,UAAU,KAAK;AAAA,MACf,UAAU,KAAK,OAAO,cAAc,WAAW,IAAI,cAAc,iBAAiB;AAAA,IACpF;AAAA,EACF;AACA,MAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,WAAO,EAAE,OAAO,YAAY,YAAY,GAAG,UAAU,aAAa,UAAU,UAAU,EAAE;AAAA,EAC1F;AAEA,QAAM,OAAO,cAAc,YAAY,cAAc;AACrD,MAAI,WACF,aAAa,UAAc,oBAAoB,iBAAiB,CAAC,OAAQ,cAAc,QAAQ,SAAS;AAE1G,OACG,oBAAoB,iBAAiB,cAAc,aAAa,YAAY,aAC7E,aAAa,QACb;AACA,gBAAY;AAAA,EACd;AAEA,SAAO,EAAE,OAAO,YAAY,QAAQ,GAAG,UAAU,UAAU,UAAU,SAAS;AAChF;AAEO,MAAM,mBAAmB,CAC9B,OACA,OACQ;AACR,MAAI,OAAO,QAAQ,OAAO;AAAW,WAAO;AAC5C,QAAM,mBAAmB,CAAC,EAAE;AAE5B,SAAO,MAAM,OAAO,CAAC,SAAS;AAC5B,QAAI,KAAK,aAAa,QAAQ,iBAAiB,SAAS,KAAK,QAAQ,GAAG;AACtE,uBAAiB,KAAK,KAAK,GAAG;AAC9B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AACH;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,uBAAsC;AAGtC,MAAM,cAAc,CAAK,SAA6B;AACpD,MAAI,KAAM,QAAO,KAAK;AACtB,SAAO;AACT;AAEO,MAAM,gBAAgB,CAC3B,cACA,gBACA,MACA,uBACA,cACA,WACmF;AACnF,MAAI,CAAC,eAAe,KAAK,EAAE,GAAG;AAC5B,WAAO,EAAE,OAAO,GAAG,UAAU,KAAK;AAAA,EACpC;AAEA,QAAM,cAAc,eAAe,KAAK,EAAE;AAC1C,QAAM,gBAAgB,eAAe,KAAK,EAAE,EAAE,aAAa;AAC3D,QAAM,gBAAgB,eAAe,OAAO,EAAE;AAC9C,QAAM,kBAAkB,eAAe,OAAO,EAAE,EAAE,aAAa;AAC/D,MAAI,0BAA0B,uCAAsB,MAAM;AACxD,WAAO;AAAA,EACT;AAEA,QAAM,0BAA0B,aAAa,aAAa;AAE1D,QAAM,YAAY,wBAAwB,UAAU,CAAC,SAAS,KAAK,QAAQ,KAAK,EAAE;AAElF,QAAM,eAAe,wBAAwB,SAAS;AACtD,QAAM,WAAW,wBAAwB,YAAY,CAAC;AAEtD,MAAI,0BAA0B,uCAAsB,UAAU,cAAc;AAC1E,WAAO;AAAA,MACL,OAAO,eAAe,KAAK,EAAE,EAAE,QAAQ;AAAA,MACvC,UAAU,KAAK;AAAA,MACf,UAAU,KAAK,OAAO,cAAc,WAAW,IAAI,cAAc,iBAAiB;AAAA,IACpF;AAAA,EACF;AACA,MAAI,0BAA0B,uCAAsB,QAAQ;AAC1D,WAAO,EAAE,OAAO,YAAY,YAAY,GAAG,UAAU,aAAa,UAAU,UAAU,EAAE;AAAA,EAC1F;AAEA,QAAM,OAAO,cAAc,YAAY,cAAc;AACrD,MAAI,WACF,aAAa,UAAc,oBAAoB,iBAAiB,CAAC,OAAQ,cAAc,QAAQ,SAAS;AAE1G,OACG,oBAAoB,iBAAiB,cAAc,aAAa,YAAY,aAC7E,aAAa,QACb;AACA,gBAAY;AAAA,EACd;AAEA,SAAO,EAAE,OAAO,YAAY,QAAQ,GAAG,UAAU,UAAU,UAAU,SAAS;AAChF;AAEO,MAAM,mBAAmB,CAC9B,OACA,OACQ;AACR,MAAI,OAAO,QAAQ,OAAO,OAAW,QAAO;AAC5C,QAAM,mBAAmB,CAAC,EAAE;AAE5B,SAAO,MAAM,OAAO,CAAC,SAAS;AAC5B,QAAI,KAAK,aAAa,QAAQ,iBAAiB,SAAS,KAAK,QAAQ,GAAG;AACtE,uBAAiB,KAAK,KAAK,GAAG;AAC9B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/exported-related/DropIndicator.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\n\ntype DropIndicatorPositionT = (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition] | false;\ninterface DropIndicatorPropsT {\n vertical: boolean;\n dropIndicatorPosition: DropIndicatorPositionT;\n isLast?: boolean;\n isDropValid: boolean;\n}\n\nconst DropIndicatorPosition = {\n None: 'none',\n Before: 'before',\n After: 'after',\n Inside: 'inside',\n};\n\nconst getPositionStyles = ({\n dropIndicatorPosition,\n vertical,\n}: {\n dropIndicatorPosition: (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition];\n vertical: boolean;\n}) => {\n if (vertical) {\n return `\n left: ${dropIndicatorPosition === DropIndicatorPosition.Before ? '0' : 'unset'};\n right: ${dropIndicatorPosition === DropIndicatorPosition.After ? '0' : 'unset'};\n `;\n }\n return `\n top: ${dropIndicatorPosition === DropIndicatorPosition.Before ? '0' : 'unset'};\n bottom: ${dropIndicatorPosition === DropIndicatorPosition.After ? '0' : 'unset'};\n `;\n};\n\nconst getCircleStyles = ({\n dropIndicatorPosition,\n vertical,\n}: {\n dropIndicatorPosition: (typeof DropIndicatorPosition)[keyof typeof DropIndicatorPosition];\n vertical: boolean;\n}) => ({\n position: 'absolute',\n zIndex: 1000,\n top: vertical || dropIndicatorPosition === DropIndicatorPosition.After ? 'unset' : '-2px',\n bottom: vertical || dropIndicatorPosition === DropIndicatorPosition.Before ? 'unset' : '-2px',\n left: !vertical || dropIndicatorPosition === DropIndicatorPosition.After ? 'unset' : '-2px',\n right: !vertical || dropIndicatorPosition === DropIndicatorPosition.Before ? 'unset' : '-2px',\n opacity: 1,\n});\n\nconst StyledIndicator = styled.div<{ isDropValid: boolean; vertical: boolean; dropIndicatorPosition: string }>`\n position: absolute;\n ${getPositionStyles}\n box-sizing: border-box;\n width: ${(props) => (props.vertical ? '2px' : '100%')};\n height: ${(props) => (props.vertical ? '100%' : '2px')};\n background-color: ${({ isDropValid, theme }) => (isDropValid ? theme.colors.brand[600] : theme.colors.danger[900])};\n z-index: ${1000};\n`;\n\nconst CircleIndicator = (style: Record<string, unknown>, isDropValid: boolean) => (\n <svg height=\"6\" width=\"6\" style={style}>\n <circle cx=\"3\" cy=\"3\" r=\"3\" strokeWidth=\"0\" fill={isDropValid ? '#1E79C2' : '#C64252'} />\n </svg>\n);\n\nexport const DropIndicator = (props: DropIndicatorPropsT) => {\n const { vertical, dropIndicatorPosition, isLast, isDropValid } = props;\n if (\n dropIndicatorPosition === false ||\n dropIndicatorPosition === DropIndicatorPosition.None ||\n dropIndicatorPosition === DropIndicatorPosition.Inside\n )\n return null;\n\n const safeDropIndicatorPosition = isLast ? DropIndicatorPosition.Before : dropIndicatorPosition;\n\n return (\n <>\n {CircleIndicator(getCircleStyles({ ...props, dropIndicatorPosition: safeDropIndicatorPosition }), isDropValid)}\n <StyledIndicator\n vertical={vertical}\n dropIndicatorPosition={safeDropIndicatorPosition}\n isDropValid={isDropValid}\n />\n </>\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACgEnB,SAgBA,UAhBA,KAgBA,YAhBA;AAhEJ,SAAS,cAAc;AAUvB,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,UAAU;AACZ,WAAO;AAAA,cACG,0BAA0B,sBAAsB,SAAS,MAAM;AAAA,eAC9D,0BAA0B,sBAAsB,QAAQ,MAAM;AAAA;AAAA,EAE3E;AACA,SAAO;AAAA,aACI,0BAA0B,sBAAsB,SAAS,MAAM;AAAA,gBAC5D,0BAA0B,sBAAsB,QAAQ,MAAM;AAAA;AAE9E;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AACF,OAGO;AAAA,EACL,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACnF,QAAQ,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,MAAM,CAAC,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACrF,OAAO,CAAC,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,SAAS;AACX;AAEA,MAAM,kBAAkB,OAAO;AAAA;AAAA,IAE3B;AAAA;AAAA,WAEO,CAAC,UAAW,MAAM,WAAW,QAAQ;AAAA,YACpC,CAAC,UAAW,MAAM,WAAW,SAAS;AAAA,sBAC5B,CAAC,EAAE,aAAa,MAAM,MAAO,cAAc,MAAM,OAAO,MAAM,GAAG,IAAI,MAAM,OAAO,OAAO,GAAG;AAAA,aACrG;AAAA;AAGb,MAAM,kBAAkB,CAAC,OAAgC,gBACvD,oBAAC,SAAI,QAAO,KAAI,OAAM,KAAI,OACxB,8BAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,aAAY,KAAI,MAAM,cAAc,YAAY,WAAW,GACzF;AAGK,MAAM,gBAAgB,CAAC,UAA+B;AAC3D,QAAM,EAAE,UAAU,uBAAuB,QAAQ,YAAY,IAAI;AACjE,MACE,0BAA0B,SAC1B,0BAA0B,sBAAsB,QAChD,0BAA0B,sBAAsB;AAEhD,WAAO;AAET,QAAM,4BAA4B,SAAS,sBAAsB,SAAS;AAE1E,SACE,iCACG;AAAA,oBAAgB,gBAAgB,EAAE,GAAG,OAAO,uBAAuB,0BAA0B,CAAC,GAAG,WAAW;AAAA,IAC7G;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,uBAAuB;AAAA,QACvB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
5
+ "mappings": "AAAA,YAAY,WAAW;ACgEnB,SAgBA,UAhBA,KAgBA,YAhBA;AAhEJ,SAAS,cAAc;AAUvB,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AACF,MAGM;AACJ,MAAI,UAAU;AACZ,WAAO;AAAA,cACG,0BAA0B,sBAAsB,SAAS,MAAM,OAAO;AAAA,eACrE,0BAA0B,sBAAsB,QAAQ,MAAM,OAAO;AAAA;AAAA,EAElF;AACA,SAAO;AAAA,aACI,0BAA0B,sBAAsB,SAAS,MAAM,OAAO;AAAA,gBACnE,0BAA0B,sBAAsB,QAAQ,MAAM,OAAO;AAAA;AAErF;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AACF,OAGO;AAAA,EACL,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACnF,QAAQ,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,MAAM,CAAC,YAAY,0BAA0B,sBAAsB,QAAQ,UAAU;AAAA,EACrF,OAAO,CAAC,YAAY,0BAA0B,sBAAsB,SAAS,UAAU;AAAA,EACvF,SAAS;AACX;AAEA,MAAM,kBAAkB,OAAO;AAAA;AAAA,IAE3B,iBAAiB;AAAA;AAAA,WAEV,CAAC,UAAW,MAAM,WAAW,QAAQ,MAAO;AAAA,YAC3C,CAAC,UAAW,MAAM,WAAW,SAAS,KAAM;AAAA,sBAClC,CAAC,EAAE,aAAa,MAAM,MAAO,cAAc,MAAM,OAAO,MAAM,GAAG,IAAI,MAAM,OAAO,OAAO,GAAG,CAAE;AAAA,aACvG,GAAI;AAAA;AAGjB,MAAM,kBAAkB,CAAC,OAAgC,gBACvD,oBAAC,SAAI,QAAO,KAAI,OAAM,KAAI,OACxB,8BAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,aAAY,KAAI,MAAM,cAAc,YAAY,WAAW,GACzF;AAGK,MAAM,gBAAgB,CAAC,UAA+B;AAC3D,QAAM,EAAE,UAAU,uBAAuB,QAAQ,YAAY,IAAI;AACjE,MACE,0BAA0B,SAC1B,0BAA0B,sBAAsB,QAChD,0BAA0B,sBAAsB;AAEhD,WAAO;AAET,QAAM,4BAA4B,SAAS,sBAAsB,SAAS;AAE1E,SACE,iCACG;AAAA,oBAAgB,gBAAgB,EAAE,GAAG,OAAO,uBAAuB,0BAA0B,CAAC,GAAG,WAAW;AAAA,IAC7G;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,uBAAuB;AAAA,QACvB;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -1,16 +1,14 @@
1
1
  import * as React from "react";
2
2
  const customCollisionDetection = (sensorContext) => ({ droppableContainers, collisionRect }) => {
3
3
  const { flattenedItems, active, itemsDictionary } = sensorContext.current;
4
- if (!active)
5
- return [];
4
+ if (!active) return [];
6
5
  const activeParent = itemsDictionary[active.id].parentId;
7
6
  const entriesWithSameParent = droppableContainers.filter(
8
7
  ({ id }) => flattenedItems.find((item) => item.uid === id)?.parentId === activeParent
9
8
  );
10
9
  const originalContainer = entriesWithSameParent.find(({ id }) => id === active.id);
11
10
  const originalRect = originalContainer?.rect?.current;
12
- if (!originalRect)
13
- return [];
11
+ if (!originalRect) return [];
14
12
  if (originalRect.left <= collisionRect.left && collisionRect.left <= originalRect.left + originalRect.width) {
15
13
  return [{ id: originalContainer.id }];
16
14
  }