@os-design/drag-sort 1.0.3 → 1.0.4
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.
package/dist/cjs/DragAndDrop.js
CHANGED
|
@@ -29,6 +29,8 @@ var _useGeneratedId = _interopRequireDefault(require("./utils/useGeneratedId"));
|
|
|
29
29
|
|
|
30
30
|
var _useTransitionStyle = _interopRequireDefault(require("./utils/useTransitionStyle"));
|
|
31
31
|
|
|
32
|
+
var _useInitRect = _interopRequireDefault(require("./utils/useInitRect"));
|
|
33
|
+
|
|
32
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
33
35
|
|
|
34
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -171,6 +173,7 @@ var DragAndDrop = function DragAndDrop(_ref) {
|
|
|
171
173
|
distPercent: autoScrollDistPercent,
|
|
172
174
|
maxSpeedPx: autoScrollMaxSpeedPx
|
|
173
175
|
});
|
|
176
|
+
var initRect = (0, _useInitRect["default"])(draggedNode ? draggedNode.node[2] : undefined);
|
|
174
177
|
var dragAndDropContext = (0, _useMemoObject["default"])({
|
|
175
178
|
registerList: registerList,
|
|
176
179
|
deregisterList: deregisterList,
|
|
@@ -187,7 +190,10 @@ var DragAndDrop = function DragAndDrop(_ref) {
|
|
|
187
190
|
style: {
|
|
188
191
|
position: 'fixed',
|
|
189
192
|
left: cursorPosition.x - draggedNode.position.x,
|
|
190
|
-
top: cursorPosition.y - draggedNode.position.y
|
|
193
|
+
top: cursorPosition.y - draggedNode.position.y,
|
|
194
|
+
width: initRect ? initRect.initWidth : undefined,
|
|
195
|
+
height: initRect ? initRect.initHeight : undefined,
|
|
196
|
+
zIndex: 1001
|
|
191
197
|
}
|
|
192
198
|
})));
|
|
193
199
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/DragAndDrop.tsx"],"names":["DragAndDrop","draggedNodeContainer","minMouseDistPx","longPressMs","autoScrollDistPercent","autoScrollMaxSpeedPx","transitionDelayMs","onDragEnd","children","listStoreRef","ListStore","generatedId","nodeClassName","draggedNode","setDraggedNode","startNodeRef","x","y","cursorPosition","setCursorPosition","registerList","list","current","add","deregisterList","id","remove","className","ms","enabled","onDragStart","pos","startPos","startNode","node","nodeRef","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","onMouseDown","onTouchStart","mouseDownHandler","e","touchStartHandler","document","body","distPercent","maxSpeedPx","dragAndDropContext","renderDraggedNode","index","style","left","top"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n TouchEvent,\n} from 'react';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport useMemoObject from '@os-design/use-memo-object';\nimport useDrag, {\n Position,\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n} from '@os-design/use-drag';\nimport Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\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\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(4);\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 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 style: {\n position: 'fixed',\n left: cursorPosition.x - draggedNode.position.x,\n top: cursorPosition.y - draggedNode.position.y,\n },\n })}\n </Portal>\n )}\n </DragAndDropContext.Provider>\n );\n};\n\nexport type { DragEndHandler } from './utils/useDragEffect';\n\nexport default DragAndDrop;\n"],"file":"DragAndDrop.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/DragAndDrop.tsx"],"names":["DragAndDrop","draggedNodeContainer","minMouseDistPx","longPressMs","autoScrollDistPercent","autoScrollMaxSpeedPx","transitionDelayMs","onDragEnd","children","listStoreRef","ListStore","generatedId","nodeClassName","draggedNode","setDraggedNode","startNodeRef","x","y","cursorPosition","setCursorPosition","registerList","list","current","add","deregisterList","id","remove","className","ms","enabled","onDragStart","pos","startPos","startNode","node","nodeRef","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","onMouseDown","onTouchStart","mouseDownHandler","e","touchStartHandler","document","body","distPercent","maxSpeedPx","initRect","undefined","dragAndDropContext","renderDraggedNode","index","style","left","top","width","initWidth","height","initHeight","zIndex"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n TouchEvent,\n} from 'react';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport useMemoObject from '@os-design/use-memo-object';\nimport useDrag, {\n Position,\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n} from '@os-design/use-drag';\nimport Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\nimport useTransitionStyle from './utils/useTransitionStyle';\nimport useInitRect from './utils/useInitRect';\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\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(4);\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 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"],"file":"DragAndDrop.js"}
|
package/dist/esm/DragAndDrop.js
CHANGED
|
@@ -9,6 +9,7 @@ import ListStore from './utils/ListStore';
|
|
|
9
9
|
import useDragEffect from './utils/useDragEffect';
|
|
10
10
|
import useGeneratedId from './utils/useGeneratedId';
|
|
11
11
|
import useTransitionStyle from './utils/useTransitionStyle';
|
|
12
|
+
import useInitRect from './utils/useInitRect';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* The container containing one or more lists with draggable nodes.
|
|
@@ -114,6 +115,7 @@ const DragAndDrop = ({
|
|
|
114
115
|
distPercent: autoScrollDistPercent,
|
|
115
116
|
maxSpeedPx: autoScrollMaxSpeedPx
|
|
116
117
|
});
|
|
118
|
+
const initRect = useInitRect(draggedNode ? draggedNode.node[2] : undefined);
|
|
117
119
|
const dragAndDropContext = useMemoObject({
|
|
118
120
|
registerList,
|
|
119
121
|
deregisterList,
|
|
@@ -130,7 +132,10 @@ const DragAndDrop = ({
|
|
|
130
132
|
style: {
|
|
131
133
|
position: 'fixed',
|
|
132
134
|
left: cursorPosition.x - draggedNode.position.x,
|
|
133
|
-
top: cursorPosition.y - draggedNode.position.y
|
|
135
|
+
top: cursorPosition.y - draggedNode.position.y,
|
|
136
|
+
width: initRect ? initRect.initWidth : undefined,
|
|
137
|
+
height: initRect ? initRect.initHeight : undefined,
|
|
138
|
+
zIndex: 1001
|
|
134
139
|
}
|
|
135
140
|
})));
|
|
136
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/DragAndDrop.tsx"],"names":["React","useCallback","useMemo","useRef","useState","usePreventDefaultEvent","useMemoObject","useDrag","Portal","useAutoScroll","DragAndDropContext","ListStore","useDragEffect","useGeneratedId","useTransitionStyle","DragAndDrop","draggedNodeContainer","minMouseDistPx","longPressMs","autoScrollDistPercent","autoScrollMaxSpeedPx","transitionDelayMs","onDragEnd","children","listStoreRef","generatedId","nodeClassName","draggedNode","setDraggedNode","startNodeRef","cursorPosition","setCursorPosition","x","y","registerList","list","current","add","deregisterList","id","remove","className","ms","enabled","onDragStart","pos","startPos","startNode","nodeRef","node","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","onMouseDown","onTouchStart","mouseDownHandler","e","touchStartHandler","document","body","distPercent","maxSpeedPx","dragAndDropContext","renderDraggedNode","index","style","left","top"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n TouchEvent,\n} from 'react';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport useMemoObject from '@os-design/use-memo-object';\nimport useDrag, {\n Position,\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n} from '@os-design/use-drag';\nimport Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\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\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(4);\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 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 style: {\n position: 'fixed',\n left: cursorPosition.x - draggedNode.position.x,\n top: cursorPosition.y - draggedNode.position.y,\n },\n })}\n </Portal>\n )}\n </DragAndDropContext.Provider>\n );\n};\n\nexport type { DragEndHandler } from './utils/useDragEffect';\n\nexport default DragAndDrop;\n"],"file":"DragAndDrop.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/DragAndDrop.tsx"],"names":["React","useCallback","useMemo","useRef","useState","usePreventDefaultEvent","useMemoObject","useDrag","Portal","useAutoScroll","DragAndDropContext","ListStore","useDragEffect","useGeneratedId","useTransitionStyle","useInitRect","DragAndDrop","draggedNodeContainer","minMouseDistPx","longPressMs","autoScrollDistPercent","autoScrollMaxSpeedPx","transitionDelayMs","onDragEnd","children","listStoreRef","generatedId","nodeClassName","draggedNode","setDraggedNode","startNodeRef","cursorPosition","setCursorPosition","x","y","registerList","list","current","add","deregisterList","id","remove","className","ms","enabled","onDragStart","pos","startPos","startNode","nodeRef","node","rect","getBoundingClientRect","position","onDragMove","dragEndHandler","onMouseDown","onTouchStart","mouseDownHandler","e","touchStartHandler","document","body","distPercent","maxSpeedPx","initRect","undefined","dragAndDropContext","renderDraggedNode","index","style","left","top","width","initWidth","height","initHeight","zIndex"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useState,\n MouseEvent,\n TouchEvent,\n} from 'react';\nimport usePreventDefaultEvent from '@os-design/use-prevent-default-event';\nimport useMemoObject from '@os-design/use-memo-object';\nimport useDrag, {\n Position,\n OnDragEnd,\n OnDragMove,\n OnDragStart,\n} from '@os-design/use-drag';\nimport Portal, { PortalProps } from '@os-design/portal';\nimport useAutoScroll from '@os-design/use-auto-scroll';\nimport { DragAndDropContext } from './utils/useDragAndDrop';\nimport ListStore from './utils/ListStore';\nimport NodeList, { ExistingNode } from './utils/NodeList';\nimport useDragEffect, {\n DragEndHandler,\n DraggedNode,\n} from './utils/useDragEffect';\nimport useGeneratedId from './utils/useGeneratedId';\nimport useTransitionStyle from './utils/useTransitionStyle';\nimport useInitRect from './utils/useInitRect';\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\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(4);\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 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"],"file":"DragAndDrop.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragAndDrop.d.ts","sourceRoot":"","sources":["../../src/DragAndDrop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAsB,EACpB,cAAc,EAEf,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DragAndDrop.d.ts","sourceRoot":"","sources":["../../src/DragAndDrop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AASf,OAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKxD,OAAsB,EACpB,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,gBAAgB;IAK/B,oBAAoB,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAKhD,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAK/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAK9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAK3B,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAUD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkJ3C,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os-design/drag-sort",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": "git@gitlab.com:os-team/libs/os-design.git",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"react": ">=17",
|
|
46
46
|
"react-dom": ">=17"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "b1ea7d447a394d8ea1ea077d6e91a7c151b8af50"
|
|
49
49
|
}
|