@vue-dnd-kit/core 2.0.8 → 2.0.10
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.
|
@@ -55,6 +55,9 @@ export interface IEntities {
|
|
|
55
55
|
|
|
56
56
|
draggingMap: Map<HTMLElement, IDraggingEntity>;
|
|
57
57
|
selectedSet: Set<HTMLElement>;
|
|
58
|
+
/** Snapshot of selectedSet taken at the start of a rubber-band selection session.
|
|
59
|
+
* Elements in this set are preserved when the new rect doesn't cover them. */
|
|
60
|
+
selectionBase: Set<HTMLElement>;
|
|
58
61
|
|
|
59
62
|
modifiersDraggableSet: ComputedRef<Set<HTMLElement>>;
|
|
60
63
|
modifiersSelectableAreaSet: ComputedRef<Set<HTMLElement>>;
|
|
@@ -10,7 +10,15 @@ export declare const getRelativeCoordinates: (event: ICoordinates, container: HT
|
|
|
10
10
|
y: number;
|
|
11
11
|
}) => ICoordinates;
|
|
12
12
|
/**
|
|
13
|
-
* Returns CSS properties for bounded selection box within container
|
|
13
|
+
* Returns CSS properties for a bounded selection box within its container.
|
|
14
|
+
*
|
|
15
|
+
* Uses position: absolute (not fixed) so the rect is placed correctly even when
|
|
16
|
+
* an ancestor element has a CSS transform / will-change / filter — any of those
|
|
17
|
+
* break fixed positioning by creating a new containing block.
|
|
18
|
+
*
|
|
19
|
+
* Coordinates are converted from viewport-space (pointer positions) to
|
|
20
|
+
* container-local space, accounting for the container's own scroll offset so it
|
|
21
|
+
* also works inside scrollable containers.
|
|
14
22
|
*/
|
|
15
23
|
export declare const getBoundedSelectionArea: (start: ICoordinates, current: ICoordinates, container: HTMLElement | null) => CSSProperties;
|
|
16
24
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-default-overlay{transform:translate3d(var(--position-x),var(--position-y),0)}.dnd-kit-overlay-container{position:fixed;top:0;left:0;pointer-events:none;cursor:grabbing;z-index:9999}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("vue"),R={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},O={SELECT_AREA:`[${R.SELECT_AREA}]`,DRAGGABLE:`[${R.DRAGGABLE}]`,CONSTRAINT_AREA:`[${R.CONSTRAINT_AREA}]`},ge="VueDnDKitProvider",be=(e,t,s,n)=>{const o=new Set;return t.forEach(a=>{const r=e.get(a),i=n?n(a):r?.disabled;if(!r||i)return;const u=r.modifier?.keys,l=r.modifier?.method;if(!u||!l||u.length===0){o.add(a);return}u[l](c=>s.value.has(c))&&o.add(a)}),o};let we="",ze="",Oe="";const D=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,G=(e,t)=>e!==t&&e.contains(t),Fe=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ae=()=>{const e=document.body;we=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",M),window.addEventListener("selectstart",M),window.addEventListener("touchstart",M),window.addEventListener("touchmove",M)},ie=()=>{const e=document.body;e.style.userSelect=we,e.style.touchAction=ze,e.style.overscrollBehavior=Oe,window.removeEventListener("contextmenu",M),window.removeEventListener("selectstart",M),window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",M)},M=e=>e.preventDefault(),fe=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(n)?.disabled&&G(n,e))return!0;return!1},F=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(n)?.disabled&&G(n,e))return!0;return!1},de=(e,t)=>{if(!e.length||!t.length)return!0;const s=new Set(t);return e.some(n=>s.has(n))};function _e(e,t,s,n){const o=new Set;for(const i of t.keys()){const u=s.get(i);for(const l of u?.groups??[])o.add(l)}const a=[...o],r=new Set;for(const i of e){const l=n.get(i)?.groups??[];de(a,l)&&r.add(i)}return r}function Ge(e,t,s){const n=new Set;for(const r of t.keys()){const i=s.get(r);for(const u of i?.groups??[])n.add(u)}const o=[...n],a=new Set;for(const r of e){const u=s.get(r)?.groups??[];de(o,u)&&a.add(r)}return a}const te=e=>{const t=new IntersectionObserver(s=>{s.forEach(n=>{const o=n.target;e[n.isIntersecting?"add":"delete"](o)})});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},He=e=>{const t=new ResizeObserver(s=>{const n=s[0];if(!n)return;const{width:o,height:a}=n.contentRect;e.value={width:o,height:a}});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},Ke=e=>{const t=g.ref(null),s=He(t),n=g.watch(e,a=>{s.disconnect(),a&&s.observe(a)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{n(),s.disconnect()}}}};function le(e,t=0,s=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:s}}}function xe(e,t){const s=t.getBoundingClientRect(),n=s.width>0?(e.clientX-s.left)/s.width:.5,o=s.height>0?(e.clientY-s.top)/s.height:.5;return{x:n,y:o}}function Ae(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ze(e,t,s){e.forEach(n=>{const o=t.get(n);s.set(n,Ae(n,o))}),e.clear()}function Ne(e,t,s){s.clear();const n=t.get(e);s.set(e,Ae(e,n))}function $(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,s,n){t.has(e)?Ze(t,s,n):(t.clear(),Ne(e,s,n))}function Ee(e,t,s,n){if(n||!s)return!0;const o=e.closest(s);return o?t.contains(o):!1}function Ye(e,t){if(!e||!t)return 1;const s=Math.abs(e.current.x-e.start.x),n=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const l=Math.sqrt(s*s+n*n);return Math.min(l/t,1)}const{x:o=0,y:a=0,condition:r="any"}=t;if(o===0&&a===0)return 1;const i=o>0?Math.min(s/o,1):1,u=a>0?Math.min(n/a,1):1;return r==="both"?Math.min(i,u):Math.max(i,u)}function Ce(e,t,s){if(!s)return!0;const n=s.distance!=null,o=s.delay!=null;return!n&&!o?!0:n&&!o?e>=1:!n&&o?t>=1:(s.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 Ce(e.distanceProgress.value,e.delay.progress,t?.activation)?($(e),!0):!1}function Ve(e,t){let s=null;const n=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){s=null;return}const o=e.entities.draggableMap.get(e.entities.initiatingDraggable),a=o?.activation?.delay;if(!a){s=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(a*1e3),1),Ce(e.distanceProgress.value,e.delay.progress,o?.activation)?(t(),s=null):s=requestAnimationFrame(n)};return s=requestAnimationFrame(n),{cancel:()=>{s!==null&&(cancelAnimationFrame(s),s=null)}}}function $e(e,t){const s=e.closest(O.CONSTRAINT_AREA);return!s||!t.has(s)?null:{element:s,entity:t.get(s)}}function qe(e,t,s,n){return s==="x"?{x:e,y:n.top}:s==="y"?{x:n.left,y:t}:{x:e,y:t}}function je(e,t,s,n,o){let a=e,r=t;return s!=="y"&&(a=Math.max(n.left,Math.min(n.right-o.width,e))),s!=="x"&&(r=Math.max(n.top,Math.min(n.bottom-o.height,t))),{x:a,y:r}}function We(e,t,s,n,o){if(!e||!t)return{x:0,y:0};const a=t.getBoundingClientRect(),r=a.width||o?.width||0,i=a.height||o?.height||0;let u=e.current.x-r*e.offset.x,l=e.current.y-i*e.offset.y;if(!s)return{x:u,y:l};const f=$e(s,n);if(!f)return{x:u,y:l};const{element:c,entity:d}=f,m=c.getBoundingClientRect(),h=s.getBoundingClientRect(),b=qe(u,l,d.axis||"both",h);return d.restrictToArea?je(b.x,b.y,d.axis||"both",m,a):b}const K={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function Je(e,t){const s=g.shallowRef(),n=g.ref(),a={keys:{pressedKeys:g.ref(new Set),forDrag:[...K.forDrag],forCancel:[...K.forCancel],forDrop:[...K.forDrop],forMove:[...K.forMove],forMoveFaster:[...K.forMoveFaster]},step:8,moveFaster:4},r=g.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,allowedDroppableSet:g.computed(()=>s.value?_e(r.visibleDroppableSet,r.draggingMap,r.draggableMap,r.droppableMap):new Set),allowedDraggableSet:g.computed(()=>s.value?Ge(r.visibleDraggableSet,r.draggingMap,r.draggableMap):new Set),modifiersSelectableAreaSet:g.computed(()=>be(r.selectableAreaMap,r.visibleSelectableAreaSet,a.keys.pressedKeys)),modifiersDraggableSet:g.computed(()=>be(r.draggableMap,r.visibleDraggableSet,a.keys.pressedKeys,w=>fe(w,{entities:r}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),i=g.reactive({draggable:new Map,droppable:new Map}),u={throttle:g.shallowRef(0)},l=g.reactive({x:window.scrollX,y:window.scrollY}),f=g.reactive({progress:0,startTime:0}),c=g.computed(()=>{if(!n.value||!r.initiatingDraggable)return 0;const w=r.draggableMap.get(r.initiatingDraggable)?.activation?.distance;return w?Ye(n.value,w):1}),d=te(r.visibleDraggableSet),m=te(r.visibleDroppableSet),h=te(r.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:S}=Ke(e),y=g.ref(),v=g.computed(()=>{const p=r.initiatingDraggable;return We(n.value,e.value,p||null,r.constraintsAreaMap,b.value)}),E=g.computed({get:()=>t?.overlayTo,set:p=>E.value=p}),U=g.computed(()=>t?.autoScrollViewport);return{state:s,pointer:n,entities:r,keyboard:a,scrollPosition:l,delay:f,distanceProgress:c,hovered:i,collision:u,overlay:{size:b,position:v,render:y,ref:e,to:E},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:S,rectCache:new Map},autoScrollViewport:U}}const q=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const n=e.entities.draggableMap.get(t);n&&(n.hoveredPlacement=void 0)}const s=e.hovered.droppable.keys().next().value;if(s){const n=e.entities.droppableMap.get(s);n&&(n.hoveredPlacement=void 0)}e.lib.rectCache.clear(),e.pointer.value=void 0,e.state.value=void 0,e.entities.selectingArea=void 0,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 L(e,t,s){const n=Math.max(0,Math.min(t,e.length));return[...e.slice(0,n),...s,...e.slice(n)]}function me(e,t,s=1){const n=Math.max(0,Math.min(t,e.length-1)),o=Math.max(0,Math.min(s,e.length-n));return[...e.slice(0,n),...e.slice(n+o)]}function _(e,t){const s=[...new Set(t)].filter(o=>o>=0&&o<e.length).sort((o,a)=>a-o);let n=e;for(const o of s)n=me(n,o,1);return n}function Le(e,t,s){if(t===s||t<0||s<0||t>=e.length||s>=e.length)return e;const n=[...e];return[n[t],n[s]]=[n[s],n[t]],n}const k={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 k.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return k.getInsertSide(e,t)==="after"&&!e?.center}};function ke(e,t){const{draggedItems:s,dropZone:n,hoveredDraggable:o}=e;if(!s.length)return null;const a=o?.placement.center===!0&&n!=null&&n.items!==o.items,r=a?n.items:o?.items??n?.items;if(!r)return null;const i=s[0].items,u=s.map(d=>d.index),l=r.length;let f,c;if(o&&!a){const d=o.items===i&&u.includes(o.index);if(d&&s.length===1){const m=k.isAtZoneStart(n?.placement,t);f=m?0:l,c=m?"prepend":"append"}else{if(d)return null;{const m=k.getInsertSide(o.placement,t),h=o.index;m==="before"?(f=Math.max(0,h),c="insert"):m==="after"?(f=Math.min(l,h+1),c="insert"):(f=l,c="append")}}}else{if(!n)return null;const d=k.isAtZoneStart(n.placement,t);f=d?0:l,c=d?"prepend":"append"}return{targetIndex:f,mode:c,targetArr:r}}function Qe(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=ke(e,t);if(!n)return null;const{targetArr:o,mode:a}=n;let{targetIndex:r}=n;const i=s.map(c=>c.index),u=s.map(c=>c.item),l=s[0].items;if(l===o){const c=i.filter(m=>m<r).length;r=Math.max(0,r-c);const d=L(_(l,i),r,u);return{sourceItems:d,targetItems:d,draggedItems:u,sourceIndexes:i,targetIndex:r,mode:a,sameList:!0}}else{const c=_(l,i),d=L(o,r,u);return{sourceItems:c,targetItems:d,draggedItems:u,sourceIndexes:i,targetIndex:r,mode:a,sameList:!1}}}function et(e){const{draggedItems:t,hoveredDraggable:s}=e;if(!t.length||!s)return null;const n=t.map(f=>f.index),o=s.index,a=t.map(f=>f.item),r=s.item,i=t[0].items,u=s.items,l=i===u;if(l&&n.includes(o))return null;if(t.length===1){const f=n[0];if(l){const c=Le(i,f,o);return{sourceItems:c,targetItems:c,sourceIndexes:n,targetIndex:o,sameList:!0}}else{const c=[...i],d=[...u];return c[f]=u[o],d[o]=i[f],{sourceItems:c,targetItems:d,sourceIndexes:n,targetIndex:o,sameList:!1}}}else{const f=Math.min(...n);if(l){const c=n.filter(y=>y<o).length,d=Math.max(0,o-c),m=n.filter(y=>y<f).length,h=Math.max(0,f-m);let b=_(i,n);b=L(b,d,a);const S=h>=d?h+a.length:h;return b=L(b,S,[r]),{sourceItems:b,targetItems:b,sourceIndexes:n,targetIndex:d,sameList:!0}}else{const c=n.filter(b=>b<f).length,d=Math.max(0,f-c);let m=_(i,n);m=L(m,d,[r]);let h=me(u,o);return h=L(h,o,a),{sourceItems:m,targetItems:h,sourceIndexes:n,targetIndex:o,sameList:!1}}}}function tt(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=ke(e,t);if(!n)return null;const{targetArr:o,targetIndex:a,mode:r}=n,i=s.map(l=>l.item);return{targetItems:L(o,a,i),copiedItems:i,targetIndex:a,mode:r}}function nt(e){const{draggedItems:t}=e;if(!t.length)return null;const s=t.map(r=>r.index),n=t.map(r=>r.item),o=t[0].items;return{sourceItems:_(o,s),removedItems:n,sourceIndexes:s}}function st(e){return{insertAt:L,removeAt:me,removeIndexes:_,swapAt:Le,getInsertSide:(t,s)=>k.getInsertSide(t,s),isAtZoneStart:(t,s)=>k.isAtZoneStart(t,s),isAtZoneEnd:(t,s)=>k.isAtZoneEnd(t,s),suggestSort:t=>Qe(e,t),suggestSwap:()=>et(e),suggestCopy:t=>tt(e,t),suggestRemove:()=>nt(e)}}const I=e=>e.keys().next().value,ot=e=>e.target.closest(O.DRAGGABLE);function rt(e){const t=e.entities.initiatingDraggable;if(!t)return[];const s=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t),n=s?.payload;if(!n)return s?.data?[{index:-1,item:void 0,items:[],data:s.data()}]:[];const o=n();if(!Array.isArray(o)||o.length<2)return[];const[a,r]=o,i=Number(a),u=r,l=new Map;return l.set(i,{index:i,item:u[i],items:u,data:s?.data?.()}),e.entities.draggingMap.forEach((f,c)=>{const d=e.entities.draggableMap.get(c),m=d?.payload;if(!m)return;const h=m();if(!Array.isArray(h)||h.length<2)return;const[b,S]=h;if(S!==u)return;const y=Number(b);l.has(y)||l.set(y,{index:y,item:S[y],items:u,data:d?.data?.()})}),[...l.values()].sort((f,c)=>f.index-c.index)}const A=(e,t)=>{const s=rt(e);let n,o;if(t){const a=e.entities.droppableMap.get(t);if(a){const u=a.payload;n={items:u?u():[],placement:e.hovered.droppable.get(t),data:a.data?.()}}const r=I(e.hovered.draggable);if(r&&(r===t||t.contains(r))&&r){const u=e.entities.draggableMap.get(r),l=u?.payload,f=e.hovered.draggable.get(r),c={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(l){const d=l();if(Array.isArray(d)&&d.length>=2){const[m,h]=d,b=Number(m);o={element:r,placement:f??c,index:b,item:h[b],items:h,data:u?.data?.()}}}else u?.data&&(o={element:r,placement:f??c,index:-1,item:void 0,items:[],data:u.data()})}}return{draggedItems:s,dropZone:n,hoveredDraggable:o,provider:e,helpers:st({draggedItems:s,dropZone:n,hoveredDraggable:o})}},z=(e,t,s)=>{if(!t)return;const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!n||n.disabled||n.events?.[s]?.(A(e))},x=(e,t)=>{const s=A(e);e.entities.draggingMap.forEach(n=>{n.disabled||n.events?.[t]?.(s)})},at=(e,t,s)=>{if(t!==s){if(t&&!F(t,e)){const n=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(n)}if(s&&!F(s,e)){const n=A(e,s);e.entities.droppableMap.get(s)?.events?.onEnter?.(n)}}},it=(e,t,s)=>{if(t!==s){const n=A(e);if(t){const o=e.entities.draggableMap.get(t);o&&!o.disabled&&o.events?.onLeave?.(n)}if(s){const o=e.entities.draggableMap.get(s);o&&!o.disabled&&o.events?.onHover?.(n)}}},ne=(e,t,s)=>{const n=ot(t);!n||!e.entities.draggingMap.has(n)||e.entities.draggingMap.get(n)?.events?.[s]?.(A(e))},lt=(e,t)=>{const s=I(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(A(e,s))},Ie=(e,t)=>{const s=I(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(A(e,s))};function ct(e){return e.parentElement?.closest(O.SELECT_AREA)??null}const ut=(e,t,s)=>{if(!s)return{};const n=s.getBoundingClientRect(),o=Math.max(n.left,Math.min(e.x,t.x)),a=Math.max(n.top,Math.min(e.y,t.y)),r=Math.min(n.right,Math.max(e.x,t.x)),i=Math.min(n.bottom,Math.max(e.y,t.y)),u=Math.max(0,r-o),l=Math.max(0,i-a);return{left:`${o}px`,top:`${a}px`,width:`${u}px`,height:`${l}px`,position:"fixed",pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},gt=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,s=ft(e.pointer.value.start,e.pointer.value.current),n=e.entities.selectableAreaMap.get(t)?.groups??[],o=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(a=>{if(a===t||!t.contains(a))return;const r=ct(a);if(r&&r!==t){e.entities.selectedSet.delete(a);return}if(fe(a,e)){e.entities.selectedSet.delete(a);return}const u=e.entities.draggableMap.get(a)?.groups??[];if(!de(n,u)){e.entities.selectedSet.delete(a);return}let l=o.get(a);l||(l=a.getBoundingClientRect(),o.set(a,l)),Fe(s,l)?e.entities.selectedSet.add(a):e.entities.selectedSet.delete(a)})},ft=(e,t)=>{const s=Math.min(e.x,t.x),n=Math.min(e.y,t.y),o=Math.max(e.x,t.x),a=Math.max(e.y,t.y),r=o-s,i=a-n;return new DOMRect(s,n,r,i)},dt=(e,t,s=5)=>{const n=s/2;return{left:e-n,top:t-n,width:s,height:s}},mt=e=>{const t=e.pointer.value?.current,s=t?.x??0,n=t?.y??0;return dt(s,n,5)},B=(e,t,s)=>{const n=e.left+e.width/2,o=e.top+e.height/2;if(s){const i=s.top??0,u=s.right??0,l=s.bottom??0,f=s.left??0,c=t.left+f,d=t.right-u,m=t.top+i,h=t.bottom-l;if(c<d&&m<h&&n>=c&&n<=d&&o>=m&&o<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const a=t.left+t.width/2,r=t.top+t.height/2;return{top:o<=r,bottom:o>r,left:n<=a,right:n>a,center:!1}},ht=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),ye=(e,t)=>{const s=ht(t);return Math.hypot(e.x-s.x,e.y-s.y)};function bt(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 Y(e,t){bt(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const yt=(e,t)=>e.find(s=>s!==t&&G(t,s)),j=(e,t,s)=>{const n=I(t.droppable),o=I(t.draggable);o&&t.draggable.delete(o),n&&t.droppable.delete(n);const a=mt(e),r=s.zones[0],i=s.elements[0];if(r&&i&&r===i&&e.entities.droppableMap.has(r)&&r){const c=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins,m=B(a,c,d);if(m.center){t.droppable.set(r,m);const h=yt(s.elements,r);if(h){const b=h.getBoundingClientRect();t.draggable.set(h,B(a,b,void 0))}}else t.draggable.set(i,m)}else{if(r){const c=r.getBoundingClientRect();t.droppable.set(r,B(a,c))}if(i)if(r)if(G(r,i)){const c=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,B(a,c,d))}else{const c=e.pointer.value?.current??{x:0,y:0},d=r.getBoundingClientRect(),m=i.getBoundingClientRect(),h=ye(c,d);if(ye(c,m)<h){t.droppable.clear();const S=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,B(a,m,S))}}else{const c=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,B(a,c,d))}}const l=I(t.droppable),f=I(t.draggable);if(o&&o!==f){const c=e.entities.draggableMap.get(o);c&&Y(c,void 0)}if(n&&n!==l){const c=e.entities.droppableMap.get(n);c&&Y(c,void 0)}if(f){const c=e.entities.draggableMap.get(f);c&&Y(c,t.draggable.get(f))}if(l){const c=e.entities.droppableMap.get(l);c&&Y(c,t.droppable.get(l))}at(e,n,l),it(e,o,f)},se=(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,N=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}},Z=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),pt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),X=(e,t)=>{const s=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),n=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),o=s*n,a=e.width*e.height,r=t.width*t.height;return a===0||r===0?0:(o/a*100+o/r*100)/2},St=(e,t,s)=>t>=e.x&&t<=e.x+e.width&&s>=e.y&&s<=e.y+e.height,Dt=e=>e.overlay.ref?.value??null,pe=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:s,y:n}=t,o=e.overlay.size?.value;let a,r;if(o)a=o.width,r=o.height;else{const i=e.overlay.ref?.value?.getBoundingClientRect();a=i?.width??0,r=i?.height??0}return{x:s,y:n,width:a,height:r,top:n,left:s,right:s+a,bottom:n+r}},ce=e=>e.entities.allowedDraggableSet,Re=e=>e.entities.allowedDroppableSet,Mt=(e,t)=>!t.entities.draggingMap.has(e),vt=(e,t)=>![...t.entities.draggingMap.keys()].some(s=>G(s,e)),wt=(e,t)=>t.entities.draggableMap.has(e)?!fe(e,t):t.entities.droppableMap.has(e)?!F(e,t):!0,V=(e,t)=>Mt(e,t)&&vt(e,t)&&wt(e,t),oe=10;function T(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function xt(e){const t=e.pointer.value?.current??{x:0,y:0},s=document.elementFromPoint(t.x,t.y);if(!s)return null;const n=ce(e),o=Re(e),a=[],r=[];let i=s;for(;i;)(n.has(i)||o.has(i))&&V(i,e)&&(n.has(i)&&a.push(i),o.has(i)&&r.push(i)),i=i.parentElement;return a.length===0&&r.length===0?null:{elements:a,zones:r}}const W=e=>{if(!Dt(e))return{elements:[],zones:[]};const s=e.pointer.value?.current??{x:0,y:0},n=xt(e);if(n){if(n.elements.length>0)return n;const l=n.zones[0];if(!l)return n;const f=pe(e);return{elements:[...ce(e)].filter(m=>l.contains(m)&&V(m,e)).map(m=>({el:m,box:N(m)})).filter(({box:m})=>se(m,f)&&X(m,f)>=oe).sort((m,h)=>T(m.box,s)-T(h.box,s)).map(({el:m})=>m),zones:n.zones}}const o=pe(e),a=[...ce(e)].filter(l=>V(l,e)),r=[...Re(e)].filter(l=>V(l,e)),i=a.map(l=>({n:l,box:N(l)})).filter(({box:l})=>se(l,o)&&X(l,o)>=oe).sort((l,f)=>T(l.box,s)-T(f.box,s)).map(({n:l})=>l),u=r.map(l=>({n:l,box:N(l)})).filter(({box:l})=>se(l,o)&&X(l,o)>=oe).sort((l,f)=>T(l.box,s)-T(f.box,s)).map(({n:l})=>l);return{elements:i,zones:u}};function ue(e){if(e.collision?.run){const s=e.collision.run(e);j(e,e.hovered,s);return}const t=W(e);j(e,e.hovered,t)}function At(e,t){const s=e.collision?.throttle?.value??0;if(s<=0){ue(e);return}const n=Date.now();n-t.value>=s&&(t.value=n,ue(e))}async function Pe(e){const t=e.hovered.droppable.keys().next().value;if(!t||F(t,e))return"accept";const s=e.entities.droppableMap.get(t),n=A(e,t),o=s?.events?.onDrop?.(n);if(o!=null&&typeof o.then=="function"){e.state.value="pending";let r;try{r=await o}catch{const i=e.entities.initiatingDraggable;return z(e,i,"onSelfDragCancel"),x(e,"onDragCancel"),Ie(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return o===!1?"decline":"accept"}function Be(e){const t=e.entities.initiatingDraggable;z(e,t,"onSelfDragEnd"),x(e,"onDragEnd"),lt(e,e.hovered)}function Et(e){const t=e.entities.selectingArea;if(!t)return;const s=e.entities.selectableAreaMap.get(t),n=[...e.entities.selectedSet];s?.events?.onSelected?.(n)}const Ct=e=>{const t={current:null},s={value:0},n=async()=>{ie(),t.current?.cancel(),t.current=null;const i=e.state.value;if(i==="dragging"){const u=await Pe(e);if(u==="accept"&&Be(e),u==="accept"||u==="cancel"){q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o);return}return}else i==="selecting"&&Et(e);q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o)},o=i=>{if(e.pointer.value){if(e.pointer.value.current={x:i.clientX,y:i.clientY},Xe(e)){ne(e,i,"onSelfDragStart"),x(e,"onDragStart");return}if(e.state.value==="dragging"){At(e,s);const u=e.entities.initiatingDraggable;z(e,u,"onSelfDragMove"),x(e,"onDragMove")}e.state.value==="selecting"&>(e)}};return{pointerDown:i=>{document.addEventListener("pointerup",n),document.addEventListener("pointermove",o);const u=i.target,l=u.closest(O.SELECT_AREA),f=u.closest(O.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(l)){ae(),e.pointer.value=le(i),e.state.value="selecting",e.entities.selectingArea=l;return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(f)){const c=e.entities.draggableMap.get(f);if(!Ee(u,f,c?.dragHandle))return;ae(),e.entities.initiatingDraggable=f;const d=xe(i,f);e.pointer.value=le(i,d.x,d.y),c?.activation?.distance||c?.activation?.delay?(e.state.value="activating",c?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ve(e,()=>{$(e),ne(e,i,"onSelfDragStart"),x(e,"onDragStart")}))):($(e),ne(e,i,"onSelfDragStart"),x(e,"onDragStart"))}},pointerUp:n,pointerMove:o,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},Lt={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}},kt=e=>t=>{const{keys:s}=e.keyboard;if(s.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(s.forCancel.includes(t.code)){t.preventDefault(),ie(),z(e,e.entities.initiatingDraggable,"onSelfDragCancel"),x(e,"onDragCancel"),Ie(e,e.hovered),q(e);return}if(s.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Pe(e)&&Be(e),ie(),q(e)))();return}const o=Lt[t.code];if(o&&s.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const a=s.forMoveFaster.some(l=>s.pressedKeys.value.has(l)),r=e.keyboard.step*(a?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+o.dx*r,y:e.pointer.value.current.y+o.dy*r};const u=(e.collision?.run??W)(e);j(e,e.hovered,u),z(e,e.entities.initiatingDraggable,"onSelfDragMove"),x(e,"onDragMove");return}return}if(s.forDrag.includes(t.code)){const o=document.activeElement;if(!o)return;const a=o.closest(O.DRAGGABLE);if(!a||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(a))return;const r=e.entities.draggableMap.get(a);if(!Ee(o,a,r?.dragHandle,!0))return;t.preventDefault(),ae();const i=a.getBoundingClientRect(),u=i.left+i.width/2,l=i.top+i.height/2,f={clientX:u,clientY:l};e.entities.initiatingDraggable=a;const c=xe(f,a);e.pointer.value=le(f,c.x,c.y),$(e);const m=(e.collision?.run??W)(e);j(e,e.hovered,m),z(e,a,"onSelfDragStart"),x(e,"onDragStart")}},It=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},Rt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},re={keyDown:kt,keyUp:It,clear:Rt},Pt=e=>()=>{e.state.value&&(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"&&ue(e))},C=50,Bt=144,Se=1e3/Bt;function Tt(e){return e==null?{top:C,right:C,bottom:C,left:C}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??C,right:e.right??C,bottom:e.bottom??C,left:e.left??C}}const zt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,s){e.scrollTop=t,e.scrollLeft=s}};function Te(e,t,s,n=zt,o){const{speed:a=10,disabled:r=!1}=t,i=Tt(t.threshold);let u=null,l=null,f=null,c=0,d=0;const m=y=>{o&&(o.value=y)},h=y=>{const v=e.value,E=s();if(!v||!E||r){m(!1);return}l||(l=y);const U=y-l;if(U<Se){u=requestAnimationFrame(h);return}const p=a*(U/Se);l=y;const{scrollTop:w,scrollLeft:H}=n.getScrollState(v);(!f||c!==w||d!==H)&&(f=n.getRect?n.getRect(v):v.getBoundingClientRect(),c=w,d=H);let P=!1,Q=w,ee=H;i.top>0&&E.y-f.top<i.top?(Q=w-p,P=!0):i.bottom>0&&f.bottom-E.y<i.bottom&&(Q=w+p,P=!0),i.left>0&&E.x-f.left<i.left?(ee=H-p,P=!0):i.right>0&&f.right-E.x<i.right&&(ee=H+p,P=!0),P&&n.setScroll(v,Q,ee),m(P),u=requestAnimationFrame(h)};return{run:()=>{l=null,u=requestAnimationFrame(h)},stop:()=>{u&&(cancelAnimationFrame(u),u=null),f=null,c=0,d=0,l=null,m(!1)}}}const Ot={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,s){window.scrollTo(s,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Ft={get value(){return typeof document<"u"?document.documentElement:null}};function _t(e,t){const s=g.shallowRef(!1),o=Te(Ft,t??{},()=>{if(e.state.value!=="dragging")return null;const i=e.overlay.position.value,u=e.overlay.size.value;return i?u?.width&&u?.height?{x:i.x+u.width/2,y:i.y+u.height/2}:i:null},Ot,s),a=g.watch(()=>e.state.value,i=>{i==="dragging"?o.run():o.stop()}),r=()=>{a(),o.stop()};return g.onScopeDispose(r),{isScrolling:s,stop:r}}const Gt=e=>{const t=Ct(e),s=re.keyDown(e),n=re.keyUp(e),o=re.clear(e),a=Pt(e);let r=null;g.watch(e.autoScrollViewport,i=>{r?.(),r=null,(i===!0||i&&typeof i=="object")&&(r=_t(e,i===!0?{}:i).stop)},{immediate:!0}),g.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",s),document.addEventListener("keyup",n),document.addEventListener("blur",o),document.addEventListener("scroll",a,!0)}),g.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",s),document.removeEventListener("keyup",n),document.removeEventListener("blur",o),document.removeEventListener("scroll",a,!0),r?.(),t.cleanup()})},J=()=>{const e=g.inject(ge);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=J();return{overlay:e.overlay,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}},Ht=g.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:s,overlay:n}=he();return(o,a)=>g.unref(s)==="dragging"?(g.openBlock(),g.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:g.normalizeStyle({"--position-x":g.unref(n).position.value.x+"px","--position-y":g.unref(n).position.value.y+"px"})},[(g.openBlock(!0),g.createElementBlock(g.Fragment,null,g.renderList(g.unref(t).draggingMap,([r,i])=>(g.openBlock(),g.createElementBlock(g.Fragment,null,[g.unref(t).draggableMap.get(r)?.render?(g.openBlock(),g.createBlock(g.resolveDynamicComponent(g.unref(t).draggableMap.get(r)?.render),{key:0})):(g.openBlock(),g.createBlock(g.resolveDynamicComponent(r.tagName),{key:1,innerHTML:i.initialOuterHTML,style:g.normalizeStyle({width:i.initialRect.width+"px",height:i.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):g.createCommentVNode("",!0)}}),Kt=g.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,s=g.useTemplateRef("overlayRef"),n=Je(s,t);Gt(n);const o=g.computed(()=>n.overlay.render.value??Ht);return g.provide(ge,n),(a,r)=>(g.openBlock(),g.createElementBlock(g.Fragment,null,[g.renderSlot(a.$slots,"default"),(g.openBlock(),g.createBlock(g.Teleport,{to:g.unref(n).overlay.to.value||"body"},[g.createElementVNode("div",g.mergeProps({ref_key:"overlayRef",ref:s,class:"dnd-kit-overlay-container"},t),[g.renderSlot(a.$slots,"overlay",{overlay:o.value},()=>[(g.openBlock(),g.createBlock(g.resolveDynamicComponent(o.value)))])],16)],8,["to"]))],64))}});function Zt(e,t,s){const n=J();let o,a,r;typeof t=="function"?(o={},a=t):(o=t??{},a=s);const i=g.computed({get(){const c=D(e);return c?n.entities.selectedSet.has(c):!1},set(c){const d=D(e);d&&n.entities.selectedSet[c?"add":"delete"](d)}}),u=g.computed(()=>{const c=D(e);return c?n.entities.draggingMap.has(c):!1}),l=g.computed(()=>{const c=D(e);return c?n.entities.allowedDraggableSet.has(c):!1}),f=g.computed(()=>{const c=D(e);if(c)return n.entities.draggableMap.get(c)?.hoveredPlacement});return g.onMounted(()=>{r=D(e),r&&(r.addEventListener("dragstart",M),r.addEventListener("drag",M),r.addEventListener("dragend",M),r.setAttribute(R.DRAGGABLE,""),n.lib.draggableObserver.observe(r),n.entities.draggableMap.set(r,{render:o.render,disabled:o.disabled??!1,groups:o.groups??[],modifier:o.modifier,events:o.events,payload:a,data:o.data,dragHandle:o.dragHandle,activation:o.activation,placementMargins:o.placementMargins,hoveredPlacement:void 0}))}),g.onBeforeUnmount(()=>{r&&(n.lib.draggableObserver.unobserve(r),n.entities.visibleDraggableSet.delete(r),n.entities.draggableMap.delete(r),n.entities.modifiersDraggableSet.delete(r))}),{selected:i,isDragging:u,isAllowed:l,isDragOver:f}}const Nt=(e,t)=>{const s=J(),n=g.computed(()=>e.value===s.entities.selectingArea);let o=null;g.onMounted(()=>{o=D(e),o&&(o.setAttribute(R.SELECT_AREA,""),s.lib.selectableAreaObserver.observe(o),s.entities.selectableAreaMap.set(o,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),g.onBeforeUnmount(()=>{o&&(s.lib.selectableAreaObserver.unobserve(o),s.entities.visibleSelectableAreaSet.delete(o),s.entities.modifiersSelectableAreaSet.delete(o),s.entities.selectableAreaMap.delete(o))});const a=g.computed(()=>{s.scrollPosition.x,s.scrollPosition.y;const r=s.pointer.value;return!r||s.state.value!=="selecting"||!o||!n.value?{}:ut(r.start,r.current,o)});return{isSelecting:n,style:a}};function Ut(e,t){const s=g.inject(ge);if(!s)throw Error("DnD provider not found");let n=null;return g.onMounted(()=>{n=D(e),n&&(n.setAttribute(R.CONSTRAINT_AREA,""),s.entities.constraintsAreaMap.set(n,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),g.onBeforeUnmount(()=>{n&&s.entities.constraintsAreaMap.delete(n)}),{}}function Yt(e,t,s){const n=J();let o=null,a,r;typeof t=="function"?(a={},r=t):(a=t??{},r=s);const i=g.computed(()=>{const l=D(e);return l?n.entities.allowedDroppableSet.has(l):!1}),u=g.computed(()=>{const l=D(e);if(l)return n.entities.droppableMap.get(l)?.hoveredPlacement});return g.onMounted(()=>{o=D(e),o&&(o.setAttribute(R.DROPPABLE,""),n.lib.droppableObserver.observe(o),n.entities.droppableMap.set(o,{disabled:a.disabled??!1,groups:a.groups??[],events:a.events,payload:r,data:a.data,hoveredPlacement:void 0}))}),g.onBeforeUnmount(()=>{o&&(n.lib.droppableObserver.unobserve(o),n.entities.visibleDroppableSet.delete(o),n.entities.droppableMap.delete(o))}),{isAllowed:i,isDragOver:u}}const Xt=(e,t)=>{const s=he(),n=g.shallowRef(!1),a=Te(e,t??{},()=>{if(s.state.value!=="dragging")return null;const r=s.overlay.position.value,i=s.overlay.size.value;return r?i?.width&&i?.height?{x:r.x+i.width/2,y:r.y+i.height/2}:r:null},void 0,n);return g.watch(()=>s.state.value,r=>{r==="dragging"?a.run():a.stop()}),{isScrolling:n}};function De(e,t){return t<=0?e:Math.round(e/t)*t}function Vt(e,t){const s=t&&"grid"in t&&t.grid!=null,n=t?s?t.grid:t.gridX:1,o=t?s?t.grid:t.gridY:1;return g.computed(()=>{const{x:a,y:r}=e.value;return{x:De(a,n),y:De(r,o)}})}const Me=()=>!0,ve=()=>0,$t="separate",qt=()=>{const e={filterElements:Me,filterZones:Me,sortElements:ve,sortZones:ve,mergeStrategy:$t,pickClosestBetweenFirst:!1},t=(n,o,a,r,i,u,l)=>{const f=r instanceof Set?r:new Set(r),c={containerBox:o,pointer:a},d=e.minOverlapPercent,m=[];for(const h of f){if(!i(h,n))continue;const b=N(h);if(!l(b,c))continue;const S=X(b,o);if(d!==void 0&&S<d)continue;let y=0;for(const v of f)v!==h&&G(v,h)&&y++;m.push({node:h,box:b,meta:{isPointerInElement:St(b,a.x,a.y),overlapPercent:S,depth:y,centerDistance:pt(Z(o),Z(b))}})}return m.sort((h,b)=>u(h,b,c)),m},s={container(n){return e.container=n,s},containerBox(n){return e.containerBox=n,s},elements(n){return e.elements=n,s},zones(n){return e.zones=n,s},filterElements(n){return e.filterElements=n,s},filterZones(n){return e.filterZones=n,s},collision(n){return e.collision=n,s},sortElements(n){return e.sortElements=n,s},sortZones(n){return e.sortZones=n,s},mergeStrategy(n){return e.mergeStrategy=n,s},pickClosestBetweenFirst(n){return e.pickClosestBetweenFirst=n,s},minOverlapPercent(n){return e.minOverlapPercent=n,s},build(){const n=e;if(!n.container||!n.elements||!n.zones||!n.collision)throw new Error("sensor: container, elements, zones, collision are required");return o=>{const a=n.container(o);if(!a)return{elements:[],zones:[]};const r=n.containerBox?n.containerBox(o):N(a),i=o.pointer.value?.current??{x:0,y:0},u=t(o,r,i,n.elements(o),n.filterElements,n.sortElements,n.collision),l=t(o,r,i,n.zones(o),n.filterZones,n.sortZones,n.collision);if(n.mergeStrategy==="unified-closest"){const f=[...u.map(d=>({node:d.node,box:d.box,isZone:!1,distance:0})),...l.map(d=>({node:d.node,box:d.box,isZone:!0,distance:0}))];if(f.length===0)return{elements:[],zones:[]};for(const d of f){const m=Z(d.box);d.distance=Math.hypot(i.x-m.x,i.y-m.y)}const c=f.reduce((d,m)=>m.distance<d.distance?m:d);return c.isZone?{elements:[],zones:[c.node]}:{elements:[c.node],zones:[]}}if(n.pickClosestBetweenFirst&&u[0]&&l[0]){const f=Z(l[0].box),c=Z(u[0].box),d=Math.hypot(i.x-f.x,i.y-f.y);return Math.hypot(i.x-c.x,i.y-c.y)<d?{elements:u.map(h=>h.node),zones:[]}:{elements:[],zones:l.map(h=>h.node)}}return{elements:u.map(f=>f.node),zones:l.map(f=>f.node)}}}};return s},jt=()=>qt();exports.DnDProvider=Kt;exports.createSensor=jt;exports.defaultCollisionDetection=W;exports.makeAutoScroll=Xt;exports.makeConstraintArea=Ut;exports.makeDraggable=Zt;exports.makeDroppable=Yt;exports.makeSelectionArea=Nt;exports.makeSnappedOverlayPosition=Vt;exports.useDnDProvider=he;
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-default-overlay{transform:translate3d(var(--position-x),var(--position-y),0)}pre{position:fixed;bottom:0;left:0;margin:0;padding:8px;font-size:12px;background-color:#fffc;border-top-right-radius:4px;z-index:9999}.dnd-kit-overlay-container{position:fixed;top:0;left:0;pointer-events:none;cursor:grabbing;z-index:9999}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("vue"),R={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},O={SELECT_AREA:`[${R.SELECT_AREA}]`,DRAGGABLE:`[${R.DRAGGABLE}]`,CONSTRAINT_AREA:`[${R.CONSTRAINT_AREA}]`},ge="VueDnDKitProvider",be=(e,t,s,n)=>{const o=new Set;return t.forEach(r=>{const a=e.get(r),i=n?n(r):a?.disabled;if(!a||i)return;const u=a.modifier?.keys,l=a.modifier?.method;if(!u||!l||u.length===0){o.add(r);return}u[l](c=>s.value.has(c))&&o.add(r)}),o};let ve="",Oe="",Fe="";const D=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),re=()=>{const e=document.body;ve=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",w),window.addEventListener("selectstart",w),window.addEventListener("touchstart",w),window.addEventListener("touchmove",w)},ie=()=>{const e=document.body;e.style.userSelect=ve,e.style.touchAction=Oe,e.style.overscrollBehavior=Fe,window.removeEventListener("contextmenu",w),window.removeEventListener("selectstart",w),window.removeEventListener("touchstart",w),window.removeEventListener("touchmove",w)},w=e=>e.preventDefault(),fe=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(n)?.disabled&&G(n,e))return!0;return!1},F=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const n of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(n)?.disabled&&G(n,e))return!0;return!1},de=(e,t)=>{if(!e.length||!t.length)return!0;const s=new Set(t);return e.some(n=>s.has(n))};function Ge(e,t,s,n){const o=new Set;for(const i of t.keys()){const u=s.get(i);for(const l of u?.groups??[])o.add(l)}const r=[...o],a=new Set;for(const i of e){const l=n.get(i)?.groups??[];de(r,l)&&a.add(i)}return a}function He(e,t,s){const n=new Set;for(const a of t.keys()){const i=s.get(a);for(const u of i?.groups??[])n.add(u)}const o=[...n],r=new Set;for(const a of e){const u=s.get(a)?.groups??[];de(o,u)&&r.add(a)}return r}const te=e=>{const t=new IntersectionObserver(s=>{s.forEach(n=>{const o=n.target;e[n.isIntersecting?"add":"delete"](o)})});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},Ke=e=>{const t=new ResizeObserver(s=>{const n=s[0];if(!n)return;const{width:o,height:r}=n.contentRect;e.value={width:o,height:r}});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},Ze=e=>{const t=g.ref(null),s=Ke(t),n=g.watch(e,r=>{s.disconnect(),r&&s.observe(r)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{n(),s.disconnect()}}}};function le(e,t=0,s=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:s}}}function xe(e,t){const s=t.getBoundingClientRect(),n=s.width>0?(e.clientX-s.left)/s.width:.5,o=s.height>0?(e.clientY-s.top)/s.height:.5;return{x:n,y:o}}function Ee(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ne(e,t,s){e.forEach(n=>{const o=t.get(n);s.set(n,Ee(n,o))}),e.clear()}function Ye(e,t,s){s.clear();const n=t.get(e);s.set(e,Ee(e,n))}function $(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,s,n){t.has(e)?Ne(t,s,n):(t.clear(),Ye(e,s,n))}function Ae(e,t,s,n){if(n||!s)return!0;const o=e.closest(s);return o?t.contains(o):!1}function Xe(e,t){if(!e||!t)return 1;const s=Math.abs(e.current.x-e.start.x),n=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const l=Math.sqrt(s*s+n*n);return Math.min(l/t,1)}const{x:o=0,y:r=0,condition:a="any"}=t;if(o===0&&r===0)return 1;const i=o>0?Math.min(s/o,1):1,u=r>0?Math.min(n/r,1):1;return a==="both"?Math.min(i,u):Math.max(i,u)}function Le(e,t,s){if(!s)return!0;const n=s.distance!=null,o=s.delay!=null;return!n&&!o?!0:n&&!o?e>=1:!n&&o?t>=1:(s.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Ve(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Le(e.distanceProgress.value,e.delay.progress,t?.activation)?($(e),!0):!1}function $e(e,t){let s=null;const n=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){s=null;return}const o=e.entities.draggableMap.get(e.entities.initiatingDraggable),r=o?.activation?.delay;if(!r){s=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(r*1e3),1),Le(e.distanceProgress.value,e.delay.progress,o?.activation)?(t(),s=null):s=requestAnimationFrame(n)};return s=requestAnimationFrame(n),{cancel:()=>{s!==null&&(cancelAnimationFrame(s),s=null)}}}function qe(e,t){const s=e.closest(O.CONSTRAINT_AREA);return!s||!t.has(s)?null:{element:s,entity:t.get(s)}}function je(e,t,s,n){return s==="x"?{x:e,y:n.top}:s==="y"?{x:n.left,y:t}:{x:e,y:t}}function We(e,t,s,n,o){let r=e,a=t;return s!=="y"&&(r=Math.max(n.left,Math.min(n.right-o.width,e))),s!=="x"&&(a=Math.max(n.top,Math.min(n.bottom-o.height,t))),{x:r,y:a}}function Je(e,t,s,n,o){if(!e||!t)return{x:0,y:0};const r=t.getBoundingClientRect(),a=r.width||o?.width||0,i=r.height||o?.height||0;let u=e.current.x-a*e.offset.x,l=e.current.y-i*e.offset.y;if(!s)return{x:u,y:l};const f=qe(s,n);if(!f)return{x:u,y:l};const{element:c,entity:d}=f,m=c.getBoundingClientRect(),h=s.getBoundingClientRect(),b=je(u,l,d.axis||"both",h);return d.restrictToArea?We(b.x,b.y,d.axis||"both",m,r):b}const K={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function Qe(e,t){const s=g.shallowRef(),n=g.ref(),r={keys:{pressedKeys:g.ref(new Set),forDrag:[...K.forDrag],forCancel:[...K.forCancel],forDrop:[...K.forDrop],forMove:[...K.forMove],forMoveFaster:[...K.forMoveFaster]},step:8,moveFaster:4},a=g.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:g.computed(()=>s.value?Ge(a.visibleDroppableSet,a.draggingMap,a.draggableMap,a.droppableMap):new Set),allowedDraggableSet:g.computed(()=>s.value?He(a.visibleDraggableSet,a.draggingMap,a.draggableMap):new Set),modifiersSelectableAreaSet:g.computed(()=>be(a.selectableAreaMap,a.visibleSelectableAreaSet,r.keys.pressedKeys)),modifiersDraggableSet:g.computed(()=>be(a.draggableMap,a.visibleDraggableSet,r.keys.pressedKeys,v=>fe(v,{entities:a}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),i=g.reactive({draggable:new Map,droppable:new Map}),u={throttle:g.shallowRef(0)},l=g.reactive({x:window.scrollX,y:window.scrollY}),f=g.reactive({progress:0,startTime:0}),c=g.computed(()=>{if(!n.value||!a.initiatingDraggable)return 0;const v=a.draggableMap.get(a.initiatingDraggable)?.activation?.distance;return v?Xe(n.value,v):1}),d=te(a.visibleDraggableSet),m=te(a.visibleDroppableSet),h=te(a.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:S}=Ze(e),y=g.ref(),M=g.computed(()=>{const p=a.initiatingDraggable;return Je(n.value,e.value,p||null,a.constraintsAreaMap,b.value)}),A=g.computed({get:()=>t?.overlayTo,set:p=>A.value=p}),Y=g.computed(()=>t?.autoScrollViewport);return{state:s,pointer:n,entities:a,keyboard:r,scrollPosition:l,delay:f,distanceProgress:c,hovered:i,collision:u,overlay:{size:b,position:M,render:y,ref:e,to:A},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:S,rectCache:new Map},autoScrollViewport:Y}}const q=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const n=e.entities.draggableMap.get(t);n&&(n.hoveredPlacement=void 0)}const s=e.hovered.droppable.keys().next().value;if(s){const n=e.entities.droppableMap.get(s);n&&(n.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 C(e,t,s){const n=Math.max(0,Math.min(t,e.length));return[...e.slice(0,n),...s,...e.slice(n)]}function me(e,t,s=1){const n=Math.max(0,Math.min(t,e.length-1)),o=Math.max(0,Math.min(s,e.length-n));return[...e.slice(0,n),...e.slice(n+o)]}function _(e,t){const s=[...new Set(t)].filter(o=>o>=0&&o<e.length).sort((o,r)=>r-o);let n=e;for(const o of s)n=me(n,o,1);return n}function Ce(e,t,s){if(t===s||t<0||s<0||t>=e.length||s>=e.length)return e;const n=[...e];return[n[t],n[s]]=[n[s],n[t]],n}const k={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 k.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return k.getInsertSide(e,t)==="after"&&!e?.center}};function ke(e,t){const{draggedItems:s,dropZone:n,hoveredDraggable:o}=e;if(!s.length)return null;const r=o?.placement.center===!0&&n!=null&&n.items!==o.items,a=r?n.items:o?.items??n?.items;if(!a)return null;const i=s[0].items,u=s.map(d=>d.index),l=a.length;let f,c;if(o&&!r){const d=o.items===i&&u.includes(o.index);if(d&&s.length===1){const m=k.isAtZoneStart(n?.placement,t);f=m?0:l,c=m?"prepend":"append"}else{if(d)return null;{const m=k.getInsertSide(o.placement,t),h=o.index;m==="before"?(f=Math.max(0,h),c="insert"):m==="after"?(f=Math.min(l,h+1),c="insert"):(f=l,c="append")}}}else{if(!n)return null;const d=k.isAtZoneStart(n.placement,t);f=d?0:l,c=d?"prepend":"append"}return{targetIndex:f,mode:c,targetArr:a}}function et(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=ke(e,t);if(!n)return null;const{targetArr:o,mode:r}=n;let{targetIndex:a}=n;const i=s.map(c=>c.index),u=s.map(c=>c.item),l=s[0].items;if(l===o){const c=i.filter(m=>m<a).length;a=Math.max(0,a-c);const d=C(_(l,i),a,u);return{sourceItems:d,targetItems:d,draggedItems:u,sourceIndexes:i,targetIndex:a,mode:r,sameList:!0}}else{const c=_(l,i),d=C(o,a,u);return{sourceItems:c,targetItems:d,draggedItems:u,sourceIndexes:i,targetIndex:a,mode:r,sameList:!1}}}function tt(e){const{draggedItems:t,hoveredDraggable:s}=e;if(!t.length||!s)return null;const n=t.map(f=>f.index),o=s.index,r=t.map(f=>f.item),a=s.item,i=t[0].items,u=s.items,l=i===u;if(l&&n.includes(o))return null;if(t.length===1){const f=n[0];if(l){const c=Ce(i,f,o);return{sourceItems:c,targetItems:c,sourceIndexes:n,targetIndex:o,sameList:!0}}else{const c=[...i],d=[...u];return c[f]=u[o],d[o]=i[f],{sourceItems:c,targetItems:d,sourceIndexes:n,targetIndex:o,sameList:!1}}}else{const f=Math.min(...n);if(l){const c=n.filter(y=>y<o).length,d=Math.max(0,o-c),m=n.filter(y=>y<f).length,h=Math.max(0,f-m);let b=_(i,n);b=C(b,d,r);const S=h>=d?h+r.length:h;return b=C(b,S,[a]),{sourceItems:b,targetItems:b,sourceIndexes:n,targetIndex:d,sameList:!0}}else{const c=n.filter(b=>b<f).length,d=Math.max(0,f-c);let m=_(i,n);m=C(m,d,[a]);let h=me(u,o);return h=C(h,o,r),{sourceItems:m,targetItems:h,sourceIndexes:n,targetIndex:o,sameList:!1}}}}function nt(e,t="vertical"){const{draggedItems:s}=e;if(!s.length)return null;const n=ke(e,t);if(!n)return null;const{targetArr:o,targetIndex:r,mode:a}=n,i=s.map(l=>l.item);return{targetItems:C(o,r,i),copiedItems:i,targetIndex:r,mode:a}}function st(e){const{draggedItems:t}=e;if(!t.length)return null;const s=t.map(a=>a.index),n=t.map(a=>a.item),o=t[0].items;return{sourceItems:_(o,s),removedItems:n,sourceIndexes:s}}function ot(e){return{insertAt:C,removeAt:me,removeIndexes:_,swapAt:Ce,getInsertSide:(t,s)=>k.getInsertSide(t,s),isAtZoneStart:(t,s)=>k.isAtZoneStart(t,s),isAtZoneEnd:(t,s)=>k.isAtZoneEnd(t,s),suggestSort:t=>et(e,t),suggestSwap:()=>tt(e),suggestCopy:t=>nt(e,t),suggestRemove:()=>st(e)}}const I=e=>e.keys().next().value,at=e=>e.target.closest(O.DRAGGABLE);function rt(e){const t=e.entities.initiatingDraggable;if(!t)return[];const s=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t),n=s?.payload;if(!n)return s?.data?[{index:-1,item:void 0,items:[],data:s.data()}]:[];const o=n();if(!Array.isArray(o)||o.length<2)return[];const[r,a]=o,i=Number(r),u=a,l=new Map;return l.set(i,{index:i,item:u[i],items:u,data:s?.data?.()}),e.entities.draggingMap.forEach((f,c)=>{const d=e.entities.draggableMap.get(c),m=d?.payload;if(!m)return;const h=m();if(!Array.isArray(h)||h.length<2)return;const[b,S]=h;if(S!==u)return;const y=Number(b);l.has(y)||l.set(y,{index:y,item:S[y],items:u,data:d?.data?.()})}),[...l.values()].sort((f,c)=>f.index-c.index)}const E=(e,t)=>{const s=rt(e);let n,o;if(t){const r=e.entities.droppableMap.get(t);if(r){const u=r.payload;n={items:u?u():[],placement:e.hovered.droppable.get(t),data:r.data?.()}}const a=I(e.hovered.draggable);if(a&&(a===t||t.contains(a))&&a){const u=e.entities.draggableMap.get(a),l=u?.payload,f=e.hovered.draggable.get(a),c={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(l){const d=l();if(Array.isArray(d)&&d.length>=2){const[m,h]=d,b=Number(m);o={element:a,placement:f??c,index:b,item:h[b],items:h,data:u?.data?.()}}}else u?.data&&(o={element:a,placement:f??c,index:-1,item:void 0,items:[],data:u.data()})}}return{draggedItems:s,dropZone:n,hoveredDraggable:o,provider:e,helpers:ot({draggedItems:s,dropZone:n,hoveredDraggable:o})}},z=(e,t,s)=>{if(!t)return;const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!n||n.disabled||n.events?.[s]?.(E(e))},x=(e,t)=>{const s=E(e);e.entities.draggingMap.forEach(n=>{n.disabled||n.events?.[t]?.(s)})},it=(e,t,s)=>{if(t!==s){if(t&&!F(t,e)){const n=E(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(n)}if(s&&!F(s,e)){const n=E(e,s);e.entities.droppableMap.get(s)?.events?.onEnter?.(n)}}},lt=(e,t,s)=>{if(t!==s){const n=E(e);if(t){const o=e.entities.draggableMap.get(t);o&&!o.disabled&&o.events?.onLeave?.(n)}if(s){const o=e.entities.draggableMap.get(s);o&&!o.disabled&&o.events?.onHover?.(n)}}},ne=(e,t,s)=>{const n=at(t);!n||!e.entities.draggingMap.has(n)||e.entities.draggingMap.get(n)?.events?.[s]?.(E(e))},ct=(e,t)=>{const s=I(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(E(e,s))},Ie=(e,t)=>{const s=I(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(E(e,s))};function ut(e){return e.parentElement?.closest(O.SELECT_AREA)??null}const gt=(e,t,s)=>{if(!s)return{};const n=s.getBoundingClientRect(),o=Math.max(n.left,Math.min(e.x,t.x)),r=Math.max(n.top,Math.min(e.y,t.y)),a=Math.min(n.right,Math.max(e.x,t.x)),i=Math.min(n.bottom,Math.max(e.y,t.y)),u=Math.max(0,a-o),l=Math.max(0,i-r),f=o-n.left+s.scrollLeft,c=r-n.top+s.scrollTop;return{position:"absolute",left:`${f}px`,top:`${c}px`,width:`${u}px`,height:`${l}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},Re=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,s=ft(e.pointer.value.start,e.pointer.value.current),n=e.entities.selectableAreaMap.get(t)?.groups??[],o=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(r=>{if(r===t||!t.contains(r))return;const a=ut(r);if(a&&a!==t){e.entities.selectedSet.delete(r);return}if(fe(r,e)){e.entities.selectedSet.delete(r);return}const u=e.entities.draggableMap.get(r)?.groups??[];if(!de(n,u)){e.entities.selectedSet.delete(r);return}let l=o.get(r);l||(l=r.getBoundingClientRect(),o.set(r,l));const f=e.entities.selectionBase.has(r);_e(s,l)?f?e.entities.selectedSet.delete(r):e.entities.selectedSet.add(r):f?e.entities.selectedSet.add(r):e.entities.selectedSet.delete(r)})},ft=(e,t)=>{const s=Math.min(e.x,t.x),n=Math.min(e.y,t.y),o=Math.max(e.x,t.x),r=Math.max(e.y,t.y),a=o-s,i=r-n;return new DOMRect(s,n,a,i)},dt=(e,t,s=5)=>{const n=s/2;return{left:e-n,top:t-n,width:s,height:s}},mt=e=>{const t=e.pointer.value?.current,s=t?.x??0,n=t?.y??0;return dt(s,n,5)},P=(e,t,s)=>{const n=e.left+e.width/2,o=e.top+e.height/2;if(s){const i=s.top??0,u=s.right??0,l=s.bottom??0,f=s.left??0,c=t.left+f,d=t.right-u,m=t.top+i,h=t.bottom-l;if(c<d&&m<h&&n>=c&&n<=d&&o>=m&&o<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const r=t.left+t.width/2,a=t.top+t.height/2;return{top:o<=a,bottom:o>a,left:n<=r,right:n>r,center:!1}},ht=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),ye=(e,t)=>{const s=ht(t);return Math.hypot(e.x-s.x,e.y-s.y)};function bt(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){bt(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const yt=(e,t)=>e.find(s=>s!==t&&G(t,s)),j=(e,t,s)=>{const n=I(t.droppable),o=I(t.draggable);o&&t.draggable.delete(o),n&&t.droppable.delete(n);const r=mt(e),a=s.zones[0],i=s.elements[0];if(a&&i&&a===i&&e.entities.droppableMap.has(a)&&a){const c=a.getBoundingClientRect(),d=e.entities.draggableMap.get(a)?.placementMargins,m=P(r,c,d);if(m.center){t.droppable.set(a,m);const h=yt(s.elements,a);if(h){const b=h.getBoundingClientRect();t.draggable.set(h,P(r,b,void 0))}}else t.draggable.set(i,m)}else{if(a){const c=a.getBoundingClientRect();t.droppable.set(a,P(r,c))}if(i)if(a)if(G(a,i)){const c=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,P(r,c,d))}else{const c=e.pointer.value?.current??{x:0,y:0},d=a.getBoundingClientRect(),m=i.getBoundingClientRect(),h=ye(c,d);if(ye(c,m)<h){t.droppable.clear();const S=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,P(r,m,S))}}else{const c=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins;t.draggable.set(i,P(r,c,d))}}const l=I(t.droppable),f=I(t.draggable);if(o&&o!==f){const c=e.entities.draggableMap.get(o);c&&U(c,void 0)}if(n&&n!==l){const c=e.entities.droppableMap.get(n);c&&U(c,void 0)}if(f){const c=e.entities.draggableMap.get(f);c&&U(c,t.draggable.get(f))}if(l){const c=e.entities.droppableMap.get(l);c&&U(c,t.droppable.get(l))}it(e,n,l),lt(e,o,f)},se=(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,N=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}},Z=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),pt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),X=(e,t)=>{const s=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),n=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),o=s*n,r=e.width*e.height,a=t.width*t.height;return r===0||a===0?0:(o/r*100+o/a*100)/2},St=(e,t,s)=>t>=e.x&&t<=e.x+e.width&&s>=e.y&&s<=e.y+e.height,Dt=e=>e.overlay.ref?.value??null,pe=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:s,y:n}=t,o=e.overlay.size?.value;let r,a;if(o)r=o.width,a=o.height;else{const i=e.overlay.ref?.value?.getBoundingClientRect();r=i?.width??0,a=i?.height??0}return{x:s,y:n,width:r,height:a,top:n,left:s,right:s+r,bottom:n+a}},ce=e=>e.entities.allowedDraggableSet,Be=e=>e.entities.allowedDroppableSet,wt=(e,t)=>!t.entities.draggingMap.has(e),Mt=(e,t)=>![...t.entities.draggingMap.keys()].some(s=>G(s,e)),vt=(e,t)=>t.entities.draggableMap.has(e)?!fe(e,t):t.entities.droppableMap.has(e)?!F(e,t):!0,V=(e,t)=>wt(e,t)&&Mt(e,t)&&vt(e,t),oe=10;function T(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function xt(e){const t=e.pointer.value?.current??{x:0,y:0},s=document.elementFromPoint(t.x,t.y);if(!s)return null;const n=ce(e),o=Be(e),r=[],a=[];let i=s;for(;i;)(n.has(i)||o.has(i))&&V(i,e)&&(n.has(i)&&r.push(i),o.has(i)&&a.push(i)),i=i.parentElement;return r.length===0&&a.length===0?null:{elements:r,zones:a}}const W=e=>{if(!Dt(e))return{elements:[],zones:[]};const s=e.pointer.value?.current??{x:0,y:0},n=xt(e);if(n){if(n.elements.length>0)return n;const l=n.zones[0];if(!l)return n;const f=pe(e);return{elements:[...ce(e)].filter(m=>l.contains(m)&&V(m,e)).map(m=>({el:m,box:N(m)})).filter(({box:m})=>se(m,f)&&X(m,f)>=oe).sort((m,h)=>T(m.box,s)-T(h.box,s)).map(({el:m})=>m),zones:n.zones}}const o=pe(e),r=[...ce(e)].filter(l=>V(l,e)),a=[...Be(e)].filter(l=>V(l,e)),i=r.map(l=>({n:l,box:N(l)})).filter(({box:l})=>se(l,o)&&X(l,o)>=oe).sort((l,f)=>T(l.box,s)-T(f.box,s)).map(({n:l})=>l),u=a.map(l=>({n:l,box:N(l)})).filter(({box:l})=>se(l,o)&&X(l,o)>=oe).sort((l,f)=>T(l.box,s)-T(f.box,s)).map(({n:l})=>l);return{elements:i,zones:u}};function ue(e){if(e.collision?.run){const s=e.collision.run(e);j(e,e.hovered,s);return}const t=W(e);j(e,e.hovered,t)}function Et(e,t){const s=e.collision?.throttle?.value??0;if(s<=0){ue(e);return}const n=Date.now();n-t.value>=s&&(t.value=n,ue(e))}async function Pe(e){const t=e.hovered.droppable.keys().next().value;if(!t||F(t,e))return"accept";const s=e.entities.droppableMap.get(t),n=E(e,t),o=s?.events?.onDrop?.(n);if(o!=null&&typeof o.then=="function"){e.state.value="pending";let a;try{a=await o}catch{const i=e.entities.initiatingDraggable;return z(e,i,"onSelfDragCancel"),x(e,"onDragCancel"),Ie(e,e.hovered),"cancel"}return a===!1?(e.state.value="dragging","decline"):"accept"}return o===!1?"decline":"accept"}function Te(e){const t=e.entities.initiatingDraggable;z(e,t,"onSelfDragEnd"),x(e,"onDragEnd"),ct(e,e.hovered)}function At(e){const t=e.entities.selectingArea;if(!t)return;const s=e.entities.selectableAreaMap.get(t),n=[...e.entities.selectedSet];s?.events?.onSelected?.(n)}const Lt=e=>{const t={current:null},s={value:0},n=async()=>{ie(),t.current?.cancel(),t.current=null;const i=e.state.value;if(i==="dragging"){const u=await Pe(e);if(u==="accept"&&Te(e),u==="accept"||u==="cancel"){q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o);return}return}else i==="selecting"&&At(e);q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o)},o=i=>{if(e.pointer.value){if(e.pointer.value.current={x:i.clientX,y:i.clientY},Ve(e)){ne(e,i,"onSelfDragStart"),x(e,"onDragStart");return}if(e.state.value==="dragging"){Et(e,s);const u=e.entities.initiatingDraggable;z(e,u,"onSelfDragMove"),x(e,"onDragMove")}e.state.value==="selecting"&&Re(e)}};return{pointerDown:i=>{document.addEventListener("pointerup",n),document.addEventListener("pointermove",o);const u=i.target,l=u.closest(O.SELECT_AREA),f=u.closest(O.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(l)){re(),e.pointer.value=le(i),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 c=e.entities.draggableMap.get(f);if(!Ae(u,f,c?.dragHandle))return;re(),e.entities.initiatingDraggable=f;const d=xe(i,f);e.pointer.value=le(i,d.x,d.y),c?.activation?.distance||c?.activation?.delay?(e.state.value="activating",c?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=$e(e,()=>{$(e),ne(e,i,"onSelfDragStart"),x(e,"onDragStart")}))):($(e),ne(e,i,"onSelfDragStart"),x(e,"onDragStart"))}},pointerUp:n,pointerMove:o,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},Ct={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}},kt=e=>t=>{const{keys:s}=e.keyboard;if(s.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(s.forCancel.includes(t.code)){t.preventDefault(),ie(),z(e,e.entities.initiatingDraggable,"onSelfDragCancel"),x(e,"onDragCancel"),Ie(e,e.hovered),q(e);return}if(s.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Pe(e)&&Te(e),ie(),q(e)))();return}const o=Ct[t.code];if(o&&s.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const r=s.forMoveFaster.some(l=>s.pressedKeys.value.has(l)),a=e.keyboard.step*(r?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+o.dx*a,y:e.pointer.value.current.y+o.dy*a};const u=(e.collision?.run??W)(e);j(e,e.hovered,u),z(e,e.entities.initiatingDraggable,"onSelfDragMove"),x(e,"onDragMove");return}return}if(s.forDrag.includes(t.code)){const o=document.activeElement;if(!o)return;const r=o.closest(O.DRAGGABLE);if(!r||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(r))return;const a=e.entities.draggableMap.get(r);if(!Ae(o,r,a?.dragHandle,!0))return;t.preventDefault(),re();const i=r.getBoundingClientRect(),u=i.left+i.width/2,l=i.top+i.height/2,f={clientX:u,clientY:l};e.entities.initiatingDraggable=r;const c=xe(f,r);e.pointer.value=le(f,c.x,c.y),$(e);const m=(e.collision?.run??W)(e);j(e,e.hovered,m),z(e,r,"onSelfDragStart"),x(e,"onDragStart")}},It=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},Rt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},ae={keyDown:kt,keyUp:It,clear:Rt},Bt=e=>()=>{if(!e.state.value)return;const t=e.scrollPosition.x,s=e.scrollPosition.y;if(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"){ue(e);return}if(e.state.value==="selecting"&&e.pointer.value){const n=window.scrollX-t,o=window.scrollY-s;e.pointer.value.start.x-=n,e.pointer.value.start.y-=o,Re(e)}},L=50,Pt=144,Se=1e3/Pt;function Tt(e){return e==null?{top:L,right:L,bottom:L,left:L}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??L,right:e.right??L,bottom:e.bottom??L,left:e.left??L}}const zt={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,s){e.scrollTop=t,e.scrollLeft=s}};function ze(e,t,s,n=zt,o){const{speed:r=10,disabled:a=!1}=t,i=Tt(t.threshold);let u=null,l=null,f=null,c=0,d=0;const m=y=>{o&&(o.value=y)},h=y=>{const M=e.value,A=s();if(!M||!A||a){m(!1);return}l||(l=y);const Y=y-l;if(Y<Se){u=requestAnimationFrame(h);return}const p=r*(Y/Se);l=y;const{scrollTop:v,scrollLeft:H}=n.getScrollState(M);(!f||c!==v||d!==H)&&(f=n.getRect?n.getRect(M):M.getBoundingClientRect(),c=v,d=H);let B=!1,Q=v,ee=H;i.top>0&&A.y-f.top<i.top?(Q=v-p,B=!0):i.bottom>0&&f.bottom-A.y<i.bottom&&(Q=v+p,B=!0),i.left>0&&A.x-f.left<i.left?(ee=H-p,B=!0):i.right>0&&f.right-A.x<i.right&&(ee=H+p,B=!0),B&&n.setScroll(M,Q,ee),m(B),u=requestAnimationFrame(h)};return{run:()=>{l=null,u=requestAnimationFrame(h)},stop:()=>{u&&(cancelAnimationFrame(u),u=null),f=null,c=0,d=0,l=null,m(!1)}}}const Ot={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,s){window.scrollTo(s,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Ft={get value(){return typeof document<"u"?document.documentElement:null}};function _t(e,t){const s=g.shallowRef(!1),o=ze(Ft,t??{},()=>{if(e.state.value!=="dragging")return null;const i=e.overlay.position.value,u=e.overlay.size.value;return i?u?.width&&u?.height?{x:i.x+u.width/2,y:i.y+u.height/2}:i:null},Ot,s),r=g.watch(()=>e.state.value,i=>{i==="dragging"?o.run():o.stop()}),a=()=>{r(),o.stop()};return g.onScopeDispose(a),{isScrolling:s,stop:a}}const Gt=e=>{const t=Lt(e),s=ae.keyDown(e),n=ae.keyUp(e),o=ae.clear(e),r=Bt(e);let a=null;g.watch(e.autoScrollViewport,i=>{a?.(),a=null,(i===!0||i&&typeof i=="object")&&(a=_t(e,i===!0?{}:i).stop)},{immediate:!0}),g.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",s),document.addEventListener("keyup",n),document.addEventListener("blur",o),document.addEventListener("scroll",r,!0)}),g.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",s),document.removeEventListener("keyup",n),document.removeEventListener("blur",o),document.removeEventListener("scroll",r,!0),a?.(),t.cleanup()})},J=()=>{const e=g.inject(ge);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=J();return{overlay:e.overlay,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}},Ht=g.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:s,overlay:n}=he();return(o,r)=>g.unref(s)==="dragging"?(g.openBlock(),g.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:g.normalizeStyle({"--position-x":g.unref(n).position.value.x+"px","--position-y":g.unref(n).position.value.y+"px"})},[(g.openBlock(!0),g.createElementBlock(g.Fragment,null,g.renderList(g.unref(t).draggingMap,([a,i])=>(g.openBlock(),g.createElementBlock(g.Fragment,null,[g.unref(t).draggableMap.get(a)?.render?(g.openBlock(),g.createBlock(g.resolveDynamicComponent(g.unref(t).draggableMap.get(a)?.render),{key:0})):(g.openBlock(),g.createBlock(g.resolveDynamicComponent(a.tagName),{key:1,innerHTML:i.initialOuterHTML,style:g.normalizeStyle({width:i.initialRect.width+"px",height:i.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):g.createCommentVNode("",!0)}}),Kt=g.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,s=g.useTemplateRef("overlayRef"),n=Qe(s,t);Gt(n);const o=g.computed(()=>n.overlay.render.value??Ht);return g.provide(ge,n),(r,a)=>(g.openBlock(),g.createElementBlock(g.Fragment,null,[g.renderSlot(r.$slots,"default"),(g.openBlock(),g.createBlock(g.Teleport,{to:g.unref(n).overlay.to.value||"body"},[g.createElementVNode("div",g.mergeProps({ref_key:"overlayRef",ref:s,class:"dnd-kit-overlay-container"},t),[g.renderSlot(r.$slots,"overlay",{overlay:o.value},()=>[(g.openBlock(),g.createBlock(g.resolveDynamicComponent(o.value)))])],16)],8,["to"])),g.createElementVNode("pre",null,g.toDisplayString(g.unref(n).entities.selectedSet),1)],64))}});function Zt(e,t,s){const n=J();let o,r,a;typeof t=="function"?(o={},r=t):(o=t??{},r=s);const i=g.computed({get(){const c=D(e);return c?n.entities.selectedSet.has(c):!1},set(c){const d=D(e);d&&n.entities.selectedSet[c?"add":"delete"](d)}}),u=g.computed(()=>{const c=D(e);return c?n.entities.draggingMap.has(c):!1}),l=g.computed(()=>{const c=D(e);return c?n.entities.allowedDraggableSet.has(c):!1}),f=g.computed(()=>{const c=D(e);if(c)return n.entities.draggableMap.get(c)?.hoveredPlacement});return g.onMounted(()=>{a=D(e),a&&(a.addEventListener("dragstart",w),a.addEventListener("drag",w),a.addEventListener("dragend",w),a.setAttribute(R.DRAGGABLE,""),n.lib.draggableObserver.observe(a),n.entities.draggableMap.set(a,{render:o.render,disabled:o.disabled??!1,groups:o.groups??[],modifier:o.modifier,events:o.events,payload:r,data:o.data,dragHandle:o.dragHandle,activation:o.activation,placementMargins:o.placementMargins,hoveredPlacement:void 0}))}),g.onBeforeUnmount(()=>{a&&(n.lib.draggableObserver.unobserve(a),n.entities.visibleDraggableSet.delete(a),n.entities.draggableMap.delete(a),n.entities.modifiersDraggableSet.delete(a))}),{selected:i,isDragging:u,isAllowed:l,isDragOver:f}}const Nt=(e,t)=>{const s=J(),n=g.computed(()=>e.value===s.entities.selectingArea);let o=null;g.onMounted(()=>{o=D(e),o&&(o.setAttribute(R.SELECT_AREA,""),s.lib.selectableAreaObserver.observe(o),s.entities.selectableAreaMap.set(o,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),g.onBeforeUnmount(()=>{o&&(s.lib.selectableAreaObserver.unobserve(o),s.entities.visibleSelectableAreaSet.delete(o),s.entities.modifiersSelectableAreaSet.delete(o),s.entities.selectableAreaMap.delete(o))});const r=g.computed(()=>{s.scrollPosition.x,s.scrollPosition.y;const a=s.pointer.value;return!a||s.state.value!=="selecting"||!o||!n.value?{}:gt(a.start,a.current,o)});return{isSelecting:n,style:r}};function Yt(e,t){const s=g.inject(ge);if(!s)throw Error("DnD provider not found");let n=null;return g.onMounted(()=>{n=D(e),n&&(n.setAttribute(R.CONSTRAINT_AREA,""),s.entities.constraintsAreaMap.set(n,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),g.onBeforeUnmount(()=>{n&&s.entities.constraintsAreaMap.delete(n)}),{}}function Ut(e,t,s){const n=J();let o=null,r,a;typeof t=="function"?(r={},a=t):(r=t??{},a=s);const i=g.computed(()=>{const l=D(e);return l?n.entities.allowedDroppableSet.has(l):!1}),u=g.computed(()=>{const l=D(e);if(l)return n.entities.droppableMap.get(l)?.hoveredPlacement});return g.onMounted(()=>{o=D(e),o&&(o.setAttribute(R.DROPPABLE,""),n.lib.droppableObserver.observe(o),n.entities.droppableMap.set(o,{disabled:r.disabled??!1,groups:r.groups??[],events:r.events,payload:a,data:r.data,hoveredPlacement:void 0}))}),g.onBeforeUnmount(()=>{o&&(n.lib.droppableObserver.unobserve(o),n.entities.visibleDroppableSet.delete(o),n.entities.droppableMap.delete(o))}),{isAllowed:i,isDragOver:u}}const Xt=(e,t)=>{const s=he(),n=g.shallowRef(!1),r=ze(e,t??{},()=>{if(s.state.value!=="dragging")return null;const a=s.overlay.position.value,i=s.overlay.size.value;return a?i?.width&&i?.height?{x:a.x+i.width/2,y:a.y+i.height/2}:a:null},void 0,n);return g.watch(()=>s.state.value,a=>{a==="dragging"?r.run():r.stop()}),{isScrolling:n}};function De(e,t){return t<=0?e:Math.round(e/t)*t}function Vt(e,t){const s=t&&"grid"in t&&t.grid!=null,n=t?s?t.grid:t.gridX:1,o=t?s?t.grid:t.gridY:1;return g.computed(()=>{const{x:r,y:a}=e.value;return{x:De(r,n),y:De(a,o)}})}const we=()=>!0,Me=()=>0,$t="separate",qt=()=>{const e={filterElements:we,filterZones:we,sortElements:Me,sortZones:Me,mergeStrategy:$t,pickClosestBetweenFirst:!1},t=(n,o,r,a,i,u,l)=>{const f=a instanceof Set?a:new Set(a),c={containerBox:o,pointer:r},d=e.minOverlapPercent,m=[];for(const h of f){if(!i(h,n))continue;const b=N(h);if(!l(b,c))continue;const S=X(b,o);if(d!==void 0&&S<d)continue;let y=0;for(const M of f)M!==h&&G(M,h)&&y++;m.push({node:h,box:b,meta:{isPointerInElement:St(b,r.x,r.y),overlapPercent:S,depth:y,centerDistance:pt(Z(o),Z(b))}})}return m.sort((h,b)=>u(h,b,c)),m},s={container(n){return e.container=n,s},containerBox(n){return e.containerBox=n,s},elements(n){return e.elements=n,s},zones(n){return e.zones=n,s},filterElements(n){return e.filterElements=n,s},filterZones(n){return e.filterZones=n,s},collision(n){return e.collision=n,s},sortElements(n){return e.sortElements=n,s},sortZones(n){return e.sortZones=n,s},mergeStrategy(n){return e.mergeStrategy=n,s},pickClosestBetweenFirst(n){return e.pickClosestBetweenFirst=n,s},minOverlapPercent(n){return e.minOverlapPercent=n,s},build(){const n=e;if(!n.container||!n.elements||!n.zones||!n.collision)throw new Error("sensor: container, elements, zones, collision are required");return o=>{const r=n.container(o);if(!r)return{elements:[],zones:[]};const a=n.containerBox?n.containerBox(o):N(r),i=o.pointer.value?.current??{x:0,y:0},u=t(o,a,i,n.elements(o),n.filterElements,n.sortElements,n.collision),l=t(o,a,i,n.zones(o),n.filterZones,n.sortZones,n.collision);if(n.mergeStrategy==="unified-closest"){const f=[...u.map(d=>({node:d.node,box:d.box,isZone:!1,distance:0})),...l.map(d=>({node:d.node,box:d.box,isZone:!0,distance:0}))];if(f.length===0)return{elements:[],zones:[]};for(const d of f){const m=Z(d.box);d.distance=Math.hypot(i.x-m.x,i.y-m.y)}const c=f.reduce((d,m)=>m.distance<d.distance?m:d);return c.isZone?{elements:[],zones:[c.node]}:{elements:[c.node],zones:[]}}if(n.pickClosestBetweenFirst&&u[0]&&l[0]){const f=Z(l[0].box),c=Z(u[0].box),d=Math.hypot(i.x-f.x,i.y-f.y);return Math.hypot(i.x-c.x,i.y-c.y)<d?{elements:u.map(h=>h.node),zones:[]}:{elements:[],zones:l.map(h=>h.node)}}return{elements:u.map(f=>f.node),zones:l.map(f=>f.node)}}}};return s},jt=()=>qt();exports.DnDProvider=Kt;exports.createSensor=jt;exports.defaultCollisionDetection=W;exports.makeAutoScroll=Xt;exports.makeConstraintArea=Yt;exports.makeDraggable=Zt;exports.makeDroppable=Ut;exports.makeSelectionArea=Nt;exports.makeSnappedOverlayPosition=Vt;exports.useDnDProvider=he;
|