playbook-ui 15.7.0-rc.1 → 15.7.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +11 -11
- package/dist/chunks/{_typeahead-CHwm9MTE.js → _typeahead-CbjBmIDu.js} +1 -1
- package/dist/chunks/{lib-Cugvy62C.js → lib-DxDBrGZX.js} +1 -1
- package/dist/chunks/vendor.js +3 -3
- package/dist/playbook-rails-react-bindings.js +1 -1
- package/dist/playbook-rails.js +1 -1
- package/dist/playbook.js +1 -1
- package/package.json +1 -1
package/dist/.vite/manifest.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"__typeahead-
|
|
3
|
-
"file": "chunks/_typeahead-
|
|
2
|
+
"__typeahead-CbjBmIDu.js": {
|
|
3
|
+
"file": "chunks/_typeahead-CbjBmIDu.js",
|
|
4
4
|
"name": "_typeahead",
|
|
5
5
|
"imports": [
|
|
6
|
-
"_lib-
|
|
6
|
+
"_lib-DxDBrGZX.js"
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"_lazysizes-B7xYodB-.js": {
|
|
10
10
|
"file": "chunks/lazysizes-B7xYodB-.js",
|
|
11
11
|
"name": "lazysizes"
|
|
12
12
|
},
|
|
13
|
-
"_lib-
|
|
14
|
-
"file": "chunks/lib-
|
|
13
|
+
"_lib-DxDBrGZX.js": {
|
|
14
|
+
"file": "chunks/lib-DxDBrGZX.js",
|
|
15
15
|
"name": "lib",
|
|
16
16
|
"css": [
|
|
17
17
|
"lib.css"
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"src": "entrypoints/playbook-rails-react-bindings.js",
|
|
28
28
|
"isEntry": true,
|
|
29
29
|
"imports": [
|
|
30
|
-
"__typeahead-
|
|
31
|
-
"_lib-
|
|
30
|
+
"__typeahead-CbjBmIDu.js",
|
|
31
|
+
"_lib-DxDBrGZX.js"
|
|
32
32
|
]
|
|
33
33
|
},
|
|
34
34
|
"entrypoints/playbook-rails.js": {
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"src": "entrypoints/playbook-rails.js",
|
|
38
38
|
"isEntry": true,
|
|
39
39
|
"imports": [
|
|
40
|
-
"_lib-
|
|
41
|
-
"__typeahead-
|
|
40
|
+
"_lib-DxDBrGZX.js",
|
|
41
|
+
"__typeahead-CbjBmIDu.js",
|
|
42
42
|
"_lazysizes-B7xYodB-.js",
|
|
43
43
|
"entrypoints/playbook-rails-react-bindings.js"
|
|
44
44
|
]
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"imports": [
|
|
52
52
|
"entrypoints/playbook.js",
|
|
53
53
|
"_lazysizes-B7xYodB-.js",
|
|
54
|
-
"__typeahead-
|
|
55
|
-
"_lib-
|
|
54
|
+
"__typeahead-CbjBmIDu.js",
|
|
55
|
+
"_lib-DxDBrGZX.js"
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"entrypoints/playbook.scss": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useRef,useEffect,useMemo,useContext,createElement,useState,forwardRef,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{c as getDefaultExportFromCjs,S as filter,T as omit,n as noop$2,u as useCollapsible,U as get,g as getAllIcons,V as createPopper,W as uniqueId,X as flip$2,Y as offset$2,Z as shift$2,$ as arrow$3,a0 as computePosition$1,a1 as createCoords$1,a2 as round$1,a3 as max$1,a4 as min$1,a5 as rectToClientRect$1,h as colors$1,k as highchartsTheme,a6 as merge,l as highchartsDarkTheme,N as typography,a7 as cloneDeep,i as isEmpty$1,a8 as isString}from"./lib-Cugvy62C.js";import{TrixEditor}from"react-trix";import Trix from"trix";import*as ReactDOM from"react-dom";import ReactDOM__default,{createPortal}from"react-dom";import require$$0 from"react-is";const initialState={items:[],dragData:{id:"",initialGroup:"",originId:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return{...state,items:action.payload};case"SET_DRAG_DATA":return{...state,dragData:action.payload};case"SET_IS_DRAGGING":return{...state,isDragging:action.payload};case"SET_ACTIVE_CONTAINER":return{...state,activeContainer:action.payload};case"CHANGE_CATEGORY":return{...state,items:state.items.map((item=>item.id===action.payload.itemId?{...item,container:action.payload.container}:item))};case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return{...state,items:newItems}}case"REORDER_ITEMS_CROSS_CONTAINER":{const{dragId:dragId,targetId:targetId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item&&item.id===targetId));if(draggedIndex===-1||targetIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,updatedItem);return{...state,items:newItems}}case"MOVE_TO_CONTAINER_END":{const{dragId:dragId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);if(draggedIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);const lastIndexInContainer=newItems.map((item=>item&&item.container)).lastIndexOf(newContainer);if(lastIndexInContainer===-1){newItems.push(updatedItem)}else{newItems.splice(lastIndexInContainer+1,0,updatedItem)}return{...state,items:newItems}}case"RESET_DRAG_CONTAINER":{const{itemId:itemId,originalContainer:originalContainer,originalIndex:originalIndex}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===itemId));if(!draggedItem)return state;const currentIndex=newItems.indexOf(draggedItem);newItems.splice(currentIndex,1);const restoredItem={...draggedItem,container:originalContainer};if(originalIndex!==void 0&&originalIndex>=0){newItems.splice(originalIndex,0,restoredItem)}else{newItems.push(restoredItem)}return{...state,items:newItems}}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver,dropZone:dropZone={type:"ghost",color:"neutral",direction:"vertical"},providerId:providerId="default",enableCrossContainerPreview:enableCrossContainerPreview=false})=>{const[state,dispatch]=useReducer(reducer,initialState);const dragStateRef=useRef({isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false});const stateRef=useRef(state);useEffect((()=>{stateRef.current=state}),[state]);let dropZoneType="ghost";let dropZoneColor="neutral";let dropZoneDirection="vertical";if(typeof dropZone==="string"){dropZoneType=dropZone}else{dropZoneType=dropZone.type||"ghost";dropZoneColor=dropZone.type==="line"?dropZone.color||"primary":dropZone.color||"neutral";if(dropZoneType==="line"){dropZoneDirection=dropZone.direction||"vertical"}}useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);useEffect((()=>{if(!enableCrossContainerPreview)return;const handleGlobalDragOver=e=>{if(dragStateRef.current.isDragging){e.preventDefault()}};const handleGlobalDrop=e=>{if(!dragStateRef.current.isDragging)return;if(dragStateRef.current.dropOccurred)return;e.preventDefault();const originalContainer=dragStateRef.current.originalContainer;dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}};const handleGlobalMouseUp=()=>{if(dragStateRef.current.isDragging){setTimeout((()=>{const currentContainer=dragStateRef.current.currentContainer;if(dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){if(currentContainer&¤tContainer!==dragStateRef.current.originalContainer){if(onDrop){const draggedItem=stateRef.current.items.find((item=>item&&item.id===dragStateRef.current.draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:currentContainer}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===currentContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===dragStateRef.current.draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDrop(dragStateRef.current.draggedItemId,currentContainer,dragStateRef.current.originalContainer,updatedItem,itemAbove,itemBelow)}}else{dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}}),50)}};const handleDragLeave=e=>{if(!e.relatedTarget&&dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}};document.addEventListener("dragover",handleGlobalDragOver);document.addEventListener("drop",handleGlobalDrop);document.addEventListener("dragleave",handleDragLeave);document.addEventListener("mouseup",handleGlobalMouseUp);document.addEventListener("pointerup",handleGlobalMouseUp);return()=>{document.removeEventListener("dragover",handleGlobalDragOver);document.removeEventListener("drop",handleGlobalDrop);document.removeEventListener("dragleave",handleDragLeave);document.removeEventListener("mouseup",handleGlobalMouseUp);document.removeEventListener("pointerup",handleGlobalMouseUp)}}),[enableCrossContainerPreview]);const prevIsDraggingRef=useRef(state.isDragging);useEffect((()=>{if(!enableCrossContainerPreview)return;const wasDragging=prevIsDraggingRef.current;const isNowDragging=state.isDragging;if(wasDragging&&!isNowDragging){if(!dragStateRef.current.dropOccurred&&dragStateRef.current.draggedItemId){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}prevIsDraggingRef.current=isNowDragging}),[state.isDragging,enableCrossContainerPreview]);const handleDragStart=(id,container)=>{if(enableCrossContainerPreview){const originalIndex=state.items.findIndex((item=>item&&item.id===id));dragStateRef.current={isDragging:true,draggedItemId:id,originalContainer:container,originalIndex:originalIndex,currentContainer:container,dropOccurred:false}}dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container,originId:providerId}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.originId!==providerId)return;if(state.dragData.id!==id){if(enableCrossContainerPreview){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));const currentContainer=draggedItem&&draggedItem.container?draggedItem.container:state.dragData.initialGroup;const isCrossContainer=currentContainer!==container&&(currentContainer!==void 0||container!==void 0);if(isCrossContainer){dispatch({type:"REORDER_ITEMS_CROSS_CONTAINER",payload:{dragId:state.dragData.id,targetId:id,newContainer:container}});if(enableCrossContainerPreview){dragStateRef.current.currentContainer=container}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}const newInitialGroup=enableCrossContainerPreview?state.dragData.initialGroup:container;dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:newInitialGroup,originId:providerId}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview&&!dragStateRef.current.dropOccurred&&draggedItemId&&originalContainer){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});if(enableCrossContainerPreview&&dragStateRef.current.dropOccurred){return}if(onDragEnd){if(!enableCrossContainerPreview){onDragEnd()}else{const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const finalContainer=draggedItem?draggedItem.container:originalContainer;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===finalContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDragEnd(draggedItemId,finalContainer,originalContainer,itemAbove,itemBelow)}}};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{if(state.dragData.originId!==providerId)return;const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview){dragStateRef.current.dropOccurred=true}const isCrossContainer=container!==originalContainer;let callbackData=null;if(enableCrossContainerPreview){const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:container}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===container));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;callbackData={updatedItem:updatedItem,itemAbove:itemAbove,itemBelow:itemBelow}}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});changeCategory(state.dragData.id,container);if(onDrop){if(!enableCrossContainerPreview){onDrop(container)}else{onDrop(draggedItemId,container,originalContainer,callbackData.updatedItem,callbackData.itemAbove,callbackData.itemBelow)}}if(enableCrossContainerPreview&&isCrossContainer&&onDragEnd&&callbackData){onDragEnd(draggedItemId,container,originalContainer,callbackData.itemAbove,callbackData.itemBelow)}};const handleDragOver=(e,container)=>{if(state.dragData.originId!==providerId)return;e.preventDefault();dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});if(enableCrossContainerPreview&&state.dragData.id){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));if(draggedItem&&draggedItem.container!==container){dispatch({type:"MOVE_TO_CONTAINER_END",payload:{dragId:state.dragData.id,newContainer:container}});dragStateRef.current.currentContainer=container}}if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,dropZone:dropZoneType,dropZoneColor:dropZoneColor,...dropZoneType==="line"?{direction:dropZoneDirection}:{},handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state,dropZoneType,dropZoneColor,dropZoneDirection]);return jsx$1(DragContext.Provider,{value:contextValue,children:children})};var classnames$1={exports:{}};
|
|
1
|
+
import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useRef,useEffect,useMemo,useContext,createElement,useState,forwardRef,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{c as getDefaultExportFromCjs,S as filter,T as omit,n as noop$2,u as useCollapsible,U as get,g as getAllIcons,V as createPopper,W as uniqueId,X as flip$2,Y as offset$2,Z as shift$2,$ as arrow$3,a0 as computePosition$1,a1 as createCoords$1,a2 as round$1,a3 as max$1,a4 as min$1,a5 as rectToClientRect$1,h as colors$1,k as highchartsTheme,a6 as merge,l as highchartsDarkTheme,N as typography,a7 as cloneDeep,i as isEmpty$1,a8 as isString}from"./lib-DxDBrGZX.js";import{TrixEditor}from"react-trix";import Trix from"trix";import*as ReactDOM from"react-dom";import ReactDOM__default,{createPortal}from"react-dom";import require$$0 from"react-is";const initialState={items:[],dragData:{id:"",initialGroup:"",originId:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return{...state,items:action.payload};case"SET_DRAG_DATA":return{...state,dragData:action.payload};case"SET_IS_DRAGGING":return{...state,isDragging:action.payload};case"SET_ACTIVE_CONTAINER":return{...state,activeContainer:action.payload};case"CHANGE_CATEGORY":return{...state,items:state.items.map((item=>item.id===action.payload.itemId?{...item,container:action.payload.container}:item))};case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return{...state,items:newItems}}case"REORDER_ITEMS_CROSS_CONTAINER":{const{dragId:dragId,targetId:targetId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item&&item.id===targetId));if(draggedIndex===-1||targetIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,updatedItem);return{...state,items:newItems}}case"MOVE_TO_CONTAINER_END":{const{dragId:dragId,newContainer:newContainer}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===dragId));if(!draggedItem)return state;const draggedIndex=newItems.indexOf(draggedItem);if(draggedIndex===-1)return state;const updatedItem={...draggedItem,container:newContainer};newItems.splice(draggedIndex,1);const lastIndexInContainer=newItems.map((item=>item&&item.container)).lastIndexOf(newContainer);if(lastIndexInContainer===-1){newItems.push(updatedItem)}else{newItems.splice(lastIndexInContainer+1,0,updatedItem)}return{...state,items:newItems}}case"RESET_DRAG_CONTAINER":{const{itemId:itemId,originalContainer:originalContainer,originalIndex:originalIndex}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item&&item.id===itemId));if(!draggedItem)return state;const currentIndex=newItems.indexOf(draggedItem);newItems.splice(currentIndex,1);const restoredItem={...draggedItem,container:originalContainer};if(originalIndex!==void 0&&originalIndex>=0){newItems.splice(originalIndex,0,restoredItem)}else{newItems.push(restoredItem)}return{...state,items:newItems}}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver,dropZone:dropZone={type:"ghost",color:"neutral",direction:"vertical"},providerId:providerId="default",enableCrossContainerPreview:enableCrossContainerPreview=false})=>{const[state,dispatch]=useReducer(reducer,initialState);const dragStateRef=useRef({isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false});const stateRef=useRef(state);useEffect((()=>{stateRef.current=state}),[state]);let dropZoneType="ghost";let dropZoneColor="neutral";let dropZoneDirection="vertical";if(typeof dropZone==="string"){dropZoneType=dropZone}else{dropZoneType=dropZone.type||"ghost";dropZoneColor=dropZone.type==="line"?dropZone.color||"primary":dropZone.color||"neutral";if(dropZoneType==="line"){dropZoneDirection=dropZone.direction||"vertical"}}useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);useEffect((()=>{if(!enableCrossContainerPreview)return;const handleGlobalDragOver=e=>{if(dragStateRef.current.isDragging){e.preventDefault()}};const handleGlobalDrop=e=>{if(!dragStateRef.current.isDragging)return;if(dragStateRef.current.dropOccurred)return;e.preventDefault();const originalContainer=dragStateRef.current.originalContainer;dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}};const handleGlobalMouseUp=()=>{if(dragStateRef.current.isDragging){setTimeout((()=>{const currentContainer=dragStateRef.current.currentContainer;if(dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){if(currentContainer&¤tContainer!==dragStateRef.current.originalContainer){if(onDrop){const draggedItem=stateRef.current.items.find((item=>item&&item.id===dragStateRef.current.draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:currentContainer}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===currentContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===dragStateRef.current.draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDrop(dragStateRef.current.draggedItemId,currentContainer,dragStateRef.current.originalContainer,updatedItem,itemAbove,itemBelow)}}else{dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}}),50)}};const handleDragLeave=e=>{if(!e.relatedTarget&&dragStateRef.current.isDragging&&!dragStateRef.current.dropOccurred){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}});dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}};document.addEventListener("dragover",handleGlobalDragOver);document.addEventListener("drop",handleGlobalDrop);document.addEventListener("dragleave",handleDragLeave);document.addEventListener("mouseup",handleGlobalMouseUp);document.addEventListener("pointerup",handleGlobalMouseUp);return()=>{document.removeEventListener("dragover",handleGlobalDragOver);document.removeEventListener("drop",handleGlobalDrop);document.removeEventListener("dragleave",handleDragLeave);document.removeEventListener("mouseup",handleGlobalMouseUp);document.removeEventListener("pointerup",handleGlobalMouseUp)}}),[enableCrossContainerPreview]);const prevIsDraggingRef=useRef(state.isDragging);useEffect((()=>{if(!enableCrossContainerPreview)return;const wasDragging=prevIsDraggingRef.current;const isNowDragging=state.isDragging;if(wasDragging&&!isNowDragging){if(!dragStateRef.current.dropOccurred&&dragStateRef.current.draggedItemId){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:dragStateRef.current.draggedItemId,originalContainer:dragStateRef.current.originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dragStateRef.current={isDragging:false,draggedItemId:"",originalContainer:"",originalIndex:-1,currentContainer:"",dropOccurred:false}}prevIsDraggingRef.current=isNowDragging}),[state.isDragging,enableCrossContainerPreview]);const handleDragStart=(id,container)=>{if(enableCrossContainerPreview){const originalIndex=state.items.findIndex((item=>item&&item.id===id));dragStateRef.current={isDragging:true,draggedItemId:id,originalContainer:container,originalIndex:originalIndex,currentContainer:container,dropOccurred:false}}dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container,originId:providerId}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.originId!==providerId)return;if(state.dragData.id!==id){if(enableCrossContainerPreview){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));const currentContainer=draggedItem&&draggedItem.container?draggedItem.container:state.dragData.initialGroup;const isCrossContainer=currentContainer!==container&&(currentContainer!==void 0||container!==void 0);if(isCrossContainer){dispatch({type:"REORDER_ITEMS_CROSS_CONTAINER",payload:{dragId:state.dragData.id,targetId:id,newContainer:container}});if(enableCrossContainerPreview){dragStateRef.current.currentContainer=container}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}}else{dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}})}const newInitialGroup=enableCrossContainerPreview?state.dragData.initialGroup:container;dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:newInitialGroup,originId:providerId}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview&&!dragStateRef.current.dropOccurred&&draggedItemId&&originalContainer){dispatch({type:"RESET_DRAG_CONTAINER",payload:{itemId:draggedItemId,originalContainer:originalContainer,originalIndex:dragStateRef.current.originalIndex}})}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});if(enableCrossContainerPreview&&dragStateRef.current.dropOccurred){return}if(onDragEnd){if(!enableCrossContainerPreview){onDragEnd()}else{const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const finalContainer=draggedItem?draggedItem.container:originalContainer;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===finalContainer));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;onDragEnd(draggedItemId,finalContainer,originalContainer,itemAbove,itemBelow)}}};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{if(state.dragData.originId!==providerId)return;const draggedItemId=state.dragData.id;const originalContainer=state.dragData.initialGroup;if(enableCrossContainerPreview){dragStateRef.current.dropOccurred=true}const isCrossContainer=container!==originalContainer;let callbackData=null;if(enableCrossContainerPreview){const draggedItem=stateRef.current.items.find((item=>item&&item.id===draggedItemId));const updatedItem=draggedItem?{...draggedItem,container:container}:null;const itemsInContainer=stateRef.current.items.filter((item=>item&&item.container===container));const indexInContainer=itemsInContainer.findIndex((item=>item&&item.id===draggedItemId));const itemAbove=indexInContainer>0?itemsInContainer[indexInContainer-1]:null;const itemBelow=indexInContainer<itemsInContainer.length-1?itemsInContainer[indexInContainer+1]:null;callbackData={updatedItem:updatedItem,itemAbove:itemAbove,itemBelow:itemBelow}}dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});dispatch({type:"SET_DRAG_DATA",payload:{id:"",initialGroup:"",originId:""}});changeCategory(state.dragData.id,container);if(onDrop){if(!enableCrossContainerPreview){onDrop(container)}else{onDrop(draggedItemId,container,originalContainer,callbackData.updatedItem,callbackData.itemAbove,callbackData.itemBelow)}}if(enableCrossContainerPreview&&isCrossContainer&&onDragEnd&&callbackData){onDragEnd(draggedItemId,container,originalContainer,callbackData.itemAbove,callbackData.itemBelow)}};const handleDragOver=(e,container)=>{if(state.dragData.originId!==providerId)return;e.preventDefault();dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});if(enableCrossContainerPreview&&state.dragData.id){const draggedItem=state.items.find((item=>item&&item.id===state.dragData.id));if(draggedItem&&draggedItem.container!==container){dispatch({type:"MOVE_TO_CONTAINER_END",payload:{dragId:state.dragData.id,newContainer:container}});dragStateRef.current.currentContainer=container}}if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,dropZone:dropZoneType,dropZoneColor:dropZoneColor,...dropZoneType==="line"?{direction:dropZoneDirection}:{},handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state,dropZoneType,dropZoneColor,dropZoneDirection]);return jsx$1(DragContext.Provider,{value:contextValue,children:children})};var classnames$1={exports:{}};
|
|
2
2
|
/*!
|
|
3
3
|
Copyright (c) 2018 Jed Watson.
|
|
4
4
|
Licensed under the MIT License (MIT), see
|