@os-design/drag-sort 1.0.27 → 1.0.28

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 (54) hide show
  1. package/dist/cjs/DragAndDrop.js +1 -1
  2. package/dist/cjs/DragAndDrop.js.map +1 -1
  3. package/dist/cjs/Draggable.js +1 -1
  4. package/dist/cjs/Draggable.js.map +1 -1
  5. package/dist/cjs/Droppable.js +1 -1
  6. package/dist/cjs/Droppable.js.map +1 -1
  7. package/dist/cjs/index.js +1 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/utils/ListStore.js +2 -3
  10. package/dist/cjs/utils/ListStore.js.map +1 -1
  11. package/dist/cjs/utils/NodeList.js +2 -3
  12. package/dist/cjs/utils/NodeList.js.map +1 -1
  13. package/dist/cjs/utils/getElementOffset.js.map +1 -1
  14. package/dist/cjs/utils/getElementScroll.js.map +1 -1
  15. package/dist/cjs/utils/getNodeRect.js.map +1 -1
  16. package/dist/cjs/utils/useAppendClassName.js.map +1 -1
  17. package/dist/cjs/utils/useBlankNode.js.map +1 -1
  18. package/dist/cjs/utils/useDragAndDrop.js +1 -1
  19. package/dist/cjs/utils/useDragAndDrop.js.map +1 -1
  20. package/dist/cjs/utils/useDragEffect.js.map +1 -1
  21. package/dist/cjs/utils/useDroppable.js +1 -1
  22. package/dist/cjs/utils/useDroppable.js.map +1 -1
  23. package/dist/cjs/utils/useGeneratedId.js.map +1 -1
  24. package/dist/cjs/utils/useGetNodeStyle.js.map +1 -1
  25. package/dist/cjs/utils/useInitRect.js.map +1 -1
  26. package/dist/cjs/utils/useInitScrollOffset.js.map +1 -1
  27. package/dist/cjs/utils/useMoveNode.js.map +1 -1
  28. package/dist/cjs/utils/useScrollEventByPoint.js.map +1 -1
  29. package/dist/cjs/utils/useTargetList.js.map +1 -1
  30. package/dist/cjs/utils/useTransitionStyle.js.map +1 -1
  31. package/dist/esm/DragAndDrop.js.map +1 -1
  32. package/dist/esm/Draggable.js.map +1 -1
  33. package/dist/esm/Droppable.js.map +1 -1
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/utils/ListStore.js.map +1 -1
  36. package/dist/esm/utils/NodeList.js.map +1 -1
  37. package/dist/esm/utils/getElementOffset.js.map +1 -1
  38. package/dist/esm/utils/getElementScroll.js.map +1 -1
  39. package/dist/esm/utils/getNodeRect.js.map +1 -1
  40. package/dist/esm/utils/useAppendClassName.js.map +1 -1
  41. package/dist/esm/utils/useBlankNode.js.map +1 -1
  42. package/dist/esm/utils/useDragAndDrop.js.map +1 -1
  43. package/dist/esm/utils/useDragEffect.js.map +1 -1
  44. package/dist/esm/utils/useDroppable.js.map +1 -1
  45. package/dist/esm/utils/useGeneratedId.js.map +1 -1
  46. package/dist/esm/utils/useGetNodeStyle.js.map +1 -1
  47. package/dist/esm/utils/useInitRect.js.map +1 -1
  48. package/dist/esm/utils/useInitScrollOffset.js.map +1 -1
  49. package/dist/esm/utils/useMoveNode.js.map +1 -1
  50. package/dist/esm/utils/useScrollEventByPoint.js.map +1 -1
  51. package/dist/esm/utils/useTargetList.js.map +1 -1
  52. package/dist/esm/utils/useTransitionStyle.js.map +1 -1
  53. package/dist/types/utils/useScrollEventByPoint.d.ts.map +1 -1
  54. package/package.json +11 -11
@@ -18,7 +18,7 @@ var _useGeneratedId = _interopRequireDefault(require("./utils/useGeneratedId"));
18
18
  var _useInitRect = _interopRequireDefault(require("./utils/useInitRect"));
19
19
  var _useTransitionStyle = _interopRequireDefault(require("./utils/useTransitionStyle"));
20
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
23
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
24
24
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -1 +1 @@
1
- {"version":3,"file":"DragAndDrop.js","names":["_portal","_interopRequireDefault","require","_useAutoScroll","_useDrag2","_useMemoObject","_usePreventDefaultEvent","_react","_interopRequireWildcard","_ListStore","_useDragAndDrop","_useDragEffect","_useGeneratedId","_useInitRect","_useTransitionStyle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","DragAndDrop","_ref","draggedNodeContainer","_ref$minMouseDistPx","minMouseDistPx","_ref$longPressMs","longPressMs","_ref$autoScrollDistPe","autoScrollDistPercent","_ref$autoScrollMaxSpe","autoScrollMaxSpeedPx","_ref$transitionDelayM","transitionDelayMs","_ref$onDragEnd","onDragEnd","children","listStoreRef","useRef","ListStore","generatedId","useGeneratedId","nodeClassName","useMemo","concat","_useState","useState","_useState2","draggedNode","setDraggedNode","startNodeRef","_useState3","x","y","_useState4","cursorPosition","setCursorPosition","registerList","useCallback","list","current","add","deregisterList","id","remove","useTransitionStyle","className","ms","enabled","onDragStart","pos","startPos","startNode","_startNode$node","node","nodeRef","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","_useDrag","useDrag","onMouseDown","onTouchStart","mouseDownHandler","touchStartHandler","usePreventDefaultEvent","document","body","useDragEffect","useAutoScroll","distPercent","maxSpeedPx","initRect","useInitRect","undefined","dragAndDropContext","useMemoObject","createElement","DragAndDropContext","Provider","container","renderDraggedNode","index","style","left","top","width","initWidth","height","initHeight","zIndex","_default","exports"],"sources":["../../src/DragAndDrop.tsx"],"sourcesContent":["import Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport useDrag, {\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n Position,\n} from '@os-design/use-drag';\nimport useMemoObject from '@os-design/use-memo-object';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport React, {\n MouseEvent,\n TouchEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\nimport useInitRect from './utils/useInitRect';\nimport useTransitionStyle from './utils/useTransitionStyle';\n\nexport interface DragAndDropProps {\n /**\n * The container in which the dragged node will be rendered.\n * @default document.body\n */\n draggedNodeContainer?: PortalProps['container'];\n /**\n * The min distance required to start dragging a node (in px).\n * @default 10\n */\n minMouseDistPx?: number;\n /**\n * The delay of the long press event required to start dragging a node on the touch device (in ms).\n * @default 500\n */\n longPressMs?: number;\n /**\n * The distance to the bound at which the list starts to scroll automatically (in percent).\n * @default 20\n */\n autoScrollDistPercent?: number;\n /**\n * The max auto scroll speed (in px).\n * @default 100\n */\n autoScrollMaxSpeedPx?: number;\n /**\n * The animation duration (in ms).\n * @default 250\n */\n transitionDelayMs?: number;\n /**\n * The callback that is called when the drag is completed.\n * @default undefined\n */\n onDragEnd?: DragEndHandler;\n /**\n * The children.\n * @default undefined\n */\n children?: React.ReactNode;\n}\n\ninterface StartNode {\n list: NodeList;\n node: ExistingNode;\n}\n\n/**\n * The container containing one or more lists with draggable nodes.\n */\nconst DragAndDrop: React.FC<DragAndDropProps> = ({\n draggedNodeContainer,\n minMouseDistPx = 10,\n longPressMs = 500,\n autoScrollDistPercent = 20,\n autoScrollMaxSpeedPx = 100,\n transitionDelayMs = 250,\n onDragEnd = () => {},\n children,\n}) => {\n // The user can drag a node between the lists (the Droppable components).\n // To determine which list a node should be dropped in, we need to store refs to all the lists.\n const listStoreRef = useRef<ListStore>(new ListStore());\n\n // The class name for a node used to set the transition style\n const generatedId = useGeneratedId();\n const nodeClassName = useMemo(() => `n${generatedId}`, [generatedId]);\n\n // The node that is currently being dragged\n const [draggedNode, setDraggedNode] = useState<DraggedNode | null>(null);\n const startNodeRef = useRef<StartNode | null>(null);\n const [cursorPosition, setCursorPosition] = useState<Position>({\n x: 0,\n y: 0,\n });\n\n // Add a new list to the store\n const registerList = useCallback((list: NodeList) => {\n listStoreRef.current.add(list);\n }, []);\n\n // Remove the existing list from the store\n const deregisterList = useCallback((id: string) => {\n listStoreRef.current.remove(id);\n }, []);\n\n // Set the style to delay transitions when the node is dragging\n useTransitionStyle({\n className: nodeClassName,\n ms: transitionDelayMs,\n enabled: !!draggedNode,\n });\n\n const onDragStart = useCallback<OnDragStart>(\n (pos: Position, startPos: Position) => {\n const startNode = startNodeRef.current;\n if (!startNode) return;\n const [, , nodeRef] = startNode.node;\n if (!nodeRef.current) return;\n const rect = nodeRef.current.getBoundingClientRect();\n setCursorPosition(pos);\n setDraggedNode({\n list: startNode.list,\n node: startNode.node,\n position: {\n x: startPos.x - rect.x,\n y: startPos.y - rect.y,\n },\n });\n startNodeRef.current = null;\n },\n []\n );\n\n const onDragMove = useCallback<OnDragMove>((pos: Position) => {\n setCursorPosition(pos);\n }, []);\n\n const dragEndHandler = useCallback<OnDragEnd>(() => {\n setDraggedNode(null);\n }, []);\n\n const { onMouseDown, onTouchStart } = useDrag({\n onDragStart,\n onDragMove,\n onDragEnd: dragEndHandler,\n minMouseDistPx,\n longPressMs,\n });\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent, list: NodeList, node: ExistingNode) => {\n startNodeRef.current = { list, node };\n onMouseDown(e);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent, list: NodeList, node: ExistingNode) => {\n startNodeRef.current = { list, node };\n onTouchStart(e);\n },\n [onTouchStart]\n );\n\n // Prevent body scrolling when the node is dragging.\n // It's important to attach the event to the body (not to the document). Otherwise, it won't work in mobile chrome.\n usePreventDefaultEvent(document.body, 'touchmove', !!draggedNode);\n\n // Implement the drag animation\n useDragEffect({\n draggedNode,\n cursorPosition,\n listStoreRef,\n onDragEnd,\n });\n\n // Auto scroll if the cursor position is located near the border\n useAutoScroll({\n enabled: !!draggedNode,\n distPercent: autoScrollDistPercent,\n maxSpeedPx: autoScrollMaxSpeedPx,\n });\n\n const initRect = useInitRect(draggedNode ? draggedNode.node[2] : undefined);\n\n const dragAndDropContext = useMemoObject({\n registerList,\n deregisterList,\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n nodeClassName,\n });\n\n return (\n <DragAndDropContext.Provider value={dragAndDropContext}>\n {children}\n\n {draggedNode && (\n <Portal container={draggedNodeContainer}>\n {draggedNode.list.renderDraggedNode({\n index: draggedNode.node[4],\n id: draggedNode.node[5],\n style: {\n position: 'fixed',\n left: cursorPosition.x - draggedNode.position.x,\n top: cursorPosition.y - draggedNode.position.y,\n width: initRect ? initRect.initWidth : undefined,\n height: initRect ? initRect.initHeight : undefined,\n zIndex: 1001,\n },\n })}\n </Portal>\n )}\n </DragAndDropContext.Provider>\n );\n};\n\nexport type { DragEndHandler } from './utils/useDragEffect';\n\nexport default DragAndDrop;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DragAndDrop.js","names":["_portal","_interopRequireDefault","require","_useAutoScroll","_useDrag2","_useMemoObject","_usePreventDefaultEvent","_react","_interopRequireWildcard","_ListStore","_useDragAndDrop","_useDragEffect","_useGeneratedId","_useInitRect","_useTransitionStyle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","DragAndDrop","_ref","draggedNodeContainer","_ref$minMouseDistPx","minMouseDistPx","_ref$longPressMs","longPressMs","_ref$autoScrollDistPe","autoScrollDistPercent","_ref$autoScrollMaxSpe","autoScrollMaxSpeedPx","_ref$transitionDelayM","transitionDelayMs","_ref$onDragEnd","onDragEnd","children","listStoreRef","useRef","ListStore","generatedId","useGeneratedId","nodeClassName","useMemo","concat","_useState","useState","_useState2","draggedNode","setDraggedNode","startNodeRef","_useState3","x","y","_useState4","cursorPosition","setCursorPosition","registerList","useCallback","list","current","add","deregisterList","id","remove","useTransitionStyle","className","ms","enabled","onDragStart","pos","startPos","startNode","_startNode$node","node","nodeRef","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","_useDrag","useDrag","onMouseDown","onTouchStart","mouseDownHandler","touchStartHandler","usePreventDefaultEvent","document","body","useDragEffect","useAutoScroll","distPercent","maxSpeedPx","initRect","useInitRect","undefined","dragAndDropContext","useMemoObject","createElement","DragAndDropContext","Provider","container","renderDraggedNode","index","style","left","top","width","initWidth","height","initHeight","zIndex","_default","exports"],"sources":["../../src/DragAndDrop.tsx"],"sourcesContent":["import Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport useDrag, {\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n Position,\n} from '@os-design/use-drag';\nimport useMemoObject from '@os-design/use-memo-object';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport React, {\n MouseEvent,\n TouchEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\nimport useInitRect from './utils/useInitRect';\nimport useTransitionStyle from './utils/useTransitionStyle';\n\nexport interface DragAndDropProps {\n /**\n * The container in which the dragged node will be rendered.\n * @default document.body\n */\n draggedNodeContainer?: PortalProps['container'];\n /**\n * The min distance required to start dragging a node (in px).\n * @default 10\n */\n minMouseDistPx?: number;\n /**\n * The delay of the long press event required to start dragging a node on the touch device (in ms).\n * @default 500\n */\n longPressMs?: number;\n /**\n * The distance to the bound at which the list starts to scroll automatically (in percent).\n * @default 20\n */\n autoScrollDistPercent?: number;\n /**\n * The max auto scroll speed (in px).\n * @default 100\n */\n autoScrollMaxSpeedPx?: number;\n /**\n * The animation duration (in ms).\n * @default 250\n */\n transitionDelayMs?: number;\n /**\n * The callback that is called when the drag is completed.\n * @default undefined\n */\n onDragEnd?: DragEndHandler;\n /**\n * The children.\n * @default undefined\n */\n children?: React.ReactNode;\n}\n\ninterface StartNode {\n list: NodeList;\n node: ExistingNode;\n}\n\n/**\n * The container containing one or more lists with draggable nodes.\n */\nconst DragAndDrop: React.FC<DragAndDropProps> = ({\n draggedNodeContainer,\n minMouseDistPx = 10,\n longPressMs = 500,\n autoScrollDistPercent = 20,\n autoScrollMaxSpeedPx = 100,\n transitionDelayMs = 250,\n onDragEnd = () => {},\n children,\n}) => {\n // The user can drag a node between the lists (the Droppable components).\n // To determine which list a node should be dropped in, we need to store refs to all the lists.\n const listStoreRef = useRef<ListStore>(new ListStore());\n\n // The class name for a node used to set the transition style\n const generatedId = useGeneratedId();\n const nodeClassName = useMemo(() => `n${generatedId}`, [generatedId]);\n\n // The node that is currently being dragged\n const [draggedNode, setDraggedNode] = useState<DraggedNode | null>(null);\n const startNodeRef = useRef<StartNode | null>(null);\n const [cursorPosition, setCursorPosition] = useState<Position>({\n x: 0,\n y: 0,\n });\n\n // Add a new list to the store\n const registerList = useCallback((list: NodeList) => {\n listStoreRef.current.add(list);\n }, []);\n\n // Remove the existing list from the store\n const deregisterList = useCallback((id: string) => {\n listStoreRef.current.remove(id);\n }, []);\n\n // Set the style to delay transitions when the node is dragging\n useTransitionStyle({\n className: nodeClassName,\n ms: transitionDelayMs,\n enabled: !!draggedNode,\n });\n\n const onDragStart = useCallback<OnDragStart>(\n (pos: Position, startPos: Position) => {\n const startNode = startNodeRef.current;\n if (!startNode) return;\n const [, , nodeRef] = startNode.node;\n if (!nodeRef.current) return;\n const rect = nodeRef.current.getBoundingClientRect();\n setCursorPosition(pos);\n setDraggedNode({\n list: startNode.list,\n node: startNode.node,\n position: {\n x: startPos.x - rect.x,\n y: startPos.y - rect.y,\n },\n });\n startNodeRef.current = null;\n },\n []\n );\n\n const onDragMove = useCallback<OnDragMove>((pos: Position) => {\n setCursorPosition(pos);\n }, []);\n\n const dragEndHandler = useCallback<OnDragEnd>(() => {\n setDraggedNode(null);\n }, []);\n\n const { onMouseDown, onTouchStart } = useDrag({\n onDragStart,\n onDragMove,\n onDragEnd: dragEndHandler,\n minMouseDistPx,\n longPressMs,\n });\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent, list: NodeList, node: ExistingNode) => {\n startNodeRef.current = { list, node };\n onMouseDown(e);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent, list: NodeList, node: ExistingNode) => {\n startNodeRef.current = { list, node };\n onTouchStart(e);\n },\n [onTouchStart]\n );\n\n // Prevent body scrolling when the node is dragging.\n // It's important to attach the event to the body (not to the document). Otherwise, it won't work in mobile chrome.\n usePreventDefaultEvent(document.body, 'touchmove', !!draggedNode);\n\n // Implement the drag animation\n useDragEffect({\n draggedNode,\n cursorPosition,\n listStoreRef,\n onDragEnd,\n });\n\n // Auto scroll if the cursor position is located near the border\n useAutoScroll({\n enabled: !!draggedNode,\n distPercent: autoScrollDistPercent,\n maxSpeedPx: autoScrollMaxSpeedPx,\n });\n\n const initRect = useInitRect(draggedNode ? draggedNode.node[2] : undefined);\n\n const dragAndDropContext = useMemoObject({\n registerList,\n deregisterList,\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n nodeClassName,\n });\n\n return (\n <DragAndDropContext.Provider value={dragAndDropContext}>\n {children}\n\n {draggedNode && (\n <Portal container={draggedNodeContainer}>\n {draggedNode.list.renderDraggedNode({\n index: draggedNode.node[4],\n id: draggedNode.node[5],\n style: {\n position: 'fixed',\n left: cursorPosition.x - draggedNode.position.x,\n top: cursorPosition.y - draggedNode.position.y,\n width: initRect ? initRect.initWidth : undefined,\n height: initRect ? initRect.initHeight : undefined,\n zIndex: 1001,\n },\n })}\n </Portal>\n )}\n </DragAndDropContext.Provider>\n );\n};\n\nexport type { DragEndHandler } from './utils/useDragEffect';\n\nexport default DragAndDrop;\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ var _useAppendClassName = _interopRequireDefault(require("./utils/useAppendClass
11
11
  var _useDragAndDrop2 = _interopRequireDefault(require("./utils/useDragAndDrop"));
12
12
  var _useDroppable2 = _interopRequireDefault(require("./utils/useDroppable"));
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
16
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
17
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -1 +1 @@
1
- {"version":3,"file":"Draggable.js","names":["_useMemoObject","_interopRequireDefault","require","_react","_interopRequireWildcard","_useAppendClassName","_useDragAndDrop2","_useDroppable2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","Draggable","_ref","index","id","children","ref","useRef","nodeRef","_useState","useState","_useState2","style","setStyle","_useDragAndDrop","useDragAndDrop","nodeClassName","_useDroppable","useDroppable","registerNode","deregisterNode","onMouseDown","onTouchStart","useEffect","current","useAppendClassName","mouseDownHandler","useCallback","touchStartHandler","handlers","useMemoObject","createElement","Fragment","_default","exports"],"sources":["../../src/Draggable.tsx"],"sourcesContent":["import useMemoObject from '@os-design/use-memo-object';\nimport React, {\n CSSProperties,\n MouseEvent,\n RefObject,\n TouchEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { Node } from './utils/NodeList';\nimport useAppendClassName from './utils/useAppendClassName';\nimport useDragAndDrop from './utils/useDragAndDrop';\nimport useDroppable from './utils/useDroppable';\n\nexport interface DraggableHandlers {\n /**\n * The handler that should be called when the mouse down event occurs.\n */\n onMouseDown: (e: MouseEvent) => void;\n /**\n * The handler that should be called when the touch start event occurs.\n */\n onTouchStart: (e: TouchEvent) => void;\n}\n\nexport interface DraggableChildrenProps {\n /**\n * The reference to the draggable list item.\n */\n ref: RefObject<any>; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * Additional styles for moving the list item.\n */\n style: CSSProperties;\n /**\n * The handlers to catch events when the user starts dragging the list item.\n */\n handlers: DraggableHandlers;\n}\n\nexport interface DraggableProps {\n /**\n * The index of the draggable node.\n */\n index: number;\n /**\n * The ID of the draggable node.\n */\n id: string;\n /**\n * The function that renders the draggable node.\n */\n children: (props: DraggableChildrenProps) => React.ReactNode;\n}\n\nconst Draggable: React.FC<DraggableProps> = ({ index, id, children }) => {\n // The reference to the list item\n const ref = useRef<HTMLDivElement | null>(null);\n // The reference to the node containing the refs to the prev and next nodes\n const nodeRef = useRef<Node>(null);\n // Additional styles for moving the list item\n const [style, setStyle] = useState<CSSProperties>({});\n\n const { nodeClassName } = useDragAndDrop();\n const { registerNode, deregisterNode, onMouseDown, onTouchStart } =\n useDroppable();\n\n // Register the node in the list\n useEffect(() => {\n nodeRef.current = registerNode({ ref, setStyle, index, id });\n return () => {\n if (!nodeRef.current) return;\n deregisterNode(nodeRef.current);\n nodeRef.current = null;\n };\n }, [deregisterNode, id, index, registerNode]);\n\n // Set the class name for the node to apply the transition style (see the DragAndDrop container)\n useAppendClassName(ref, nodeClassName);\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent) => {\n if (!nodeRef.current) return;\n onMouseDown(e, nodeRef.current);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent) => {\n if (!nodeRef.current) return;\n onTouchStart(e, nodeRef.current);\n },\n [onTouchStart]\n );\n\n const handlers = useMemoObject({\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n });\n\n return <>{children({ ref, style, handlers })}</>;\n};\n\nexport default Draggable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Draggable.js","names":["_useMemoObject","_interopRequireDefault","require","_react","_interopRequireWildcard","_useAppendClassName","_useDragAndDrop2","_useDroppable2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","Draggable","_ref","index","id","children","ref","useRef","nodeRef","_useState","useState","_useState2","style","setStyle","_useDragAndDrop","useDragAndDrop","nodeClassName","_useDroppable","useDroppable","registerNode","deregisterNode","onMouseDown","onTouchStart","useEffect","current","useAppendClassName","mouseDownHandler","useCallback","touchStartHandler","handlers","useMemoObject","createElement","Fragment","_default","exports"],"sources":["../../src/Draggable.tsx"],"sourcesContent":["import useMemoObject from '@os-design/use-memo-object';\nimport React, {\n CSSProperties,\n MouseEvent,\n RefObject,\n TouchEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { Node } from './utils/NodeList';\nimport useAppendClassName from './utils/useAppendClassName';\nimport useDragAndDrop from './utils/useDragAndDrop';\nimport useDroppable from './utils/useDroppable';\n\nexport interface DraggableHandlers {\n /**\n * The handler that should be called when the mouse down event occurs.\n */\n onMouseDown: (e: MouseEvent) => void;\n /**\n * The handler that should be called when the touch start event occurs.\n */\n onTouchStart: (e: TouchEvent) => void;\n}\n\nexport interface DraggableChildrenProps {\n /**\n * The reference to the draggable list item.\n */\n ref: RefObject<any>; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * Additional styles for moving the list item.\n */\n style: CSSProperties;\n /**\n * The handlers to catch events when the user starts dragging the list item.\n */\n handlers: DraggableHandlers;\n}\n\nexport interface DraggableProps {\n /**\n * The index of the draggable node.\n */\n index: number;\n /**\n * The ID of the draggable node.\n */\n id: string;\n /**\n * The function that renders the draggable node.\n */\n children: (props: DraggableChildrenProps) => React.ReactNode;\n}\n\nconst Draggable: React.FC<DraggableProps> = ({ index, id, children }) => {\n // The reference to the list item\n const ref = useRef<HTMLDivElement | null>(null);\n // The reference to the node containing the refs to the prev and next nodes\n const nodeRef = useRef<Node>(null);\n // Additional styles for moving the list item\n const [style, setStyle] = useState<CSSProperties>({});\n\n const { nodeClassName } = useDragAndDrop();\n const { registerNode, deregisterNode, onMouseDown, onTouchStart } =\n useDroppable();\n\n // Register the node in the list\n useEffect(() => {\n nodeRef.current = registerNode({ ref, setStyle, index, id });\n return () => {\n if (!nodeRef.current) return;\n deregisterNode(nodeRef.current);\n nodeRef.current = null;\n };\n }, [deregisterNode, id, index, registerNode]);\n\n // Set the class name for the node to apply the transition style (see the DragAndDrop container)\n useAppendClassName(ref, nodeClassName);\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent) => {\n if (!nodeRef.current) return;\n onMouseDown(e, nodeRef.current);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent) => {\n if (!nodeRef.current) return;\n onTouchStart(e, nodeRef.current);\n },\n [onTouchStart]\n );\n\n const handlers = useMemoObject({\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n });\n\n return <>{children({ ref, style, handlers })}</>;\n};\n\nexport default Draggable;\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ var _useDragAndDrop2 = _interopRequireDefault(require("./utils/useDragAndDrop"))
12
12
  var _useDroppable = require("./utils/useDroppable");
13
13
  var _useGeneratedId = _interopRequireDefault(require("./utils/useGeneratedId"));
14
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
17
  var Droppable = function Droppable(_ref) {
18
18
  var renderDraggedNode = _ref.renderDraggedNode,
@@ -1 +1 @@
1
- {"version":3,"file":"Droppable.js","names":["_useMemoObject","_interopRequireDefault","require","_react","_interopRequireWildcard","_NodeList","_useDragAndDrop2","_useDroppable","_useGeneratedId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","Droppable","_ref","renderDraggedNode","id","_ref$horizontal","horizontal","children","ref","useRef","innerRef","generatedId","useGeneratedId","droppableId","useMemo","listRef","NodeList","useEffect","current","_useDragAndDrop","useDragAndDrop","registerList","deregisterList","onMouseDown","onTouchStart","listId","registerNode","useCallback","props","add","deregisterNode","node","remove","mouseDownHandler","touchStartHandler","droppableContext","useMemoObject","createElement","DroppableContext","Provider","value","_default","exports"],"sources":["../../src/Droppable.tsx"],"sourcesContent":["import useMemoObject from '@os-design/use-memo-object';\nimport React, {\n MouseEvent,\n RefObject,\n TouchEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport NodeList, {\n ExistingNode,\n NodeProps,\n RenderDraggedNode,\n} from './utils/NodeList';\nimport useDragAndDrop from './utils/useDragAndDrop';\nimport { DroppableContext } from './utils/useDroppable';\nimport useGeneratedId from './utils/useGeneratedId';\n\nexport interface DroppableChildrenProps {\n /**\n * The reference to the list.\n * If a virtual list is used, pass it to the outerRef prop.\n */\n ref: RefObject<HTMLDivElement>;\n /**\n * The reference to the container inside the virtual list.\n * Pass it to the innerRef prop.\n */\n innerRef: RefObject<HTMLDivElement>;\n}\n\nexport interface DroppableProps {\n /**\n * The function that renders the dragged node.\n */\n renderDraggedNode: RenderDraggedNode;\n /**\n * The ID of the list with draggable nodes.\n * Used to determine in which list the dragged node was dropped.\n * @default undefined\n */\n id?: string;\n /**\n * Whether the list is horizontal.\n * @default false\n */\n horizontal?: boolean;\n /**\n * The function that renders the list with draggable nodes.\n */\n children: (props: DroppableChildrenProps) => React.ReactNode;\n}\n\nconst Droppable: React.FC<DroppableProps> = ({\n renderDraggedNode,\n id,\n horizontal = false,\n children,\n}) => {\n // The reference to the list\n const ref = useRef<HTMLDivElement>(null);\n // The reference to the container inside the virtual list\n const innerRef = useRef<HTMLDivElement>(null);\n // The unique ID of the list. If no ID was specified, the generated one is used.\n const generatedId = useGeneratedId();\n const droppableId = useMemo(() => id || generatedId, [generatedId, id]);\n // The reference to the list of nodes\n const listRef = useRef(\n new NodeList({\n id: droppableId,\n ref,\n innerRef,\n horizontal,\n renderDraggedNode,\n })\n );\n\n // Update the ID of the list if it changes\n useEffect(() => {\n listRef.current.id = droppableId;\n }, [droppableId]);\n\n // Update the list orientation if it changes.\n // There is no need to check the order of the nodes in the list because it will be the same.\n useEffect(() => {\n listRef.current.horizontal = horizontal;\n }, [horizontal]);\n\n // Update the callback that renders the dragged node if it changes\n useEffect(() => {\n listRef.current.renderDraggedNode = renderDraggedNode;\n }, [renderDraggedNode]);\n\n const { registerList, deregisterList, onMouseDown, onTouchStart } =\n useDragAndDrop();\n\n // Register the list in the store\n useEffect(() => {\n registerList(listRef.current);\n const listId = listRef.current.id;\n return () => deregisterList(listId);\n }, [deregisterList, registerList]);\n\n const registerNode = useCallback(\n (props: NodeProps) => listRef.current.add(props),\n []\n );\n const deregisterNode = useCallback((node: ExistingNode) => {\n listRef.current.remove(node);\n }, []);\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent, node: ExistingNode) => {\n onMouseDown(e, listRef.current, node);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent, node: ExistingNode) => {\n onTouchStart(e, listRef.current, node);\n },\n [onTouchStart]\n );\n\n const droppableContext = useMemoObject({\n registerNode,\n deregisterNode,\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n });\n\n return (\n <DroppableContext.Provider value={droppableContext}>\n {(children as (props: DroppableChildrenProps) => React.ReactNode)({\n ref,\n innerRef,\n })}\n </DroppableContext.Provider>\n );\n};\n\nexport default Droppable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Droppable.js","names":["_useMemoObject","_interopRequireDefault","require","_react","_interopRequireWildcard","_NodeList","_useDragAndDrop2","_useDroppable","_useGeneratedId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","obj","Droppable","_ref","renderDraggedNode","id","_ref$horizontal","horizontal","children","ref","useRef","innerRef","generatedId","useGeneratedId","droppableId","useMemo","listRef","NodeList","useEffect","current","_useDragAndDrop","useDragAndDrop","registerList","deregisterList","onMouseDown","onTouchStart","listId","registerNode","useCallback","props","add","deregisterNode","node","remove","mouseDownHandler","touchStartHandler","droppableContext","useMemoObject","createElement","DroppableContext","Provider","value","_default","exports"],"sources":["../../src/Droppable.tsx"],"sourcesContent":["import useMemoObject from '@os-design/use-memo-object';\nimport React, {\n MouseEvent,\n RefObject,\n TouchEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport NodeList, {\n ExistingNode,\n NodeProps,\n RenderDraggedNode,\n} from './utils/NodeList';\nimport useDragAndDrop from './utils/useDragAndDrop';\nimport { DroppableContext } from './utils/useDroppable';\nimport useGeneratedId from './utils/useGeneratedId';\n\nexport interface DroppableChildrenProps {\n /**\n * The reference to the list.\n * If a virtual list is used, pass it to the outerRef prop.\n */\n ref: RefObject<HTMLDivElement>;\n /**\n * The reference to the container inside the virtual list.\n * Pass it to the innerRef prop.\n */\n innerRef: RefObject<HTMLDivElement>;\n}\n\nexport interface DroppableProps {\n /**\n * The function that renders the dragged node.\n */\n renderDraggedNode: RenderDraggedNode;\n /**\n * The ID of the list with draggable nodes.\n * Used to determine in which list the dragged node was dropped.\n * @default undefined\n */\n id?: string;\n /**\n * Whether the list is horizontal.\n * @default false\n */\n horizontal?: boolean;\n /**\n * The function that renders the list with draggable nodes.\n */\n children: (props: DroppableChildrenProps) => React.ReactNode;\n}\n\nconst Droppable: React.FC<DroppableProps> = ({\n renderDraggedNode,\n id,\n horizontal = false,\n children,\n}) => {\n // The reference to the list\n const ref = useRef<HTMLDivElement>(null);\n // The reference to the container inside the virtual list\n const innerRef = useRef<HTMLDivElement>(null);\n // The unique ID of the list. If no ID was specified, the generated one is used.\n const generatedId = useGeneratedId();\n const droppableId = useMemo(() => id || generatedId, [generatedId, id]);\n // The reference to the list of nodes\n const listRef = useRef(\n new NodeList({\n id: droppableId,\n ref,\n innerRef,\n horizontal,\n renderDraggedNode,\n })\n );\n\n // Update the ID of the list if it changes\n useEffect(() => {\n listRef.current.id = droppableId;\n }, [droppableId]);\n\n // Update the list orientation if it changes.\n // There is no need to check the order of the nodes in the list because it will be the same.\n useEffect(() => {\n listRef.current.horizontal = horizontal;\n }, [horizontal]);\n\n // Update the callback that renders the dragged node if it changes\n useEffect(() => {\n listRef.current.renderDraggedNode = renderDraggedNode;\n }, [renderDraggedNode]);\n\n const { registerList, deregisterList, onMouseDown, onTouchStart } =\n useDragAndDrop();\n\n // Register the list in the store\n useEffect(() => {\n registerList(listRef.current);\n const listId = listRef.current.id;\n return () => deregisterList(listId);\n }, [deregisterList, registerList]);\n\n const registerNode = useCallback(\n (props: NodeProps) => listRef.current.add(props),\n []\n );\n const deregisterNode = useCallback((node: ExistingNode) => {\n listRef.current.remove(node);\n }, []);\n\n // Handlers that determine whether a user clicks on the node\n const mouseDownHandler = useCallback(\n (e: MouseEvent, node: ExistingNode) => {\n onMouseDown(e, listRef.current, node);\n },\n [onMouseDown]\n );\n const touchStartHandler = useCallback(\n (e: TouchEvent, node: ExistingNode) => {\n onTouchStart(e, listRef.current, node);\n },\n [onTouchStart]\n );\n\n const droppableContext = useMemoObject({\n registerNode,\n deregisterNode,\n onMouseDown: mouseDownHandler,\n onTouchStart: touchStartHandler,\n });\n\n return (\n <DroppableContext.Provider value={droppableContext}>\n {(children as (props: DroppableChildrenProps) => React.ReactNode)({\n ref,\n innerRef,\n })}\n </DroppableContext.Provider>\n );\n};\n\nexport default Droppable;\n"],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -64,5 +64,5 @@ Object.keys(_Draggable).forEach(function (key) {
64
64
  });
65
65
  });
66
66
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
67
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
67
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
68
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_DragAndDrop","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Droppable","_Draggable","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as DragAndDrop } from './DragAndDrop';\nexport { default as Droppable } from './Droppable';\nexport { default as Draggable } from './Draggable';\n\nexport * from './DragAndDrop';\nexport * from './Droppable';\nexport * from './Draggable';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_DragAndDrop","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Droppable","_Draggable","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as DragAndDrop } from './DragAndDrop';\nexport { default as Droppable } from './Droppable';\nexport { default as Draggable } from './Draggable';\n\nexport * from './DragAndDrop';\nexport * from './Droppable';\nexport * from './Draggable';\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
8
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
9
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
12
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
13
  /**
14
14
  * Stores all the lists where the draggable items is located.
@@ -23,7 +23,7 @@ var ListStore = /*#__PURE__*/function () {
23
23
  /**
24
24
  * Adds a new list to the store.
25
25
  */
26
- _createClass(ListStore, [{
26
+ return _createClass(ListStore, [{
27
27
  key: "add",
28
28
  value: function add(list) {
29
29
  this.lists.push(list);
@@ -56,7 +56,6 @@ var ListStore = /*#__PURE__*/function () {
56
56
  });
57
57
  }
58
58
  }]);
59
- return ListStore;
60
59
  }();
61
60
  var _default = exports["default"] = ListStore;
62
61
  //# sourceMappingURL=ListStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListStore.js","names":["ListStore","_classCallCheck","lists","_createClass","key","value","add","list","push","remove","id","index","findIndex","item","splice","findByPosition","x","y","find","current","ref","rect","getBoundingClientRect","width","height","_default","exports"],"sources":["../../../src/utils/ListStore.ts"],"sourcesContent":["import NodeList from './NodeList';\n\n/**\n * Stores all the lists where the draggable items is located.\n */\nclass ListStore {\n private lists: NodeList[];\n\n public constructor() {\n this.lists = [];\n }\n\n /**\n * Adds a new list to the store.\n */\n public add(list: NodeList) {\n this.lists.push(list);\n }\n\n /**\n * Removes the list from the store.\n */\n public remove(id: string) {\n const index = this.lists.findIndex((item) => item.id === id);\n if (index === -1) return;\n this.lists.splice(index, 1);\n }\n\n /**\n * Returns the list in which the position is located.\n */\n public findByPosition(x: number, y: number) {\n return this.lists.find((list) => {\n const { current } = list.ref;\n if (!current) return false;\n const rect = current.getBoundingClientRect();\n return (\n x >= rect.x &&\n x <= rect.x + rect.width &&\n y >= rect.y &&\n y <= rect.y + rect.height\n );\n });\n }\n}\n\nexport default ListStore;\n"],"mappings":";;;;;;;;;;;;AAEA;AACA;AACA;AAFA,IAGMA,SAAS;EAGb,SAAAA,UAAA,EAAqB;IAAAC,eAAA,OAAAD,SAAA;IAAA,KAFbE,KAAK;IAGX,IAAI,CAACA,KAAK,GAAG,EAAE;EACjB;;EAEA;AACF;AACA;EAFEC,YAAA,CAAAH,SAAA;IAAAI,GAAA;IAAAC,KAAA,EAGA,SAAAC,IAAWC,IAAc,EAAE;MACzB,IAAI,CAACL,KAAK,CAACM,IAAI,CAACD,IAAI,CAAC;IACvB;;IAEA;AACF;AACA;EAFE;IAAAH,GAAA;IAAAC,KAAA,EAGA,SAAAI,OAAcC,EAAU,EAAE;MACxB,IAAMC,KAAK,GAAG,IAAI,CAACT,KAAK,CAACU,SAAS,CAAC,UAACC,IAAI;QAAA,OAAKA,IAAI,CAACH,EAAE,KAAKA,EAAE;MAAA,EAAC;MAC5D,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;MAClB,IAAI,CAACT,KAAK,CAACY,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;IAC7B;;IAEA;AACF;AACA;EAFE;IAAAP,GAAA;IAAAC,KAAA,EAGA,SAAAU,eAAsBC,CAAS,EAAEC,CAAS,EAAE;MAC1C,OAAO,IAAI,CAACf,KAAK,CAACgB,IAAI,CAAC,UAACX,IAAI,EAAK;QAC/B,IAAQY,OAAO,GAAKZ,IAAI,CAACa,GAAG,CAApBD,OAAO;QACf,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK;QAC1B,IAAME,IAAI,GAAGF,OAAO,CAACG,qBAAqB,CAAC,CAAC;QAC5C,OACEN,CAAC,IAAIK,IAAI,CAACL,CAAC,IACXA,CAAC,IAAIK,IAAI,CAACL,CAAC,GAAGK,IAAI,CAACE,KAAK,IACxBN,CAAC,IAAII,IAAI,CAACJ,CAAC,IACXA,CAAC,IAAII,IAAI,CAACJ,CAAC,GAAGI,IAAI,CAACG,MAAM;MAE7B,CAAC,CAAC;IACJ;EAAC;EAAA,OAAAxB,SAAA;AAAA;AAAA,IAAAyB,QAAA,GAAAC,OAAA,cAGY1B,SAAS"}
1
+ {"version":3,"file":"ListStore.js","names":["ListStore","_classCallCheck","lists","_createClass","key","value","add","list","push","remove","id","index","findIndex","item","splice","findByPosition","x","y","find","current","ref","rect","getBoundingClientRect","width","height","_default","exports"],"sources":["../../../src/utils/ListStore.ts"],"sourcesContent":["import NodeList from './NodeList';\n\n/**\n * Stores all the lists where the draggable items is located.\n */\nclass ListStore {\n private lists: NodeList[];\n\n public constructor() {\n this.lists = [];\n }\n\n /**\n * Adds a new list to the store.\n */\n public add(list: NodeList) {\n this.lists.push(list);\n }\n\n /**\n * Removes the list from the store.\n */\n public remove(id: string) {\n const index = this.lists.findIndex((item) => item.id === id);\n if (index === -1) return;\n this.lists.splice(index, 1);\n }\n\n /**\n * Returns the list in which the position is located.\n */\n public findByPosition(x: number, y: number) {\n return this.lists.find((list) => {\n const { current } = list.ref;\n if (!current) return false;\n const rect = current.getBoundingClientRect();\n return (\n x >= rect.x &&\n x <= rect.x + rect.width &&\n y >= rect.y &&\n y <= rect.y + rect.height\n );\n });\n }\n}\n\nexport default ListStore;\n"],"mappings":";;;;;;;;;;;;AAEA;AACA;AACA;AAFA,IAGMA,SAAS;EAGb,SAAAA,UAAA,EAAqB;IAAAC,eAAA,OAAAD,SAAA;IAAA,KAFbE,KAAK;IAGX,IAAI,CAACA,KAAK,GAAG,EAAE;EACjB;;EAEA;AACF;AACA;EAFE,OAAAC,YAAA,CAAAH,SAAA;IAAAI,GAAA;IAAAC,KAAA,EAGA,SAAAC,IAAWC,IAAc,EAAE;MACzB,IAAI,CAACL,KAAK,CAACM,IAAI,CAACD,IAAI,CAAC;IACvB;;IAEA;AACF;AACA;EAFE;IAAAH,GAAA;IAAAC,KAAA,EAGA,SAAAI,OAAcC,EAAU,EAAE;MACxB,IAAMC,KAAK,GAAG,IAAI,CAACT,KAAK,CAACU,SAAS,CAAC,UAACC,IAAI;QAAA,OAAKA,IAAI,CAACH,EAAE,KAAKA,EAAE;MAAA,EAAC;MAC5D,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;MAClB,IAAI,CAACT,KAAK,CAACY,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;IAC7B;;IAEA;AACF;AACA;EAFE;IAAAP,GAAA;IAAAC,KAAA,EAGA,SAAAU,eAAsBC,CAAS,EAAEC,CAAS,EAAE;MAC1C,OAAO,IAAI,CAACf,KAAK,CAACgB,IAAI,CAAC,UAACX,IAAI,EAAK;QAC/B,IAAQY,OAAO,GAAKZ,IAAI,CAACa,GAAG,CAApBD,OAAO;QACf,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK;QAC1B,IAAME,IAAI,GAAGF,OAAO,CAACG,qBAAqB,CAAC,CAAC;QAC5C,OACEN,CAAC,IAAIK,IAAI,CAACL,CAAC,IACXA,CAAC,IAAIK,IAAI,CAACL,CAAC,GAAGK,IAAI,CAACE,KAAK,IACxBN,CAAC,IAAII,IAAI,CAACJ,CAAC,IACXA,CAAC,IAAII,IAAI,CAACJ,CAAC,GAAGI,IAAI,CAACG,MAAM;MAE7B,CAAC,CAAC;IACJ;EAAC;AAAA;AAAA,IAAAC,QAAA,GAAAC,OAAA,cAGY1B,SAAS","ignoreList":[]}
@@ -14,7 +14,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
15
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
16
16
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
17
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
18
18
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  /* eslint-disable @typescript-eslint/no-explicit-any,no-param-reassign,prefer-destructuring,no-constant-condition */
20
20
  // [prev, next, ref, setStyle, index, id]
@@ -67,7 +67,7 @@ var NodeList = /*#__PURE__*/function () {
67
67
  this.tail = null;
68
68
  this.listeners = [];
69
69
  }
70
- _createClass(NodeList, [{
70
+ return _createClass(NodeList, [{
71
71
  key: "getHead",
72
72
  value: function getHead() {
73
73
  return this.head;
@@ -223,7 +223,6 @@ var NodeList = /*#__PURE__*/function () {
223
223
  return node[1];
224
224
  }
225
225
  }]);
226
- return NodeList;
227
226
  }();
228
227
  var _default = exports["default"] = NodeList;
229
228
  //# sourceMappingURL=NodeList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeList.js","names":["NodeList","props","_classCallCheck","id","ref","innerRef","horizontal","renderDraggedNode","head","tail","listeners","_createClass","key","value","getHead","getTail","addToTheBeginning","setStyle","index","_this$head","_slicedToArray","next","addToTheEnd","_this$tail","prev","add","forEach","listener","_this$head2","headIndex","_this$tail2","tailIndex","_this$tail3","addAfter","node","_node","_node2","_next","nextIndex","remove","_node3","addListener","callback","push","removeListener","findIndex","splice","_default","exports"],"sources":["../../../src/utils/NodeList.ts"],"sourcesContent":["import React, { CSSProperties, RefObject } from 'react';\n\n/* eslint-disable @typescript-eslint/no-explicit-any,no-param-reassign,prefer-destructuring,no-constant-condition */\n\n// [prev, next, ref, setStyle, index, id]\nexport type Node =\n | [Node, Node, RefObject<any>, (style: CSSProperties) => void, number, string]\n | null;\n\nexport type ExistingNode = Exclude<Node, null>;\n\nexport interface NodeProps {\n ref: React.MutableRefObject<any>;\n setStyle: (style: CSSProperties) => void;\n index: number;\n id: string;\n}\n\ninterface RenderDraggedNodeProps {\n /**\n * The index of the dragged node.\n */\n index: number;\n /**\n * The ID of the dragged node.\n */\n id: string;\n /**\n * The style of the dragged node with position.\n */\n style: CSSProperties;\n}\n\nexport type RenderDraggedNode = (\n props: RenderDraggedNodeProps\n) => React.ReactNode;\n\ninterface InitProps {\n id: string;\n ref: RefObject<HTMLDivElement>;\n innerRef: RefObject<HTMLDivElement>;\n horizontal: boolean;\n renderDraggedNode: RenderDraggedNode;\n}\n\n/**\n * Stores all the draggable items in the list.\n * The structure of the doubly linked list is used.\n */\nclass NodeList {\n /**\n * The ID of the list.\n */\n public id: string;\n\n /**\n * The ref to the list.\n */\n public ref: RefObject<HTMLDivElement>;\n\n /**\n * The inner ref to the list.\n * Used by the virtual list.\n */\n public innerRef: RefObject<HTMLDivElement>;\n\n /**\n * Whether the list is horizontal.\n */\n public horizontal: boolean;\n\n /**\n * The callback that renders the dragged node.\n */\n public renderDraggedNode: RenderDraggedNode;\n\n /**\n * The head of draggable nodes.\n */\n private head: Node;\n\n /**\n * The tail of draggable nodes.\n */\n private tail: Node;\n\n /**\n * Listeners of node addition events.\n */\n private listeners: Array<(props: NodeProps) => void>;\n\n public constructor(props: InitProps) {\n this.id = props.id;\n this.ref = props.ref;\n this.innerRef = props.innerRef;\n this.horizontal = props.horizontal;\n this.renderDraggedNode = props.renderDraggedNode;\n this.head = null;\n this.tail = null;\n this.listeners = [];\n }\n\n public getHead() {\n return this.head;\n }\n\n public getTail() {\n return this.tail;\n }\n\n /**\n * Adds the node to the beginning.\n * TL: O(1).\n */\n private addToTheBeginning(props: NodeProps): ExistingNode {\n this.head = [\n null,\n this.head,\n props.ref,\n props.setStyle,\n props.index,\n props.id,\n ];\n const [, next] = this.head;\n if (next) next[0] = this.head; // Set the prev cursor of the next element\n if (!this.tail) this.tail = this.head;\n return this.head;\n }\n\n /**\n * Adds the node to the end.\n * TL: O(1).\n */\n private addToTheEnd(props: NodeProps): ExistingNode {\n this.tail = [\n this.tail,\n null,\n props.ref,\n props.setStyle,\n props.index,\n props.id,\n ];\n const [prev] = this.tail;\n if (prev) prev[1] = this.tail; // Set the next cursor of the prev element\n if (!this.head) this.head = this.tail;\n return this.tail;\n }\n\n /**\n * Adds the node after the specified one.\n * TL: O(1).\n */\n private static addAfter(node: ExistingNode, props: NodeProps): ExistingNode {\n node[1] = [node, node[1], props.ref, props.setStyle, props.index, props.id];\n if (node[1][1]) node[1][1][0] = node[1];\n return node[1];\n }\n\n /**\n * Adds a new node depends on its position.\n * Called when a new node is mounted.\n * TL: O(1) – add to the beginning or to the end, O(n) – add to the middle.\n */\n public add(props: NodeProps): ExistingNode {\n const { index } = props;\n\n // Run listeners\n this.listeners.forEach((listener) => listener(props));\n\n // Add the first node to the beginning\n if (!this.head || !this.tail) {\n return this.addToTheBeginning(props);\n }\n\n // Add the node to the beginning if it is located above the first one\n const [, , , , headIndex] = this.head;\n if (index < headIndex) {\n return this.addToTheBeginning(props);\n }\n\n // Add the node to the end if it is located below the last one\n const [, , , , tailIndex] = this.tail;\n if (index === tailIndex) {\n // The tail is the blank node\n const [prev] = this.tail;\n if (prev) {\n this.tail[4] += 1;\n return NodeList.addAfter(prev, props);\n }\n }\n if (index > tailIndex) {\n return this.addToTheEnd(props);\n }\n\n // Add the node after the one that is located above the current one\n let node = this.head;\n while (true) {\n const [, next] = node;\n if (!next) break;\n const [, , , , nextIndex] = next;\n if (index < nextIndex) break;\n node = next;\n }\n return NodeList.addAfter(node, props);\n }\n\n /**\n * Removes the existing node.\n * Called when the node is unmounted.\n * TL: O(1).\n */\n public remove(node: ExistingNode) {\n const [prev, next] = node;\n if (!prev && !next) {\n this.head = null;\n this.tail = null;\n return;\n }\n if (!prev && next) {\n next[0] = null;\n this.head = next;\n return;\n }\n if (prev && !next) {\n prev[1] = null;\n this.tail = prev;\n return;\n }\n if (prev && next) {\n prev[1] = next;\n next[0] = prev;\n }\n }\n\n public addListener(callback: (props: NodeProps) => void) {\n this.listeners.push(callback);\n }\n\n public removeListener(callback: (props: NodeProps) => void) {\n const index = this.listeners.findIndex((listener) => listener === callback);\n this.listeners.splice(index, 1);\n }\n}\n\nexport default NodeList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"NodeList.js","names":["NodeList","props","_classCallCheck","id","ref","innerRef","horizontal","renderDraggedNode","head","tail","listeners","_createClass","key","value","getHead","getTail","addToTheBeginning","setStyle","index","_this$head","_slicedToArray","next","addToTheEnd","_this$tail","prev","add","forEach","listener","_this$head2","headIndex","_this$tail2","tailIndex","_this$tail3","addAfter","node","_node","_node2","_next","nextIndex","remove","_node3","addListener","callback","push","removeListener","findIndex","splice","_default","exports"],"sources":["../../../src/utils/NodeList.ts"],"sourcesContent":["import React, { CSSProperties, RefObject } from 'react';\n\n/* eslint-disable @typescript-eslint/no-explicit-any,no-param-reassign,prefer-destructuring,no-constant-condition */\n\n// [prev, next, ref, setStyle, index, id]\nexport type Node =\n | [Node, Node, RefObject<any>, (style: CSSProperties) => void, number, string]\n | null;\n\nexport type ExistingNode = Exclude<Node, null>;\n\nexport interface NodeProps {\n ref: React.MutableRefObject<any>;\n setStyle: (style: CSSProperties) => void;\n index: number;\n id: string;\n}\n\ninterface RenderDraggedNodeProps {\n /**\n * The index of the dragged node.\n */\n index: number;\n /**\n * The ID of the dragged node.\n */\n id: string;\n /**\n * The style of the dragged node with position.\n */\n style: CSSProperties;\n}\n\nexport type RenderDraggedNode = (\n props: RenderDraggedNodeProps\n) => React.ReactNode;\n\ninterface InitProps {\n id: string;\n ref: RefObject<HTMLDivElement>;\n innerRef: RefObject<HTMLDivElement>;\n horizontal: boolean;\n renderDraggedNode: RenderDraggedNode;\n}\n\n/**\n * Stores all the draggable items in the list.\n * The structure of the doubly linked list is used.\n */\nclass NodeList {\n /**\n * The ID of the list.\n */\n public id: string;\n\n /**\n * The ref to the list.\n */\n public ref: RefObject<HTMLDivElement>;\n\n /**\n * The inner ref to the list.\n * Used by the virtual list.\n */\n public innerRef: RefObject<HTMLDivElement>;\n\n /**\n * Whether the list is horizontal.\n */\n public horizontal: boolean;\n\n /**\n * The callback that renders the dragged node.\n */\n public renderDraggedNode: RenderDraggedNode;\n\n /**\n * The head of draggable nodes.\n */\n private head: Node;\n\n /**\n * The tail of draggable nodes.\n */\n private tail: Node;\n\n /**\n * Listeners of node addition events.\n */\n private listeners: Array<(props: NodeProps) => void>;\n\n public constructor(props: InitProps) {\n this.id = props.id;\n this.ref = props.ref;\n this.innerRef = props.innerRef;\n this.horizontal = props.horizontal;\n this.renderDraggedNode = props.renderDraggedNode;\n this.head = null;\n this.tail = null;\n this.listeners = [];\n }\n\n public getHead() {\n return this.head;\n }\n\n public getTail() {\n return this.tail;\n }\n\n /**\n * Adds the node to the beginning.\n * TL: O(1).\n */\n private addToTheBeginning(props: NodeProps): ExistingNode {\n this.head = [\n null,\n this.head,\n props.ref,\n props.setStyle,\n props.index,\n props.id,\n ];\n const [, next] = this.head;\n if (next) next[0] = this.head; // Set the prev cursor of the next element\n if (!this.tail) this.tail = this.head;\n return this.head;\n }\n\n /**\n * Adds the node to the end.\n * TL: O(1).\n */\n private addToTheEnd(props: NodeProps): ExistingNode {\n this.tail = [\n this.tail,\n null,\n props.ref,\n props.setStyle,\n props.index,\n props.id,\n ];\n const [prev] = this.tail;\n if (prev) prev[1] = this.tail; // Set the next cursor of the prev element\n if (!this.head) this.head = this.tail;\n return this.tail;\n }\n\n /**\n * Adds the node after the specified one.\n * TL: O(1).\n */\n private static addAfter(node: ExistingNode, props: NodeProps): ExistingNode {\n node[1] = [node, node[1], props.ref, props.setStyle, props.index, props.id];\n if (node[1][1]) node[1][1][0] = node[1];\n return node[1];\n }\n\n /**\n * Adds a new node depends on its position.\n * Called when a new node is mounted.\n * TL: O(1) – add to the beginning or to the end, O(n) – add to the middle.\n */\n public add(props: NodeProps): ExistingNode {\n const { index } = props;\n\n // Run listeners\n this.listeners.forEach((listener) => listener(props));\n\n // Add the first node to the beginning\n if (!this.head || !this.tail) {\n return this.addToTheBeginning(props);\n }\n\n // Add the node to the beginning if it is located above the first one\n const [, , , , headIndex] = this.head;\n if (index < headIndex) {\n return this.addToTheBeginning(props);\n }\n\n // Add the node to the end if it is located below the last one\n const [, , , , tailIndex] = this.tail;\n if (index === tailIndex) {\n // The tail is the blank node\n const [prev] = this.tail;\n if (prev) {\n this.tail[4] += 1;\n return NodeList.addAfter(prev, props);\n }\n }\n if (index > tailIndex) {\n return this.addToTheEnd(props);\n }\n\n // Add the node after the one that is located above the current one\n let node = this.head;\n while (true) {\n const [, next] = node;\n if (!next) break;\n const [, , , , nextIndex] = next;\n if (index < nextIndex) break;\n node = next;\n }\n return NodeList.addAfter(node, props);\n }\n\n /**\n * Removes the existing node.\n * Called when the node is unmounted.\n * TL: O(1).\n */\n public remove(node: ExistingNode) {\n const [prev, next] = node;\n if (!prev && !next) {\n this.head = null;\n this.tail = null;\n return;\n }\n if (!prev && next) {\n next[0] = null;\n this.head = next;\n return;\n }\n if (prev && !next) {\n prev[1] = null;\n this.tail = prev;\n return;\n }\n if (prev && next) {\n prev[1] = next;\n next[0] = prev;\n }\n }\n\n public addListener(callback: (props: NodeProps) => void) {\n this.listeners.push(callback);\n }\n\n public removeListener(callback: (props: NodeProps) => void) {\n const index = this.listeners.findIndex((listener) => listener === callback);\n this.listeners.splice(index, 1);\n }\n}\n\nexport default NodeList;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getElementOffset.js","names":["getElementOffset","element","offsetLeft","offsetTop","el","offsetParent","_default","exports"],"sources":["../../../src/utils/getElementOffset.ts"],"sourcesContent":["const getElementOffset = (element: HTMLElement) => {\n let offsetLeft = 0;\n let offsetTop = 0;\n let el: HTMLElement | null = element;\n while (el) {\n offsetLeft += el.offsetLeft;\n offsetTop += el.offsetTop;\n el = el.offsetParent as HTMLElement;\n }\n return { offsetLeft, offsetTop };\n};\n\nexport default getElementOffset;\n"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAoB,EAAK;EACjD,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,EAAsB,GAAGH,OAAO;EACpC,OAAOG,EAAE,EAAE;IACTF,UAAU,IAAIE,EAAE,CAACF,UAAU;IAC3BC,SAAS,IAAIC,EAAE,CAACD,SAAS;IACzBC,EAAE,GAAGA,EAAE,CAACC,YAA2B;EACrC;EACA,OAAO;IAAEH,UAAU,EAAVA,UAAU;IAAEC,SAAS,EAATA;EAAU,CAAC;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEaP,gBAAgB"}
1
+ {"version":3,"file":"getElementOffset.js","names":["getElementOffset","element","offsetLeft","offsetTop","el","offsetParent","_default","exports"],"sources":["../../../src/utils/getElementOffset.ts"],"sourcesContent":["const getElementOffset = (element: HTMLElement) => {\n let offsetLeft = 0;\n let offsetTop = 0;\n let el: HTMLElement | null = element;\n while (el) {\n offsetLeft += el.offsetLeft;\n offsetTop += el.offsetTop;\n el = el.offsetParent as HTMLElement;\n }\n return { offsetLeft, offsetTop };\n};\n\nexport default getElementOffset;\n"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAoB,EAAK;EACjD,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,EAAsB,GAAGH,OAAO;EACpC,OAAOG,EAAE,EAAE;IACTF,UAAU,IAAIE,EAAE,CAACF,UAAU;IAC3BC,SAAS,IAAIC,EAAE,CAACD,SAAS;IACzBC,EAAE,GAAGA,EAAE,CAACC,YAA2B;EACrC;EACA,OAAO;IAAEH,UAAU,EAAVA,UAAU;IAAEC,SAAS,EAATA;EAAU,CAAC;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEaP,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getElementScroll.js","names":["getElementScroll","element","scrollLeft","scrollTop","el","parentElement","_default","exports"],"sources":["../../../src/utils/getElementScroll.ts"],"sourcesContent":["const getElementScroll = (element: HTMLElement) => {\n let scrollLeft = 0;\n let scrollTop = 0;\n let el: HTMLElement | null = element;\n while (el) {\n scrollLeft += el.scrollLeft;\n scrollTop += el.scrollTop;\n el = el.parentElement;\n }\n return { scrollLeft, scrollTop };\n};\n\nexport default getElementScroll;\n"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAoB,EAAK;EACjD,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,EAAsB,GAAGH,OAAO;EACpC,OAAOG,EAAE,EAAE;IACTF,UAAU,IAAIE,EAAE,CAACF,UAAU;IAC3BC,SAAS,IAAIC,EAAE,CAACD,SAAS;IACzBC,EAAE,GAAGA,EAAE,CAACC,aAAa;EACvB;EACA,OAAO;IAAEH,UAAU,EAAVA,UAAU;IAAEC,SAAS,EAATA;EAAU,CAAC;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEaP,gBAAgB"}
1
+ {"version":3,"file":"getElementScroll.js","names":["getElementScroll","element","scrollLeft","scrollTop","el","parentElement","_default","exports"],"sources":["../../../src/utils/getElementScroll.ts"],"sourcesContent":["const getElementScroll = (element: HTMLElement) => {\n let scrollLeft = 0;\n let scrollTop = 0;\n let el: HTMLElement | null = element;\n while (el) {\n scrollLeft += el.scrollLeft;\n scrollTop += el.scrollTop;\n el = el.parentElement;\n }\n return { scrollLeft, scrollTop };\n};\n\nexport default getElementScroll;\n"],"mappings":";;;;;;AAAA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAoB,EAAK;EACjD,IAAIC,UAAU,GAAG,CAAC;EAClB,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,EAAsB,GAAGH,OAAO;EACpC,OAAOG,EAAE,EAAE;IACTF,UAAU,IAAIE,EAAE,CAACF,UAAU;IAC3BC,SAAS,IAAIC,EAAE,CAACD,SAAS;IACzBC,EAAE,GAAGA,EAAE,CAACC,aAAa;EACvB;EACA,OAAO;IAAEH,UAAU,EAAVA,UAAU;IAAEC,SAAS,EAATA;EAAU,CAAC;AAClC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEaP,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getNodeRect.js","names":["_getElementOffset2","_interopRequireDefault","require","_getElementScroll","obj","__esModule","getNodeRect","ref","current","parent","parentElement","_ref$current$getBound","getBoundingClientRect","width","height","_getElementOffset","getElementOffset","offsetLeft","offsetTop","_ref","getElementScroll","scrollLeft","scrollTop","left","top","right","bottom","_default","exports"],"sources":["../../../src/utils/getNodeRect.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport getElementOffset from './getElementOffset';\nimport getElementScroll from './getElementScroll';\n\n/**\n * Computes the bounds of the existing node without considering transforms.\n */\nconst getNodeRect = (ref: RefObject<HTMLElement>) => {\n if (!ref.current) return null;\n\n const parent = ref.current.parentElement;\n const { width, height } = ref.current.getBoundingClientRect();\n const { offsetLeft, offsetTop } = getElementOffset(ref.current);\n const { scrollLeft, scrollTop } = parent\n ? getElementScroll(parent)\n : { scrollLeft: 0, scrollTop: 0 };\n\n const left = offsetLeft - scrollLeft;\n const top = offsetTop - scrollTop;\n\n return {\n left,\n top,\n right: left + width,\n bottom: top + height,\n };\n};\n\nexport default getNodeRect;\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAElD;AACA;AACA;AACA,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAIC,GAA2B,EAAK;EACnD,IAAI,CAACA,GAAG,CAACC,OAAO,EAAE,OAAO,IAAI;EAE7B,IAAMC,MAAM,GAAGF,GAAG,CAACC,OAAO,CAACE,aAAa;EACxC,IAAAC,qBAAA,GAA0BJ,GAAG,CAACC,OAAO,CAACI,qBAAqB,CAAC,CAAC;IAArDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,qBAAA,CAANG,MAAM;EACrB,IAAAC,iBAAA,GAAkC,IAAAC,6BAAgB,EAACT,GAAG,CAACC,OAAO,CAAC;IAAvDS,UAAU,GAAAF,iBAAA,CAAVE,UAAU;IAAEC,SAAS,GAAAH,iBAAA,CAATG,SAAS;EAC7B,IAAAC,IAAA,GAAkCV,MAAM,GACpC,IAAAW,4BAAgB,EAACX,MAAM,CAAC,GACxB;MAAEY,UAAU,EAAE,CAAC;MAAEC,SAAS,EAAE;IAAE,CAAC;IAF3BD,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;EAI7B,IAAMC,IAAI,GAAGN,UAAU,GAAGI,UAAU;EACpC,IAAMG,GAAG,GAAGN,SAAS,GAAGI,SAAS;EAEjC,OAAO;IACLC,IAAI,EAAJA,IAAI;IACJC,GAAG,EAAHA,GAAG;IACHC,KAAK,EAAEF,IAAI,GAAGV,KAAK;IACnBa,MAAM,EAAEF,GAAG,GAAGV;EAChB,CAAC;AACH,CAAC;AAAC,IAAAa,QAAA,GAAAC,OAAA,cAEatB,WAAW"}
1
+ {"version":3,"file":"getNodeRect.js","names":["_getElementOffset2","_interopRequireDefault","require","_getElementScroll","obj","__esModule","getNodeRect","ref","current","parent","parentElement","_ref$current$getBound","getBoundingClientRect","width","height","_getElementOffset","getElementOffset","offsetLeft","offsetTop","_ref","getElementScroll","scrollLeft","scrollTop","left","top","right","bottom","_default","exports"],"sources":["../../../src/utils/getNodeRect.ts"],"sourcesContent":["import { RefObject } from 'react';\nimport getElementOffset from './getElementOffset';\nimport getElementScroll from './getElementScroll';\n\n/**\n * Computes the bounds of the existing node without considering transforms.\n */\nconst getNodeRect = (ref: RefObject<HTMLElement>) => {\n if (!ref.current) return null;\n\n const parent = ref.current.parentElement;\n const { width, height } = ref.current.getBoundingClientRect();\n const { offsetLeft, offsetTop } = getElementOffset(ref.current);\n const { scrollLeft, scrollTop } = parent\n ? getElementScroll(parent)\n : { scrollLeft: 0, scrollTop: 0 };\n\n const left = offsetLeft - scrollLeft;\n const top = offsetTop - scrollTop;\n\n return {\n left,\n top,\n right: left + width,\n bottom: top + height,\n };\n};\n\nexport default getNodeRect;\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAElD;AACA;AACA;AACA,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAIC,GAA2B,EAAK;EACnD,IAAI,CAACA,GAAG,CAACC,OAAO,EAAE,OAAO,IAAI;EAE7B,IAAMC,MAAM,GAAGF,GAAG,CAACC,OAAO,CAACE,aAAa;EACxC,IAAAC,qBAAA,GAA0BJ,GAAG,CAACC,OAAO,CAACI,qBAAqB,CAAC,CAAC;IAArDC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEC,MAAM,GAAAH,qBAAA,CAANG,MAAM;EACrB,IAAAC,iBAAA,GAAkC,IAAAC,6BAAgB,EAACT,GAAG,CAACC,OAAO,CAAC;IAAvDS,UAAU,GAAAF,iBAAA,CAAVE,UAAU;IAAEC,SAAS,GAAAH,iBAAA,CAATG,SAAS;EAC7B,IAAAC,IAAA,GAAkCV,MAAM,GACpC,IAAAW,4BAAgB,EAACX,MAAM,CAAC,GACxB;MAAEY,UAAU,EAAE,CAAC;MAAEC,SAAS,EAAE;IAAE,CAAC;IAF3BD,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;EAI7B,IAAMC,IAAI,GAAGN,UAAU,GAAGI,UAAU;EACpC,IAAMG,GAAG,GAAGN,SAAS,GAAGI,SAAS;EAEjC,OAAO;IACLC,IAAI,EAAJA,IAAI;IACJC,GAAG,EAAHA,GAAG;IACHC,KAAK,EAAEF,IAAI,GAAGV,KAAK;IACnBa,MAAM,EAAEF,GAAG,GAAGV;EAChB,CAAC;AACH,CAAC;AAAC,IAAAa,QAAA,GAAAC,OAAA,cAEatB,WAAW","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAppendClassName.js","names":["_react","require","useAppendClassName","ref","className","useEffect","element","current","initClassName","concat","trim","_default","exports"],"sources":["../../../src/utils/useAppendClassName.ts"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\n/**\n * Adds a new class name to the element.\n */\nconst useAppendClassName = (ref: RefObject<HTMLElement>, className: string) => {\n useEffect(() => {\n const element = ref.current;\n if (!element) return () => {};\n\n const initClassName = element.className;\n element.className = `${initClassName} ${className}`.trim();\n\n return () => {\n element.className = initClassName;\n };\n }, [className, ref]);\n};\n\nexport default useAppendClassName;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAA2B,EAAEC,SAAiB,EAAK;EAC7E,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,OAAO,GAAGH,GAAG,CAACI,OAAO;IAC3B,IAAI,CAACD,OAAO,EAAE,OAAO,YAAM,CAAC,CAAC;IAE7B,IAAME,aAAa,GAAGF,OAAO,CAACF,SAAS;IACvCE,OAAO,CAACF,SAAS,GAAG,GAAAK,MAAA,CAAGD,aAAa,OAAAC,MAAA,CAAIL,SAAS,EAAGM,IAAI,CAAC,CAAC;IAE1D,OAAO,YAAM;MACXJ,OAAO,CAACF,SAAS,GAAGI,aAAa;IACnC,CAAC;EACH,CAAC,EAAE,CAACJ,SAAS,EAAED,GAAG,CAAC,CAAC;AACtB,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,cAEaV,kBAAkB"}
1
+ {"version":3,"file":"useAppendClassName.js","names":["_react","require","useAppendClassName","ref","className","useEffect","element","current","initClassName","concat","trim","_default","exports"],"sources":["../../../src/utils/useAppendClassName.ts"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\n/**\n * Adds a new class name to the element.\n */\nconst useAppendClassName = (ref: RefObject<HTMLElement>, className: string) => {\n useEffect(() => {\n const element = ref.current;\n if (!element) return () => {};\n\n const initClassName = element.className;\n element.className = `${initClassName} ${className}`.trim();\n\n return () => {\n element.className = initClassName;\n };\n }, [className, ref]);\n};\n\nexport default useAppendClassName;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAA2B,EAAEC,SAAiB,EAAK;EAC7E,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,OAAO,GAAGH,GAAG,CAACI,OAAO;IAC3B,IAAI,CAACD,OAAO,EAAE,OAAO,YAAM,CAAC,CAAC;IAE7B,IAAME,aAAa,GAAGF,OAAO,CAACF,SAAS;IACvCE,OAAO,CAACF,SAAS,GAAG,GAAAK,MAAA,CAAGD,aAAa,OAAAC,MAAA,CAAIL,SAAS,EAAGM,IAAI,CAAC,CAAC;IAE1D,OAAO,YAAM;MACXJ,OAAO,CAACF,SAAS,GAAGI,aAAa;IACnC,CAAC;EACH,CAAC,EAAE,CAACJ,SAAS,EAAED,GAAG,CAAC,CAAC;AACtB,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,cAEaV,kBAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useBlankNode.js","names":["_react","require","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","useBlankNode","props","draggedNode","targetList","initDraggedNodeRect","initDraggedNodeRectRef","useRef","blankNode","useEffect","current","ref","list","_initDraggedNodeRectR","initWidth","initHeight","div","document","createElement","style","width","concat","height","minWidth","minHeight","parent","innerList","innerRef","_innerList$getBoundin","getBoundingClientRect","position","left","horizontal","top","appendChild","tail","getTail","node","add","setStyle","index","id","removeBlankNode","useCallback","blank","remove","_blank$node","blankNodeRef","parentElement","removeChild","_default","exports"],"sources":["../../../src/utils/useBlankNode.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport NodeList, { ExistingNode } from './NodeList';\n\ninterface InitSize {\n initWidth: number;\n initHeight: number;\n}\n\ninterface DraggedNode {\n list: NodeList;\n}\n\ninterface UseBlankNodeProps {\n draggedNode: DraggedNode | null;\n targetList: NodeList | null;\n initDraggedNodeRect: InitSize | null;\n}\n\ninterface BlankNode {\n list: NodeList;\n node: ExistingNode;\n}\n\n/**\n * Appends the blank node to the list to increase the height of it.\n * Used when the dragged node is located inside another list.\n */\nconst useBlankNode = (props: UseBlankNodeProps) => {\n const { draggedNode, targetList, initDraggedNodeRect } = props;\n const initDraggedNodeRectRef = useRef(initDraggedNodeRect);\n const blankNode = useRef<BlankNode | null>(null);\n\n useEffect(() => {\n initDraggedNodeRectRef.current = initDraggedNodeRect;\n }, [initDraggedNodeRect]);\n\n useEffect(() => {\n if (\n !draggedNode ||\n !targetList ||\n !targetList.ref.current ||\n draggedNode.list === targetList ||\n !initDraggedNodeRectRef.current\n ) {\n return;\n }\n\n // Create a new blank div\n const { initWidth, initHeight } = initDraggedNodeRectRef.current;\n const div = document.createElement('div');\n div.style.width = `${initWidth}px`;\n div.style.height = `${initHeight}px`;\n div.style.minWidth = `${initWidth}px`;\n div.style.minHeight = `${initHeight}px`;\n\n let parent = targetList.ref.current;\n const innerList = targetList.innerRef.current;\n\n // The inner ref used only in the virtual list\n if (innerList) {\n const { width, height } = innerList.getBoundingClientRect();\n div.style.position = 'absolute';\n div.style.left = targetList.horizontal ? `${width}px` : '0px';\n div.style.top = targetList.horizontal ? '0px' : `${height}px`;\n parent = innerList;\n }\n\n // Append the blank div to increase the height of the list\n parent.appendChild(div);\n\n // Add the blank node to the node list\n const tail = targetList.getTail();\n blankNode.current = {\n list: targetList,\n node: targetList.add({\n ref: { current: div },\n setStyle: () => {},\n index: tail ? tail[4] + 1 : 0,\n id: 'blank',\n }),\n };\n }, [draggedNode, targetList]);\n\n const removeBlankNode = useCallback(() => {\n const blank = blankNode.current;\n if (!blank) return;\n blankNode.current = null;\n blank.list.remove(blank.node);\n const [, , blankNodeRef] = blank.node;\n if (!blank.list.ref.current || !blankNodeRef.current) return;\n const parent = blankNodeRef.current.parentElement;\n if (parent) parent.removeChild(blankNodeRef.current);\n }, []);\n\n // Remove the blank node if the dragged node has been dropped\n useEffect(() => {\n if (!draggedNode) return () => {};\n return () => removeBlankNode();\n }, [draggedNode, removeBlankNode]);\n\n return removeBlankNode;\n};\n\nexport default useBlankNode;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useBlankNode.js","names":["_react","require","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","useBlankNode","props","draggedNode","targetList","initDraggedNodeRect","initDraggedNodeRectRef","useRef","blankNode","useEffect","current","ref","list","_initDraggedNodeRectR","initWidth","initHeight","div","document","createElement","style","width","concat","height","minWidth","minHeight","parent","innerList","innerRef","_innerList$getBoundin","getBoundingClientRect","position","left","horizontal","top","appendChild","tail","getTail","node","add","setStyle","index","id","removeBlankNode","useCallback","blank","remove","_blank$node","blankNodeRef","parentElement","removeChild","_default","exports"],"sources":["../../../src/utils/useBlankNode.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport NodeList, { ExistingNode } from './NodeList';\n\ninterface InitSize {\n initWidth: number;\n initHeight: number;\n}\n\ninterface DraggedNode {\n list: NodeList;\n}\n\ninterface UseBlankNodeProps {\n draggedNode: DraggedNode | null;\n targetList: NodeList | null;\n initDraggedNodeRect: InitSize | null;\n}\n\ninterface BlankNode {\n list: NodeList;\n node: ExistingNode;\n}\n\n/**\n * Appends the blank node to the list to increase the height of it.\n * Used when the dragged node is located inside another list.\n */\nconst useBlankNode = (props: UseBlankNodeProps) => {\n const { draggedNode, targetList, initDraggedNodeRect } = props;\n const initDraggedNodeRectRef = useRef(initDraggedNodeRect);\n const blankNode = useRef<BlankNode | null>(null);\n\n useEffect(() => {\n initDraggedNodeRectRef.current = initDraggedNodeRect;\n }, [initDraggedNodeRect]);\n\n useEffect(() => {\n if (\n !draggedNode ||\n !targetList ||\n !targetList.ref.current ||\n draggedNode.list === targetList ||\n !initDraggedNodeRectRef.current\n ) {\n return;\n }\n\n // Create a new blank div\n const { initWidth, initHeight } = initDraggedNodeRectRef.current;\n const div = document.createElement('div');\n div.style.width = `${initWidth}px`;\n div.style.height = `${initHeight}px`;\n div.style.minWidth = `${initWidth}px`;\n div.style.minHeight = `${initHeight}px`;\n\n let parent = targetList.ref.current;\n const innerList = targetList.innerRef.current;\n\n // The inner ref used only in the virtual list\n if (innerList) {\n const { width, height } = innerList.getBoundingClientRect();\n div.style.position = 'absolute';\n div.style.left = targetList.horizontal ? `${width}px` : '0px';\n div.style.top = targetList.horizontal ? '0px' : `${height}px`;\n parent = innerList;\n }\n\n // Append the blank div to increase the height of the list\n parent.appendChild(div);\n\n // Add the blank node to the node list\n const tail = targetList.getTail();\n blankNode.current = {\n list: targetList,\n node: targetList.add({\n ref: { current: div },\n setStyle: () => {},\n index: tail ? tail[4] + 1 : 0,\n id: 'blank',\n }),\n };\n }, [draggedNode, targetList]);\n\n const removeBlankNode = useCallback(() => {\n const blank = blankNode.current;\n if (!blank) return;\n blankNode.current = null;\n blank.list.remove(blank.node);\n const [, , blankNodeRef] = blank.node;\n if (!blank.list.ref.current || !blankNodeRef.current) return;\n const parent = blankNodeRef.current.parentElement;\n if (parent) parent.removeChild(blankNodeRef.current);\n }, []);\n\n // Remove the blank node if the dragged node has been dropped\n useEffect(() => {\n if (!draggedNode) return () => {};\n return () => removeBlankNode();\n }, [draggedNode, removeBlankNode]);\n\n return removeBlankNode;\n};\n\nexport default useBlankNode;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = exports.DragAndDropContext = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
11
11
  var DragAndDropContext = exports.DragAndDropContext = /*#__PURE__*/_react["default"].createContext({
12
12
  registerList: function registerList() {},
13
13
  deregisterList: function deregisterList() {},
@@ -1 +1 @@
1
- {"version":3,"file":"useDragAndDrop.js","names":["_react","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DragAndDropContext","exports","React","createContext","registerList","deregisterList","onMouseDown","onTouchStart","nodeClassName","useDragAndDrop","useContext","_default"],"sources":["../../../src/utils/useDragAndDrop.ts"],"sourcesContent":["import { Position } from '@os-design/use-drag';\nimport React, { MouseEvent, TouchEvent, useContext } from 'react';\nimport NodeList, { ExistingNode } from './NodeList';\n\nexport interface SetDraggedNodeProps {\n list: NodeList;\n node: ExistingNode;\n position: Position;\n}\n\ntype NodeEventHandler<T> = (e: T, list: NodeList, node: ExistingNode) => void;\n\ninterface DragAndDropContextProps {\n registerList: (list: NodeList) => void;\n deregisterList: (id: string) => void;\n onMouseDown: NodeEventHandler<MouseEvent>;\n onTouchStart: NodeEventHandler<TouchEvent>;\n nodeClassName: string;\n}\n\nexport const DragAndDropContext = React.createContext<DragAndDropContextProps>({\n registerList: () => {},\n deregisterList: () => {},\n onMouseDown: () => {},\n onTouchStart: () => {},\n nodeClassName: '',\n});\n\nconst useDragAndDrop = (): DragAndDropContextProps =>\n useContext(DragAndDropContext);\n\nexport default useDragAndDrop;\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAkE,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAmB3D,IAAMY,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAGE,iBAAK,CAACC,aAAa,CAA0B;EAC7EC,YAAY,EAAE,SAAAA,aAAA,EAAM,CAAC,CAAC;EACtBC,cAAc,EAAE,SAAAA,eAAA,EAAM,CAAC,CAAC;EACxBC,WAAW,EAAE,SAAAA,YAAA,EAAM,CAAC,CAAC;EACrBC,YAAY,EAAE,SAAAA,aAAA,EAAM,CAAC,CAAC;EACtBC,aAAa,EAAE;AACjB,CAAC,CAAC;AAEF,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAA;EAAA,OAClB,IAAAC,iBAAU,EAACV,kBAAkB,CAAC;AAAA;AAAC,IAAAW,QAAA,GAAAV,OAAA,cAElBQ,cAAc"}
1
+ {"version":3,"file":"useDragAndDrop.js","names":["_react","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DragAndDropContext","exports","React","createContext","registerList","deregisterList","onMouseDown","onTouchStart","nodeClassName","useDragAndDrop","useContext","_default"],"sources":["../../../src/utils/useDragAndDrop.ts"],"sourcesContent":["import { Position } from '@os-design/use-drag';\nimport React, { MouseEvent, TouchEvent, useContext } from 'react';\nimport NodeList, { ExistingNode } from './NodeList';\n\nexport interface SetDraggedNodeProps {\n list: NodeList;\n node: ExistingNode;\n position: Position;\n}\n\ntype NodeEventHandler<T> = (e: T, list: NodeList, node: ExistingNode) => void;\n\ninterface DragAndDropContextProps {\n registerList: (list: NodeList) => void;\n deregisterList: (id: string) => void;\n onMouseDown: NodeEventHandler<MouseEvent>;\n onTouchStart: NodeEventHandler<TouchEvent>;\n nodeClassName: string;\n}\n\nexport const DragAndDropContext = React.createContext<DragAndDropContextProps>({\n registerList: () => {},\n deregisterList: () => {},\n onMouseDown: () => {},\n onTouchStart: () => {},\n nodeClassName: '',\n});\n\nconst useDragAndDrop = (): DragAndDropContextProps =>\n useContext(DragAndDropContext);\n\nexport default useDragAndDrop;\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAkE,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAmB3D,IAAMW,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAGE,iBAAK,CAACC,aAAa,CAA0B;EAC7EC,YAAY,EAAE,SAAAA,aAAA,EAAM,CAAC,CAAC;EACtBC,cAAc,EAAE,SAAAA,eAAA,EAAM,CAAC,CAAC;EACxBC,WAAW,EAAE,SAAAA,YAAA,EAAM,CAAC,CAAC;EACrBC,YAAY,EAAE,SAAAA,aAAA,EAAM,CAAC,CAAC;EACtBC,aAAa,EAAE;AACjB,CAAC,CAAC;AAEF,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAA;EAAA,OAClB,IAAAC,iBAAU,EAACV,kBAAkB,CAAC;AAAA;AAAC,IAAAW,QAAA,GAAAV,OAAA,cAElBQ,cAAc","ignoreList":[]}