@vue-dnd-kit/core 2.4.5 → 2.4.6
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.
|
@@ -2,7 +2,8 @@ import { Ref } from 'vue';
|
|
|
2
2
|
import { IAutoScrollOptions } from '../types';
|
|
3
3
|
export type { IAutoScrollOptions };
|
|
4
4
|
/**
|
|
5
|
-
* Auto-scroll when the drag overlay is near container edges
|
|
5
|
+
* Auto-scroll when the drag overlay is near container edges, and the
|
|
6
|
+
* container is the drop target. Element scroll only.
|
|
6
7
|
*
|
|
7
8
|
* @param container - Ref to the scrollable element
|
|
8
9
|
* @param options - threshold, speed, disabled
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-preview{transform-origin:0 0;will-change:transform}.dnd-kit-preview-container{position:fixed;top:0;left:0;pointer-events:none;cursor:grabbing;z-index:9999}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),k={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},_={SELECT_AREA:`[${k.SELECT_AREA}]`,DRAGGABLE:`[${k.DRAGGABLE}]`,CONSTRAINT_AREA:`[${k.CONSTRAINT_AREA}]`},Z="VueDnDKitProvider",pe=(e,t,n,s)=>{const a=new Set;return t.forEach(r=>{const i=e.get(r),o=s?s(r):i?.disabled;if(!i||o)return;const c=i.modifier?.keys,l=i.modifier?.method;if(!c||!l||c.length===0){a.add(r);return}c[l](g=>n.value.has(g))&&a.add(r)}),a};let Se="",Fe="",ze="";const S=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,G=(e,t)=>e!==t&&e.contains(t),_e=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ie=()=>{const e=document.body;Se=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",M),window.addEventListener("selectstart",M),window.addEventListener("touchstart",M),window.addEventListener("touchmove",M)},oe=()=>{const e=document.body;e.style.userSelect=Se,e.style.touchAction=Fe,e.style.overscrollBehavior=ze,window.removeEventListener("contextmenu",M),window.removeEventListener("selectstart",M),window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",M)},M=e=>e.preventDefault(),de=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(s)?.disabled&&G(s,e))return!0;return!1},H=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(s)?.disabled&&G(s,e))return!0;return!1},$=(e,t)=>{if(!e.length||!t.length)return!0;const n=new Set(t);return e.some(s=>n.has(s))};function Ge(e,t,n,s){const a=[];for(const i of t.keys()){const o=n.get(i);a.push({groups:o?.groups??[]})}const r=new Set;for(const i of e){const o=s.get(i),c=o?.groups??[],l=o?.groupMatch??"every";(!a.length||a[l](g=>$(g.groups,c)))&&r.add(i)}return r}function He(e,t,n){const s=new Set;for(const i of t.keys()){const o=n.get(i);for(const c of o?.groups??[])s.add(c)}const a=[...s],r=new Set;for(const i of e){const c=n.get(i)?.groups??[];$(a,c)&&r.add(i)}return r}const J=e=>{if(typeof IntersectionObserver>"u")return{observe:()=>{},unobserve:()=>{},disconnect:()=>{}};const t=new IntersectionObserver(n=>{n.forEach(s=>{const a=s.target;e[s.isIntersecting?"add":"delete"](a)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}};function re(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function Me(e,t){const n=t.getBoundingClientRect(),s=n.width>0?(e.clientX-n.left)/n.width:.5,a=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:s,y:a}}function ve(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ke(e,t,n){e.forEach(s=>{const a=t.get(s);n.set(s,ve(s,a))}),e.clear()}function Ne(e,t,n){n.clear();const s=t.get(e);n.set(e,ve(e,s))}function X(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Ue(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ue(e,t,n,s){t.has(e)?Ke(t,n,s):(t.clear(),Ne(e,n,s))}function Ae(e,t,n,s){if(s||!n)return!0;const a=e.closest(n);return a?t.contains(a):!1}function Ye(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),s=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const l=Math.sqrt(n*n+s*s);return Math.min(l/t,1)}const{x:a=0,y:r=0,condition:i="any"}=t;if(a===0&&r===0)return 1;const o=a>0?Math.min(n/a,1):1,c=r>0?Math.min(s/r,1):1;return i==="both"?Math.min(o,c):Math.max(o,c)}function Ee(e,t,n){if(!n)return!0;const s=n.distance!=null,a=n.delay!=null;return!s&&!a?!0:s&&!a?e>=1:!s&&a?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Xe(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Ee(e.distanceProgress.value,e.delay.progress,t?.activation)?(X(e),!0):!1}function Ve(e,t){let n=null;const s=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const a=e.entities.draggableMap.get(e.entities.initiatingDraggable),r=a?.activation?.delay;if(!r){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(r*1e3),1),Ee(e.distanceProgress.value,e.delay.progress,a?.activation)?(t(),n=null):n=requestAnimationFrame(s)};return n=requestAnimationFrame(s),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function Ze(e,t){const n=e.closest(_.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function $e(e,t,n,s){return n==="x"?{x:e,y:s.top}:n==="y"?{x:s.left,y:t}:{x:e,y:t}}function je(e,t,n,s,a){let r=e,i=t;return n!=="y"&&(r=Math.max(s.left,Math.min(s.right-a.width,e))),n!=="x"&&(i=Math.max(s.top,Math.min(s.bottom-a.height,t))),{x:r,y:i}}function qe(e,t,n,s){if(!e)return{x:0,y:0};const a=t?.width??0,r=t?.height??0;let i=e.current.x-a*e.offset.x,o=e.current.y-r*e.offset.y;if(!n)return{x:i,y:o};const c=Ze(n,s);if(!c)return{x:i,y:o};const{element:l,entity:f}=c,g=l.getBoundingClientRect(),d=n.getBoundingClientRect(),m=$e(i,o,f.axis||"both",d);return f.restrictToArea?je(m.x,m.y,f.axis||"both",g,t??{width:0,height:0}):m}const N={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function We(e,t){const n=u.shallowRef(),s=u.ref(),r={keys:{pressedKeys:u.ref(new Set),forDrag:[...N.forDrag],forCancel:[...N.forCancel],forDrop:[...N.forDrop],forMove:[...N.forMove],forMoveFaster:[...N.forMoveFaster]},step:8,moveFaster:4},i=u.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,selectionBase:new Set,allowedDroppableSet:u.computed(()=>n.value?Ge(i.visibleDroppableSet,i.draggingMap,i.draggableMap,i.droppableMap):new Set),allowedDraggableSet:u.computed(()=>n.value?He(i.visibleDraggableSet,i.draggingMap,i.draggableMap):new Set),modifiersSelectableAreaSet:u.computed(()=>pe(i.selectableAreaMap,i.visibleSelectableAreaSet,r.keys.pressedKeys)),modifiersDraggableSet:u.computed(()=>pe(i.draggableMap,i.visibleDraggableSet,r.keys.pressedKeys,w=>de(w,{entities:i}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),o=u.reactive({draggable:new Map,droppable:new Map}),c={throttle:u.shallowRef(0)},l=u.reactive({x:typeof window<"u"?window.scrollX:0,y:typeof window<"u"?window.scrollY:0}),f=u.reactive({progress:0,startTime:0}),g=u.computed(()=>{if(!s.value||!i.initiatingDraggable)return 0;const w=i.draggableMap.get(i.initiatingDraggable)?.activation?.distance;return w?Ye(s.value,w):1}),d=J(i.visibleDraggableSet),m=J(i.visibleDroppableSet),p=J(i.visibleSelectableAreaSet),h=u.ref(),y=u.shallowRef(typeof DOMRect<"u"?new DOMRect:{}),b=u.computed(()=>{l.x,l.y;const D=y.value,w=i.initiatingDraggable,I=w?i.draggingMap.get(w):null,T=D.width&&D.height?D:I?.initialRect??null;return qe(s.value,T,w||null,i.constraintsAreaMap)}),E=u.computed({get:()=>t?.previewTo,set:D=>E.value=D}),R=u.computed(()=>t?.autoScrollViewport);return{state:n,pointer:s,entities:i,keyboard:r,scrollPosition:l,delay:f,distanceProgress:g,hovered:o,collision:c,preview:{size:y,position:b,render:h,ref:e,to:E},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:p,rectCache:new Map},autoScrollViewport:R}}const V=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const s=e.entities.draggableMap.get(t);s&&(s.hoveredPlacement=void 0)}const n=e.hovered.droppable.keys().next().value;if(n){const s=e.entities.droppableMap.get(n);s&&(s.hoveredPlacement=void 0)}e.lib.rectCache.clear(),e.pointer.value=void 0,e.state.value=void 0,e.entities.selectingArea=void 0,e.entities.selectionBase.clear(),e.entities.initiatingDraggable=void 0,e.delay.progress=0,e.delay.startTime=0,e.entities.draggingMap.clear(),e.hovered.draggable.clear(),e.hovered.droppable.clear()};function Je(e){return e.parentElement?.closest(_.SELECT_AREA)??null}const Qe=(e,t,n)=>{if(!n)return{};const s=n.getBoundingClientRect(),a=Math.max(s.left,Math.min(e.x,t.x)),r=Math.max(s.top,Math.min(e.y,t.y)),i=Math.min(s.right,Math.max(e.x,t.x)),o=Math.min(s.bottom,Math.max(e.y,t.y)),c=Math.max(0,i-a),l=Math.max(0,o-r),f=a-s.left+n.scrollLeft,g=r-s.top+n.scrollTop;return{position:"absolute",left:`${f}px`,top:`${g}px`,width:`${c}px`,height:`${l}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},xe=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=et(e.pointer.value.start,e.pointer.value.current),s=e.entities.selectableAreaMap.get(t)?.groups??[],a=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(r=>{if(r===t||!t.contains(r))return;const i=Je(r);if(i&&i!==t){e.entities.selectedSet.delete(r);return}if(de(r,e)){e.entities.selectedSet.delete(r);return}const c=e.entities.draggableMap.get(r)?.groups??[];if(!$(s,c)){e.entities.selectedSet.delete(r);return}let l=a.get(r);l||(l=r.getBoundingClientRect(),a.set(r,l));const f=e.entities.selectionBase.has(r),g=_e(n,l);switch(e.entities.selectableAreaMap.get(t)?.strategy){case"toggle":e.entities.selectedSet[g!==f?"add":"delete"](r);break;case"select":e.entities.selectedSet[g?"add":"delete"](r);break}})},et=(e,t)=>{const n=Math.min(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.x,t.x),r=Math.max(e.y,t.y),i=a-n,o=r-s;return new DOMRect(n,s,i,o)};function L(e,t,n){const s=Math.max(0,Math.min(t,e.length));return[...e.slice(0,s),...n,...e.slice(s)]}function me(e,t,n=1){const s=Math.max(0,Math.min(t,e.length-1)),a=Math.max(0,Math.min(n,e.length-s));return[...e.slice(0,s),...e.slice(s+a)]}function K(e,t){const n=[...new Set(t)].filter(a=>a>=0&&a<e.length).sort((a,r)=>r-a);let s=e;for(const a of n)s=me(s,a,1);return s}function Le(e,t,n){if(t===n||t<0||n<0||t>=e.length||n>=e.length)return e;const s=[...e];return[s[t],s[n]]=[s[n],s[t]],s}const C={getInsertSide(e,t){return e?t==="vertical"?e.top&&!e.bottom?"before":e.bottom&&!e.top?"after":e.top?"before":null:e.left&&!e.right?"before":e.right&&!e.left?"after":e.left?"before":null:null},isAtZoneStart(e,t){return C.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return C.getInsertSide(e,t)==="after"&&!e?.center}};function ke(e,t){const{draggedItems:n,dropZone:s,hoveredDraggable:a}=e;if(!n.length)return null;const r=a?.placement.center===!0&&s!=null&&s.items!==a.items,i=r?s.items:a?.items??s?.items;if(!i)return null;const o=n[0].items,c=n.map(d=>d.index),l=i.length;let f,g;if(a&&!r){const d=a.items===o&&c.includes(a.index);if(d&&n.length===1){const m=C.isAtZoneStart(s?.placement,t);f=m?0:l,g=m?"prepend":"append"}else{if(d)return null;{const m=C.getInsertSide(a.placement,t),p=a.index;m==="before"?(f=Math.max(0,p),g="insert"):m==="after"?(f=Math.min(l,p+1),g="insert"):(f=l,g="append")}}}else{if(!s)return null;const d=C.isAtZoneStart(s.placement,t);f=d?0:l,g=d?"prepend":"append"}return{targetIndex:f,mode:g,targetArr:i}}function tt(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=ke(e,t);if(!s)return null;const{targetArr:a,mode:r}=s;let{targetIndex:i}=s;const o=n.map(g=>g.index),c=n.map(g=>g.item),l=n[0].items;if(l===a){const g=o.filter(m=>m<i).length;i=Math.max(0,i-g);const d=L(K(l,o),i,c);return{sourceItems:d,targetItems:d,draggedItems:c,sourceIndexes:o,targetIndex:i,mode:r,sameList:!0}}else{const g=K(l,o),d=L(a,i,c);return{sourceItems:g,targetItems:d,draggedItems:c,sourceIndexes:o,targetIndex:i,mode:r,sameList:!1}}}function nt(e){const{draggedItems:t,hoveredDraggable:n}=e;if(!t.length||!n)return null;const s=t.map(f=>f.index),a=n.index,r=t.map(f=>f.item),i=n.item,o=t[0].items,c=n.items,l=o===c;if(l&&s.includes(a))return null;if(t.length===1){const f=s[0];if(l){const g=Le(o,f,a);return{sourceItems:g,targetItems:g,sourceIndexes:s,targetIndex:a,sameList:!0}}else{const g=[...o],d=[...c];return g[f]=c[a],d[a]=o[f],{sourceItems:g,targetItems:d,sourceIndexes:s,targetIndex:a,sameList:!1}}}else{const f=Math.min(...s);if(l){const g=s.filter(b=>b<a).length,d=Math.max(0,a-g),m=s.filter(b=>b<f).length,p=Math.max(0,f-m);let h=K(o,s);h=L(h,d,r);const y=p>=d?p+r.length:p;return h=L(h,y,[i]),{sourceItems:h,targetItems:h,sourceIndexes:s,targetIndex:d,sameList:!0}}else{const g=s.filter(h=>h<f).length,d=Math.max(0,f-g);let m=K(o,s);m=L(m,d,[i]);let p=me(c,a);return p=L(p,a,r),{sourceItems:m,targetItems:p,sourceIndexes:s,targetIndex:a,sameList:!1}}}}function st(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=ke(e,t);if(!s)return null;const{targetArr:a,targetIndex:r,mode:i}=s,o=n.map(l=>l.item);return{targetItems:L(a,r,o),copiedItems:o,targetIndex:r,mode:i}}function at(e){const{draggedItems:t}=e;if(!t.length)return null;const n=t.map(i=>i.index),s=t.map(i=>i.item),a=t[0].items;return{sourceItems:K(a,n),removedItems:s,sourceIndexes:n}}function Ce(e){return{insertAt:L,removeAt:me,removeIndexes:K,swapAt:Le,getInsertSide:(t,n)=>C.getInsertSide(t,n),isAtZoneStart:(t,n)=>C.isAtZoneStart(t,n),isAtZoneEnd:(t,n)=>C.isAtZoneEnd(t,n),suggestSort:t=>tt(e,t),suggestSwap:()=>nt(e),suggestCopy:t=>st(e,t),suggestRemove:()=>at(e)}}const P=e=>e.keys().next().value,it=e=>e.target.closest(_.DRAGGABLE);function Re(e,t){const n=t.entities.draggingMap.get(e);if(n)return n;const s=e.getAttribute(k.DRAGGABLE);if(s){for(const[,a]of t.entities.draggingMap)if(a.id===s)return a}}function ot(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=Re(t,e)??e.entities.draggableMap.get(t),s=n?.payload;if(!s)return n?.data?[{index:-1,item:void 0,items:[],data:n.data()}]:[];const a=s();if(!Array.isArray(a)||a.length<2)return[];const[r,i]=a,o=Number(r),c=i,l=new Map;return l.set(o,{index:o,item:c[o],items:c,data:n?.data?.()}),e.entities.draggingMap.forEach((f,g)=>{const d=e.entities.draggableMap.get(g),m=d?.payload;if(!m)return;const p=m();if(!Array.isArray(p)||p.length<2)return;const[h,y]=p;if(y!==c)return;const b=Number(h);l.has(b)||l.set(b,{index:b,item:y[b],items:c,data:d?.data?.()})}),[...l.values()].sort((f,g)=>f.index-g.index)}const A=(e,t)=>{const n=ot(e);let s,a;if(t){const r=e.entities.droppableMap.get(t);if(r){const c=r.payload;s={items:c?c():[],placement:e.hovered.droppable.get(t),data:r.data?.()}}const i=P(e.hovered.draggable);if(i&&(i===t||t.contains(i))&&i){const c=e.entities.draggableMap.get(i),l=c?.payload,f=e.hovered.draggable.get(i),g={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(l){const d=l();if(Array.isArray(d)&&d.length>=2){const[m,p]=d,h=Number(m);a={element:i,placement:f??g,index:h,item:p[h],items:p,data:c?.data?.()}}}else c?.data&&(a={element:i,placement:f??g,index:-1,item:void 0,items:[],data:c.data()})}}return{draggedItems:n,dropZone:s,hoveredDraggable:a,provider:e,helpers:Ce({draggedItems:n,dropZone:s,hoveredDraggable:a})}},O=(e,t,n)=>{if(!t)return;const s=Re(t,e)??e.entities.draggableMap.get(t);!s||s.disabled||s.events?.[n]?.(A(e))},v=(e,t)=>{const n=A(e);e.entities.draggingMap.forEach(s=>{s.disabled||s.events?.[t]?.(n)})},rt=(e,t,n)=>{if(t!==n){if(t&&!H(t,e)){const s=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(s)}if(n&&!H(n,e)){const s=A(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(s)}}},lt=(e,t,n)=>{if(t!==n){const s=A(e);if(t){const a=e.entities.draggableMap.get(t);a&&!a.disabled&&a.events?.onLeave?.(s)}if(n){const a=e.entities.draggableMap.get(n);a&&!a.disabled&&a.events?.onHover?.(s)}}},Q=(e,t,n)=>{const s=it(t);!s||!e.entities.draggingMap.has(s)||e.entities.draggingMap.get(s)?.events?.[n]?.(A(e))},ct=(e,t)=>{const n=P(t.droppable);n&&!H(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},le=(e,t)=>{const n=P(t.droppable);n&&!H(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},gt=(e,t,n=5)=>{const s=n/2;return{left:e-s,top:t-s,width:n,height:n}},ut=e=>{const t=e.pointer.value?.current,n=t?.x??0,s=t?.y??0;return gt(n,s,5)},B=(e,t,n)=>{const s=e.left+e.width/2,a=e.top+e.height/2;if(n){const o=n.top??0,c=n.right??0,l=n.bottom??0,f=n.left??0,g=t.left+f,d=t.right-c,m=t.top+o,p=t.bottom-l;if(g<d&&m<p&&s>=g&&s<=d&&a>=m&&a<=p)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const r=t.left+t.width/2,i=t.top+t.height/2;return{top:a<=i,bottom:a>i,left:s<=r,right:s>r,center:!1}},ft=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),be=(e,t)=>{const n=ft(t);return Math.hypot(e.x-n.x,e.y-n.y)};function dt(e,t){return e===t?!0:!e||!t?!1:e.top===t.top&&e.right===t.right&&e.bottom===t.bottom&&e.left===t.left&&e.center===t.center}function U(e,t){dt(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const mt=(e,t)=>e.find(n=>n!==t&&G(t,n)),ce=(e,t,n)=>{const s=P(t.droppable),a=P(t.draggable);a&&t.draggable.delete(a),s&&t.droppable.delete(s);const r=ut(e),i=n.zones[0],o=n.elements[0];if(i&&o&&i===o&&e.entities.droppableMap.has(i)&&i){const g=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins,m=B(r,g,d);if(m.center){t.droppable.set(i,m);const p=mt(n.elements,i);if(p){const h=p.getBoundingClientRect();t.draggable.set(p,B(r,h,void 0))}}else{t.draggable.set(o,m);const p=n.zones.find(h=>h!==i);if(p){const h=p.getBoundingClientRect();t.droppable.set(p,B(r,h))}}}else{if(i){const g=i.getBoundingClientRect();t.droppable.set(i,B(r,g))}if(o)if(i)if(G(i,o)){const g=o.getBoundingClientRect(),d=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,g,d))}else{const g=e.pointer.value?.current??{x:0,y:0},d=i.getBoundingClientRect(),m=o.getBoundingClientRect(),p=be(g,d);if(be(g,m)<p){t.droppable.clear();const y=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,m,y))}}else{const g=o.getBoundingClientRect(),d=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,g,d))}}const l=P(t.droppable),f=P(t.draggable);if(a&&a!==f){const g=e.entities.draggableMap.get(a);g&&U(g,void 0)}if(s&&s!==l){const g=e.entities.droppableMap.get(s);g&&U(g,void 0)}if(f){const g=e.entities.draggableMap.get(f);g&&U(g,t.draggable.get(f))}if(l){const g=e.entities.droppableMap.get(l);g&&U(g,t.droppable.get(l))}rt(e,s,l),lt(e,a,f)},ee=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,te=e=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},ne=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),s=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),a=n*s,r=e.width*e.height,i=t.width*t.height;return r===0||i===0?0:(a/r*100+a/i*100)/2},ht=e=>e.preview.ref?.value??null,ye=e=>{const t=e.preview.position?.value??{x:0,y:0},{x:n,y:s}=t,a=e.preview.size?.value;let r,i;if(a)r=a.width,i=a.height;else{const o=e.preview.ref?.value?.getBoundingClientRect();r=o?.width??0,i=o?.height??0}return{x:n,y:s,width:r,height:i,top:s,left:n,right:n+r,bottom:s+i}},ge=e=>e.entities.allowedDraggableSet,Ie=e=>e.entities.allowedDroppableSet,pt=(e,t)=>!t.entities.draggingMap.has(e),bt=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>{if(G(n,e))return!0;const s=n.parentElement;return!!(s&&e!==n&&!t.entities.draggableMap.has(s)&&!t.entities.droppableMap.has(s)&&G(s,e)&&[...t.entities.draggableMap.keys()].filter(r=>r.parentElement===s).length===1)}),yt=(e,t)=>t.entities.draggableMap.has(e)?!de(e,t):t.entities.droppableMap.has(e)?!H(e,t):!0,Y=(e,t)=>pt(e,t)&&bt(e,t)&&yt(e,t),se=10;function z(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function De(e,t){const n=Math.max(e.x,Math.min(t.x,e.x+e.width)),s=Math.max(e.y,Math.min(t.y,e.y+e.height));return Math.hypot(t.x-n,t.y-s)}function Dt(e){const t=e.pointer.value?.current??{x:0,y:0},n=document.elementFromPoint(t.x,t.y);if(!n)return null;const s=ge(e),a=Ie(e),r=[],i=[];let o=n;for(;o;)(s.has(o)||a.has(o))&&Y(o,e)&&(s.has(o)&&r.push(o),a.has(o)&&i.push(o)),o=o.parentElement;return r.length===0&&i.length===0?null:{elements:r,zones:i}}const ue=e=>{if(!ht(e))return{elements:[],zones:[]};const n=e.pointer.value?.current??{x:0,y:0},s=Dt(e);if(s){if(s.elements.length>0)return s;const l=s.zones[0];if(!l)return s;const f=ye(e),d=[...ge(e)].filter(h=>l.contains(h)&&Y(h,e)).map(h=>({el:h,box:te(h)})),m=d.filter(({box:h})=>ee(h,f)&&ne(h,f)>=se).sort((h,y)=>z(h.box,n)-z(y.box,n)).map(({el:h})=>h);return m.length>0?{elements:m,zones:s.zones}:{elements:d.sort((h,y)=>De(h.box,n)-De(y.box,n)).map(({el:h})=>h),zones:s.zones}}const a=ye(e),r=[...ge(e)].filter(l=>Y(l,e)),i=[...Ie(e)].filter(l=>Y(l,e)),o=r.map(l=>({n:l,box:te(l)})).filter(({box:l})=>ee(l,a)&&ne(l,a)>=se).sort((l,f)=>z(l.box,n)-z(f.box,n)).map(({n:l})=>l),c=i.map(l=>({n:l,box:te(l)})).filter(({box:l})=>ee(l,a)&&ne(l,a)>=se).sort((l,f)=>z(l.box,n)-z(f.box,n)).map(({n:l})=>l);return{elements:o,zones:c}};function fe(e){const t=ue(e);ce(e,e.hovered,t)}function wt(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){fe(e);return}const s=Date.now();s-t.value>=n&&(t.value=s,fe(e))}async function Te(e){const t=e.hovered.droppable.keys().next().value;if(!t||H(t,e))return"accept";const n=e.entities.droppableMap.get(t),s=A(e,t);let a=s;if(n?.groupMatch==="some"&&(n.groups?.length??0)>0){const o=n.groups,c=s.draggedItems.filter(f=>{for(const[,g]of e.entities.draggingMap){const d=g.payload?.();if(!(!Array.isArray(d)||d.length<2)&&Number(d[0])===f.index&&d[1]===f.items)return $(g.groups??[],o)}return!0}),l=s.draggedItems.filter(f=>!c.includes(f));if(l.length>0){const f=g=>({...s,draggedItems:g,helpers:Ce({...s,draggedItems:g})});if(n.events?.onValidate){const g=n.events.onValidate({validItems:c,invalidItems:l,dropZone:s.dropZone,hoveredDraggable:s.hoveredDraggable}),d=g!=null&&typeof g.then=="function";let m;if(d){e.state.value="pending";try{m=await g}catch{const h=e.entities.initiatingDraggable;return O(e,h,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),"cancel"}}else m=g;if(m===!1)return e.state.value="dragging","decline";const p=Array.isArray(m)?m:c;if(p.length===0)return"accept";a=f(p)}else{if(c.length===0)return"accept";a=f(c)}}}const r=n?.events?.onDrop?.(a);if(r!=null&&typeof r.then=="function"){e.state.value="pending";let o;try{o=await r}catch{const c=e.entities.initiatingDraggable;return O(e,c,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),"cancel"}return o===!1?(e.state.value="dragging","decline"):"accept"}return r===!1?"decline":"accept"}function Be(e){const t=e.entities.initiatingDraggable;O(e,t,"onSelfDragEnd"),v(e,"onDragEnd"),ct(e,e.hovered)}function St(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),s=[...e.entities.selectedSet];n?.events?.onSelected?.(s)}const Mt=e=>{const t={current:null},n={value:0},s=async()=>{oe(),t.current?.cancel(),t.current=null;const o=e.state.value;if(o==="dragging"){const c=await Te(e);if(c==="accept"&&Be(e),c==="accept"||c==="cancel"){V(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a);return}return}else o==="selecting"&&St(e);V(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a)},a=o=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:o.clientX,y:o.clientY},Xe(e)){Q(e,o,"onSelfDragStart"),v(e,"onDragStart");return}if(e.state.value==="dragging"){wt(e,n);const c=e.entities.initiatingDraggable;O(e,c,"onSelfDragMove"),v(e,"onDragMove")}e.state.value==="selecting"&&xe(e)}};return{pointerDown:o=>{document.addEventListener("pointerup",s),document.addEventListener("pointermove",a);const c=o.composedPath?.()[0]??o.target,l=c.closest(_.SELECT_AREA),f=c.closest(_.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(l)){ie(),e.pointer.value=re(o),e.state.value="selecting",e.entities.selectingArea=l,e.entities.selectionBase=new Set(e.entities.selectedSet);return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(f)){const g=e.entities.draggableMap.get(f);if(!Ae(c,f,g?.dragHandle))return;ie(),e.entities.initiatingDraggable=f;const d=Me(o,f);e.pointer.value=re(o,d.x,d.y),g?.activation?.distance||g?.activation?.delay?(e.state.value="activating",g?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ve(e,()=>{X(e),Q(e,o,"onSelfDragStart"),v(e,"onDragStart")}))):(X(e),Q(e,o,"onSelfDragStart"),v(e,"onDragStart"))}},pointerUp:s,pointerMove:a,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect()}}},vt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},At=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),oe(),O(e,e.entities.initiatingDraggable,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),V(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Te(e)&&Be(e),oe(),V(e)))();return}const a=vt[t.code];if(a&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const r=n.forMoveFaster.some(c=>n.pressedKeys.value.has(c)),i=e.keyboard.step*(r?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+a.dx*i,y:e.pointer.value.current.y+a.dy*i};const o=ue(e);ce(e,e.hovered,o),O(e,e.entities.initiatingDraggable,"onSelfDragMove"),v(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const a=document.activeElement;if(!a)return;const r=a.closest(_.DRAGGABLE);if(!r||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(r))return;const i=e.entities.draggableMap.get(r);if(!Ae(a,r,i?.dragHandle,!0))return;t.preventDefault(),ie();const o=r.getBoundingClientRect(),c=o.left+o.width/2,l=o.top+o.height/2,f={clientX:c,clientY:l};e.entities.initiatingDraggable=r;const g=Me(f,r);e.pointer.value=re(f,g.x,g.y),X(e);const d=ue(e);ce(e,e.hovered,d),O(e,r,"onSelfDragStart"),v(e,"onDragStart")}},Et=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},xt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},ae={keyDown:At,keyUp:Et,clear:xt},Lt=e=>()=>{if(!e.state.value)return;const t=e.scrollPosition.x,n=e.scrollPosition.y;if(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"){fe(e);return}if(e.state.value==="selecting"&&e.pointer.value){const s=window.scrollX-t,a=window.scrollY-n;e.pointer.value.start.x-=s,e.pointer.value.start.y-=a,xe(e)}},x=50,kt=144,we=1e3/kt;function Ct(e){return e==null?{top:x,right:x,bottom:x,left:x}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??x,right:e.right??x,bottom:e.bottom??x,left:e.left??x}}const Rt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Pe(e,t,n,s=Rt,a){const{speed:r=10,disabled:i=!1}=t,o=Ct(t.threshold);let c=null,l=null,f=null,g=0,d=0;const m=b=>{a&&(a.value=b)},p=b=>{const E=e.value,R=n();if(!E||!R||i){m(!1);return}l||(l=b);const D=b-l;if(D<we){c=requestAnimationFrame(p);return}const w=r*(D/we);l=b;const{scrollTop:I,scrollLeft:T}=s.getScrollState(E);(!f||g!==I||d!==T)&&(f=s.getRect?s.getRect(E):E.getBoundingClientRect(),g=I,d=T);let F=!1,q=I,W=T;o.top>0&&R.y-f.top<o.top?(q=I-w,F=!0):o.bottom>0&&f.bottom-R.y<o.bottom&&(q=I+w,F=!0),o.left>0&&R.x-f.left<o.left?(W=T-w,F=!0):o.right>0&&f.right-R.x<o.right&&(W=T+w,F=!0),F&&s.setScroll(E,q,W),m(F),c=requestAnimationFrame(p)};return{run:()=>{l=null,c=requestAnimationFrame(p)},stop:()=>{c&&(cancelAnimationFrame(c),c=null),f=null,g=0,d=0,l=null,m(!1)}}}const It={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,n){window.scrollTo(n,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Tt={get value(){return typeof document<"u"?document.documentElement:null}};function Bt(e,t){const n=u.shallowRef(!1),a=Pe(Tt,t??{},()=>{if(e.state.value!=="dragging")return null;const o=e.preview.position.value,c=e.preview.size.value;return o?c?.width&&c?.height?{x:o.x+c.width/2,y:o.y+c.height/2}:o:null},It,n),r=u.watch(()=>e.state.value,o=>{o==="dragging"?a.run():a.stop()}),i=()=>{r(),a.stop()};return u.onScopeDispose(i),{isScrolling:n,stop:i}}const Pt=e=>{const t=Mt(e),n=ae.keyDown(e),s=ae.keyUp(e),a=ae.clear(e),r=Lt(e);let i=null;u.watch(e.autoScrollViewport,o=>{i?.(),i=null,(o===!0||o&&typeof o=="object")&&(i=Bt(e,o===!0?{}:o).stop)},{immediate:!0}),u.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",s),document.addEventListener("blur",a),document.addEventListener("scroll",r,!0)}),u.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",n),document.removeEventListener("keyup",s),document.removeEventListener("blur",a),document.removeEventListener("scroll",r,!0),i?.(),t.cleanup()})},j=()=>{const e=u.inject(Z);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=j();return{preview:e.preview,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},Oe=u.defineComponent({__name:"DragPreview",props:{grid:{}},setup(e){const{state:t,entities:n,preview:s}=he(),a=u.useTemplateRef("contentRef");u.watch(()=>a.value,()=>{const o=a.value?.getBoundingClientRect();o&&(s.size.value=o)});const r=(o,c)=>!c||c<=0?o:Math.round(o/c)*c,i=u.computed(()=>{const{x:o,y:c}=s.position.value,l=typeof e.grid=="object"?e.grid.x:e.grid,f=typeof e.grid=="object"?e.grid.y:e.grid;return{x:r(o,l),y:r(c,f)}});return(o,c)=>u.unref(t)==="dragging"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"dnd-kit-preview",ref_key:"contentRef",ref:a,style:u.normalizeStyle({transform:`translate3d(${i.value.x}px, ${i.value.y}px, 0)`})},[u.renderSlot(o.$slots,"default",{draggingMap:u.unref(n).draggingMap},()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(n).draggingMap,([l,f])=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:l},[f.render?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(f.render),{key:0})):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(l.tagName),{key:1,innerHTML:f.initialOuterHTML,style:u.normalizeStyle({width:f.initialRect.width+"px",height:f.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),128))])],4)):u.createCommentVNode("",!0)}}),Ot=u.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},previewTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,n=u.useTemplateRef("previewRef"),s=We(n,t);Pt(s);const a=u.ref(!1);u.onMounted(()=>a.value=!0);const r=u.computed(()=>s.preview.render.value??Oe);return u.provide(Z,s),(i,o)=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[u.renderSlot(i.$slots,"default"),(u.openBlock(),u.createBlock(u.Teleport,{disabled:!a.value,to:u.unref(s).preview.to.value||"body"},[u.createElementVNode("div",u.mergeProps({ref_key:"previewRef",ref:n,class:"dnd-kit-preview-container"},t),[u.renderSlot(i.$slots,"preview",{preview:r.value},()=>[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(r.value)))])],16)],8,["disabled","to"]))],64))}});function Ft(e,t,n){const s=j();let a,r,i;typeof t=="function"?(a={},r=t):(a=t??{},r=n);const o=a.id??Math.random().toString(36).slice(2),c=u.computed({get(){const d=S(e);return d?s.entities.selectedSet.has(d):!1},set(d){const m=S(e);m&&s.entities.selectedSet[d?"add":"delete"](m)}}),l=u.computed(()=>{const d=S(e);return d?s.entities.draggingMap.has(d):!1}),f=u.computed(()=>{const d=S(e);return d?s.entities.allowedDraggableSet.has(d):!1}),g=u.computed(()=>{const d=S(e);if(d)return s.entities.draggableMap.get(d)?.hoveredPlacement});return u.onMounted(()=>{if(i=S(e),!!i&&(i.addEventListener("dragstart",M),i.addEventListener("drag",M),i.addEventListener("dragend",M),i.setAttribute(k.DRAGGABLE,o),s.lib.draggableObserver.observe(i),s.entities.draggableMap.set(i,{id:o,render:a.render,disabled:a.disabled??!1,groups:a.groups??[],modifier:a.modifier,events:a.events,payload:r,data:a.data,dragHandle:a.dragHandle,activation:a.activation,placementMargins:a.placementMargins,hoveredPlacement:void 0}),o)){for(const[d,m]of s.entities.draggingMap)if(m.id===o&&d!==i){s.entities.draggingMap.delete(d),s.entities.draggingMap.set(i,m);break}}}),u.onBeforeUnmount(()=>{i&&(s.lib.draggableObserver.unobserve(i),s.entities.visibleDraggableSet.delete(i),s.entities.draggableMap.delete(i),s.entities.modifiersDraggableSet.delete(i))}),{selected:c,isDragging:l,isAllowed:f,isDragOver:g}}const zt=(e,t)=>{const n=j(),s=u.computed(()=>e.value===n.entities.selectingArea);let a=null;u.onMounted(()=>{a=S(e),a&&(a.setAttribute(k.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(a),n.entities.selectableAreaMap.set(a,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[],strategy:t?.strategy??"toggle"}))}),u.onBeforeUnmount(()=>{a&&(n.lib.selectableAreaObserver.unobserve(a),n.entities.visibleSelectableAreaSet.delete(a),n.entities.modifiersSelectableAreaSet.delete(a),n.entities.selectableAreaMap.delete(a))});const r=u.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const i=n.pointer.value;return!i||n.state.value!=="selecting"||!a||!s.value?{}:Qe(i.start,i.current,a)});return{isSelecting:s,style:r}};function _t(e,t){const n=u.inject(Z);if(!n)throw Error("DnD provider not found");let s=null;return u.onMounted(()=>{s=S(e),s&&(s.setAttribute(k.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(s,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),u.onBeforeUnmount(()=>{s&&n.entities.constraintsAreaMap.delete(s)}),{}}function Gt(e,t,n){const s=j();let a=null,r,i;typeof t=="function"?(r={},i=t):(r=t??{},i=n);const o=u.computed(()=>{const l=S(e);return l?s.entities.allowedDroppableSet.has(l):!1}),c=u.computed(()=>{const l=S(e);if(l)return s.entities.droppableMap.get(l)?.hoveredPlacement});return u.onMounted(()=>{a=S(e),a&&(a.setAttribute(k.DROPPABLE,""),s.lib.droppableObserver.observe(a),s.entities.droppableMap.set(a,{disabled:r.disabled??!1,groups:r.groups??[],groupMatch:r.groupMatch??"every",events:r.events,payload:i,data:r.data,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{a&&(s.lib.droppableObserver.unobserve(a),s.entities.visibleDroppableSet.delete(a),s.entities.droppableMap.delete(a))}),{isAllowed:o,isDragOver:c}}const Ht=(e,t)=>{const n=he(),s=u.shallowRef(!1),r=Pe(e,t??{},()=>{if(n.state.value!=="dragging")return null;const i=n.preview.position.value,o=n.preview.size.value;return i?o?.width&&o?.height?{x:i.x+o.width/2,y:i.y+o.height/2}:i:null},void 0,s);return u.watch(()=>n.state.value,i=>{i==="dragging"?r.run():r.stop()}),{isScrolling:s}};exports.DnDProvider=Ot;exports.DragPreview=Oe;exports.injectionKey=Z;exports.makeAutoScroll=Ht;exports.makeConstraintArea=_t;exports.makeDraggable=Ft;exports.makeDroppable=Gt;exports.makeSelectionArea=zt;exports.useDnDProvider=he;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),k={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},_={SELECT_AREA:`[${k.SELECT_AREA}]`,DRAGGABLE:`[${k.DRAGGABLE}]`,CONSTRAINT_AREA:`[${k.CONSTRAINT_AREA}]`},Z="VueDnDKitProvider",pe=(e,t,n,s)=>{const a=new Set;return t.forEach(r=>{const i=e.get(r),o=s?s(r):i?.disabled;if(!i||o)return;const l=i.modifier?.keys,c=i.modifier?.method;if(!l||!c||l.length===0){a.add(r);return}l[c](g=>n.value.has(g))&&a.add(r)}),a};let Se="",Fe="",ze="";const S=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,G=(e,t)=>e!==t&&e.contains(t),_e=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ie=()=>{const e=document.body;Se=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",M),window.addEventListener("selectstart",M),window.addEventListener("touchstart",M),window.addEventListener("touchmove",M)},oe=()=>{const e=document.body;e.style.userSelect=Se,e.style.touchAction=Fe,e.style.overscrollBehavior=ze,window.removeEventListener("contextmenu",M),window.removeEventListener("selectstart",M),window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",M)},M=e=>e.preventDefault(),de=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(s)?.disabled&&G(s,e))return!0;return!1},H=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(s)?.disabled&&G(s,e))return!0;return!1},$=(e,t)=>{if(!e.length||!t.length)return!0;const n=new Set(t);return e.some(s=>n.has(s))};function Ge(e,t,n,s){const a=[];for(const i of t.keys()){const o=n.get(i);a.push({groups:o?.groups??[]})}const r=new Set;for(const i of e){const o=s.get(i),l=o?.groups??[],c=o?.groupMatch??"every";(!a.length||a[c](g=>$(g.groups,l)))&&r.add(i)}return r}function He(e,t,n){const s=new Set;for(const i of t.keys()){const o=n.get(i);for(const l of o?.groups??[])s.add(l)}const a=[...s],r=new Set;for(const i of e){const l=n.get(i)?.groups??[];$(a,l)&&r.add(i)}return r}const J=e=>{if(typeof IntersectionObserver>"u")return{observe:()=>{},unobserve:()=>{},disconnect:()=>{}};const t=new IntersectionObserver(n=>{n.forEach(s=>{const a=s.target;e[s.isIntersecting?"add":"delete"](a)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}};function re(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function Me(e,t){const n=t.getBoundingClientRect(),s=n.width>0?(e.clientX-n.left)/n.width:.5,a=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:s,y:a}}function ve(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ke(e,t,n){e.forEach(s=>{const a=t.get(s);n.set(s,ve(s,a))}),e.clear()}function Ne(e,t,n){n.clear();const s=t.get(e);n.set(e,ve(e,s))}function X(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Ue(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ue(e,t,n,s){t.has(e)?Ke(t,n,s):(t.clear(),Ne(e,n,s))}function Ae(e,t,n,s){if(s||!n)return!0;const a=e.closest(n);return a?t.contains(a):!1}function Ye(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),s=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const c=Math.sqrt(n*n+s*s);return Math.min(c/t,1)}const{x:a=0,y:r=0,condition:i="any"}=t;if(a===0&&r===0)return 1;const o=a>0?Math.min(n/a,1):1,l=r>0?Math.min(s/r,1):1;return i==="both"?Math.min(o,l):Math.max(o,l)}function Ee(e,t,n){if(!n)return!0;const s=n.distance!=null,a=n.delay!=null;return!s&&!a?!0:s&&!a?e>=1:!s&&a?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Xe(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Ee(e.distanceProgress.value,e.delay.progress,t?.activation)?(X(e),!0):!1}function Ve(e,t){let n=null;const s=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const a=e.entities.draggableMap.get(e.entities.initiatingDraggable),r=a?.activation?.delay;if(!r){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(r*1e3),1),Ee(e.distanceProgress.value,e.delay.progress,a?.activation)?(t(),n=null):n=requestAnimationFrame(s)};return n=requestAnimationFrame(s),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function Ze(e,t){const n=e.closest(_.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function $e(e,t,n,s){return n==="x"?{x:e,y:s.top}:n==="y"?{x:s.left,y:t}:{x:e,y:t}}function je(e,t,n,s,a){let r=e,i=t;return n!=="y"&&(r=Math.max(s.left,Math.min(s.right-a.width,e))),n!=="x"&&(i=Math.max(s.top,Math.min(s.bottom-a.height,t))),{x:r,y:i}}function qe(e,t,n,s){if(!e)return{x:0,y:0};const a=t?.width??0,r=t?.height??0;let i=e.current.x-a*e.offset.x,o=e.current.y-r*e.offset.y;if(!n)return{x:i,y:o};const l=Ze(n,s);if(!l)return{x:i,y:o};const{element:c,entity:f}=l,g=c.getBoundingClientRect(),d=n.getBoundingClientRect(),m=$e(i,o,f.axis||"both",d);return f.restrictToArea?je(m.x,m.y,f.axis||"both",g,t??{width:0,height:0}):m}const N={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function We(e,t){const n=u.shallowRef(),s=u.ref(),r={keys:{pressedKeys:u.ref(new Set),forDrag:[...N.forDrag],forCancel:[...N.forCancel],forDrop:[...N.forDrop],forMove:[...N.forMove],forMoveFaster:[...N.forMoveFaster]},step:8,moveFaster:4},i=u.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,selectionBase:new Set,allowedDroppableSet:u.computed(()=>n.value?Ge(i.visibleDroppableSet,i.draggingMap,i.draggableMap,i.droppableMap):new Set),allowedDraggableSet:u.computed(()=>n.value?He(i.visibleDraggableSet,i.draggingMap,i.draggableMap):new Set),modifiersSelectableAreaSet:u.computed(()=>pe(i.selectableAreaMap,i.visibleSelectableAreaSet,r.keys.pressedKeys)),modifiersDraggableSet:u.computed(()=>pe(i.draggableMap,i.visibleDraggableSet,r.keys.pressedKeys,w=>de(w,{entities:i}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),o=u.reactive({draggable:new Map,droppable:new Map}),l={throttle:u.shallowRef(0)},c=u.reactive({x:typeof window<"u"?window.scrollX:0,y:typeof window<"u"?window.scrollY:0}),f=u.reactive({progress:0,startTime:0}),g=u.computed(()=>{if(!s.value||!i.initiatingDraggable)return 0;const w=i.draggableMap.get(i.initiatingDraggable)?.activation?.distance;return w?Ye(s.value,w):1}),d=J(i.visibleDraggableSet),m=J(i.visibleDroppableSet),p=J(i.visibleSelectableAreaSet),h=u.ref(),y=u.shallowRef(typeof DOMRect<"u"?new DOMRect:{}),b=u.computed(()=>{c.x,c.y;const D=y.value,w=i.initiatingDraggable,I=w?i.draggingMap.get(w):null,T=D.width&&D.height?D:I?.initialRect??null;return qe(s.value,T,w||null,i.constraintsAreaMap)}),E=u.computed({get:()=>t?.previewTo,set:D=>E.value=D}),R=u.computed(()=>t?.autoScrollViewport);return{state:n,pointer:s,entities:i,keyboard:r,scrollPosition:c,delay:f,distanceProgress:g,hovered:o,collision:l,preview:{size:y,position:b,render:h,ref:e,to:E},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:p,rectCache:new Map},autoScrollViewport:R}}const V=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const s=e.entities.draggableMap.get(t);s&&(s.hoveredPlacement=void 0)}const n=e.hovered.droppable.keys().next().value;if(n){const s=e.entities.droppableMap.get(n);s&&(s.hoveredPlacement=void 0)}e.lib.rectCache.clear(),e.pointer.value=void 0,e.state.value=void 0,e.entities.selectingArea=void 0,e.entities.selectionBase.clear(),e.entities.initiatingDraggable=void 0,e.delay.progress=0,e.delay.startTime=0,e.entities.draggingMap.clear(),e.hovered.draggable.clear(),e.hovered.droppable.clear()};function Je(e){return e.parentElement?.closest(_.SELECT_AREA)??null}const Qe=(e,t,n)=>{if(!n)return{};const s=n.getBoundingClientRect(),a=Math.max(s.left,Math.min(e.x,t.x)),r=Math.max(s.top,Math.min(e.y,t.y)),i=Math.min(s.right,Math.max(e.x,t.x)),o=Math.min(s.bottom,Math.max(e.y,t.y)),l=Math.max(0,i-a),c=Math.max(0,o-r),f=a-s.left+n.scrollLeft,g=r-s.top+n.scrollTop;return{position:"absolute",left:`${f}px`,top:`${g}px`,width:`${l}px`,height:`${c}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},xe=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=et(e.pointer.value.start,e.pointer.value.current),s=e.entities.selectableAreaMap.get(t)?.groups??[],a=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(r=>{if(r===t||!t.contains(r))return;const i=Je(r);if(i&&i!==t){e.entities.selectedSet.delete(r);return}if(de(r,e)){e.entities.selectedSet.delete(r);return}const l=e.entities.draggableMap.get(r)?.groups??[];if(!$(s,l)){e.entities.selectedSet.delete(r);return}let c=a.get(r);c||(c=r.getBoundingClientRect(),a.set(r,c));const f=e.entities.selectionBase.has(r),g=_e(n,c);switch(e.entities.selectableAreaMap.get(t)?.strategy){case"toggle":e.entities.selectedSet[g!==f?"add":"delete"](r);break;case"select":e.entities.selectedSet[g?"add":"delete"](r);break}})},et=(e,t)=>{const n=Math.min(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.x,t.x),r=Math.max(e.y,t.y),i=a-n,o=r-s;return new DOMRect(n,s,i,o)};function L(e,t,n){const s=Math.max(0,Math.min(t,e.length));return[...e.slice(0,s),...n,...e.slice(s)]}function me(e,t,n=1){const s=Math.max(0,Math.min(t,e.length-1)),a=Math.max(0,Math.min(n,e.length-s));return[...e.slice(0,s),...e.slice(s+a)]}function K(e,t){const n=[...new Set(t)].filter(a=>a>=0&&a<e.length).sort((a,r)=>r-a);let s=e;for(const a of n)s=me(s,a,1);return s}function Le(e,t,n){if(t===n||t<0||n<0||t>=e.length||n>=e.length)return e;const s=[...e];return[s[t],s[n]]=[s[n],s[t]],s}const C={getInsertSide(e,t){return e?t==="vertical"?e.top&&!e.bottom?"before":e.bottom&&!e.top?"after":e.top?"before":null:e.left&&!e.right?"before":e.right&&!e.left?"after":e.left?"before":null:null},isAtZoneStart(e,t){return C.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return C.getInsertSide(e,t)==="after"&&!e?.center}};function ke(e,t){const{draggedItems:n,dropZone:s,hoveredDraggable:a}=e;if(!n.length)return null;const r=a?.placement.center===!0&&s!=null&&s.items!==a.items,i=r?s.items:a?.items??s?.items;if(!i)return null;const o=n[0].items,l=n.map(d=>d.index),c=i.length;let f,g;if(a&&!r){const d=a.items===o&&l.includes(a.index);if(d&&n.length===1){const m=C.isAtZoneStart(s?.placement,t);f=m?0:c,g=m?"prepend":"append"}else{if(d)return null;{const m=C.getInsertSide(a.placement,t),p=a.index;m==="before"?(f=Math.max(0,p),g="insert"):m==="after"?(f=Math.min(c,p+1),g="insert"):(f=c,g="append")}}}else{if(!s)return null;const d=C.isAtZoneStart(s.placement,t);f=d?0:c,g=d?"prepend":"append"}return{targetIndex:f,mode:g,targetArr:i}}function tt(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=ke(e,t);if(!s)return null;const{targetArr:a,mode:r}=s;let{targetIndex:i}=s;const o=n.map(g=>g.index),l=n.map(g=>g.item),c=n[0].items;if(c===a){const g=o.filter(m=>m<i).length;i=Math.max(0,i-g);const d=L(K(c,o),i,l);return{sourceItems:d,targetItems:d,draggedItems:l,sourceIndexes:o,targetIndex:i,mode:r,sameList:!0}}else{const g=K(c,o),d=L(a,i,l);return{sourceItems:g,targetItems:d,draggedItems:l,sourceIndexes:o,targetIndex:i,mode:r,sameList:!1}}}function nt(e){const{draggedItems:t,hoveredDraggable:n}=e;if(!t.length||!n)return null;const s=t.map(f=>f.index),a=n.index,r=t.map(f=>f.item),i=n.item,o=t[0].items,l=n.items,c=o===l;if(c&&s.includes(a))return null;if(t.length===1){const f=s[0];if(c){const g=Le(o,f,a);return{sourceItems:g,targetItems:g,sourceIndexes:s,targetIndex:a,sameList:!0}}else{const g=[...o],d=[...l];return g[f]=l[a],d[a]=o[f],{sourceItems:g,targetItems:d,sourceIndexes:s,targetIndex:a,sameList:!1}}}else{const f=Math.min(...s);if(c){const g=s.filter(b=>b<a).length,d=Math.max(0,a-g),m=s.filter(b=>b<f).length,p=Math.max(0,f-m);let h=K(o,s);h=L(h,d,r);const y=p>=d?p+r.length:p;return h=L(h,y,[i]),{sourceItems:h,targetItems:h,sourceIndexes:s,targetIndex:d,sameList:!0}}else{const g=s.filter(h=>h<f).length,d=Math.max(0,f-g);let m=K(o,s);m=L(m,d,[i]);let p=me(l,a);return p=L(p,a,r),{sourceItems:m,targetItems:p,sourceIndexes:s,targetIndex:a,sameList:!1}}}}function st(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=ke(e,t);if(!s)return null;const{targetArr:a,targetIndex:r,mode:i}=s,o=n.map(c=>c.item);return{targetItems:L(a,r,o),copiedItems:o,targetIndex:r,mode:i}}function at(e){const{draggedItems:t}=e;if(!t.length)return null;const n=t.map(i=>i.index),s=t.map(i=>i.item),a=t[0].items;return{sourceItems:K(a,n),removedItems:s,sourceIndexes:n}}function Ce(e){return{insertAt:L,removeAt:me,removeIndexes:K,swapAt:Le,getInsertSide:(t,n)=>C.getInsertSide(t,n),isAtZoneStart:(t,n)=>C.isAtZoneStart(t,n),isAtZoneEnd:(t,n)=>C.isAtZoneEnd(t,n),suggestSort:t=>tt(e,t),suggestSwap:()=>nt(e),suggestCopy:t=>st(e,t),suggestRemove:()=>at(e)}}const P=e=>e.keys().next().value,it=e=>e.target.closest(_.DRAGGABLE);function Re(e,t){const n=t.entities.draggingMap.get(e);if(n)return n;const s=e.getAttribute(k.DRAGGABLE);if(s){for(const[,a]of t.entities.draggingMap)if(a.id===s)return a}}function ot(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=Re(t,e)??e.entities.draggableMap.get(t),s=n?.payload;if(!s)return n?.data?[{index:-1,item:void 0,items:[],data:n.data()}]:[];const a=s();if(!Array.isArray(a)||a.length<2)return[];const[r,i]=a,o=Number(r),l=i,c=new Map;return c.set(o,{index:o,item:l[o],items:l,data:n?.data?.()}),e.entities.draggingMap.forEach((f,g)=>{const d=e.entities.draggableMap.get(g),m=d?.payload;if(!m)return;const p=m();if(!Array.isArray(p)||p.length<2)return;const[h,y]=p;if(y!==l)return;const b=Number(h);c.has(b)||c.set(b,{index:b,item:y[b],items:l,data:d?.data?.()})}),[...c.values()].sort((f,g)=>f.index-g.index)}const A=(e,t)=>{const n=ot(e);let s,a;if(t){const r=e.entities.droppableMap.get(t);if(r){const l=r.payload;s={items:l?l():[],placement:e.hovered.droppable.get(t),data:r.data?.()}}const i=P(e.hovered.draggable);if(i&&(i===t||t.contains(i))&&i){const l=e.entities.draggableMap.get(i),c=l?.payload,f=e.hovered.draggable.get(i),g={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(c){const d=c();if(Array.isArray(d)&&d.length>=2){const[m,p]=d,h=Number(m);a={element:i,placement:f??g,index:h,item:p[h],items:p,data:l?.data?.()}}}else l?.data&&(a={element:i,placement:f??g,index:-1,item:void 0,items:[],data:l.data()})}}return{draggedItems:n,dropZone:s,hoveredDraggable:a,provider:e,helpers:Ce({draggedItems:n,dropZone:s,hoveredDraggable:a})}},O=(e,t,n)=>{if(!t)return;const s=Re(t,e)??e.entities.draggableMap.get(t);!s||s.disabled||s.events?.[n]?.(A(e))},v=(e,t)=>{const n=A(e);e.entities.draggingMap.forEach(s=>{s.disabled||s.events?.[t]?.(n)})},rt=(e,t,n)=>{if(t!==n){if(t&&!H(t,e)){const s=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(s)}if(n&&!H(n,e)){const s=A(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(s)}}},lt=(e,t,n)=>{if(t!==n){const s=A(e);if(t){const a=e.entities.draggableMap.get(t);a&&!a.disabled&&a.events?.onLeave?.(s)}if(n){const a=e.entities.draggableMap.get(n);a&&!a.disabled&&a.events?.onHover?.(s)}}},Q=(e,t,n)=>{const s=it(t);!s||!e.entities.draggingMap.has(s)||e.entities.draggingMap.get(s)?.events?.[n]?.(A(e))},ct=(e,t)=>{const n=P(t.droppable);n&&!H(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},le=(e,t)=>{const n=P(t.droppable);n&&!H(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},gt=(e,t,n=5)=>{const s=n/2;return{left:e-s,top:t-s,width:n,height:n}},ut=e=>{const t=e.pointer.value?.current,n=t?.x??0,s=t?.y??0;return gt(n,s,5)},B=(e,t,n)=>{const s=e.left+e.width/2,a=e.top+e.height/2;if(n){const o=n.top??0,l=n.right??0,c=n.bottom??0,f=n.left??0,g=t.left+f,d=t.right-l,m=t.top+o,p=t.bottom-c;if(g<d&&m<p&&s>=g&&s<=d&&a>=m&&a<=p)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const r=t.left+t.width/2,i=t.top+t.height/2;return{top:a<=i,bottom:a>i,left:s<=r,right:s>r,center:!1}},ft=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),be=(e,t)=>{const n=ft(t);return Math.hypot(e.x-n.x,e.y-n.y)};function dt(e,t){return e===t?!0:!e||!t?!1:e.top===t.top&&e.right===t.right&&e.bottom===t.bottom&&e.left===t.left&&e.center===t.center}function U(e,t){dt(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const mt=(e,t)=>e.find(n=>n!==t&&G(t,n)),ce=(e,t,n)=>{const s=P(t.droppable),a=P(t.draggable);a&&t.draggable.delete(a),s&&t.droppable.delete(s);const r=ut(e),i=n.zones[0],o=n.elements[0];if(i&&o&&i===o&&e.entities.droppableMap.has(i)&&i){const g=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins,m=B(r,g,d);if(m.center){t.droppable.set(i,m);const p=mt(n.elements,i);if(p){const h=p.getBoundingClientRect();t.draggable.set(p,B(r,h,void 0))}}else{t.draggable.set(o,m);const p=n.zones.find(h=>h!==i);if(p){const h=p.getBoundingClientRect();t.droppable.set(p,B(r,h))}}}else{if(i){const g=i.getBoundingClientRect();t.droppable.set(i,B(r,g))}if(o)if(i)if(G(i,o)){const g=o.getBoundingClientRect(),d=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,g,d))}else{const g=e.pointer.value?.current??{x:0,y:0},d=i.getBoundingClientRect(),m=o.getBoundingClientRect(),p=be(g,d);if(be(g,m)<p){t.droppable.clear();const y=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,m,y))}}else{const g=o.getBoundingClientRect(),d=e.entities.draggableMap.get(o)?.placementMargins;t.draggable.set(o,B(r,g,d))}}const c=P(t.droppable),f=P(t.draggable);if(a&&a!==f){const g=e.entities.draggableMap.get(a);g&&U(g,void 0)}if(s&&s!==c){const g=e.entities.droppableMap.get(s);g&&U(g,void 0)}if(f){const g=e.entities.draggableMap.get(f);g&&U(g,t.draggable.get(f))}if(c){const g=e.entities.droppableMap.get(c);g&&U(g,t.droppable.get(c))}rt(e,s,c),lt(e,a,f)},ee=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,te=e=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},ne=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),s=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),a=n*s,r=e.width*e.height,i=t.width*t.height;return r===0||i===0?0:(a/r*100+a/i*100)/2},ht=e=>e.preview.ref?.value??null,ye=e=>{const t=e.preview.position?.value??{x:0,y:0},{x:n,y:s}=t,a=e.preview.size?.value;let r,i;if(a)r=a.width,i=a.height;else{const o=e.preview.ref?.value?.getBoundingClientRect();r=o?.width??0,i=o?.height??0}return{x:n,y:s,width:r,height:i,top:s,left:n,right:n+r,bottom:s+i}},ge=e=>e.entities.allowedDraggableSet,Ie=e=>e.entities.allowedDroppableSet,pt=(e,t)=>!t.entities.draggingMap.has(e),bt=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>{if(G(n,e))return!0;const s=n.parentElement;return!!(s&&e!==n&&!t.entities.draggableMap.has(s)&&!t.entities.droppableMap.has(s)&&G(s,e)&&[...t.entities.draggableMap.keys()].filter(r=>r.parentElement===s).length===1)}),yt=(e,t)=>t.entities.draggableMap.has(e)?!de(e,t):t.entities.droppableMap.has(e)?!H(e,t):!0,Y=(e,t)=>pt(e,t)&&bt(e,t)&&yt(e,t),se=10;function z(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function De(e,t){const n=Math.max(e.x,Math.min(t.x,e.x+e.width)),s=Math.max(e.y,Math.min(t.y,e.y+e.height));return Math.hypot(t.x-n,t.y-s)}function Dt(e){const t=e.pointer.value?.current??{x:0,y:0},n=document.elementFromPoint(t.x,t.y);if(!n)return null;const s=ge(e),a=Ie(e),r=[],i=[];let o=n;for(;o;)(s.has(o)||a.has(o))&&Y(o,e)&&(s.has(o)&&r.push(o),a.has(o)&&i.push(o)),o=o.parentElement;return r.length===0&&i.length===0?null:{elements:r,zones:i}}const ue=e=>{if(!ht(e))return{elements:[],zones:[]};const n=e.pointer.value?.current??{x:0,y:0},s=Dt(e);if(s){if(s.elements.length>0)return s;const c=s.zones[0];if(!c)return s;const f=ye(e),d=[...ge(e)].filter(h=>c.contains(h)&&Y(h,e)).map(h=>({el:h,box:te(h)})),m=d.filter(({box:h})=>ee(h,f)&&ne(h,f)>=se).sort((h,y)=>z(h.box,n)-z(y.box,n)).map(({el:h})=>h);return m.length>0?{elements:m,zones:s.zones}:{elements:d.sort((h,y)=>De(h.box,n)-De(y.box,n)).map(({el:h})=>h),zones:s.zones}}const a=ye(e),r=[...ge(e)].filter(c=>Y(c,e)),i=[...Ie(e)].filter(c=>Y(c,e)),o=r.map(c=>({n:c,box:te(c)})).filter(({box:c})=>ee(c,a)&&ne(c,a)>=se).sort((c,f)=>z(c.box,n)-z(f.box,n)).map(({n:c})=>c),l=i.map(c=>({n:c,box:te(c)})).filter(({box:c})=>ee(c,a)&&ne(c,a)>=se).sort((c,f)=>z(c.box,n)-z(f.box,n)).map(({n:c})=>c);return{elements:o,zones:l}};function fe(e){const t=ue(e);ce(e,e.hovered,t)}function wt(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){fe(e);return}const s=Date.now();s-t.value>=n&&(t.value=s,fe(e))}async function Te(e){const t=e.hovered.droppable.keys().next().value;if(!t||H(t,e))return"accept";const n=e.entities.droppableMap.get(t),s=A(e,t);let a=s;if(n?.groupMatch==="some"&&(n.groups?.length??0)>0){const o=n.groups,l=s.draggedItems.filter(f=>{for(const[,g]of e.entities.draggingMap){const d=g.payload?.();if(!(!Array.isArray(d)||d.length<2)&&Number(d[0])===f.index&&d[1]===f.items)return $(g.groups??[],o)}return!0}),c=s.draggedItems.filter(f=>!l.includes(f));if(c.length>0){const f=g=>({...s,draggedItems:g,helpers:Ce({...s,draggedItems:g})});if(n.events?.onValidate){const g=n.events.onValidate({validItems:l,invalidItems:c,dropZone:s.dropZone,hoveredDraggable:s.hoveredDraggable}),d=g!=null&&typeof g.then=="function";let m;if(d){e.state.value="pending";try{m=await g}catch{const h=e.entities.initiatingDraggable;return O(e,h,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),"cancel"}}else m=g;if(m===!1)return e.state.value="dragging","decline";const p=Array.isArray(m)?m:l;if(p.length===0)return"accept";a=f(p)}else{if(l.length===0)return"accept";a=f(l)}}}const r=n?.events?.onDrop?.(a);if(r!=null&&typeof r.then=="function"){e.state.value="pending";let o;try{o=await r}catch{const l=e.entities.initiatingDraggable;return O(e,l,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),"cancel"}return o===!1?(e.state.value="dragging","decline"):"accept"}return r===!1?"decline":"accept"}function Be(e){const t=e.entities.initiatingDraggable;O(e,t,"onSelfDragEnd"),v(e,"onDragEnd"),ct(e,e.hovered)}function St(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),s=[...e.entities.selectedSet];n?.events?.onSelected?.(s)}const Mt=e=>{const t={current:null},n={value:0},s=async()=>{oe(),t.current?.cancel(),t.current=null;const o=e.state.value;if(o==="dragging"){const l=await Te(e);if(l==="accept"&&Be(e),l==="accept"||l==="cancel"){V(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a);return}return}else o==="selecting"&&St(e);V(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a)},a=o=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:o.clientX,y:o.clientY},Xe(e)){Q(e,o,"onSelfDragStart"),v(e,"onDragStart");return}if(e.state.value==="dragging"){wt(e,n);const l=e.entities.initiatingDraggable;O(e,l,"onSelfDragMove"),v(e,"onDragMove")}e.state.value==="selecting"&&xe(e)}};return{pointerDown:o=>{document.addEventListener("pointerup",s),document.addEventListener("pointermove",a);const l=o.composedPath?.()[0]??o.target,c=l.closest(_.SELECT_AREA),f=l.closest(_.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(c)){ie(),e.pointer.value=re(o),e.state.value="selecting",e.entities.selectingArea=c,e.entities.selectionBase=new Set(e.entities.selectedSet);return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(f)){const g=e.entities.draggableMap.get(f);if(!Ae(l,f,g?.dragHandle))return;ie(),e.entities.initiatingDraggable=f;const d=Me(o,f);e.pointer.value=re(o,d.x,d.y),g?.activation?.distance||g?.activation?.delay?(e.state.value="activating",g?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ve(e,()=>{X(e),Q(e,o,"onSelfDragStart"),v(e,"onDragStart")}))):(X(e),Q(e,o,"onSelfDragStart"),v(e,"onDragStart"))}},pointerUp:s,pointerMove:a,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect()}}},vt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},At=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),oe(),O(e,e.entities.initiatingDraggable,"onSelfDragCancel"),v(e,"onDragCancel"),le(e,e.hovered),V(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Te(e)&&Be(e),oe(),V(e)))();return}const a=vt[t.code];if(a&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const r=n.forMoveFaster.some(l=>n.pressedKeys.value.has(l)),i=e.keyboard.step*(r?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+a.dx*i,y:e.pointer.value.current.y+a.dy*i};const o=ue(e);ce(e,e.hovered,o),O(e,e.entities.initiatingDraggable,"onSelfDragMove"),v(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const a=document.activeElement;if(!a)return;const r=a.closest(_.DRAGGABLE);if(!r||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(r))return;const i=e.entities.draggableMap.get(r);if(!Ae(a,r,i?.dragHandle,!0))return;t.preventDefault(),ie();const o=r.getBoundingClientRect(),l=o.left+o.width/2,c=o.top+o.height/2,f={clientX:l,clientY:c};e.entities.initiatingDraggable=r;const g=Me(f,r);e.pointer.value=re(f,g.x,g.y),X(e);const d=ue(e);ce(e,e.hovered,d),O(e,r,"onSelfDragStart"),v(e,"onDragStart")}},Et=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},xt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},ae={keyDown:At,keyUp:Et,clear:xt},Lt=e=>()=>{if(!e.state.value)return;const t=e.scrollPosition.x,n=e.scrollPosition.y;if(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"){fe(e);return}if(e.state.value==="selecting"&&e.pointer.value){const s=window.scrollX-t,a=window.scrollY-n;e.pointer.value.start.x-=s,e.pointer.value.start.y-=a,xe(e)}},x=50,kt=144,we=1e3/kt;function Ct(e){return e==null?{top:x,right:x,bottom:x,left:x}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??x,right:e.right??x,bottom:e.bottom??x,left:e.left??x}}const Rt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Pe(e,t,n,s=Rt,a){const{speed:r=10,disabled:i=!1}=t,o=Ct(t.threshold);let l=null,c=null,f=null,g=0,d=0;const m=b=>{a&&(a.value=b)},p=b=>{const E=e.value,R=n();if(!E||!R||i){m(!1);return}c||(c=b);const D=b-c;if(D<we){l=requestAnimationFrame(p);return}const w=r*(D/we);c=b;const{scrollTop:I,scrollLeft:T}=s.getScrollState(E);(!f||g!==I||d!==T)&&(f=s.getRect?s.getRect(E):E.getBoundingClientRect(),g=I,d=T);let F=!1,q=I,W=T;o.top>0&&R.y-f.top<o.top?(q=I-w,F=!0):o.bottom>0&&f.bottom-R.y<o.bottom&&(q=I+w,F=!0),o.left>0&&R.x-f.left<o.left?(W=T-w,F=!0):o.right>0&&f.right-R.x<o.right&&(W=T+w,F=!0),F&&s.setScroll(E,q,W),m(F),l=requestAnimationFrame(p)};return{run:()=>{c=null,l=requestAnimationFrame(p)},stop:()=>{l&&(cancelAnimationFrame(l),l=null),f=null,g=0,d=0,c=null,m(!1)}}}const It={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,n){window.scrollTo(n,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Tt={get value(){return typeof document<"u"?document.documentElement:null}};function Bt(e,t){const n=u.shallowRef(!1),a=Pe(Tt,t??{},()=>{if(e.state.value!=="dragging")return null;const o=e.preview.position.value,l=e.preview.size.value;return o?l?.width&&l?.height?{x:o.x+l.width/2,y:o.y+l.height/2}:o:null},It,n),r=u.watch(()=>e.state.value,o=>{o==="dragging"?a.run():a.stop()}),i=()=>{r(),a.stop()};return u.onScopeDispose(i),{isScrolling:n,stop:i}}const Pt=e=>{const t=Mt(e),n=ae.keyDown(e),s=ae.keyUp(e),a=ae.clear(e),r=Lt(e);let i=null;u.watch(e.autoScrollViewport,o=>{i?.(),i=null,(o===!0||o&&typeof o=="object")&&(i=Bt(e,o===!0?{}:o).stop)},{immediate:!0}),u.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",s),document.addEventListener("blur",a),document.addEventListener("scroll",r,!0)}),u.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",n),document.removeEventListener("keyup",s),document.removeEventListener("blur",a),document.removeEventListener("scroll",r,!0),i?.(),t.cleanup()})},j=()=>{const e=u.inject(Z);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=j();return{preview:e.preview,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},Oe=u.defineComponent({__name:"DragPreview",props:{grid:{}},setup(e){const{state:t,entities:n,preview:s}=he(),a=u.useTemplateRef("contentRef");u.watch(()=>a.value,()=>{const o=a.value?.getBoundingClientRect();o&&(s.size.value=o)});const r=(o,l)=>!l||l<=0?o:Math.round(o/l)*l,i=u.computed(()=>{const{x:o,y:l}=s.position.value,c=typeof e.grid=="object"?e.grid.x:e.grid,f=typeof e.grid=="object"?e.grid.y:e.grid;return{x:r(o,c),y:r(l,f)}});return(o,l)=>u.unref(t)==="dragging"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"dnd-kit-preview",ref_key:"contentRef",ref:a,style:u.normalizeStyle({transform:`translate3d(${i.value.x}px, ${i.value.y}px, 0)`})},[u.renderSlot(o.$slots,"default",{draggingMap:u.unref(n).draggingMap},()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(n).draggingMap,([c,f])=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:c},[f.render?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(f.render),{key:0})):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(c.tagName),{key:1,innerHTML:f.initialOuterHTML,style:u.normalizeStyle({width:f.initialRect.width+"px",height:f.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),128))])],4)):u.createCommentVNode("",!0)}}),Ot=u.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},previewTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,n=u.useTemplateRef("previewRef"),s=We(n,t);Pt(s);const a=u.ref(!1);u.onMounted(()=>a.value=!0);const r=u.computed(()=>s.preview.render.value??Oe);return u.provide(Z,s),(i,o)=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[u.renderSlot(i.$slots,"default"),(u.openBlock(),u.createBlock(u.Teleport,{disabled:!a.value,to:u.unref(s).preview.to.value||"body"},[u.createElementVNode("div",u.mergeProps({ref_key:"previewRef",ref:n,class:"dnd-kit-preview-container"},t),[u.renderSlot(i.$slots,"preview",{preview:r.value},()=>[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(r.value)))])],16)],8,["disabled","to"]))],64))}});function Ft(e,t,n){const s=j();let a,r,i;typeof t=="function"?(a={},r=t):(a=t??{},r=n);const o=a.id??Math.random().toString(36).slice(2),l=u.computed({get(){const d=S(e);return d?s.entities.selectedSet.has(d):!1},set(d){const m=S(e);m&&s.entities.selectedSet[d?"add":"delete"](m)}}),c=u.computed(()=>{const d=S(e);return d?s.entities.draggingMap.has(d):!1}),f=u.computed(()=>{const d=S(e);return d?s.entities.allowedDraggableSet.has(d):!1}),g=u.computed(()=>{const d=S(e);if(d)return s.entities.draggableMap.get(d)?.hoveredPlacement});return u.onMounted(()=>{if(i=S(e),!!i&&(i.addEventListener("dragstart",M),i.addEventListener("drag",M),i.addEventListener("dragend",M),i.setAttribute(k.DRAGGABLE,o),s.lib.draggableObserver.observe(i),s.entities.draggableMap.set(i,{id:o,render:a.render,disabled:a.disabled??!1,groups:a.groups??[],modifier:a.modifier,events:a.events,payload:r,data:a.data,dragHandle:a.dragHandle,activation:a.activation,placementMargins:a.placementMargins,hoveredPlacement:void 0}),o)){for(const[d,m]of s.entities.draggingMap)if(m.id===o&&d!==i){s.entities.draggingMap.delete(d),s.entities.draggingMap.set(i,m);break}}}),u.onBeforeUnmount(()=>{i&&(s.lib.draggableObserver.unobserve(i),s.entities.visibleDraggableSet.delete(i),s.entities.draggableMap.delete(i),s.entities.modifiersDraggableSet.delete(i))}),{selected:l,isDragging:c,isAllowed:f,isDragOver:g}}const zt=(e,t)=>{const n=j(),s=u.computed(()=>e.value===n.entities.selectingArea);let a=null;u.onMounted(()=>{a=S(e),a&&(a.setAttribute(k.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(a),n.entities.selectableAreaMap.set(a,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[],strategy:t?.strategy??"toggle"}))}),u.onBeforeUnmount(()=>{a&&(n.lib.selectableAreaObserver.unobserve(a),n.entities.visibleSelectableAreaSet.delete(a),n.entities.modifiersSelectableAreaSet.delete(a),n.entities.selectableAreaMap.delete(a))});const r=u.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const i=n.pointer.value;return!i||n.state.value!=="selecting"||!a||!s.value?{}:Qe(i.start,i.current,a)});return{isSelecting:s,style:r}};function _t(e,t){const n=u.inject(Z);if(!n)throw Error("DnD provider not found");let s=null;return u.onMounted(()=>{s=S(e),s&&(s.setAttribute(k.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(s,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),u.onBeforeUnmount(()=>{s&&n.entities.constraintsAreaMap.delete(s)}),{}}function Gt(e,t,n){const s=j();let a=null,r,i;typeof t=="function"?(r={},i=t):(r=t??{},i=n);const o=u.computed(()=>{const c=S(e);return c?s.entities.allowedDroppableSet.has(c):!1}),l=u.computed(()=>{const c=S(e);if(c)return s.entities.droppableMap.get(c)?.hoveredPlacement});return u.onMounted(()=>{a=S(e),a&&(a.setAttribute(k.DROPPABLE,""),s.lib.droppableObserver.observe(a),s.entities.droppableMap.set(a,{disabled:r.disabled??!1,groups:r.groups??[],groupMatch:r.groupMatch??"every",events:r.events,payload:i,data:r.data,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{a&&(s.lib.droppableObserver.unobserve(a),s.entities.visibleDroppableSet.delete(a),s.entities.droppableMap.delete(a))}),{isAllowed:o,isDragOver:l}}const Ht=(e,t)=>{const n=he(),s=u.shallowRef(!1),r=Pe(e,t??{},()=>{if(n.state.value!=="dragging")return null;const o=n.preview.position.value,l=n.preview.size.value;return o?l?.width&&l?.height?{x:o.x+l.width/2,y:o.y+l.height/2}:o:null},void 0,s),i=u.computed(()=>{const o=e.value;return o!=null&&n.hovered.droppable.has(o)});return u.watch([()=>n.state.value,i],([o,l])=>{o==="dragging"&&l?r.run():r.stop()}),{isScrolling:s}};exports.DnDProvider=Ot;exports.DragPreview=Oe;exports.injectionKey=Z;exports.makeAutoScroll=Ht;exports.makeConstraintArea=_t;exports.makeDraggable=Ft;exports.makeDroppable=Gt;exports.makeSelectionArea=zt;exports.useDnDProvider=he;
|
|
@@ -14,12 +14,12 @@ const I = {
|
|
|
14
14
|
return t.forEach((r) => {
|
|
15
15
|
const a = e.get(r), o = s ? s(r) : a?.disabled;
|
|
16
16
|
if (!a || o) return;
|
|
17
|
-
const
|
|
18
|
-
if (!
|
|
17
|
+
const l = a.modifier?.keys, c = a.modifier?.method;
|
|
18
|
+
if (!l || !c || l.length === 0) {
|
|
19
19
|
i.add(r);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
c
|
|
22
|
+
l[c]((g) => n.value.has(g)) && i.add(r);
|
|
23
23
|
}), i;
|
|
24
24
|
};
|
|
25
25
|
let ze = "", at = "", ot = "";
|
|
@@ -52,8 +52,8 @@ function lt(e, t, n, s) {
|
|
|
52
52
|
}
|
|
53
53
|
const r = /* @__PURE__ */ new Set();
|
|
54
54
|
for (const a of e) {
|
|
55
|
-
const o = s.get(a),
|
|
56
|
-
(!i.length || i[
|
|
55
|
+
const o = s.get(a), l = o?.groups ?? [], c = o?.groupMatch ?? "every";
|
|
56
|
+
(!i.length || i[c]((g) => se(g.groups, l))) && r.add(a);
|
|
57
57
|
}
|
|
58
58
|
return r;
|
|
59
59
|
}
|
|
@@ -61,12 +61,12 @@ function ct(e, t, n) {
|
|
|
61
61
|
const s = /* @__PURE__ */ new Set();
|
|
62
62
|
for (const a of t.keys()) {
|
|
63
63
|
const o = n.get(a);
|
|
64
|
-
for (const
|
|
64
|
+
for (const l of o?.groups ?? []) s.add(l);
|
|
65
65
|
}
|
|
66
66
|
const i = [...s], r = /* @__PURE__ */ new Set();
|
|
67
67
|
for (const a of e) {
|
|
68
|
-
const
|
|
69
|
-
se(i,
|
|
68
|
+
const l = n.get(a)?.groups ?? [];
|
|
69
|
+
se(i, l) && r.add(a);
|
|
70
70
|
}
|
|
71
71
|
return r;
|
|
72
72
|
}
|
|
@@ -138,8 +138,8 @@ function dt(e, t) {
|
|
|
138
138
|
if (!e || !t) return 1;
|
|
139
139
|
const n = Math.abs(e.current.x - e.start.x), s = Math.abs(e.current.y - e.start.y);
|
|
140
140
|
if (typeof t == "number") {
|
|
141
|
-
const
|
|
142
|
-
return Math.min(
|
|
141
|
+
const c = Math.sqrt(n * n + s * s);
|
|
142
|
+
return Math.min(c / t, 1);
|
|
143
143
|
}
|
|
144
144
|
const {
|
|
145
145
|
x: i = 0,
|
|
@@ -147,8 +147,8 @@ function dt(e, t) {
|
|
|
147
147
|
condition: a = "any"
|
|
148
148
|
} = t;
|
|
149
149
|
if (i === 0 && r === 0) return 1;
|
|
150
|
-
const o = i > 0 ? Math.min(n / i, 1) : 1,
|
|
151
|
-
return a === "both" ? Math.min(o,
|
|
150
|
+
const o = i > 0 ? Math.min(n / i, 1) : 1, l = r > 0 ? Math.min(s / r, 1) : 1;
|
|
151
|
+
return a === "both" ? Math.min(o, l) : Math.max(o, l);
|
|
152
152
|
}
|
|
153
153
|
function Ke(e, t, n) {
|
|
154
154
|
if (!n) return !0;
|
|
@@ -225,10 +225,10 @@ function Dt(e, t, n, s) {
|
|
|
225
225
|
let a = e.current.x - i * e.offset.x, o = e.current.y - r * e.offset.y;
|
|
226
226
|
if (!n)
|
|
227
227
|
return { x: a, y: o };
|
|
228
|
-
const
|
|
229
|
-
if (!
|
|
228
|
+
const l = bt(n, s);
|
|
229
|
+
if (!l)
|
|
230
230
|
return { x: a, y: o };
|
|
231
|
-
const { element:
|
|
231
|
+
const { element: c, entity: u } = l, g = c.getBoundingClientRect(), f = n.getBoundingClientRect(), d = pt(
|
|
232
232
|
a,
|
|
233
233
|
o,
|
|
234
234
|
u.axis || "both",
|
|
@@ -308,9 +308,9 @@ function wt(e, t) {
|
|
|
308
308
|
}), o = $({
|
|
309
309
|
draggable: /* @__PURE__ */ new Map(),
|
|
310
310
|
droppable: /* @__PURE__ */ new Map()
|
|
311
|
-
}),
|
|
311
|
+
}), l = {
|
|
312
312
|
throttle: V(0)
|
|
313
|
-
},
|
|
313
|
+
}, c = $({
|
|
314
314
|
x: typeof window < "u" ? window.scrollX : 0,
|
|
315
315
|
y: typeof window < "u" ? window.scrollY : 0
|
|
316
316
|
}), u = $({
|
|
@@ -327,7 +327,7 @@ function wt(e, t) {
|
|
|
327
327
|
), h = re(
|
|
328
328
|
a.visibleSelectableAreaSet
|
|
329
329
|
), m = q(), y = V(typeof DOMRect < "u" ? new DOMRect() : {}), p = b(() => {
|
|
330
|
-
|
|
330
|
+
c.x, c.y;
|
|
331
331
|
const D = y.value, w = a.initiatingDraggable, T = w ? a.draggingMap.get(w) : null, P = D.width && D.height ? D : T?.initialRect ?? null;
|
|
332
332
|
return Dt(
|
|
333
333
|
s.value,
|
|
@@ -344,11 +344,11 @@ function wt(e, t) {
|
|
|
344
344
|
pointer: s,
|
|
345
345
|
entities: a,
|
|
346
346
|
keyboard: r,
|
|
347
|
-
scrollPosition:
|
|
347
|
+
scrollPosition: c,
|
|
348
348
|
delay: u,
|
|
349
349
|
distanceProgress: g,
|
|
350
350
|
hovered: o,
|
|
351
|
-
collision:
|
|
351
|
+
collision: l,
|
|
352
352
|
preview: {
|
|
353
353
|
size: y,
|
|
354
354
|
position: p,
|
|
@@ -385,13 +385,13 @@ function St(e) {
|
|
|
385
385
|
}
|
|
386
386
|
const Mt = (e, t, n) => {
|
|
387
387
|
if (!n) return {};
|
|
388
|
-
const s = n.getBoundingClientRect(), i = Math.max(s.left, Math.min(e.x, t.x)), r = Math.max(s.top, Math.min(e.y, t.y)), a = Math.min(s.right, Math.max(e.x, t.x)), o = Math.min(s.bottom, Math.max(e.y, t.y)),
|
|
388
|
+
const s = n.getBoundingClientRect(), i = Math.max(s.left, Math.min(e.x, t.x)), r = Math.max(s.top, Math.min(e.y, t.y)), a = Math.min(s.right, Math.max(e.x, t.x)), o = Math.min(s.bottom, Math.max(e.y, t.y)), l = Math.max(0, a - i), c = Math.max(0, o - r), u = i - s.left + n.scrollLeft, g = r - s.top + n.scrollTop;
|
|
389
389
|
return {
|
|
390
390
|
position: "absolute",
|
|
391
391
|
left: `${u}px`,
|
|
392
392
|
top: `${g}px`,
|
|
393
|
-
width: `${
|
|
394
|
-
height: `${
|
|
393
|
+
width: `${l}px`,
|
|
394
|
+
height: `${c}px`,
|
|
395
395
|
pointerEvents: "none",
|
|
396
396
|
border: "1px solid #3b82f6",
|
|
397
397
|
backgroundColor: "#3b82f61a"
|
|
@@ -413,14 +413,14 @@ const Mt = (e, t, n) => {
|
|
|
413
413
|
e.entities.selectedSet.delete(r);
|
|
414
414
|
return;
|
|
415
415
|
}
|
|
416
|
-
const
|
|
417
|
-
if (!se(s,
|
|
416
|
+
const l = e.entities.draggableMap.get(r)?.groups ?? [];
|
|
417
|
+
if (!se(s, l)) {
|
|
418
418
|
e.entities.selectedSet.delete(r);
|
|
419
419
|
return;
|
|
420
420
|
}
|
|
421
|
-
let
|
|
422
|
-
|
|
423
|
-
const u = e.entities.selectionBase.has(r), g = rt(n,
|
|
421
|
+
let c = i.get(r);
|
|
422
|
+
c || (c = r.getBoundingClientRect(), i.set(r, c));
|
|
423
|
+
const u = e.entities.selectionBase.has(r), g = rt(n, c);
|
|
424
424
|
switch (e.entities.selectableAreaMap.get(t)?.strategy) {
|
|
425
425
|
case "toggle":
|
|
426
426
|
e.entities.selectedSet[g !== u ? "add" : "delete"](
|
|
@@ -472,25 +472,25 @@ function Xe(e, t) {
|
|
|
472
472
|
if (!n.length) return null;
|
|
473
473
|
const r = i?.placement.center === !0 && s != null && s.items !== i.items, a = r ? s.items : i?.items ?? s?.items;
|
|
474
474
|
if (!a) return null;
|
|
475
|
-
const o = n[0].items,
|
|
475
|
+
const o = n[0].items, l = n.map((f) => f.index), c = a.length;
|
|
476
476
|
let u, g;
|
|
477
477
|
if (i && !r) {
|
|
478
|
-
const f = i.items === o &&
|
|
478
|
+
const f = i.items === o && l.includes(i.index);
|
|
479
479
|
if (f && n.length === 1) {
|
|
480
480
|
const d = R.isAtZoneStart(s?.placement, t);
|
|
481
|
-
u = d ? 0 :
|
|
481
|
+
u = d ? 0 : c, g = d ? "prepend" : "append";
|
|
482
482
|
} else {
|
|
483
483
|
if (f)
|
|
484
484
|
return null;
|
|
485
485
|
{
|
|
486
486
|
const d = R.getInsertSide(i.placement, t), h = i.index;
|
|
487
|
-
d === "before" ? (u = Math.max(0, h), g = "insert") : d === "after" ? (u = Math.min(
|
|
487
|
+
d === "before" ? (u = Math.max(0, h), g = "insert") : d === "after" ? (u = Math.min(c, h + 1), g = "insert") : (u = c, g = "append");
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
490
|
} else {
|
|
491
491
|
if (!s) return null;
|
|
492
492
|
const f = R.isAtZoneStart(s.placement, t);
|
|
493
|
-
u = f ? 0 :
|
|
493
|
+
u = f ? 0 : c, g = f ? "prepend" : "append";
|
|
494
494
|
}
|
|
495
495
|
return { targetIndex: u, mode: g, targetArr: a };
|
|
496
496
|
}
|
|
@@ -501,34 +501,34 @@ function At(e, t = "vertical") {
|
|
|
501
501
|
if (!s) return null;
|
|
502
502
|
const { targetArr: i, mode: r } = s;
|
|
503
503
|
let { targetIndex: a } = s;
|
|
504
|
-
const o = n.map((g) => g.index),
|
|
505
|
-
if (
|
|
504
|
+
const o = n.map((g) => g.index), l = n.map((g) => g.item), c = n[0].items;
|
|
505
|
+
if (c === i) {
|
|
506
506
|
const g = o.filter((d) => d < a).length;
|
|
507
507
|
a = Math.max(0, a - g);
|
|
508
|
-
const f = C(N(
|
|
509
|
-
return { sourceItems: f, targetItems: f, draggedItems:
|
|
508
|
+
const f = C(N(c, o), a, l);
|
|
509
|
+
return { sourceItems: f, targetItems: f, draggedItems: l, sourceIndexes: o, targetIndex: a, mode: r, sameList: !0 };
|
|
510
510
|
} else {
|
|
511
|
-
const g = N(
|
|
512
|
-
return { sourceItems: g, targetItems: f, draggedItems:
|
|
511
|
+
const g = N(c, o), f = C(i, a, l);
|
|
512
|
+
return { sourceItems: g, targetItems: f, draggedItems: l, sourceIndexes: o, targetIndex: a, mode: r, sameList: !1 };
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
function xt(e) {
|
|
516
516
|
const { draggedItems: t, hoveredDraggable: n } = e;
|
|
517
517
|
if (!t.length || !n) return null;
|
|
518
|
-
const s = t.map((u) => u.index), i = n.index, r = t.map((u) => u.item), a = n.item, o = t[0].items,
|
|
519
|
-
if (
|
|
518
|
+
const s = t.map((u) => u.index), i = n.index, r = t.map((u) => u.item), a = n.item, o = t[0].items, l = n.items, c = o === l;
|
|
519
|
+
if (c && s.includes(i)) return null;
|
|
520
520
|
if (t.length === 1) {
|
|
521
521
|
const u = s[0];
|
|
522
|
-
if (
|
|
522
|
+
if (c) {
|
|
523
523
|
const g = Ye(o, u, i);
|
|
524
524
|
return { sourceItems: g, targetItems: g, sourceIndexes: s, targetIndex: i, sameList: !0 };
|
|
525
525
|
} else {
|
|
526
|
-
const g = [...o], f = [...
|
|
527
|
-
return g[u] =
|
|
526
|
+
const g = [...o], f = [...l];
|
|
527
|
+
return g[u] = l[i], f[i] = o[u], { sourceItems: g, targetItems: f, sourceIndexes: s, targetIndex: i, sameList: !1 };
|
|
528
528
|
}
|
|
529
529
|
} else {
|
|
530
530
|
const u = Math.min(...s);
|
|
531
|
-
if (
|
|
531
|
+
if (c) {
|
|
532
532
|
const g = s.filter((p) => p < i).length, f = Math.max(0, i - g), d = s.filter((p) => p < u).length, h = Math.max(0, u - d);
|
|
533
533
|
let m = N(o, s);
|
|
534
534
|
m = C(m, f, r);
|
|
@@ -538,7 +538,7 @@ function xt(e) {
|
|
|
538
538
|
const g = s.filter((m) => m < u).length, f = Math.max(0, u - g);
|
|
539
539
|
let d = N(o, s);
|
|
540
540
|
d = C(d, f, [a]);
|
|
541
|
-
let h = Le(
|
|
541
|
+
let h = Le(l, i);
|
|
542
542
|
return h = C(h, i, r), { sourceItems: d, targetItems: h, sourceIndexes: s, targetIndex: i, sameList: !1 };
|
|
543
543
|
}
|
|
544
544
|
}
|
|
@@ -548,7 +548,7 @@ function Et(e, t = "vertical") {
|
|
|
548
548
|
if (!n.length) return null;
|
|
549
549
|
const s = Xe(e, t);
|
|
550
550
|
if (!s) return null;
|
|
551
|
-
const { targetArr: i, targetIndex: r, mode: a } = s, o = n.map((
|
|
551
|
+
const { targetArr: i, targetIndex: r, mode: a } = s, o = n.map((c) => c.item);
|
|
552
552
|
return { targetItems: C(i, r, o), copiedItems: o, targetIndex: r, mode: a };
|
|
553
553
|
}
|
|
554
554
|
function Lt(e) {
|
|
@@ -595,11 +595,11 @@ function It(e) {
|
|
|
595
595
|
return n?.data ? [{ index: -1, item: void 0, items: [], data: n.data() }] : [];
|
|
596
596
|
const i = s();
|
|
597
597
|
if (!Array.isArray(i) || i.length < 2) return [];
|
|
598
|
-
const [r, a] = i, o = Number(r),
|
|
599
|
-
return
|
|
598
|
+
const [r, a] = i, o = Number(r), l = a, c = /* @__PURE__ */ new Map();
|
|
599
|
+
return c.set(o, {
|
|
600
600
|
index: o,
|
|
601
|
-
item:
|
|
602
|
-
items:
|
|
601
|
+
item: l[o],
|
|
602
|
+
items: l,
|
|
603
603
|
data: n?.data?.()
|
|
604
604
|
}), e.entities.draggingMap.forEach((u, g) => {
|
|
605
605
|
const f = e.entities.draggableMap.get(g), d = f?.payload;
|
|
@@ -607,15 +607,15 @@ function It(e) {
|
|
|
607
607
|
const h = d();
|
|
608
608
|
if (!Array.isArray(h) || h.length < 2) return;
|
|
609
609
|
const [m, y] = h;
|
|
610
|
-
if (y !==
|
|
610
|
+
if (y !== l) return;
|
|
611
611
|
const p = Number(m);
|
|
612
|
-
|
|
612
|
+
c.has(p) || c.set(p, {
|
|
613
613
|
index: p,
|
|
614
614
|
item: y[p],
|
|
615
|
-
items:
|
|
615
|
+
items: l,
|
|
616
616
|
data: f?.data?.()
|
|
617
617
|
});
|
|
618
|
-
}), [...
|
|
618
|
+
}), [...c.values()].sort((u, g) => u.index - g.index);
|
|
619
619
|
}
|
|
620
620
|
const A = (e, t) => {
|
|
621
621
|
const n = It(e);
|
|
@@ -623,18 +623,18 @@ const A = (e, t) => {
|
|
|
623
623
|
if (t) {
|
|
624
624
|
const r = e.entities.droppableMap.get(t);
|
|
625
625
|
if (r) {
|
|
626
|
-
const
|
|
626
|
+
const l = r.payload;
|
|
627
627
|
s = {
|
|
628
|
-
items:
|
|
628
|
+
items: l ? l() : [],
|
|
629
629
|
placement: e.hovered.droppable.get(t),
|
|
630
630
|
data: r.data?.()
|
|
631
631
|
};
|
|
632
632
|
}
|
|
633
633
|
const a = O(e.hovered.draggable);
|
|
634
634
|
if (a && (a === t || t.contains(a)) && a) {
|
|
635
|
-
const
|
|
636
|
-
if (
|
|
637
|
-
const f =
|
|
635
|
+
const l = e.entities.draggableMap.get(a), c = l?.payload, u = e.hovered.draggable.get(a), g = { top: !1, right: !1, bottom: !1, left: !1, center: !1 };
|
|
636
|
+
if (c) {
|
|
637
|
+
const f = c();
|
|
638
638
|
if (Array.isArray(f) && f.length >= 2) {
|
|
639
639
|
const [d, h] = f, m = Number(d);
|
|
640
640
|
i = {
|
|
@@ -643,16 +643,16 @@ const A = (e, t) => {
|
|
|
643
643
|
index: m,
|
|
644
644
|
item: h[m],
|
|
645
645
|
items: h,
|
|
646
|
-
data:
|
|
646
|
+
data: l?.data?.()
|
|
647
647
|
};
|
|
648
648
|
}
|
|
649
|
-
} else
|
|
649
|
+
} else l?.data && (i = {
|
|
650
650
|
element: a,
|
|
651
651
|
placement: u ?? g,
|
|
652
652
|
index: -1,
|
|
653
653
|
item: void 0,
|
|
654
654
|
items: [],
|
|
655
|
-
data:
|
|
655
|
+
data: l.data()
|
|
656
656
|
});
|
|
657
657
|
}
|
|
658
658
|
}
|
|
@@ -718,7 +718,7 @@ const A = (e, t) => {
|
|
|
718
718
|
}, B = (e, t, n) => {
|
|
719
719
|
const s = e.left + e.width / 2, i = e.top + e.height / 2;
|
|
720
720
|
if (n) {
|
|
721
|
-
const o = n.top ?? 0,
|
|
721
|
+
const o = n.top ?? 0, l = n.right ?? 0, c = n.bottom ?? 0, u = n.left ?? 0, g = t.left + u, f = t.right - l, d = t.top + o, h = t.bottom - c;
|
|
722
722
|
if (g < f && d < h && s >= g && s <= f && i >= d && i <= h)
|
|
723
723
|
return {
|
|
724
724
|
top: !1,
|
|
@@ -808,12 +808,12 @@ const zt = (e, t) => e.find((n) => n !== t && H(t, n)), Se = (e, t, n) => {
|
|
|
808
808
|
);
|
|
809
809
|
}
|
|
810
810
|
}
|
|
811
|
-
const
|
|
811
|
+
const c = O(t.droppable), u = O(t.draggable);
|
|
812
812
|
if (i && i !== u) {
|
|
813
813
|
const g = e.entities.draggableMap.get(i);
|
|
814
814
|
g && U(g, void 0);
|
|
815
815
|
}
|
|
816
|
-
if (s && s !==
|
|
816
|
+
if (s && s !== c) {
|
|
817
817
|
const g = e.entities.droppableMap.get(s);
|
|
818
818
|
g && U(g, void 0);
|
|
819
819
|
}
|
|
@@ -821,11 +821,11 @@ const zt = (e, t) => e.find((n) => n !== t && H(t, n)), Se = (e, t, n) => {
|
|
|
821
821
|
const g = e.entities.draggableMap.get(u);
|
|
822
822
|
g && U(g, t.draggable.get(u));
|
|
823
823
|
}
|
|
824
|
-
if (
|
|
825
|
-
const g = e.entities.droppableMap.get(
|
|
826
|
-
g && U(g, t.droppable.get(
|
|
824
|
+
if (c) {
|
|
825
|
+
const g = e.entities.droppableMap.get(c);
|
|
826
|
+
g && U(g, t.droppable.get(c));
|
|
827
827
|
}
|
|
828
|
-
Rt(e, s,
|
|
828
|
+
Rt(e, s, c), kt(e, i, u);
|
|
829
829
|
}, ce = (e, t) => e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y, ge = (e) => {
|
|
830
830
|
if (!e)
|
|
831
831
|
return { x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, right: 0, bottom: 0 };
|
|
@@ -899,25 +899,25 @@ const ve = (e) => {
|
|
|
899
899
|
const n = e.pointer.value?.current ?? { x: 0, y: 0 }, s = Nt(e);
|
|
900
900
|
if (s) {
|
|
901
901
|
if (s.elements.length > 0) return s;
|
|
902
|
-
const
|
|
903
|
-
if (!
|
|
902
|
+
const c = s.zones[0];
|
|
903
|
+
if (!c) return s;
|
|
904
904
|
const u = ke(e), f = [...Me(e)].filter(
|
|
905
|
-
(m) =>
|
|
905
|
+
(m) => c.contains(m) && J(m, e)
|
|
906
906
|
).map((m) => ({ el: m, box: ge(m) })), d = f.filter(
|
|
907
907
|
({ box: m }) => ce(m, u) && ue(m, u) >= fe
|
|
908
908
|
).sort((m, y) => _(m.box, n) - _(y.box, n)).map(({ el: m }) => m);
|
|
909
909
|
return d.length > 0 ? { elements: d, zones: s.zones } : { elements: f.sort((m, y) => Te(m.box, n) - Te(y.box, n)).map(({ el: m }) => m), zones: s.zones };
|
|
910
910
|
}
|
|
911
911
|
const i = ke(e), r = [...Me(e)].filter(
|
|
912
|
-
(
|
|
912
|
+
(c) => J(c, e)
|
|
913
913
|
), a = [...$e(e)].filter(
|
|
914
|
-
(
|
|
915
|
-
), o = r.map((
|
|
916
|
-
({ box:
|
|
917
|
-
).sort((
|
|
918
|
-
({ box:
|
|
919
|
-
).sort((
|
|
920
|
-
return { elements: o, zones:
|
|
914
|
+
(c) => J(c, e)
|
|
915
|
+
), o = r.map((c) => ({ n: c, box: ge(c) })).filter(
|
|
916
|
+
({ box: c }) => ce(c, i) && ue(c, i) >= fe
|
|
917
|
+
).sort((c, u) => _(c.box, n) - _(u.box, n)).map(({ n: c }) => c), l = a.map((c) => ({ n: c, box: ge(c) })).filter(
|
|
918
|
+
({ box: c }) => ce(c, i) && ue(c, i) >= fe
|
|
919
|
+
).sort((c, u) => _(c.box, n) - _(u.box, n)).map(({ n: c }) => c);
|
|
920
|
+
return { elements: o, zones: l };
|
|
921
921
|
};
|
|
922
922
|
function Ae(e) {
|
|
923
923
|
const t = ve(e);
|
|
@@ -938,17 +938,17 @@ async function Ue(e) {
|
|
|
938
938
|
const n = e.entities.droppableMap.get(t), s = A(e, t);
|
|
939
939
|
let i = s;
|
|
940
940
|
if (n?.groupMatch === "some" && (n.groups?.length ?? 0) > 0) {
|
|
941
|
-
const o = n.groups,
|
|
941
|
+
const o = n.groups, l = s.draggedItems.filter((u) => {
|
|
942
942
|
for (const [, g] of e.entities.draggingMap) {
|
|
943
943
|
const f = g.payload?.();
|
|
944
944
|
if (!(!Array.isArray(f) || f.length < 2) && Number(f[0]) === u.index && f[1] === u.items)
|
|
945
945
|
return se(g.groups ?? [], o);
|
|
946
946
|
}
|
|
947
947
|
return !0;
|
|
948
|
-
}),
|
|
949
|
-
(u) => !
|
|
948
|
+
}), c = s.draggedItems.filter(
|
|
949
|
+
(u) => !l.includes(u)
|
|
950
950
|
);
|
|
951
|
-
if (
|
|
951
|
+
if (c.length > 0) {
|
|
952
952
|
const u = (g) => ({
|
|
953
953
|
...s,
|
|
954
954
|
draggedItems: g,
|
|
@@ -956,8 +956,8 @@ async function Ue(e) {
|
|
|
956
956
|
});
|
|
957
957
|
if (n.events?.onValidate) {
|
|
958
958
|
const g = n.events.onValidate({
|
|
959
|
-
validItems:
|
|
960
|
-
invalidItems:
|
|
959
|
+
validItems: l,
|
|
960
|
+
invalidItems: c,
|
|
961
961
|
dropZone: s.dropZone,
|
|
962
962
|
hoveredDraggable: s.hoveredDraggable
|
|
963
963
|
}), f = g != null && typeof g.then == "function";
|
|
@@ -974,12 +974,12 @@ async function Ue(e) {
|
|
|
974
974
|
d = g;
|
|
975
975
|
if (d === !1)
|
|
976
976
|
return e.state.value = "dragging", "decline";
|
|
977
|
-
const h = Array.isArray(d) ? d :
|
|
977
|
+
const h = Array.isArray(d) ? d : l;
|
|
978
978
|
if (h.length === 0) return "accept";
|
|
979
979
|
i = u(h);
|
|
980
980
|
} else {
|
|
981
|
-
if (
|
|
982
|
-
i = u(
|
|
981
|
+
if (l.length === 0) return "accept";
|
|
982
|
+
i = u(l);
|
|
983
983
|
}
|
|
984
984
|
}
|
|
985
985
|
}
|
|
@@ -990,8 +990,8 @@ async function Ue(e) {
|
|
|
990
990
|
try {
|
|
991
991
|
o = await r;
|
|
992
992
|
} catch {
|
|
993
|
-
const
|
|
994
|
-
return F(e,
|
|
993
|
+
const l = e.entities.initiatingDraggable;
|
|
994
|
+
return F(e, l, "onSelfDragCancel"), v(e, "onDragCancel"), we(e, e.hovered), "cancel";
|
|
995
995
|
}
|
|
996
996
|
return o === !1 ? (e.state.value = "dragging", "decline") : "accept";
|
|
997
997
|
}
|
|
@@ -1014,8 +1014,8 @@ const Vt = (e) => {
|
|
|
1014
1014
|
ye(), t.current?.cancel(), t.current = null;
|
|
1015
1015
|
const o = e.state.value;
|
|
1016
1016
|
if (o === "dragging") {
|
|
1017
|
-
const
|
|
1018
|
-
if (
|
|
1017
|
+
const l = await Ue(e);
|
|
1018
|
+
if (l === "accept" && qe(e), l === "accept" || l === "cancel") {
|
|
1019
1019
|
te(e), document.removeEventListener("pointerup", s), document.removeEventListener("pointermove", i);
|
|
1020
1020
|
return;
|
|
1021
1021
|
}
|
|
@@ -1030,26 +1030,26 @@ const Vt = (e) => {
|
|
|
1030
1030
|
}
|
|
1031
1031
|
if (e.state.value === "dragging") {
|
|
1032
1032
|
Yt(e, n);
|
|
1033
|
-
const
|
|
1034
|
-
F(e,
|
|
1033
|
+
const l = e.entities.initiatingDraggable;
|
|
1034
|
+
F(e, l, "onSelfDragMove"), v(e, "onDragMove");
|
|
1035
1035
|
}
|
|
1036
1036
|
e.state.value === "selecting" && Ne(e);
|
|
1037
1037
|
}
|
|
1038
1038
|
};
|
|
1039
1039
|
return { pointerDown: (o) => {
|
|
1040
1040
|
document.addEventListener("pointerup", s), document.addEventListener("pointermove", i);
|
|
1041
|
-
const
|
|
1041
|
+
const l = o.composedPath?.()[0] ?? o.target, c = l.closest(
|
|
1042
1042
|
G.SELECT_AREA
|
|
1043
|
-
), u =
|
|
1043
|
+
), u = l.closest(
|
|
1044
1044
|
G.DRAGGABLE
|
|
1045
1045
|
);
|
|
1046
|
-
if (e.entities.modifiersSelectableAreaSet.size > 0 && e.entities.modifiersSelectableAreaSet.has(
|
|
1047
|
-
pe(), e.pointer.value = De(o), e.state.value = "selecting", e.entities.selectingArea =
|
|
1046
|
+
if (e.entities.modifiersSelectableAreaSet.size > 0 && e.entities.modifiersSelectableAreaSet.has(c)) {
|
|
1047
|
+
pe(), e.pointer.value = De(o), e.state.value = "selecting", e.entities.selectingArea = c, e.entities.selectionBase = new Set(e.entities.selectedSet);
|
|
1048
1048
|
return;
|
|
1049
1049
|
}
|
|
1050
1050
|
if (e.entities.modifiersDraggableSet.size > 0 && e.entities.modifiersDraggableSet.has(u)) {
|
|
1051
1051
|
const g = e.entities.draggableMap.get(u);
|
|
1052
|
-
if (!He(
|
|
1052
|
+
if (!He(l, u, g?.dragHandle))
|
|
1053
1053
|
return;
|
|
1054
1054
|
pe(), e.entities.initiatingDraggable = u;
|
|
1055
1055
|
const f = _e(o, u);
|
|
@@ -1088,7 +1088,7 @@ const Vt = (e) => {
|
|
|
1088
1088
|
if (i && n.forMove.includes(t.code) && e.pointer.value) {
|
|
1089
1089
|
t.preventDefault();
|
|
1090
1090
|
const r = n.forMoveFaster.some(
|
|
1091
|
-
(
|
|
1091
|
+
(l) => n.pressedKeys.value.has(l)
|
|
1092
1092
|
), a = e.keyboard.step * (r ? e.keyboard.moveFaster : 1);
|
|
1093
1093
|
e.pointer.value.current = {
|
|
1094
1094
|
x: e.pointer.value.current.x + i.dx * a,
|
|
@@ -1116,9 +1116,9 @@ const Vt = (e) => {
|
|
|
1116
1116
|
if (!He(i, r, a?.dragHandle, !0))
|
|
1117
1117
|
return;
|
|
1118
1118
|
t.preventDefault(), pe();
|
|
1119
|
-
const o = r.getBoundingClientRect(),
|
|
1120
|
-
clientX:
|
|
1121
|
-
clientY:
|
|
1119
|
+
const o = r.getBoundingClientRect(), l = o.left + o.width / 2, c = o.top + o.height / 2, u = {
|
|
1120
|
+
clientX: l,
|
|
1121
|
+
clientY: c
|
|
1122
1122
|
};
|
|
1123
1123
|
e.entities.initiatingDraggable = r;
|
|
1124
1124
|
const g = _e(u, r);
|
|
@@ -1181,7 +1181,7 @@ const Qt = {
|
|
|
1181
1181
|
};
|
|
1182
1182
|
function je(e, t, n, s = Qt, i) {
|
|
1183
1183
|
const { speed: r = 10, disabled: a = !1 } = t, o = Jt(t.threshold);
|
|
1184
|
-
let
|
|
1184
|
+
let l = null, c = null, u = null, g = 0, f = 0;
|
|
1185
1185
|
const d = (p) => {
|
|
1186
1186
|
i && (i.value = p);
|
|
1187
1187
|
}, h = (p) => {
|
|
@@ -1190,23 +1190,23 @@ function je(e, t, n, s = Qt, i) {
|
|
|
1190
1190
|
d(!1);
|
|
1191
1191
|
return;
|
|
1192
1192
|
}
|
|
1193
|
-
|
|
1194
|
-
const D = p -
|
|
1193
|
+
c || (c = p);
|
|
1194
|
+
const D = p - c;
|
|
1195
1195
|
if (D < Pe) {
|
|
1196
|
-
|
|
1196
|
+
l = requestAnimationFrame(h);
|
|
1197
1197
|
return;
|
|
1198
1198
|
}
|
|
1199
1199
|
const w = r * (D / Pe);
|
|
1200
|
-
|
|
1200
|
+
c = p;
|
|
1201
1201
|
const { scrollTop: T, scrollLeft: P } = s.getScrollState(x);
|
|
1202
1202
|
(!u || g !== T || f !== P) && (u = s.getRect ? s.getRect(x) : x.getBoundingClientRect(), g = T, f = P);
|
|
1203
1203
|
let z = !1, ae = T, oe = P;
|
|
1204
|
-
o.top > 0 && k.y - u.top < o.top ? (ae = T - w, z = !0) : o.bottom > 0 && u.bottom - k.y < o.bottom && (ae = T + w, z = !0), o.left > 0 && k.x - u.left < o.left ? (oe = P - w, z = !0) : o.right > 0 && u.right - k.x < o.right && (oe = P + w, z = !0), z && s.setScroll(x, ae, oe), d(z),
|
|
1204
|
+
o.top > 0 && k.y - u.top < o.top ? (ae = T - w, z = !0) : o.bottom > 0 && u.bottom - k.y < o.bottom && (ae = T + w, z = !0), o.left > 0 && k.x - u.left < o.left ? (oe = P - w, z = !0) : o.right > 0 && u.right - k.x < o.right && (oe = P + w, z = !0), z && s.setScroll(x, ae, oe), d(z), l = requestAnimationFrame(h);
|
|
1205
1205
|
};
|
|
1206
1206
|
return { run: () => {
|
|
1207
|
-
|
|
1207
|
+
c = null, l = requestAnimationFrame(h);
|
|
1208
1208
|
}, stop: () => {
|
|
1209
|
-
|
|
1209
|
+
l && (cancelAnimationFrame(l), l = null), u = null, g = 0, f = 0, c = null, d(!1);
|
|
1210
1210
|
} };
|
|
1211
1211
|
}
|
|
1212
1212
|
const en = {
|
|
@@ -1233,10 +1233,10 @@ function nn(e, t) {
|
|
|
1233
1233
|
t ?? {},
|
|
1234
1234
|
() => {
|
|
1235
1235
|
if (e.state.value !== "dragging") return null;
|
|
1236
|
-
const o = e.preview.position.value,
|
|
1237
|
-
return o ?
|
|
1238
|
-
x: o.x +
|
|
1239
|
-
y: o.y +
|
|
1236
|
+
const o = e.preview.position.value, l = e.preview.size.value;
|
|
1237
|
+
return o ? l?.width && l?.height ? {
|
|
1238
|
+
x: o.x + l.width / 2,
|
|
1239
|
+
y: o.y + l.height / 2
|
|
1240
1240
|
} : o : null;
|
|
1241
1241
|
},
|
|
1242
1242
|
en,
|
|
@@ -1301,11 +1301,11 @@ const sn = (e) => {
|
|
|
1301
1301
|
o && (s.size.value = o);
|
|
1302
1302
|
}
|
|
1303
1303
|
);
|
|
1304
|
-
const r = (o,
|
|
1305
|
-
const { x: o, y:
|
|
1306
|
-
return { x: r(o,
|
|
1304
|
+
const r = (o, l) => !l || l <= 0 ? o : Math.round(o / l) * l, a = b(() => {
|
|
1305
|
+
const { x: o, y: l } = s.position.value, c = typeof e.grid == "object" ? e.grid.x : e.grid, u = typeof e.grid == "object" ? e.grid.y : e.grid;
|
|
1306
|
+
return { x: r(o, c), y: r(l, u) };
|
|
1307
1307
|
});
|
|
1308
|
-
return (o,
|
|
1308
|
+
return (o, l) => j(t) === "dragging" ? (L(), W("div", {
|
|
1309
1309
|
key: 0,
|
|
1310
1310
|
class: "dnd-kit-preview",
|
|
1311
1311
|
ref_key: "contentRef",
|
|
@@ -1317,8 +1317,8 @@ const sn = (e) => {
|
|
|
1317
1317
|
me(o.$slots, "default", {
|
|
1318
1318
|
draggingMap: j(n).draggingMap
|
|
1319
1319
|
}, () => [
|
|
1320
|
-
(L(!0), W(he, null, Qe(j(n).draggingMap, ([
|
|
1321
|
-
u.render ? (L(), Q(be(u.render), { key: 0 })) : (L(), Q(be(
|
|
1320
|
+
(L(!0), W(he, null, Qe(j(n).draggingMap, ([c, u]) => (L(), W(he, { key: c }, [
|
|
1321
|
+
u.render ? (L(), Q(be(u.render), { key: 0 })) : (L(), Q(be(c.tagName), {
|
|
1322
1322
|
key: 1,
|
|
1323
1323
|
innerHTML: u.initialOuterHTML,
|
|
1324
1324
|
style: Ce({
|
|
@@ -1367,7 +1367,7 @@ function ln(e, t, n) {
|
|
|
1367
1367
|
const s = ie();
|
|
1368
1368
|
let i, r, a;
|
|
1369
1369
|
typeof t == "function" ? (i = {}, r = t) : (i = t ?? {}, r = n);
|
|
1370
|
-
const o = i.id ?? Math.random().toString(36).slice(2),
|
|
1370
|
+
const o = i.id ?? Math.random().toString(36).slice(2), l = b({
|
|
1371
1371
|
get() {
|
|
1372
1372
|
const f = S(e);
|
|
1373
1373
|
return f ? s.entities.selectedSet.has(f) : !1;
|
|
@@ -1376,7 +1376,7 @@ function ln(e, t, n) {
|
|
|
1376
1376
|
const d = S(e);
|
|
1377
1377
|
d && s.entities.selectedSet[f ? "add" : "delete"](d);
|
|
1378
1378
|
}
|
|
1379
|
-
}),
|
|
1379
|
+
}), c = b(() => {
|
|
1380
1380
|
const f = S(e);
|
|
1381
1381
|
return f ? s.entities.draggingMap.has(f) : !1;
|
|
1382
1382
|
}), u = b(() => {
|
|
@@ -1411,8 +1411,8 @@ function ln(e, t, n) {
|
|
|
1411
1411
|
}), Z(() => {
|
|
1412
1412
|
a && (s.lib.draggableObserver.unobserve(a), s.entities.visibleDraggableSet.delete(a), s.entities.draggableMap.delete(a), s.entities.modifiersDraggableSet.delete(a));
|
|
1413
1413
|
}), {
|
|
1414
|
-
selected:
|
|
1415
|
-
isDragging:
|
|
1414
|
+
selected: l,
|
|
1415
|
+
isDragging: c,
|
|
1416
1416
|
isAllowed: u,
|
|
1417
1417
|
isDragOver: g
|
|
1418
1418
|
};
|
|
@@ -1462,12 +1462,12 @@ function un(e, t, n) {
|
|
|
1462
1462
|
let i = null, r, a;
|
|
1463
1463
|
typeof t == "function" ? (r = {}, a = t) : (r = t ?? {}, a = n);
|
|
1464
1464
|
const o = b(() => {
|
|
1465
|
-
const
|
|
1466
|
-
return
|
|
1467
|
-
}),
|
|
1468
|
-
const
|
|
1469
|
-
if (
|
|
1470
|
-
return s.entities.droppableMap.get(
|
|
1465
|
+
const c = S(e);
|
|
1466
|
+
return c ? s.entities.allowedDroppableSet.has(c) : !1;
|
|
1467
|
+
}), l = b(() => {
|
|
1468
|
+
const c = S(e);
|
|
1469
|
+
if (c)
|
|
1470
|
+
return s.entities.droppableMap.get(c)?.hoveredPlacement;
|
|
1471
1471
|
});
|
|
1472
1472
|
return Y(() => {
|
|
1473
1473
|
i = S(e), i && (i.setAttribute(I.DROPPABLE, ""), s.lib.droppableObserver.observe(i), s.entities.droppableMap.set(i, {
|
|
@@ -1483,7 +1483,7 @@ function un(e, t, n) {
|
|
|
1483
1483
|
i && (s.lib.droppableObserver.unobserve(i), s.entities.visibleDroppableSet.delete(i), s.entities.droppableMap.delete(i));
|
|
1484
1484
|
}), {
|
|
1485
1485
|
isAllowed: o,
|
|
1486
|
-
isDragOver:
|
|
1486
|
+
isDragOver: l
|
|
1487
1487
|
};
|
|
1488
1488
|
}
|
|
1489
1489
|
const fn = (e, t) => {
|
|
@@ -1492,19 +1492,22 @@ const fn = (e, t) => {
|
|
|
1492
1492
|
t ?? {},
|
|
1493
1493
|
() => {
|
|
1494
1494
|
if (n.state.value !== "dragging") return null;
|
|
1495
|
-
const
|
|
1496
|
-
return
|
|
1497
|
-
x:
|
|
1498
|
-
y:
|
|
1499
|
-
} :
|
|
1495
|
+
const o = n.preview.position.value, l = n.preview.size.value;
|
|
1496
|
+
return o ? l?.width && l?.height ? {
|
|
1497
|
+
x: o.x + l.width / 2,
|
|
1498
|
+
y: o.y + l.height / 2
|
|
1499
|
+
} : o : null;
|
|
1500
1500
|
},
|
|
1501
1501
|
void 0,
|
|
1502
1502
|
s
|
|
1503
|
-
)
|
|
1503
|
+
), a = b(() => {
|
|
1504
|
+
const o = e.value;
|
|
1505
|
+
return o != null && n.hovered.droppable.has(o);
|
|
1506
|
+
});
|
|
1504
1507
|
return ne(
|
|
1505
|
-
() => n.state.value,
|
|
1506
|
-
(
|
|
1507
|
-
|
|
1508
|
+
[() => n.state.value, a],
|
|
1509
|
+
([o, l]) => {
|
|
1510
|
+
o === "dragging" && l ? r.run() : r.stop();
|
|
1508
1511
|
}
|
|
1509
1512
|
), { isScrolling: s };
|
|
1510
1513
|
};
|
package/package.json
CHANGED