@vue-dnd-kit/core 2.0.12 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/external/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { makeConstraintArea } from './composables/makeConstraintArea';
|
|
|
6
6
|
export { makeDroppable } from './composables/makeDroppable';
|
|
7
7
|
export { useDnDProvider } from './composables/useDnDProvider';
|
|
8
8
|
export { makeAutoScroll, type IAutoScrollOptions, } from './composables/makeAutoScroll';
|
|
9
|
-
export {
|
|
9
|
+
export { defaultCollisionDetection } from '../internal/sensors';
|
|
10
10
|
export type * from './types';
|
|
@@ -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-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 f=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}]`},de="VueDnDKitProvider",ye=(e,t,s,n)=>{const o=new Set;return t.forEach(i=>{const a=e.get(i),r=n?n(i):a?.disabled;if(!a||r)return;const u=a.modifier?.keys,c=a.modifier?.method;if(!u||!c||u.length===0){o.add(i);return}u[c](l=>s.value.has(l))&&o.add(i)}),o};let ve="",Oe="",Fe="";const D=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,Z=(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",M),window.addEventListener("selectstart",M),window.addEventListener("touchstart",M),window.addEventListener("touchmove",M)},le=()=>{const e=document.body;e.style.userSelect=ve,e.style.touchAction=Oe,e.style.overscrollBehavior=Fe,window.removeEventListener("contextmenu",M),window.removeEventListener("selectstart",M),window.removeEventListener("touchstart",M),window.removeEventListener("touchmove",M)},M=e=>e.preventDefault(),me=(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&&Z(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&&Z(n,e))return!0;return!1},J=(e,t)=>{if(!e.length||!t.length)return!0;const s=new Set(t);return e.some(n=>s.has(n))};function Ze(e,t,s,n){const o=[];for(const a of t.keys()){const r=s.get(a);o.push({groups:r?.groups??[]})}const i=new Set;for(const a of e){const r=n.get(a),u=r?.groups??[],c=r?.groupMatch??"every";(!o.length||o[c](l=>J(l.groups,u)))&&i.add(a)}return i}function Ge(e,t,s){const n=new Set;for(const a of t.keys()){const r=s.get(a);for(const u of r?.groups??[])n.add(u)}const o=[...n],i=new Set;for(const a of e){const u=s.get(a)?.groups??[];J(o,u)&&i.add(a)}return i}const ne=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:i}=n.contentRect;e.value={width:o,height:i}});return{observe:s=>t.observe(s),unobserve:s=>t.unobserve(s),disconnect:()=>t.disconnect()}},Ke=e=>{const t=f.ref(null),s=He(t),n=f.watch(e,i=>{s.disconnect(),i&&s.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{n(),s.disconnect()}}}};function ce(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 Ne(e,t,s){e.forEach(n=>{const o=t.get(n);s.set(n,Ae(n,o))}),e.clear()}function Ue(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",Ve(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ve(e,t,s,n){t.has(e)?Ne(t,s,n):(t.clear(),Ue(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 c=Math.sqrt(s*s+n*n);return Math.min(c/t,1)}const{x:o=0,y:i=0,condition:a="any"}=t;if(o===0&&i===0)return 1;const r=o>0?Math.min(s/o,1):1,u=i>0?Math.min(n/i,1):1;return a==="both"?Math.min(r,u):Math.max(r,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 $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),i=o?.activation?.delay;if(!i){s=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*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 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 i=e,a=t;return s!=="y"&&(i=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:i,y:a}}function Je(e,t,s,n,o){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),a=i.width||o?.width||0,r=i.height||o?.height||0;let u=e.current.x-a*e.offset.x,c=e.current.y-r*e.offset.y;if(!s)return{x:u,y:c};const g=qe(s,n);if(!g)return{x:u,y:c};const{element:l,entity:d}=g,m=l.getBoundingClientRect(),h=s.getBoundingClientRect(),b=je(u,c,d.axis||"both",h);return d.restrictToArea?We(b.x,b.y,d.axis||"both",m,i):b}const H={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=f.shallowRef(),n=f.ref(),i={keys:{pressedKeys:f.ref(new Set),forDrag:[...H.forDrag],forCancel:[...H.forCancel],forDrop:[...H.forDrop],forMove:[...H.forMove],forMoveFaster:[...H.forMoveFaster]},step:8,moveFaster:4},a=f.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:f.computed(()=>s.value?Ze(a.visibleDroppableSet,a.draggingMap,a.draggableMap,a.droppableMap):new Set),allowedDraggableSet:f.computed(()=>s.value?Ge(a.visibleDraggableSet,a.draggingMap,a.draggableMap):new Set),modifiersSelectableAreaSet:f.computed(()=>ye(a.selectableAreaMap,a.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:f.computed(()=>ye(a.draggableMap,a.visibleDraggableSet,i.keys.pressedKeys,v=>me(v,{entities:a}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),r=f.reactive({draggable:new Map,droppable:new Map}),u={throttle:f.shallowRef(0)},c=f.reactive({x:window.scrollX,y:window.scrollY}),g=f.reactive({progress:0,startTime:0}),l=f.computed(()=>{if(!n.value||!a.initiatingDraggable)return 0;const v=a.draggableMap.get(a.initiatingDraggable)?.activation?.distance;return v?Ye(n.value,v):1}),d=ne(a.visibleDraggableSet),m=ne(a.visibleDroppableSet),h=ne(a.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:p}=Ke(e),y=f.ref(),w=f.computed(()=>{const S=a.initiatingDraggable;return Je(n.value,e.value,S||null,a.constraintsAreaMap,b.value)}),E=f.computed({get:()=>t?.overlayTo,set:S=>E.value=S}),U=f.computed(()=>t?.autoScrollViewport);return{state:s,pointer:n,entities:a,keyboard:i,scrollPosition:c,delay:g,distanceProgress:l,hovered:r,collision:u,overlay:{size:b,position:w,render:y,ref:e,to:E},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:p,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.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 et(e){return e.parentElement?.closest(O.SELECT_AREA)??null}const tt=(e,t,s)=>{if(!s)return{};const n=s.getBoundingClientRect(),o=Math.max(n.left,Math.min(e.x,t.x)),i=Math.max(n.top,Math.min(e.y,t.y)),a=Math.min(n.right,Math.max(e.x,t.x)),r=Math.min(n.bottom,Math.max(e.y,t.y)),u=Math.max(0,a-o),c=Math.max(0,r-i),g=o-n.left+s.scrollLeft,l=i-n.top+s.scrollTop;return{position:"absolute",left:`${g}px`,top:`${l}px`,width:`${u}px`,height:`${c}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},Le=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,s=nt(e.pointer.value.start,e.pointer.value.current),n=e.entities.selectableAreaMap.get(t)?.groups??[],o=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(i=>{if(i===t||!t.contains(i))return;const a=et(i);if(a&&a!==t){e.entities.selectedSet.delete(i);return}if(me(i,e)){e.entities.selectedSet.delete(i);return}const u=e.entities.draggableMap.get(i)?.groups??[];if(!J(n,u)){e.entities.selectedSet.delete(i);return}let c=o.get(i);c||(c=i.getBoundingClientRect(),o.set(i,c));const g=e.entities.selectionBase.has(i);_e(s,c)?g?e.entities.selectedSet.delete(i):e.entities.selectedSet.add(i):g?e.entities.selectedSet.add(i):e.entities.selectedSet.delete(i)})},nt=(e,t)=>{const s=Math.min(e.x,t.x),n=Math.min(e.y,t.y),o=Math.max(e.x,t.x),i=Math.max(e.y,t.y),a=o-s,r=i-n;return new DOMRect(s,n,a,r)};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 he(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,i)=>i-o);let n=e;for(const o of s)n=he(n,o,1);return n}function Ie(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 I={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 I.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return I.getInsertSide(e,t)==="after"&&!e?.center}};function ke(e,t){const{draggedItems:s,dropZone:n,hoveredDraggable:o}=e;if(!s.length)return null;const i=o?.placement.center===!0&&n!=null&&n.items!==o.items,a=i?n.items:o?.items??n?.items;if(!a)return null;const r=s[0].items,u=s.map(d=>d.index),c=a.length;let g,l;if(o&&!i){const d=o.items===r&&u.includes(o.index);if(d&&s.length===1){const m=I.isAtZoneStart(n?.placement,t);g=m?0:c,l=m?"prepend":"append"}else{if(d)return null;{const m=I.getInsertSide(o.placement,t),h=o.index;m==="before"?(g=Math.max(0,h),l="insert"):m==="after"?(g=Math.min(c,h+1),l="insert"):(g=c,l="append")}}}else{if(!n)return null;const d=I.isAtZoneStart(n.placement,t);g=d?0:c,l=d?"prepend":"append"}return{targetIndex:g,mode:l,targetArr:a}}function st(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:i}=n;let{targetIndex:a}=n;const r=s.map(l=>l.index),u=s.map(l=>l.item),c=s[0].items;if(c===o){const l=r.filter(m=>m<a).length;a=Math.max(0,a-l);const d=L(_(c,r),a,u);return{sourceItems:d,targetItems:d,draggedItems:u,sourceIndexes:r,targetIndex:a,mode:i,sameList:!0}}else{const l=_(c,r),d=L(o,a,u);return{sourceItems:l,targetItems:d,draggedItems:u,sourceIndexes:r,targetIndex:a,mode:i,sameList:!1}}}function ot(e){const{draggedItems:t,hoveredDraggable:s}=e;if(!t.length||!s)return null;const n=t.map(g=>g.index),o=s.index,i=t.map(g=>g.item),a=s.item,r=t[0].items,u=s.items,c=r===u;if(c&&n.includes(o))return null;if(t.length===1){const g=n[0];if(c){const l=Ie(r,g,o);return{sourceItems:l,targetItems:l,sourceIndexes:n,targetIndex:o,sameList:!0}}else{const l=[...r],d=[...u];return l[g]=u[o],d[o]=r[g],{sourceItems:l,targetItems:d,sourceIndexes:n,targetIndex:o,sameList:!1}}}else{const g=Math.min(...n);if(c){const l=n.filter(y=>y<o).length,d=Math.max(0,o-l),m=n.filter(y=>y<g).length,h=Math.max(0,g-m);let b=_(r,n);b=L(b,d,i);const p=h>=d?h+i.length:h;return b=L(b,p,[a]),{sourceItems:b,targetItems:b,sourceIndexes:n,targetIndex:d,sameList:!0}}else{const l=n.filter(b=>b<g).length,d=Math.max(0,g-l);let m=_(r,n);m=L(m,d,[a]);let h=he(u,o);return h=L(h,o,i),{sourceItems:m,targetItems:h,sourceIndexes:n,targetIndex:o,sameList:!1}}}}function at(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:i,mode:a}=n,r=s.map(c=>c.item);return{targetItems:L(o,i,r),copiedItems:r,targetIndex:i,mode:a}}function it(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 Re(e){return{insertAt:L,removeAt:he,removeIndexes:_,swapAt:Ie,getInsertSide:(t,s)=>I.getInsertSide(t,s),isAtZoneStart:(t,s)=>I.isAtZoneStart(t,s),isAtZoneEnd:(t,s)=>I.isAtZoneEnd(t,s),suggestSort:t=>st(e,t),suggestSwap:()=>ot(e),suggestCopy:t=>at(e,t),suggestRemove:()=>it(e)}}const k=e=>e.keys().next().value,rt=e=>e.target.closest(O.DRAGGABLE);function lt(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[i,a]=o,r=Number(i),u=a,c=new Map;return c.set(r,{index:r,item:u[r],items:u,data:s?.data?.()}),e.entities.draggingMap.forEach((g,l)=>{const d=e.entities.draggableMap.get(l),m=d?.payload;if(!m)return;const h=m();if(!Array.isArray(h)||h.length<2)return;const[b,p]=h;if(p!==u)return;const y=Number(b);c.has(y)||c.set(y,{index:y,item:p[y],items:u,data:d?.data?.()})}),[...c.values()].sort((g,l)=>g.index-l.index)}const A=(e,t)=>{const s=lt(e);let n,o;if(t){const i=e.entities.droppableMap.get(t);if(i){const u=i.payload;n={items:u?u():[],placement:e.hovered.droppable.get(t),data:i.data?.()}}const a=k(e.hovered.draggable);if(a&&(a===t||t.contains(a))&&a){const u=e.entities.draggableMap.get(a),c=u?.payload,g=e.hovered.draggable.get(a),l={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(c){const d=c();if(Array.isArray(d)&&d.length>=2){const[m,h]=d,b=Number(m);o={element:a,placement:g??l,index:b,item:h[b],items:h,data:u?.data?.()}}}else u?.data&&(o={element:a,placement:g??l,index:-1,item:void 0,items:[],data:u.data()})}}return{draggedItems:s,dropZone:n,hoveredDraggable:o,provider:e,helpers:Re({draggedItems:s,dropZone:n,hoveredDraggable:o})}},B=(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)})},ct=(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)}}},ut=(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)}}},se=(e,t,s)=>{const n=rt(t);!n||!e.entities.draggingMap.has(n)||e.entities.draggingMap.get(n)?.events?.[s]?.(A(e))},gt=(e,t)=>{const s=k(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(A(e,s))},ue=(e,t)=>{const s=k(t.droppable);s&&!F(s,e)&&e.entities.droppableMap.get(s)?.events?.onLeave?.(A(e,s))},ft=(e,t,s=5)=>{const n=s/2;return{left:e-n,top:t-n,width:s,height:s}},dt=e=>{const t=e.pointer.value?.current,s=t?.x??0,n=t?.y??0;return ft(s,n,5)},T=(e,t,s)=>{const n=e.left+e.width/2,o=e.top+e.height/2;if(s){const r=s.top??0,u=s.right??0,c=s.bottom??0,g=s.left??0,l=t.left+g,d=t.right-u,m=t.top+r,h=t.bottom-c;if(l<d&&m<h&&n>=l&&n<=d&&o>=m&&o<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=t.left+t.width/2,a=t.top+t.height/2;return{top:o<=a,bottom:o>a,left:n<=i,right:n>i,center:!1}},mt=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),pe=(e,t)=>{const s=mt(t);return Math.hypot(e.x-s.x,e.y-s.y)};function ht(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 V(e,t){ht(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const bt=(e,t)=>e.find(s=>s!==t&&Z(t,s)),j=(e,t,s)=>{const n=k(t.droppable),o=k(t.draggable);o&&t.draggable.delete(o),n&&t.droppable.delete(n);const i=dt(e),a=s.zones[0],r=s.elements[0];if(a&&r&&a===r&&e.entities.droppableMap.has(a)&&a){const l=a.getBoundingClientRect(),d=e.entities.draggableMap.get(a)?.placementMargins,m=T(i,l,d);if(m.center){t.droppable.set(a,m);const h=bt(s.elements,a);if(h){const b=h.getBoundingClientRect();t.draggable.set(h,T(i,b,void 0))}}else t.draggable.set(r,m)}else{if(a){const l=a.getBoundingClientRect();t.droppable.set(a,T(i,l))}if(r)if(a)if(Z(a,r)){const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(i,l,d))}else{const l=e.pointer.value?.current??{x:0,y:0},d=a.getBoundingClientRect(),m=r.getBoundingClientRect(),h=pe(l,d);if(pe(l,m)<h){t.droppable.clear();const p=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(i,m,p))}}else{const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(i,l,d))}}const c=k(t.droppable),g=k(t.draggable);if(o&&o!==g){const l=e.entities.draggableMap.get(o);l&&V(l,void 0)}if(n&&n!==c){const l=e.entities.droppableMap.get(n);l&&V(l,void 0)}if(g){const l=e.entities.draggableMap.get(g);l&&V(l,t.draggable.get(g))}if(c){const l=e.entities.droppableMap.get(c);l&&V(l,t.droppable.get(c))}ct(e,n,c),ut(e,o,g)},oe=(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}},K=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),yt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),Y=(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,i=e.width*e.height,a=t.width*t.height;return i===0||a===0?0:(o/i*100+o/a*100)/2},pt=(e,t,s)=>t>=e.x&&t<=e.x+e.width&&s>=e.y&&s<=e.y+e.height,St=e=>e.overlay.ref?.value??null,Se=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:s,y:n}=t,o=e.overlay.size?.value;let i,a;if(o)i=o.width,a=o.height;else{const r=e.overlay.ref?.value?.getBoundingClientRect();i=r?.width??0,a=r?.height??0}return{x:s,y:n,width:i,height:a,top:n,left:s,right:s+i,bottom:n+a}},ge=e=>e.entities.allowedDraggableSet,Be=e=>e.entities.allowedDroppableSet,Dt=(e,t)=>!t.entities.draggingMap.has(e),Mt=(e,t)=>![...t.entities.draggingMap.keys()].some(s=>Z(s,e)),wt=(e,t)=>t.entities.draggableMap.has(e)?!me(e,t):t.entities.droppableMap.has(e)?!F(e,t):!0,X=(e,t)=>Dt(e,t)&&Mt(e,t)&&wt(e,t),ae=10;function z(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function vt(e){const t=e.pointer.value?.current??{x:0,y:0},s=document.elementFromPoint(t.x,t.y);if(!s)return null;const n=ge(e),o=Be(e),i=[],a=[];let r=s;for(;r;)(n.has(r)||o.has(r))&&X(r,e)&&(n.has(r)&&i.push(r),o.has(r)&&a.push(r)),r=r.parentElement;return i.length===0&&a.length===0?null:{elements:i,zones:a}}const W=e=>{if(!St(e))return{elements:[],zones:[]};const s=e.pointer.value?.current??{x:0,y:0},n=vt(e);if(n){if(n.elements.length>0)return n;const c=n.zones[0];if(!c)return n;const g=Se(e);return{elements:[...ge(e)].filter(m=>c.contains(m)&&X(m,e)).map(m=>({el:m,box:N(m)})).filter(({box:m})=>oe(m,g)&&Y(m,g)>=ae).sort((m,h)=>z(m.box,s)-z(h.box,s)).map(({el:m})=>m),zones:n.zones}}const o=Se(e),i=[...ge(e)].filter(c=>X(c,e)),a=[...Be(e)].filter(c=>X(c,e)),r=i.map(c=>({n:c,box:N(c)})).filter(({box:c})=>oe(c,o)&&Y(c,o)>=ae).sort((c,g)=>z(c.box,s)-z(g.box,s)).map(({n:c})=>c),u=a.map(c=>({n:c,box:N(c)})).filter(({box:c})=>oe(c,o)&&Y(c,o)>=ae).sort((c,g)=>z(c.box,s)-z(g.box,s)).map(({n:c})=>c);return{elements:r,zones:u}};function fe(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 xt(e,t){const s=e.collision?.throttle?.value??0;if(s<=0){fe(e);return}const n=Date.now();n-t.value>=s&&(t.value=n,fe(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);let o=n;if(s?.groupMatch==="some"&&(s.groups?.length??0)>0){const r=s.groups,u=new Map;for(const[l]of e.entities.draggingMap){const d=e.entities.draggableMap.get(l),m=d?.payload?.();if(!Array.isArray(m)||m.length<2)continue;const h=Number(m[0]),b=m[1],p=n.draggedItems.find(y=>y.index===h&&y.items===b);p&&u.set(p,d?.groups??[])}const c=n.draggedItems.filter(l=>J(u.get(l)??[],r)),g=n.draggedItems.filter(l=>!c.includes(l));if(g.length>0){const l=d=>({...n,draggedItems:d,helpers:Re({...n,draggedItems:d})});if(s.events?.onValidate){const d=s.events.onValidate({validItems:c,invalidItems:g,dropZone:n.dropZone,hoveredDraggable:n.hoveredDraggable}),m=d!=null&&typeof d.then=="function";let h;if(m){e.state.value="pending";try{h=await d}catch{const p=e.entities.initiatingDraggable;return B(e,p,"onSelfDragCancel"),x(e,"onDragCancel"),ue(e,e.hovered),"cancel"}}else h=d;if(h===!1)return e.state.value="dragging","decline";const b=Array.isArray(h)?h:c;if(b.length===0)return"accept";o=l(b)}else{if(c.length===0)return"accept";o=l(c)}}}const i=s?.events?.onDrop?.(o);if(i!=null&&typeof i.then=="function"){e.state.value="pending";let r;try{r=await i}catch{const u=e.entities.initiatingDraggable;return B(e,u,"onSelfDragCancel"),x(e,"onDragCancel"),ue(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return i===!1?"decline":"accept"}function Te(e){const t=e.entities.initiatingDraggable;B(e,t,"onSelfDragEnd"),x(e,"onDragEnd"),gt(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 Et=e=>{const t={current:null},s={value:0},n=async()=>{le(),t.current?.cancel(),t.current=null;const r=e.state.value;if(r==="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 r==="selecting"&&At(e);q(e),document.removeEventListener("pointerup",n),document.removeEventListener("pointermove",o)},o=r=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:r.clientX,y:r.clientY},Xe(e)){se(e,r,"onSelfDragStart"),x(e,"onDragStart");return}if(e.state.value==="dragging"){xt(e,s);const u=e.entities.initiatingDraggable;B(e,u,"onSelfDragMove"),x(e,"onDragMove")}e.state.value==="selecting"&&Le(e)}};return{pointerDown:r=>{document.addEventListener("pointerup",n),document.addEventListener("pointermove",o);const u=r.target,c=u.closest(O.SELECT_AREA),g=u.closest(O.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(c)){re(),e.pointer.value=ce(r),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(g)){const l=e.entities.draggableMap.get(g);if(!Ee(u,g,l?.dragHandle))return;re(),e.entities.initiatingDraggable=g;const d=xe(r,g);e.pointer.value=ce(r,d.x,d.y),l?.activation?.distance||l?.activation?.delay?(e.state.value="activating",l?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=$e(e,()=>{$(e),se(e,r,"onSelfDragStart"),x(e,"onDragStart")}))):($(e),se(e,r,"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}},Lt=e=>t=>{const{keys:s}=e.keyboard;if(console.log(t.code),s.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(s.forCancel.includes(t.code)){t.preventDefault(),le(),B(e,e.entities.initiatingDraggable,"onSelfDragCancel"),x(e,"onDragCancel"),ue(e,e.hovered),q(e);return}if(s.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Pe(e)&&Te(e),le(),q(e)))();return}const o=Ct[t.code];if(o&&s.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=s.forMoveFaster.some(c=>s.pressedKeys.value.has(c)),a=e.keyboard.step*(i?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),B(e,e.entities.initiatingDraggable,"onSelfDragMove"),x(e,"onDragMove");return}return}if(s.forDrag.includes(t.code)){const o=document.activeElement;if(!o)return;const i=o.closest(O.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const a=e.entities.draggableMap.get(i);if(!Ee(o,i,a?.dragHandle,!0))return;t.preventDefault(),re();const r=i.getBoundingClientRect(),u=r.left+r.width/2,c=r.top+r.height/2,g={clientX:u,clientY:c};e.entities.initiatingDraggable=i;const l=xe(g,i);e.pointer.value=ce(g,l.x,l.y),$(e);const m=(e.collision?.run??W)(e);j(e,e.hovered,m),B(e,i,"onSelfDragStart"),x(e,"onDragStart")}},It=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},kt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},ie={keyDown:Lt,keyUp:It,clear:kt},Rt=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"){fe(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,Le(e)}},C=50,Bt=144,De=1e3/Bt;function Pt(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 Tt={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=Tt,o){const{speed:i=10,disabled:a=!1}=t,r=Pt(t.threshold);let u=null,c=null,g=null,l=0,d=0;const m=y=>{o&&(o.value=y)},h=y=>{const w=e.value,E=s();if(!w||!E||a){m(!1);return}c||(c=y);const U=y-c;if(U<De){u=requestAnimationFrame(h);return}const S=i*(U/De);c=y;const{scrollTop:v,scrollLeft:G}=n.getScrollState(w);(!g||l!==v||d!==G)&&(g=n.getRect?n.getRect(w):w.getBoundingClientRect(),l=v,d=G);let P=!1,ee=v,te=G;r.top>0&&E.y-g.top<r.top?(ee=v-S,P=!0):r.bottom>0&&g.bottom-E.y<r.bottom&&(ee=v+S,P=!0),r.left>0&&E.x-g.left<r.left?(te=G-S,P=!0):r.right>0&&g.right-E.x<r.right&&(te=G+S,P=!0),P&&n.setScroll(w,ee,te),m(P),u=requestAnimationFrame(h)};return{run:()=>{c=null,u=requestAnimationFrame(h)},stop:()=>{u&&(cancelAnimationFrame(u),u=null),g=null,l=0,d=0,c=null,m(!1)}}}const zt={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)}},Ot={get value(){return typeof document<"u"?document.documentElement:null}};function Ft(e,t){const s=f.shallowRef(!1),o=ze(Ot,t??{},()=>{if(e.state.value!=="dragging")return null;const r=e.overlay.position.value,u=e.overlay.size.value;return r?u?.width&&u?.height?{x:r.x+u.width/2,y:r.y+u.height/2}:r:null},zt,s),i=f.watch(()=>e.state.value,r=>{r==="dragging"?o.run():o.stop()}),a=()=>{i(),o.stop()};return f.onScopeDispose(a),{isScrolling:s,stop:a}}const _t=e=>{const t=Et(e),s=ie.keyDown(e),n=ie.keyUp(e),o=ie.clear(e),i=Rt(e);let a=null;f.watch(e.autoScrollViewport,r=>{a?.(),a=null,(r===!0||r&&typeof r=="object")&&(a=Ft(e,r===!0?{}:r).stop)},{immediate:!0}),f.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",s),document.addEventListener("keyup",n),document.addEventListener("blur",o),document.addEventListener("scroll",i,!0)}),f.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",i,!0),a?.(),t.cleanup()})},Q=()=>{const e=f.inject(de);if(!e)throw Error("DnD provider not found");return e},be=()=>{const e=Q();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}},Zt=f.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:s,overlay:n}=be();return(o,i)=>f.unref(s)==="dragging"?(f.openBlock(),f.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:f.normalizeStyle({"--position-x":f.unref(n).position.value.x+"px","--position-y":f.unref(n).position.value.y+"px"})},[(f.openBlock(!0),f.createElementBlock(f.Fragment,null,f.renderList(f.unref(t).draggingMap,([a,r])=>(f.openBlock(),f.createElementBlock(f.Fragment,null,[r.render?(f.openBlock(),f.createBlock(f.resolveDynamicComponent(r.render),{key:0})):(f.openBlock(),f.createBlock(f.resolveDynamicComponent(a.tagName),{key:1,innerHTML:r.initialOuterHTML,style:f.normalizeStyle({width:r.initialRect.width+"px",height:r.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):f.createCommentVNode("",!0)}}),Gt=f.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,s=f.useTemplateRef("overlayRef"),n=Qe(s,t);_t(n);const o=f.computed(()=>n.overlay.render.value??Zt);return f.provide(de,n),(i,a)=>(f.openBlock(),f.createElementBlock(f.Fragment,null,[f.renderSlot(i.$slots,"default"),(f.openBlock(),f.createBlock(f.Teleport,{to:f.unref(n).overlay.to.value||"body"},[f.createElementVNode("div",f.mergeProps({ref_key:"overlayRef",ref:s,class:"dnd-kit-overlay-container"},t),[f.renderSlot(i.$slots,"overlay",{overlay:o.value},()=>[(f.openBlock(),f.createBlock(f.resolveDynamicComponent(o.value)))])],16)],8,["to"]))],64))}});function Ht(e,t,s){const n=Q();let o,i,a;typeof t=="function"?(o={},i=t):(o=t??{},i=s);const r=f.computed({get(){const l=D(e);return l?n.entities.selectedSet.has(l):!1},set(l){const d=D(e);d&&n.entities.selectedSet[l?"add":"delete"](d)}}),u=f.computed(()=>{const l=D(e);return l?n.entities.draggingMap.has(l):!1}),c=f.computed(()=>{const l=D(e);return l?n.entities.allowedDraggableSet.has(l):!1}),g=f.computed(()=>{const l=D(e);if(l)return n.entities.draggableMap.get(l)?.hoveredPlacement});return f.onMounted(()=>{a=D(e),a&&(a.addEventListener("dragstart",M),a.addEventListener("drag",M),a.addEventListener("dragend",M),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:i,data:o.data,dragHandle:o.dragHandle,activation:o.activation,placementMargins:o.placementMargins,hoveredPlacement:void 0}))}),f.onBeforeUnmount(()=>{a&&(n.lib.draggableObserver.unobserve(a),n.entities.visibleDraggableSet.delete(a),n.entities.draggableMap.delete(a),n.entities.modifiersDraggableSet.delete(a))}),{selected:r,isDragging:u,isAllowed:c,isDragOver:g}}const Kt=(e,t)=>{const s=Q(),n=f.computed(()=>e.value===s.entities.selectingArea);let o=null;f.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??[]}))}),f.onBeforeUnmount(()=>{o&&(s.lib.selectableAreaObserver.unobserve(o),s.entities.visibleSelectableAreaSet.delete(o),s.entities.modifiersSelectableAreaSet.delete(o),s.entities.selectableAreaMap.delete(o))});const i=f.computed(()=>{s.scrollPosition.x,s.scrollPosition.y;const a=s.pointer.value;return!a||s.state.value!=="selecting"||!o||!n.value?{}:tt(a.start,a.current,o)});return{isSelecting:n,style:i}};function Nt(e,t){const s=f.inject(de);if(!s)throw Error("DnD provider not found");let n=null;return f.onMounted(()=>{n=D(e),n&&(n.setAttribute(R.CONSTRAINT_AREA,""),s.entities.constraintsAreaMap.set(n,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),f.onBeforeUnmount(()=>{n&&s.entities.constraintsAreaMap.delete(n)}),{}}function Ut(e,t,s){const n=Q();let o=null,i,a;typeof t=="function"?(i={},a=t):(i=t??{},a=s);const r=f.computed(()=>{const c=D(e);return c?n.entities.allowedDroppableSet.has(c):!1}),u=f.computed(()=>{const c=D(e);if(c)return n.entities.droppableMap.get(c)?.hoveredPlacement});return f.onMounted(()=>{o=D(e),o&&(o.setAttribute(R.DROPPABLE,""),n.lib.droppableObserver.observe(o),n.entities.droppableMap.set(o,{disabled:i.disabled??!1,groups:i.groups??[],groupMatch:i.groupMatch??"every",events:i.events,payload:a,data:i.data,hoveredPlacement:void 0}))}),f.onBeforeUnmount(()=>{o&&(n.lib.droppableObserver.unobserve(o),n.entities.visibleDroppableSet.delete(o),n.entities.droppableMap.delete(o))}),{isAllowed:r,isDragOver:u}}const Vt=(e,t)=>{const s=be(),n=f.shallowRef(!1),i=ze(e,t??{},()=>{if(s.state.value!=="dragging")return null;const a=s.overlay.position.value,r=s.overlay.size.value;return a?r?.width&&r?.height?{x:a.x+r.width/2,y:a.y+r.height/2}:a:null},void 0,n);return f.watch(()=>s.state.value,a=>{a==="dragging"?i.run():i.stop()}),{isScrolling:n}},Me=()=>!0,we=()=>0,Yt="separate",Xt=()=>{const e={filterElements:Me,filterZones:Me,sortElements:we,sortZones:we,mergeStrategy:Yt,pickClosestBetweenFirst:!1},t=(n,o,i,a,r,u,c)=>{const g=a instanceof Set?a:new Set(a),l={containerBox:o,pointer:i},d=e.minOverlapPercent,m=[];for(const h of g){if(!r(h,n))continue;const b=N(h);if(!c(b,l))continue;const p=Y(b,o);if(d!==void 0&&p<d)continue;let y=0;for(const w of g)w!==h&&Z(w,h)&&y++;m.push({node:h,box:b,meta:{isPointerInElement:pt(b,i.x,i.y),overlapPercent:p,depth:y,centerDistance:yt(K(o),K(b))}})}return m.sort((h,b)=>u(h,b,l)),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 i=n.container(o);if(!i)return{elements:[],zones:[]};const a=n.containerBox?n.containerBox(o):N(i),r=o.pointer.value?.current??{x:0,y:0},u=t(o,a,r,n.elements(o),n.filterElements,n.sortElements,n.collision),c=t(o,a,r,n.zones(o),n.filterZones,n.sortZones,n.collision);if(n.mergeStrategy==="unified-closest"){const g=[...u.map(d=>({node:d.node,box:d.box,isZone:!1,distance:0})),...c.map(d=>({node:d.node,box:d.box,isZone:!0,distance:0}))];if(g.length===0)return{elements:[],zones:[]};for(const d of g){const m=K(d.box);d.distance=Math.hypot(r.x-m.x,r.y-m.y)}const l=g.reduce((d,m)=>m.distance<d.distance?m:d);return l.isZone?{elements:[],zones:[l.node]}:{elements:[l.node],zones:[]}}if(n.pickClosestBetweenFirst&&u[0]&&c[0]){const g=K(c[0].box),l=K(u[0].box),d=Math.hypot(r.x-g.x,r.y-g.y);return Math.hypot(r.x-l.x,r.y-l.y)<d?{elements:u.map(h=>h.node),zones:[]}:{elements:[],zones:c.map(h=>h.node)}}return{elements:u.map(g=>g.node),zones:c.map(g=>g.node)}}}};return s},$t=()=>Xt();exports.DnDProvider=Gt;exports.createSensor=$t;exports.defaultCollisionDetection=W;exports.makeAutoScroll=Vt;exports.makeConstraintArea=Nt;exports.makeDraggable=Ht;exports.makeDroppable=Ut;exports.makeSelectionArea=Kt;exports.useDnDProvider=be;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=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"},z={SELECT_AREA:`[${R.SELECT_AREA}]`,DRAGGABLE:`[${R.DRAGGABLE}]`,CONSTRAINT_AREA:`[${R.CONSTRAINT_AREA}]`},fe="VueDnDKitProvider",be=(e,t,n,s)=>{const o=new Set;return t.forEach(i=>{const a=e.get(i),r=s?s(i):a?.disabled;if(!a||r)return;const g=a.modifier?.keys,c=a.modifier?.method;if(!g||!c||g.length===0){o.add(i);return}g[c](l=>n.value.has(l))&&o.add(i)}),o};let De="",Be="",Pe="";const S=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,K=(e,t)=>e!==t&&e.contains(t),Oe=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ae=()=>{const e=document.body;De=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",D),window.addEventListener("selectstart",D),window.addEventListener("touchstart",D),window.addEventListener("touchmove",D)},ie=()=>{const e=document.body;e.style.userSelect=De,e.style.touchAction=Be,e.style.overscrollBehavior=Pe,window.removeEventListener("contextmenu",D),window.removeEventListener("selectstart",D),window.removeEventListener("touchstart",D),window.removeEventListener("touchmove",D)},D=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&&K(s,e))return!0;return!1},_=(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&&K(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 ze(e,t,n,s){const o=[];for(const a of t.keys()){const r=n.get(a);o.push({groups:r?.groups??[]})}const i=new Set;for(const a of e){const r=s.get(a),g=r?.groups??[],c=r?.groupMatch??"every";(!o.length||o[c](l=>$(l.groups,g)))&&i.add(a)}return i}function _e(e,t,n){const s=new Set;for(const a of t.keys()){const r=n.get(a);for(const g of r?.groups??[])s.add(g)}const o=[...s],i=new Set;for(const a of e){const g=n.get(a)?.groups??[];$(o,g)&&i.add(a)}return i}const J=e=>{const t=new IntersectionObserver(n=>{n.forEach(s=>{const o=s.target;e[s.isIntersecting?"add":"delete"](o)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},Fe=e=>{const t=new ResizeObserver(n=>{const s=n[0];if(!s)return;const{width:o,height:i}=s.contentRect;e.value={width:o,height:i}});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},He=e=>{const t=u.ref(null),n=Fe(t),s=u.watch(e,i=>{n.disconnect(),i&&n.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{s(),n.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 ve(e,t){const n=t.getBoundingClientRect(),s=n.width>0?(e.clientX-n.left)/n.width:.5,o=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:s,y:o}}function Me(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ge(e,t,n){e.forEach(s=>{const o=t.get(s);n.set(s,Me(s,o))}),e.clear()}function Ke(e,t,n){n.clear();const s=t.get(e);n.set(e,Me(e,s))}function Y(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Ne(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ne(e,t,n,s){t.has(e)?Ge(t,n,s):(t.clear(),Ke(e,n,s))}function we(e,t,n,s){if(s||!n)return!0;const o=e.closest(n);return o?t.contains(o):!1}function Ue(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:o=0,y:i=0,condition:a="any"}=t;if(o===0&&i===0)return 1;const r=o>0?Math.min(n/o,1):1,g=i>0?Math.min(s/i,1):1;return a==="both"?Math.min(r,g):Math.max(r,g)}function Ae(e,t,n){if(!n)return!0;const s=n.distance!=null,o=n.delay!=null;return!s&&!o?!0:s&&!o?e>=1:!s&&o?t>=1:(n.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 Ae(e.distanceProgress.value,e.delay.progress,t?.activation)?(Y(e),!0):!1}function Ye(e,t){let n=null;const s=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const o=e.entities.draggableMap.get(e.entities.initiatingDraggable),i=o?.activation?.delay;if(!i){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*1e3),1),Ae(e.distanceProgress.value,e.delay.progress,o?.activation)?(t(),n=null):n=requestAnimationFrame(s)};return n=requestAnimationFrame(s),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function Xe(e,t){const n=e.closest(z.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function Ze(e,t,n,s){return n==="x"?{x:e,y:s.top}:n==="y"?{x:s.left,y:t}:{x:e,y:t}}function $e(e,t,n,s,o){let i=e,a=t;return n!=="y"&&(i=Math.max(s.left,Math.min(s.right-o.width,e))),n!=="x"&&(a=Math.max(s.top,Math.min(s.bottom-o.height,t))),{x:i,y:a}}function qe(e,t,n,s,o){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),a=i.width||o?.width||0,r=i.height||o?.height||0;let g=e.current.x-a*e.offset.x,c=e.current.y-r*e.offset.y;if(!n)return{x:g,y:c};const f=Xe(n,s);if(!f)return{x:g,y:c};const{element:l,entity:d}=f,m=l.getBoundingClientRect(),h=n.getBoundingClientRect(),b=Ze(g,c,d.axis||"both",h);return d.restrictToArea?$e(b.x,b.y,d.axis||"both",m,i):b}const G={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 n=u.shallowRef(),s=u.ref(),i={keys:{pressedKeys:u.ref(new Set),forDrag:[...G.forDrag],forCancel:[...G.forCancel],forDrop:[...G.forDrop],forMove:[...G.forMove],forMoveFaster:[...G.forMoveFaster]},step:8,moveFaster:4},a=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?ze(a.visibleDroppableSet,a.draggingMap,a.draggableMap,a.droppableMap):new Set),allowedDraggableSet:u.computed(()=>n.value?_e(a.visibleDraggableSet,a.draggingMap,a.draggableMap):new Set),modifiersSelectableAreaSet:u.computed(()=>be(a.selectableAreaMap,a.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:u.computed(()=>be(a.draggableMap,a.visibleDraggableSet,i.keys.pressedKeys,v=>de(v,{entities:a}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),r=u.reactive({draggable:new Map,droppable:new Map}),g={throttle:u.shallowRef(0)},c=u.reactive({x:window.scrollX,y:window.scrollY}),f=u.reactive({progress:0,startTime:0}),l=u.computed(()=>{if(!s.value||!a.initiatingDraggable)return 0;const v=a.draggableMap.get(a.initiatingDraggable)?.activation?.distance;return v?Ue(s.value,v):1}),d=J(a.visibleDraggableSet),m=J(a.visibleDroppableSet),h=J(a.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:w}=He(e),y=u.ref(),I=u.computed(()=>{const p=a.initiatingDraggable;return qe(s.value,e.value,p||null,a.constraintsAreaMap,b.value)}),x=u.computed({get:()=>t?.overlayTo,set:p=>x.value=p}),N=u.computed(()=>t?.autoScrollViewport);return{state:n,pointer:s,entities:a,keyboard:i,scrollPosition:c,delay:f,distanceProgress:l,hovered:r,collision:g,overlay:{size:b,position:I,render:y,ref:e,to:x},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:w,rectCache:new Map},autoScrollViewport:N}}const X=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 We(e){return e.parentElement?.closest(z.SELECT_AREA)??null}const Je=(e,t,n)=>{if(!n)return{};const s=n.getBoundingClientRect(),o=Math.max(s.left,Math.min(e.x,t.x)),i=Math.max(s.top,Math.min(e.y,t.y)),a=Math.min(s.right,Math.max(e.x,t.x)),r=Math.min(s.bottom,Math.max(e.y,t.y)),g=Math.max(0,a-o),c=Math.max(0,r-i),f=o-s.left+n.scrollLeft,l=i-s.top+n.scrollTop;return{position:"absolute",left:`${f}px`,top:`${l}px`,width:`${g}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=Qe(e.pointer.value.start,e.pointer.value.current),s=e.entities.selectableAreaMap.get(t)?.groups??[],o=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(i=>{if(i===t||!t.contains(i))return;const a=We(i);if(a&&a!==t){e.entities.selectedSet.delete(i);return}if(de(i,e)){e.entities.selectedSet.delete(i);return}const g=e.entities.draggableMap.get(i)?.groups??[];if(!$(s,g)){e.entities.selectedSet.delete(i);return}let c=o.get(i);c||(c=i.getBoundingClientRect(),o.set(i,c));const f=e.entities.selectionBase.has(i);Oe(n,c)?f?e.entities.selectedSet.delete(i):e.entities.selectedSet.add(i):f?e.entities.selectedSet.add(i):e.entities.selectedSet.delete(i)})},Qe=(e,t)=>{const n=Math.min(e.x,t.x),s=Math.min(e.y,t.y),o=Math.max(e.x,t.x),i=Math.max(e.y,t.y),a=o-n,r=i-s;return new DOMRect(n,s,a,r)};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)),o=Math.max(0,Math.min(n,e.length-s));return[...e.slice(0,s),...e.slice(s+o)]}function F(e,t){const n=[...new Set(t)].filter(o=>o>=0&&o<e.length).sort((o,i)=>i-o);let s=e;for(const o of n)s=me(s,o,1);return s}function Ee(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 Le(e,t){const{draggedItems:n,dropZone:s,hoveredDraggable:o}=e;if(!n.length)return null;const i=o?.placement.center===!0&&s!=null&&s.items!==o.items,a=i?s.items:o?.items??s?.items;if(!a)return null;const r=n[0].items,g=n.map(d=>d.index),c=a.length;let f,l;if(o&&!i){const d=o.items===r&&g.includes(o.index);if(d&&n.length===1){const m=C.isAtZoneStart(s?.placement,t);f=m?0:c,l=m?"prepend":"append"}else{if(d)return null;{const m=C.getInsertSide(o.placement,t),h=o.index;m==="before"?(f=Math.max(0,h),l="insert"):m==="after"?(f=Math.min(c,h+1),l="insert"):(f=c,l="append")}}}else{if(!s)return null;const d=C.isAtZoneStart(s.placement,t);f=d?0:c,l=d?"prepend":"append"}return{targetIndex:f,mode:l,targetArr:a}}function et(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:o,mode:i}=s;let{targetIndex:a}=s;const r=n.map(l=>l.index),g=n.map(l=>l.item),c=n[0].items;if(c===o){const l=r.filter(m=>m<a).length;a=Math.max(0,a-l);const d=L(F(c,r),a,g);return{sourceItems:d,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:a,mode:i,sameList:!0}}else{const l=F(c,r),d=L(o,a,g);return{sourceItems:l,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:a,mode:i,sameList:!1}}}function tt(e){const{draggedItems:t,hoveredDraggable:n}=e;if(!t.length||!n)return null;const s=t.map(f=>f.index),o=n.index,i=t.map(f=>f.item),a=n.item,r=t[0].items,g=n.items,c=r===g;if(c&&s.includes(o))return null;if(t.length===1){const f=s[0];if(c){const l=Ee(r,f,o);return{sourceItems:l,targetItems:l,sourceIndexes:s,targetIndex:o,sameList:!0}}else{const l=[...r],d=[...g];return l[f]=g[o],d[o]=r[f],{sourceItems:l,targetItems:d,sourceIndexes:s,targetIndex:o,sameList:!1}}}else{const f=Math.min(...s);if(c){const l=s.filter(y=>y<o).length,d=Math.max(0,o-l),m=s.filter(y=>y<f).length,h=Math.max(0,f-m);let b=F(r,s);b=L(b,d,i);const w=h>=d?h+i.length:h;return b=L(b,w,[a]),{sourceItems:b,targetItems:b,sourceIndexes:s,targetIndex:d,sameList:!0}}else{const l=s.filter(b=>b<f).length,d=Math.max(0,f-l);let m=F(r,s);m=L(m,d,[a]);let h=me(g,o);return h=L(h,o,i),{sourceItems:m,targetItems:h,sourceIndexes:s,targetIndex:o,sameList:!1}}}}function nt(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:o,targetIndex:i,mode:a}=s,r=n.map(c=>c.item);return{targetItems:L(o,i,r),copiedItems:r,targetIndex:i,mode:a}}function st(e){const{draggedItems:t}=e;if(!t.length)return null;const n=t.map(a=>a.index),s=t.map(a=>a.item),o=t[0].items;return{sourceItems:F(o,n),removedItems:s,sourceIndexes:n}}function Ce(e){return{insertAt:L,removeAt:me,removeIndexes:F,swapAt:Ee,getInsertSide:(t,n)=>C.getInsertSide(t,n),isAtZoneStart:(t,n)=>C.isAtZoneStart(t,n),isAtZoneEnd:(t,n)=>C.isAtZoneEnd(t,n),suggestSort:t=>et(e,t),suggestSwap:()=>tt(e),suggestCopy:t=>nt(e,t),suggestRemove:()=>st(e)}}const k=e=>e.keys().next().value,ot=e=>e.target.closest(z.DRAGGABLE);function at(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t),s=n?.payload;if(!s)return n?.data?[{index:-1,item:void 0,items:[],data:n.data()}]:[];const o=s();if(!Array.isArray(o)||o.length<2)return[];const[i,a]=o,r=Number(i),g=a,c=new Map;return c.set(r,{index:r,item:g[r],items:g,data:n?.data?.()}),e.entities.draggingMap.forEach((f,l)=>{const d=e.entities.draggableMap.get(l),m=d?.payload;if(!m)return;const h=m();if(!Array.isArray(h)||h.length<2)return;const[b,w]=h;if(w!==g)return;const y=Number(b);c.has(y)||c.set(y,{index:y,item:w[y],items:g,data:d?.data?.()})}),[...c.values()].sort((f,l)=>f.index-l.index)}const A=(e,t)=>{const n=at(e);let s,o;if(t){const i=e.entities.droppableMap.get(t);if(i){const g=i.payload;s={items:g?g():[],placement:e.hovered.droppable.get(t),data:i.data?.()}}const a=k(e.hovered.draggable);if(a&&(a===t||t.contains(a))&&a){const g=e.entities.draggableMap.get(a),c=g?.payload,f=e.hovered.draggable.get(a),l={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(c){const d=c();if(Array.isArray(d)&&d.length>=2){const[m,h]=d,b=Number(m);o={element:a,placement:f??l,index:b,item:h[b],items:h,data:g?.data?.()}}}else g?.data&&(o={element:a,placement:f??l,index:-1,item:void 0,items:[],data:g.data()})}}return{draggedItems:n,dropZone:s,hoveredDraggable:o,provider:e,helpers:Ce({draggedItems:n,dropZone:s,hoveredDraggable:o})}},T=(e,t,n)=>{if(!t)return;const s=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!s||s.disabled||s.events?.[n]?.(A(e))},M=(e,t)=>{const n=A(e);e.entities.draggingMap.forEach(s=>{s.disabled||s.events?.[t]?.(n)})},it=(e,t,n)=>{if(t!==n){if(t&&!_(t,e)){const s=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(s)}if(n&&!_(n,e)){const s=A(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(s)}}},rt=(e,t,n)=>{if(t!==n){const s=A(e);if(t){const o=e.entities.draggableMap.get(t);o&&!o.disabled&&o.events?.onLeave?.(s)}if(n){const o=e.entities.draggableMap.get(n);o&&!o.disabled&&o.events?.onHover?.(s)}}},Q=(e,t,n)=>{const s=ot(t);!s||!e.entities.draggingMap.has(s)||e.entities.draggingMap.get(s)?.events?.[n]?.(A(e))},lt=(e,t)=>{const n=k(t.droppable);n&&!_(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},le=(e,t)=>{const n=k(t.droppable);n&&!_(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},ct=(e,t,n=5)=>{const s=n/2;return{left:e-s,top:t-s,width:n,height:n}},gt=e=>{const t=e.pointer.value?.current,n=t?.x??0,s=t?.y??0;return ct(n,s,5)},P=(e,t,n)=>{const s=e.left+e.width/2,o=e.top+e.height/2;if(n){const r=n.top??0,g=n.right??0,c=n.bottom??0,f=n.left??0,l=t.left+f,d=t.right-g,m=t.top+r,h=t.bottom-c;if(l<d&&m<h&&s>=l&&s<=d&&o>=m&&o<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=t.left+t.width/2,a=t.top+t.height/2;return{top:o<=a,bottom:o>a,left:s<=i,right:s>i,center:!1}},ut=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),ye=(e,t)=>{const n=ut(t);return Math.hypot(e.x-n.x,e.y-n.y)};function ft(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){ft(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const dt=(e,t)=>e.find(n=>n!==t&&K(t,n)),ce=(e,t,n)=>{const s=k(t.droppable),o=k(t.draggable);o&&t.draggable.delete(o),s&&t.droppable.delete(s);const i=gt(e),a=n.zones[0],r=n.elements[0];if(a&&r&&a===r&&e.entities.droppableMap.has(a)&&a){const l=a.getBoundingClientRect(),d=e.entities.draggableMap.get(a)?.placementMargins,m=P(i,l,d);if(m.center){t.droppable.set(a,m);const h=dt(n.elements,a);if(h){const b=h.getBoundingClientRect();t.draggable.set(h,P(i,b,void 0))}}else t.draggable.set(r,m)}else{if(a){const l=a.getBoundingClientRect();t.droppable.set(a,P(i,l))}if(r)if(a)if(K(a,r)){const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,P(i,l,d))}else{const l=e.pointer.value?.current??{x:0,y:0},d=a.getBoundingClientRect(),m=r.getBoundingClientRect(),h=ye(l,d);if(ye(l,m)<h){t.droppable.clear();const w=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,P(i,m,w))}}else{const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,P(i,l,d))}}const c=k(t.droppable),f=k(t.draggable);if(o&&o!==f){const l=e.entities.draggableMap.get(o);l&&U(l,void 0)}if(s&&s!==c){const l=e.entities.droppableMap.get(s);l&&U(l,void 0)}if(f){const l=e.entities.draggableMap.get(f);l&&U(l,t.draggable.get(f))}if(c){const l=e.entities.droppableMap.get(c);l&&U(l,t.droppable.get(c))}it(e,s,c),rt(e,o,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)),o=n*s,i=e.width*e.height,a=t.width*t.height;return i===0||a===0?0:(o/i*100+o/a*100)/2},mt=e=>e.overlay.ref?.value??null,pe=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:n,y:s}=t,o=e.overlay.size?.value;let i,a;if(o)i=o.width,a=o.height;else{const r=e.overlay.ref?.value?.getBoundingClientRect();i=r?.width??0,a=r?.height??0}return{x:n,y:s,width:i,height:a,top:s,left:n,right:n+i,bottom:s+a}},ge=e=>e.entities.allowedDraggableSet,Ie=e=>e.entities.allowedDroppableSet,ht=(e,t)=>!t.entities.draggingMap.has(e),bt=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>K(n,e)),yt=(e,t)=>t.entities.draggableMap.has(e)?!de(e,t):t.entities.droppableMap.has(e)?!_(e,t):!0,V=(e,t)=>ht(e,t)&&bt(e,t)&&yt(e,t),se=10;function O(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function pt(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),o=Ie(e),i=[],a=[];let r=n;for(;r;)(s.has(r)||o.has(r))&&V(r,e)&&(s.has(r)&&i.push(r),o.has(r)&&a.push(r)),r=r.parentElement;return i.length===0&&a.length===0?null:{elements:i,zones:a}}const Z=e=>{if(!mt(e))return{elements:[],zones:[]};const n=e.pointer.value?.current??{x:0,y:0},s=pt(e);if(s){if(s.elements.length>0)return s;const c=s.zones[0];if(!c)return s;const f=pe(e);return{elements:[...ge(e)].filter(m=>c.contains(m)&&V(m,e)).map(m=>({el:m,box:te(m)})).filter(({box:m})=>ee(m,f)&&ne(m,f)>=se).sort((m,h)=>O(m.box,n)-O(h.box,n)).map(({el:m})=>m),zones:s.zones}}const o=pe(e),i=[...ge(e)].filter(c=>V(c,e)),a=[...Ie(e)].filter(c=>V(c,e)),r=i.map(c=>({n:c,box:te(c)})).filter(({box:c})=>ee(c,o)&&ne(c,o)>=se).sort((c,f)=>O(c.box,n)-O(f.box,n)).map(({n:c})=>c),g=a.map(c=>({n:c,box:te(c)})).filter(({box:c})=>ee(c,o)&&ne(c,o)>=se).sort((c,f)=>O(c.box,n)-O(f.box,n)).map(({n:c})=>c);return{elements:r,zones:g}};function ue(e){const t=Z(e);ce(e,e.hovered,t)}function St(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){ue(e);return}const s=Date.now();s-t.value>=n&&(t.value=s,ue(e))}async function ke(e){const t=e.hovered.droppable.keys().next().value;if(!t||_(t,e))return"accept";const n=e.entities.droppableMap.get(t),s=A(e,t);let o=s;if(n?.groupMatch==="some"&&(n.groups?.length??0)>0){const r=n.groups,g=s.draggedItems.filter(f=>{for(const[,l]of e.entities.draggingMap){const d=l.payload?.();if(!(!Array.isArray(d)||d.length<2)&&Number(d[0])===f.index&&d[1]===f.items)return $(l.groups??[],r)}return!0}),c=s.draggedItems.filter(f=>!g.includes(f));if(c.length>0){const f=l=>({...s,draggedItems:l,helpers:Ce({...s,draggedItems:l})});if(n.events?.onValidate){const l=n.events.onValidate({validItems:g,invalidItems:c,dropZone:s.dropZone,hoveredDraggable:s.hoveredDraggable}),d=l!=null&&typeof l.then=="function";let m;if(d){e.state.value="pending";try{m=await l}catch{const b=e.entities.initiatingDraggable;return T(e,b,"onSelfDragCancel"),M(e,"onDragCancel"),le(e,e.hovered),"cancel"}}else m=l;if(m===!1)return e.state.value="dragging","decline";const h=Array.isArray(m)?m:g;if(h.length===0)return"accept";o=f(h)}else{if(g.length===0)return"accept";o=f(g)}}}const i=n?.events?.onDrop?.(o);if(i!=null&&typeof i.then=="function"){e.state.value="pending";let r;try{r=await i}catch{const g=e.entities.initiatingDraggable;return T(e,g,"onSelfDragCancel"),M(e,"onDragCancel"),le(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return i===!1?"decline":"accept"}function Re(e){const t=e.entities.initiatingDraggable;T(e,t,"onSelfDragEnd"),M(e,"onDragEnd"),lt(e,e.hovered)}function Dt(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 vt=e=>{const t={current:null},n={value:0},s=async()=>{ie(),t.current?.cancel(),t.current=null;const r=e.state.value;if(r==="dragging"){const g=await ke(e);if(g==="accept"&&Re(e),g==="accept"||g==="cancel"){X(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",o);return}return}else r==="selecting"&&Dt(e);X(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",o)},o=r=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:r.clientX,y:r.clientY},Ve(e)){Q(e,r,"onSelfDragStart"),M(e,"onDragStart");return}if(e.state.value==="dragging"){St(e,n);const g=e.entities.initiatingDraggable;T(e,g,"onSelfDragMove"),M(e,"onDragMove")}e.state.value==="selecting"&&xe(e)}};return{pointerDown:r=>{document.addEventListener("pointerup",s),document.addEventListener("pointermove",o);const g=r.target,c=g.closest(z.SELECT_AREA),f=g.closest(z.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(c)){ae(),e.pointer.value=re(r),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 l=e.entities.draggableMap.get(f);if(!we(g,f,l?.dragHandle))return;ae(),e.entities.initiatingDraggable=f;const d=ve(r,f);e.pointer.value=re(r,d.x,d.y),l?.activation?.distance||l?.activation?.delay?(e.state.value="activating",l?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ye(e,()=>{Y(e),Q(e,r,"onSelfDragStart"),M(e,"onDragStart")}))):(Y(e),Q(e,r,"onSelfDragStart"),M(e,"onDragStart"))}},pointerUp:s,pointerMove:o,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",o),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},Mt={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}},wt=e=>t=>{const{keys:n}=e.keyboard;if(console.log(t.code),n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),ie(),T(e,e.entities.initiatingDraggable,"onSelfDragCancel"),M(e,"onDragCancel"),le(e,e.hovered),X(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await ke(e)&&Re(e),ie(),X(e)))();return}const o=Mt[t.code];if(o&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=n.forMoveFaster.some(c=>n.pressedKeys.value.has(c)),a=e.keyboard.step*(i?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 g=(e.collision?.run??Z)(e);ce(e,e.hovered,g),T(e,e.entities.initiatingDraggable,"onSelfDragMove"),M(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const o=document.activeElement;if(!o)return;const i=o.closest(z.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const a=e.entities.draggableMap.get(i);if(!we(o,i,a?.dragHandle,!0))return;t.preventDefault(),ae();const r=i.getBoundingClientRect(),g=r.left+r.width/2,c=r.top+r.height/2,f={clientX:g,clientY:c};e.entities.initiatingDraggable=i;const l=ve(f,i);e.pointer.value=re(f,l.x,l.y),Y(e);const m=(e.collision?.run??Z)(e);ce(e,e.hovered,m),T(e,i,"onSelfDragStart"),M(e,"onDragStart")}},At=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},xt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},oe={keyDown:wt,keyUp:At,clear:xt},Et=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"){ue(e);return}if(e.state.value==="selecting"&&e.pointer.value){const s=window.scrollX-t,o=window.scrollY-n;e.pointer.value.start.x-=s,e.pointer.value.start.y-=o,xe(e)}},E=50,Lt=144,Se=1e3/Lt;function Ct(e){return e==null?{top:E,right:E,bottom:E,left:E}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??E,right:e.right??E,bottom:e.bottom??E,left:e.left??E}}const It={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Te(e,t,n,s=It,o){const{speed:i=10,disabled:a=!1}=t,r=Ct(t.threshold);let g=null,c=null,f=null,l=0,d=0;const m=y=>{o&&(o.value=y)},h=y=>{const I=e.value,x=n();if(!I||!x||a){m(!1);return}c||(c=y);const N=y-c;if(N<Se){g=requestAnimationFrame(h);return}const p=i*(N/Se);c=y;const{scrollTop:v,scrollLeft:H}=s.getScrollState(I);(!f||l!==v||d!==H)&&(f=s.getRect?s.getRect(I):I.getBoundingClientRect(),l=v,d=H);let B=!1,j=v,W=H;r.top>0&&x.y-f.top<r.top?(j=v-p,B=!0):r.bottom>0&&f.bottom-x.y<r.bottom&&(j=v+p,B=!0),r.left>0&&x.x-f.left<r.left?(W=H-p,B=!0):r.right>0&&f.right-x.x<r.right&&(W=H+p,B=!0),B&&s.setScroll(I,j,W),m(B),g=requestAnimationFrame(h)};return{run:()=>{c=null,g=requestAnimationFrame(h)},stop:()=>{g&&(cancelAnimationFrame(g),g=null),f=null,l=0,d=0,c=null,m(!1)}}}const kt={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)}},Rt={get value(){return typeof document<"u"?document.documentElement:null}};function Tt(e,t){const n=u.shallowRef(!1),o=Te(Rt,t??{},()=>{if(e.state.value!=="dragging")return null;const r=e.overlay.position.value,g=e.overlay.size.value;return r?g?.width&&g?.height?{x:r.x+g.width/2,y:r.y+g.height/2}:r:null},kt,n),i=u.watch(()=>e.state.value,r=>{r==="dragging"?o.run():o.stop()}),a=()=>{i(),o.stop()};return u.onScopeDispose(a),{isScrolling:n,stop:a}}const Bt=e=>{const t=vt(e),n=oe.keyDown(e),s=oe.keyUp(e),o=oe.clear(e),i=Et(e);let a=null;u.watch(e.autoScrollViewport,r=>{a?.(),a=null,(r===!0||r&&typeof r=="object")&&(a=Tt(e,r===!0?{}:r).stop)},{immediate:!0}),u.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",s),document.addEventListener("blur",o),document.addEventListener("scroll",i,!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",o),document.removeEventListener("scroll",i,!0),a?.(),t.cleanup()})},q=()=>{const e=u.inject(fe);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=q();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}},Pt=u.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:n,overlay:s}=he();return(o,i)=>u.unref(n)==="dragging"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:u.normalizeStyle({"--position-x":u.unref(s).position.value.x+"px","--position-y":u.unref(s).position.value.y+"px"})},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(t).draggingMap,([a,r])=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[r.render?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(r.render),{key:0})):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(a.tagName),{key:1,innerHTML:r.initialOuterHTML,style:u.normalizeStyle({width:r.initialRect.width+"px",height:r.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):u.createCommentVNode("",!0)}}),Ot=u.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,n=u.useTemplateRef("overlayRef"),s=je(n,t);Bt(s);const o=u.computed(()=>s.overlay.render.value??Pt);return u.provide(fe,s),(i,a)=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[u.renderSlot(i.$slots,"default"),(u.openBlock(),u.createBlock(u.Teleport,{to:u.unref(s).overlay.to.value||"body"},[u.createElementVNode("div",u.mergeProps({ref_key:"overlayRef",ref:n,class:"dnd-kit-overlay-container"},t),[u.renderSlot(i.$slots,"overlay",{overlay:o.value},()=>[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(o.value)))])],16)],8,["to"]))],64))}});function zt(e,t,n){const s=q();let o,i,a;typeof t=="function"?(o={},i=t):(o=t??{},i=n);const r=u.computed({get(){const l=S(e);return l?s.entities.selectedSet.has(l):!1},set(l){const d=S(e);d&&s.entities.selectedSet[l?"add":"delete"](d)}}),g=u.computed(()=>{const l=S(e);return l?s.entities.draggingMap.has(l):!1}),c=u.computed(()=>{const l=S(e);return l?s.entities.allowedDraggableSet.has(l):!1}),f=u.computed(()=>{const l=S(e);if(l)return s.entities.draggableMap.get(l)?.hoveredPlacement});return u.onMounted(()=>{a=S(e),a&&(a.addEventListener("dragstart",D),a.addEventListener("drag",D),a.addEventListener("dragend",D),a.setAttribute(R.DRAGGABLE,""),s.lib.draggableObserver.observe(a),s.entities.draggableMap.set(a,{render:o.render,disabled:o.disabled??!1,groups:o.groups??[],modifier:o.modifier,events:o.events,payload:i,data:o.data,dragHandle:o.dragHandle,activation:o.activation,placementMargins:o.placementMargins,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{a&&(s.lib.draggableObserver.unobserve(a),s.entities.visibleDraggableSet.delete(a),s.entities.draggableMap.delete(a),s.entities.modifiersDraggableSet.delete(a))}),{selected:r,isDragging:g,isAllowed:c,isDragOver:f}}const _t=(e,t)=>{const n=q(),s=u.computed(()=>e.value===n.entities.selectingArea);let o=null;u.onMounted(()=>{o=S(e),o&&(o.setAttribute(R.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(o),n.entities.selectableAreaMap.set(o,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),u.onBeforeUnmount(()=>{o&&(n.lib.selectableAreaObserver.unobserve(o),n.entities.visibleSelectableAreaSet.delete(o),n.entities.modifiersSelectableAreaSet.delete(o),n.entities.selectableAreaMap.delete(o))});const i=u.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const a=n.pointer.value;return!a||n.state.value!=="selecting"||!o||!s.value?{}:Je(a.start,a.current,o)});return{isSelecting:s,style:i}};function Ft(e,t){const n=u.inject(fe);if(!n)throw Error("DnD provider not found");let s=null;return u.onMounted(()=>{s=S(e),s&&(s.setAttribute(R.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(s,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),u.onBeforeUnmount(()=>{s&&n.entities.constraintsAreaMap.delete(s)}),{}}function Ht(e,t,n){const s=q();let o=null,i,a;typeof t=="function"?(i={},a=t):(i=t??{},a=n);const r=u.computed(()=>{const c=S(e);return c?s.entities.allowedDroppableSet.has(c):!1}),g=u.computed(()=>{const c=S(e);if(c)return s.entities.droppableMap.get(c)?.hoveredPlacement});return u.onMounted(()=>{o=S(e),o&&(o.setAttribute(R.DROPPABLE,""),s.lib.droppableObserver.observe(o),s.entities.droppableMap.set(o,{disabled:i.disabled??!1,groups:i.groups??[],groupMatch:i.groupMatch??"every",events:i.events,payload:a,data:i.data,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{o&&(s.lib.droppableObserver.unobserve(o),s.entities.visibleDroppableSet.delete(o),s.entities.droppableMap.delete(o))}),{isAllowed:r,isDragOver:g}}const Gt=(e,t)=>{const n=he(),s=u.shallowRef(!1),i=Te(e,t??{},()=>{if(n.state.value!=="dragging")return null;const a=n.overlay.position.value,r=n.overlay.size.value;return a?r?.width&&r?.height?{x:a.x+r.width/2,y:a.y+r.height/2}:a:null},void 0,s);return u.watch(()=>n.state.value,a=>{a==="dragging"?i.run():i.stop()}),{isScrolling:s}};exports.DnDProvider=Ot;exports.defaultCollisionDetection=Z;exports.makeAutoScroll=Gt;exports.makeConstraintArea=Ft;exports.makeDraggable=zt;exports.makeDroppable=Ht;exports.makeSelectionArea=_t;exports.useDnDProvider=he;
|