@vue-dnd-kit/core 1.7.0 → 2.0.0-alpha10
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/README.md +74 -305
- package/dist/external/components/DefaultOverlay.vue.d.ts +2 -0
- package/dist/external/components/DnDProvider.vue.d.ts +25 -0
- package/dist/external/composables/makeAutoScroll.d.ts +13 -0
- package/dist/external/composables/makeConstraintArea.d.ts +7 -0
- package/dist/external/composables/makeDraggable.d.ts +19 -0
- package/dist/external/composables/makeDroppable.d.ts +13 -0
- package/dist/external/composables/makeSelectionArea.d.ts +14 -0
- package/dist/external/composables/makeSnappedOverlayPosition.d.ts +20 -0
- package/dist/external/composables/useDnDProvider.d.ts +2 -0
- package/dist/external/env.d.ts +7 -0
- package/dist/external/index.d.ts +11 -0
- package/dist/external/types/entities.d.ts +157 -0
- package/dist/external/types/index.d.ts +4 -0
- package/dist/external/types/placement.d.ts +22 -0
- package/dist/external/types/pointer.d.ts +10 -0
- package/dist/external/types/provider.d.ts +84 -0
- package/dist/index.d.ts +2 -2141
- package/dist/internal/composables/useDnDProviderEvents.d.ts +2 -0
- package/dist/internal/composables/useDnDProviderInternal.d.ts +2 -0
- package/dist/internal/composables/useDnDProviderState.d.ts +4 -0
- package/dist/internal/composables/useSizeObserver.d.ts +33 -0
- package/dist/internal/composables/useViewportAutoScroll.d.ts +9 -0
- package/dist/internal/logic/hover.d.ts +7 -0
- package/dist/internal/logic/keyboard.d.ts +6 -0
- package/dist/internal/logic/payload.d.ts +12 -0
- package/dist/internal/logic/pointer.d.ts +9 -0
- package/dist/internal/logic/scroll.d.ts +2 -0
- package/dist/internal/sensors/default-collision.d.ts +7 -0
- package/dist/internal/sensors/index.d.ts +3 -0
- package/dist/internal/sensors/sensor.d.ts +68 -0
- package/dist/internal/sensors/steps.d.ts +30 -0
- package/dist/internal/types/auto-scroll.d.ts +19 -0
- package/dist/internal/types/observer.d.ts +11 -0
- package/dist/internal/types/provider.d.ts +30 -0
- package/dist/internal/utils/auto-scroll.d.ts +13 -0
- package/dist/internal/utils/constraints.d.ts +40 -0
- package/dist/internal/utils/disabled.d.ts +9 -0
- package/dist/internal/utils/dom.d.ts +44 -0
- package/dist/internal/utils/drag-activation.d.ts +29 -0
- package/dist/internal/utils/events.d.ts +22 -0
- package/dist/internal/utils/geometry.d.ts +23 -0
- package/dist/internal/utils/groups.d.ts +19 -0
- package/dist/internal/utils/hover.d.ts +29 -0
- package/dist/internal/utils/keyboard.d.ts +5 -0
- package/dist/internal/utils/namespaces.d.ts +18 -0
- package/dist/internal/utils/observer.d.ts +27 -0
- package/dist/internal/utils/placement.d.ts +22 -0
- package/dist/internal/utils/pointer.d.ts +33 -0
- package/dist/internal/utils/provider.d.ts +12 -0
- package/dist/internal/utils/selection.d.ts +27 -0
- package/dist/internal/utils/session.d.ts +5 -0
- package/dist/vite.svg +1 -0
- package/dist/vue-dnd-kit-core.cjs.js +2 -2
- package/dist/vue-dnd-kit-core.es.js +1237 -850
- package/package.json +75 -73
- package/LICENSE +0 -21
- package/dist/vue-dnd-kit-core.cjs.js.map +0 -1
- package/dist/vue-dnd-kit-core.es.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CSSProperties } from 'vue';
|
|
2
|
+
import { ICoordinates } from '../../external/types';
|
|
3
|
+
import { IDnDProviderInternal } from '../types/provider';
|
|
4
|
+
/**
|
|
5
|
+
* Converts viewport coordinates to container-relative coordinates.
|
|
6
|
+
* scroll - page scroll position (window.scrollX, window.scrollY)
|
|
7
|
+
*/
|
|
8
|
+
export declare const getRelativeCoordinates: (event: ICoordinates, container: HTMLElement | null, scroll?: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
}) => ICoordinates;
|
|
12
|
+
/**
|
|
13
|
+
* Returns CSS properties for bounded selection box within container
|
|
14
|
+
*/
|
|
15
|
+
export declare const getBoundedSelectionArea: (start: ICoordinates, current: ICoordinates, container: HTMLElement | null) => CSSProperties;
|
|
16
|
+
/**
|
|
17
|
+
* Checks if the event target is within the correct selectable area
|
|
18
|
+
*/
|
|
19
|
+
export declare const checkIsSelectableArea: (event: PointerEvent, container: HTMLElement) => boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Updates selectedSet based on selection box (pointer start → current)
|
|
22
|
+
*/
|
|
23
|
+
export declare const updateSelectionByBox: (provider: IDnDProviderInternal) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Creates a DOMRect for the selection box from pointer coordinates
|
|
26
|
+
*/
|
|
27
|
+
export declare const getSelectionBoxRect: (start: ICoordinates, current: ICoordinates) => DOMRect;
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var re=Object.defineProperty;var ae=(n,e,t)=>e in n?re(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Z=(n,e,t)=>ae(n,typeof e!="symbol"?e+"":e,t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue"),q=require("@vueuse/core"),x=class x{};Z(x,"remove",(e,t)=>{if(!e||t===void 0)return;const[l]=e.splice(t,1);return l}),Z(x,"insert",(e,t,l)=>{!e||t===void 0||e.splice(t,0,l)}),Z(x,"move",(e,t,l,s)=>{if(!e||!l||t===void 0||s===void 0)return;const o=x.remove(e,t);x.insert(l,s,o)}),Z(x,"swap",(e,t,l,s)=>{if(!e||!l||t===void 0||s===void 0)return;const o=e[t],u=l[s];e[t]=u,l[s]=o}),Z(x,"copy",(e,t,l,s)=>{if(!e||t===void 0||!l||s===void 0)return;const o=e[t];x.insert(l,s,o)}),Z(x,"applyTransfer",e=>{var s,o,u,m,i,v,f;const t=e.hovered.element.value,l=e.hovered.zone.value;if(t){const g=(o=(s=e.elementsMap.value.get(t))==null?void 0:s.data)==null?void 0:o.source,a=(m=(u=e.elementsMap.value.get(t))==null?void 0:u.data)==null?void 0:m.index,d=e.draggingElements.value.values().next().value,c=(i=d==null?void 0:d.data)==null?void 0:i.index,p=c!==void 0&&a!==void 0&&c>a?1:-1;Array.from(e.draggingElements.value.values()).sort((h,A)=>{var L,S;return p*((((L=h.data)==null?void 0:L.index)||0)-(((S=A.data)==null?void 0:S.index)||0))}).forEach(h=>{var A,L;return x.move((A=h.data)==null?void 0:A.source,(L=h.data)==null?void 0:L.index,g,a)})}else if(l){const g=(f=(v=e.zonesMap.value.get(l))==null?void 0:v.data)==null?void 0:f.source,a=g==null?void 0:g.length;Array.from(e.draggingElements.value.values()).sort((c,p)=>{var y,h;return(((y=p.data)==null?void 0:y.index)||0)-(((h=c.data)==null?void 0:h.index)||0)}).forEach(c=>{var p,y;return x.move((p=c.data)==null?void 0:p.source,(y=c.data)==null?void 0:y.index,g,a)})}}),Z(x,"applyCopy",e=>{var s,o,u,m,i,v;const t=e.hovered.element.value,l=e.hovered.zone.value;if(t){const f=(o=(s=e.elementsMap.value.get(t))==null?void 0:s.data)==null?void 0:o.source,g=(m=(u=e.elementsMap.value.get(t))==null?void 0:u.data)==null?void 0:m.index;Array.from(e.draggingElements.value.values()).sort((d,c)=>{var p,y;return(((p=c.data)==null?void 0:p.index)||0)-(((y=d.data)==null?void 0:y.index)||0)}).forEach(d=>{var c,p;return x.copy((c=d.data)==null?void 0:c.source,(p=d.data)==null?void 0:p.index,f,g)})}else if(l){const f=(v=(i=e.zonesMap.value.get(l))==null?void 0:i.data)==null?void 0:v.source,g=f==null?void 0:f.length;Array.from(e.draggingElements.value.values()).sort((d,c)=>{var p,y;return(((p=c.data)==null?void 0:p.index)||0)-(((y=d.data)==null?void 0:y.index)||0)}).forEach(d=>{var c,p;return x.copy((c=d.data)==null?void 0:c.source,(p=d.data)==null?void 0:p.index,f,g)})}}),Z(x,"applySwap",e=>{var s,o,u,m,i,v,f,g;const t=e.hovered.element.value,l=e.hovered.zone.value;if(t&&e.draggingElements.value.size===1){const a=e.draggingElements.value.values().next().value;x.swap((s=a==null?void 0:a.data)==null?void 0:s.source,(o=a==null?void 0:a.data)==null?void 0:o.index,(m=(u=e.elementsMap.value.get(t))==null?void 0:u.data)==null?void 0:m.source,(v=(i=e.elementsMap.value.get(t))==null?void 0:i.data)==null?void 0:v.index)}else if(l){const a=(g=(f=e.zonesMap.value.get(l))==null?void 0:f.data)==null?void 0:g.source,d=a==null?void 0:a.length;Array.from(e.draggingElements.value.values()).sort((p,y)=>{var h,A;return(((h=y.data)==null?void 0:h.index)||0)-(((A=p.data)==null?void 0:A.index)||0)}).forEach(p=>{var y,h;return x.move((y=p.data)==null?void 0:y.source,(h=p.data)==null?void 0:h.index,a,d)})}}),Z(x,"applyRemove",e=>{Array.from(e.draggingElements.value.values()).sort((l,s)=>{var o,u;return(((o=s.data)==null?void 0:o.index)||0)-(((u=l.data)==null?void 0:u.index)||0)}).forEach(l=>{var s,o;(s=l.data)!=null&&s.source&&((o=l.data)==null?void 0:o.index)!==void 0&&x.remove(l.data.source,l.data.index)})}),Z(x,"applyInsert",(e,t)=>{var o,u,m,i,v,f;const l=e.hovered.element.value,s=e.hovered.zone.value;if(l&&t.length>0){const g=(u=(o=e.elementsMap.value.get(l))==null?void 0:o.data)==null?void 0:u.source,a=(i=(m=e.elementsMap.value.get(l))==null?void 0:m.data)==null?void 0:i.index;t.forEach(d=>{x.insert(g,a,d)})}else if(s){const g=(f=(v=e.zonesMap.value.get(s))==null?void 0:v.data)==null?void 0:f.source,a=g==null?void 0:g.length;t.forEach(d=>{x.insert(g,a,d)})}});let G=x;const T=q.createGlobalState(()=>{const n=r.shallowRef(!1),e=r.ref(new Map),t=r.computed(()=>e.value.size>0),l={component:r.ref(null),ref:r.shallowRef(null),options:r.shallowRef(null),props:r.shallowRef(null),animating:{enter:r.shallowRef(!1),leave:r.shallowRef(!1),appear:r.shallowRef(!1)}},s=r.ref(new Map),o=r.ref(new Set),u=r.ref(new Map),m=r.shallowRef(new Set),i=r.shallowRef(new Set),v=typeof window<"u"&&"IntersectionObserver"in window,f=v?new IntersectionObserver(M=>{M.forEach(E=>i.value[E.isIntersecting?"add":"delete"](E.target))}):null,g=v?new IntersectionObserver(M=>{M.forEach(E=>m.value[E.isIntersecting?"add":"delete"](E.target))}):null,a=(M,E)=>{f&&(M==="add"?f.observe(E):(f.unobserve(E),i.value.delete(E)))},d=(M,E)=>{g&&(M==="add"?g.observe(E):(g.unobserve(E),m.value.delete(E)))},c={start:r.shallowRef(null),current:r.shallowRef(null),offset:{percent:r.shallowRef(null),pixel:r.shallowRef(null)}},{KeyW:p,KeyS:y,KeyA:h,KeyD:A,ctrl:L,shift:S,alt:O,meta:k}=q.useMagicKeys(),P={zone:r.shallowRef(null),element:r.shallowRef(null)};return{draggingElements:e,isDragging:t,activeContainer:l,elementsMap:s,selectedElements:o,zonesMap:u,visibleZones:m,visibleElements:i,pointerPosition:c,keyboard:{w:p,s:y,a:h,d:A,ctrl:L,shift:S,alt:O,meta:k},hovered:P,isPending:n,handleDragElementIntersection:a,handleDropZoneIntersection:d}}),ne=n=>{const e=r.ref(null),{draggingElements:t,pointerPosition:l,isDragging:s,activeContainer:o}=T();return r.onMounted(()=>{o.ref=e,o.options.value=n??null}),r.onUnmounted(()=>{o.ref.value=null,o.options.value=null}),{elementRef:e,draggingElements:t,pointerPosition:l,isDragging:s,animating:o.animating}},le=["innerHTML"],se=r.defineComponent({__name:"DefaultOverlay",props:{styles:{}},setup(n){const{elementRef:e,pointerPosition:t,isDragging:l,draggingElements:s}=ne(),o=r.computed(()=>{var u,m,i,v;return{transform:`translate3d(${(((u=t.current.value)==null?void 0:u.x)??0)-(((m=t.offset.pixel.value)==null?void 0:m.x)??0)}px, ${(((i=t.current.value)==null?void 0:i.y)??0)-(((v=t.offset.pixel.value)==null?void 0:v.y)??0)}px, 0)`,zIndex:1e3,position:"fixed",top:0,left:0,transition:"0.3s cubic-bezier(0.165, 0.84, 0.44, 1)",...n.styles}});return(u,m)=>r.unref(l)?(r.openBlock(),r.createElementBlock("div",{key:0,ref_key:"elementRef",ref:e,style:r.normalizeStyle(o.value)},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(r.unref(s),([i,v])=>{var f,g;return r.openBlock(),r.createElementBlock(r.Fragment,{key:v.id},[v.layer?(r.openBlock(),r.createBlock(r.resolveDynamicComponent(v.layer),{key:0,node:i,data:v.data,id:v.id,groups:v.groups},null,8,["node","data","id","groups"])):(r.openBlock(),r.createElementBlock("div",{key:1,innerHTML:v.initialHTML,style:r.normalizeStyle({width:`${(f=v.initialRect)==null?void 0:f.width}px`,height:`${(g=v.initialRect)==null?void 0:g.height}px`})},null,12,le))],64)}),128))],4)):r.createCommentVNode("",!0)}}),W=r.defineComponent({__name:"DragOverlay",props:{styles:{}},setup(n){const e=n,{activeContainer:t}=T(),l=r.computed(()=>({component:t.component.value??se,props:{...e,...t.props.value}}));return(s,o)=>r.unref(t).options.value?(r.openBlock(),r.createBlock(r.Transition,{key:0,name:r.unref(t).options.value.name,duration:r.unref(t).options.value.duration,"enter-from-class":r.unref(t).options.value.enterFromClass,"enter-to-class":r.unref(t).options.value.enterToClass,"enter-active-class":r.unref(t).options.value.enterActiveClass,"leave-from-class":r.unref(t).options.value.leaveFromClass,"leave-to-class":r.unref(t).options.value.leaveToClass,"leave-active-class":r.unref(t).options.value.leaveActiveClass,"appear-active-class":r.unref(t).options.value.appearActiveClass,"appear-from-class":r.unref(t).options.value.appearFromClass,"appear-to-class":r.unref(t).options.value.appearToClass,mode:r.unref(t).options.value.mode,type:r.unref(t).options.value.type,css:r.unref(t).options.value.css,appear:!0,persisted:r.unref(t).options.value.persisted,onEnter:r.unref(t).options.value.onEnter,onLeave:r.unref(t).options.value.onLeave,onBeforeEnter:r.unref(t).options.value.onBeforeEnter,onBeforeLeave:r.unref(t).options.value.onBeforeLeave,onBeforeAppear:r.unref(t).options.value.onBeforeAppear,onAfterEnter:r.unref(t).options.value.onAfterEnter,onAfterLeave:r.unref(t).options.value.onAfterLeave,onAfterAppear:r.unref(t).options.value.onAfterAppear},{default:r.withCtx(()=>[(r.openBlock(),r.createBlock(r.resolveDynamicComponent(l.value.component||l.value),r.normalizeProps(r.guardReactiveProps(l.value.props||{})),null,16))]),_:1},8,["name","duration","enter-from-class","enter-to-class","enter-active-class","leave-from-class","leave-to-class","leave-active-class","appear-active-class","appear-from-class","appear-to-class","mode","type","css","persisted","onEnter","onLeave","onBeforeEnter","onBeforeLeave","onBeforeAppear","onAfterEnter","onAfterLeave","onAfterAppear"])):(r.openBlock(),r.createBlock(r.resolveDynamicComponent(l.value.component||l.value),r.normalizeProps(r.mergeProps({key:1},l.value.props||{})),null,16))}}),oe={install(n,e){n.component("DragOverlay",W);const t=n.mount;n.mount=function(s){var m,i,v,f,g,a,d;const o=t.call(this,s),u=typeof s=="string"?document.querySelector(s):s;if(u&&u instanceof Element&&!u.querySelector("#vue-dnd-kit-overlay")){const c=document.createElement("div");c.id="vue-dnd-kit-overlay",c.style.pointerEvents="none",(m=e==null?void 0:e.overlayPosition)!=null&&m.zIndex&&(c.style.zIndex=e.overlayPosition.zIndex.toString()),(i=e==null?void 0:e.overlayPosition)!=null&&i.className&&(c.className=e.overlayPosition.className);const p=((v=e==null?void 0:e.overlayPosition)==null?void 0:v.method)||"append",y=(f=e==null?void 0:e.overlayPosition)!=null&&f.target?typeof e.overlayPosition.target=="string"?document.querySelector(e.overlayPosition.target):e.overlayPosition.target:u;if(y&&y instanceof Element)switch(p){case"prepend":y.insertBefore(c,y.firstChild);break;case"after":(g=y.parentNode)==null||g.insertBefore(c,y.nextSibling);break;case"before":(a=y.parentNode)==null||a.insertBefore(c,y);break;case"append":default:y.appendChild(c);break}else u.appendChild(c);const h=r.createVNode(W,{styles:(d=e==null?void 0:e.defaultOverlay)==null?void 0:d.styles});r.render(h,c),n.__VUE_DND_KIT_OVERLAY__={container:c,vnode:h,options:(e==null?void 0:e.defaultOverlay)||{}};const A=T();n.__VUE_DND_KIT_STORE__=A}return o};const l=n.unmount;n.unmount=function(){return n.__VUE_DND_KIT_OVERLAY__&&(r.render(null,n.__VUE_DND_KIT_OVERLAY__.container),delete n.__VUE_DND_KIT_OVERLAY__),l.call(this)}}},J=(n,e)=>n.x<e.x+e.width&&n.x+n.width>e.x&&n.y<e.y+e.height&&n.y+n.height>e.y,Y=n=>{if(!n)return{x:0,y:0,width:0,height:0,bottom:0,left:0,right:0,top:0};const e=n.getBoundingClientRect();return{bottom:e.bottom,left:e.left,right:e.right,top:e.top,x:e.x,y:e.y,width:e.width,height:e.height}},$=n=>({x:n.x+n.width/2,y:n.y+n.height/2}),ue=(n,e)=>{const t=Y(n);return{pixel:{x:e.x-t.x,y:e.y-t.y},percent:{x:(e.x-t.x)/t.width*100,y:(e.y-t.y)/t.height*100}}},Q=(n,e)=>{const t=e.x-n.x,l=e.y-n.y;return Math.sqrt(t*t+l*l)},ee=(n,e)=>{const t=Math.max(0,Math.min(n.x+n.width,e.x+e.width)-Math.max(n.x,e.x)),l=Math.max(0,Math.min(n.y+n.height,e.y+e.height)-Math.max(n.y,e.y)),s=t*l,o=n.width*n.height,u=e.width*e.height;return(s/o*100+s/u*100)/2},te="data-vue-dnd-kit-draggable",R=n=>{n.preventDefault()},V=n=>({items:Array.from(n.draggingElements.value.values())}),ie=n=>{const{elementsMap:e,draggingElements:t,hovered:l,selectedElements:s,isDragging:o,visibleElements:u,handleDragElementIntersection:m}=T(),i=r.ref(null),v=r.computed(()=>l.element.value===i.value),f=r.shallowRef((n==null?void 0:n.id)||r.useId()),g=r.shallowRef((n==null?void 0:n.disabled)??!1),a=r.computed(()=>g.value||!i.value||!e.value.has(i.value)?!1:t.value.has(i.value)),d=r.computed(()=>{if(g.value||!i.value||!o.value||!u.value.has(i.value))return!1;const h=e.value.get(i.value);return h!=null&&h.groups.length?!Array.from(t.value.entries()).some(([A,L])=>L.groups.length?!L.groups.some(S=>h.groups.includes(S)):!1):!0}),c=r.computed(()=>{if(g.value||!i.value||!o.value||!u.value.has(i.value)||l.element.value!==i.value)return!1;const h=e.value.get(i.value);return h!=null&&h.groups.length?!Array.from(t.value.entries()).some(([A,L])=>L.groups.length?!L.groups.some(S=>h.groups.includes(S)):!1):!0});return{elementRef:i,registerElement:()=>{if(!i.value)throw new Error("ElementRef is not set");e.value.set(i.value,{node:i.value,groups:(n==null?void 0:n.groups)??[],layer:(n==null?void 0:n.layer)??null,defaultLayer:(n==null?void 0:n.layer)??null,events:(n==null?void 0:n.events)??{},data:(n==null?void 0:n.data)??null,id:f.value,disabled:g??!1}),m("add",i.value),i.value.addEventListener("dragstart",R),i.value.addEventListener("drag",R),i.value.setAttribute(te,"true"),i.value.setAttribute("draggable","false")},unregisterElement:()=>{i.value&&(e.value.delete(i.value),s.value.delete(i.value),i.value.removeEventListener("dragstart",R),i.value.removeEventListener("drag",R),i.value.removeAttribute(te),i.value.removeAttribute("draggable"))},isDragging:a,isOvered:v,isAllowed:d,isLazyAllowed:c,id:f}},I=(n,e)=>n?e.contains(n):!1,ce=n=>{var f,g;const e=Y(n.activeContainer.ref.value),t=$(e),l=((f=n.pointerPosition.current.value)==null?void 0:f.x)??0,s=((g=n.pointerPosition.current.value)==null?void 0:g.y)??0,u=!(e&&l>=e.x&&l<=e.x+e.width&&s>=e.y&&s<=e.y+e.height),m=Array.from(n.draggingElements.value.keys()),i=Array.from(n.visibleElements.value.entries()).filter(([a,d])=>{if(!a)return!1;const c=Y(a);return c&&e&&J(c,e)}).map(([a,d])=>{const c=Y(a),p=$(c),y=l>=c.x&&l<=c.x+c.width&&s>=c.y&&s<=c.y+c.height,h=ee(c,e),A=Q(t,p);let L=0;for(const[S,O]of n.visibleElements.value.entries())S!==a&&S&&a&&I(a,S)&&L++;return{element:d,node:a,isPointerInElement:y,overlapPercent:h,depth:L,centerDistance:A}}).sort((a,d)=>{if(!u){if(a.isPointerInElement&&d.isPointerInElement)return d.depth-a.depth;if(a.isPointerInElement!==d.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-d.overlapPercent)<=1?a.centerDistance-d.centerDistance:d.overlapPercent-a.overlapPercent}),v=Array.from(n.visibleZones.value.entries()).filter(([a,d])=>{if(!a||m.some(p=>p&&I(a,p)))return!1;const c=Y(a);return c&&e&&J(c,e)}).map(([a,d])=>{const c=Y(a),p=$(c),y=l>=c.x&&l<=c.x+c.width&&s>=c.y&&s<=c.y+c.height,h=ee(c,e),A=Q(t,p);let L=0;for(const[S,O]of n.visibleZones.value.entries())S!==a&&S&&a&&I(a,S)&&L++;return{zone:d,node:a,isPointerInElement:y,overlapPercent:h,depth:L,centerDistance:A}}).sort((a,d)=>{if(!u){if(a.isPointerInElement&&d.isPointerInElement)return d.depth-a.depth;if(a.isPointerInElement!==d.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-d.overlapPercent)<=1?a.centerDistance-d.centerDistance:d.overlapPercent-a.overlapPercent});return[...i.map(a=>a.node),...v.map(a=>a.node)]},ve=(n,e)=>{const{pointerPosition:t,keyboard:l}=T(),s=(e==null?void 0:e.moveStep)||10;return{onKeyboardStart:i=>{var a;R(i);const v=Y(n.value);(a=n.value)==null||a.blur();const f=v.x+v.width/2,g=v.y+v.height/2;t.start.value={x:f,y:g},t.current.value={x:f,y:g},t.offset.pixel.value={x:v.width/2,y:v.height/2},t.offset.percent.value={x:50,y:50}},onKeyboardMove:()=>{if(!t.current.value)return;const i=t.current.value.x,v=t.current.value.y;let f=i,g=v;l.w.value&&(g-=s),l.s.value&&(g+=s),l.a.value&&(f-=s),l.d.value&&(f+=s),t.current.value={x:f,y:g}},onKeyboardEnd:()=>{t.current.value=null,t.start.value=null,t.offset.pixel.value=null,t.offset.percent.value=null}}},de=n=>{const e=T();return{onPointerStart:o=>{e.pointerPosition.start.value={x:o.clientX,y:o.clientY},e.pointerPosition.current.value={x:o.clientX,y:o.clientY};const{pixel:u,percent:m}=ue(n.value,{x:o.clientX,y:o.clientY});e.pointerPosition.offset.pixel.value=u,e.pointerPosition.offset.percent.value=m},onPointerMove:o=>{e.isPending.value||(e.pointerPosition.current.value={x:o.clientX,y:o.clientY})},onPointerEnd:()=>{e.pointerPosition.current.value=null,e.pointerPosition.start.value=null,e.pointerPosition.offset.pixel.value=null,e.pointerPosition.offset.percent.value=null}}},fe=(n,e)=>{var O,k;const t=T(),{onPointerStart:l,onPointerMove:s,onPointerEnd:o}=de(n),{onKeyboardStart:u,onKeyboardMove:m,onKeyboardEnd:i}=ve(n,e==null?void 0:e.keyboard);let v=null;const f=P=>{var C,z;if(!P)return new Map;const M=t.selectedElements.value.has(P);if(t.selectedElements.value.size>0&&M){const N=new Map;return t.selectedElements.value.forEach(F=>{var b,_;const w=t.elementsMap.value.get(F);w&&N.set(F,{...w,initialHTML:((b=w.node)==null?void 0:b.outerHTML)??"",initialRect:(_=w.node)==null?void 0:_.getBoundingClientRect()})}),N}t.selectedElements.value.clear();const E=t.elementsMap.value.get(P);if(!E)return new Map;const D=new Map;return D.set(P,{...E,initialHTML:((C=E.node)==null?void 0:C.outerHTML)??"",initialRect:(z=E.node)==null?void 0:z.getBoundingClientRect()}),D},g=P=>{if(!P)return{element:null,zone:null};const M=Array.isArray(P)?P:[P],E=Array.from(t.draggingElements.value.keys()),D=Array.from(t.zonesMap.value.entries()).flatMap(([w,b])=>b.disabled?[w]:[]),C=Array.from(t.elementsMap.value.entries()).flatMap(([w,b])=>b.disabled?[w]:[]),z=M.find(w=>{if(!t.visibleZones.value.has(w))return!1;const b=t.zonesMap.value.get(w);return!(!b||b.disabled||D.some(K=>w===K||I(w,K))||E.some(K=>K&&(K===b.node||I(b.node,K)))||b.groups.length&&!!Array.from(t.draggingElements.value.values()).some(U=>U.groups.length?!U.groups.some(B=>b.groups.includes(B)):!1))});return z?{element:M.filter(w=>{if(!t.visibleElements.value.has(w)||!t.elementsMap.value.has(w))return!1;const b=t.elementsMap.value.get(w);if(b!=null&&b.disabled)return!1;const _=D.some(B=>w===B||I(w,B)),K=C.some(B=>w===B||I(w,B));return _||K?!1:!Array.from(t.draggingElements.value.values()).some(B=>B.groups.length?!B.groups.some(X=>{var H;return(H=t.elementsMap.value.get(w))==null?void 0:H.groups.includes(X)}):!1)}).find(w=>E.some(_=>_&&(_===w||I(w,_)||I(_,w)))?!1:w===z||I(w,z))||null,zone:z}:{element:null,zone:null}},a=((O=e==null?void 0:e.sensor)==null?void 0:O.setup)||ce,d=P=>{var z,N,F,w,b,_,K,U,B,X,H,j;const M=t.hovered.element.value,E=t.hovered.zone.value,D=P.element,C=P.zone;t.hovered.element.value=D,t.hovered.zone.value=C,M!==D&&(M&&((F=(N=(z=t.elementsMap.value.get(M))==null?void 0:z.events)==null?void 0:N.onLeave)==null||F.call(N,t,V(t))),D&&((_=(b=(w=t.elementsMap.value.get(D))==null?void 0:w.events)==null?void 0:b.onHover)==null||_.call(b,t,V(t)))),E!==C&&(E&&((B=(U=(K=t.zonesMap.value.get(E))==null?void 0:K.events)==null?void 0:U.onLeave)==null||B.call(U,t,V(t))),C&&((j=(H=(X=t.zonesMap.value.get(C))==null?void 0:X.events)==null?void 0:H.onHover)==null||j.call(H,t,V(t))))},c=q.useThrottleFn(()=>{const P=a(t),M=g(P);d(M)},((k=e==null?void 0:e.sensor)==null?void 0:k.throttle)??0),p=()=>{c(),v=requestAnimationFrame(p)},y=()=>p(),h=()=>{v!==null&&(o(),i(),cancelAnimationFrame(v),v=null)};return{activate:P=>{t.draggingElements.value=f(n.value),t.draggingElements.value.forEach(M=>{var E,D;return(D=(E=M.events).onStart)==null?void 0:D.call(E,t,V(t))}),P instanceof PointerEvent?l(P):u(P),y()},track:P=>{t.draggingElements.value.forEach(M=>{var E,D;return(D=(E=M.events).onMove)==null?void 0:D.call(E,t,V(t))}),P instanceof KeyboardEvent?m():s(P)},deactivate:async(P=!0)=>{var M,E;if(t.hovered.zone.value){const D=t.zonesMap.value.get(t.hovered.zone.value),C=(E=D==null?void 0:(M=D.events).onDrop)==null?void 0:E.call(M,t,V(t));if(C instanceof Promise)try{t.isPending.value=!0;const z=await C;return z&&(P&&t.selectedElements.value.clear(),t.draggingElements.value.clear(),t.hovered.zone.value=null,t.hovered.element.value=null,h()),z}catch{return!1}finally{t.isPending.value=!1}else P&&t.selectedElements.value.clear(),t.draggingElements.value.clear(),t.hovered.zone.value=null,t.hovered.element.value=null,h()}else t.draggingElements.value.forEach(D=>{var C,z;return(z=(C=D.events).onEnd)==null?void 0:z.call(C,t,V(t))}),P&&t.selectedElements.value.clear(),t.draggingElements.value.clear(),t.hovered.zone.value=null,t.hovered.element.value=null,h()}}},ge=q.createGlobalState(()=>{let n="",e="",t="",l=null,s=null,o=null,u=null,m=null;const{activeContainer:i,isPending:v,elementsMap:f}=T(),g=()=>{const p=document.body;n=p.style.userSelect,p.style.userSelect="none",window.addEventListener("contextmenu",R),window.addEventListener("selectstart",R),window.addEventListener("touchstart",R),window.addEventListener("touchmove",R)},a=()=>{const p=document.body;p.style.userSelect=n,p.style.touchAction=e,p.style.overscrollBehavior=t,window.removeEventListener("contextmenu",R),window.removeEventListener("selectstart",R),window.removeEventListener("touchstart",R),window.removeEventListener("touchmove",R)},d=()=>{l&&(document.removeEventListener("pointermove",l),l=null),s&&(document.removeEventListener("pointerup",s),s=null),o&&(o=null),u&&(document.removeEventListener("wheel",u),u=null),m&&(document.removeEventListener("keydown",m),document.removeEventListener("keypress",m),document.removeEventListener("keyup",m),m=null)};return{handleDragStart:(p,y,h)=>{if(!y.value||v.value)return;const A=f.value.get(y.value);if(A!=null&&A.disabled)return;d(),p.target.blur(),h!=null&&h.container&&(i.component.value=h.container),h!=null&&h.containerProps&&(i.props.value=h.containerProps);const{activate:L,track:S,deactivate:O}=fe(y,h);s=()=>{O(!0).then(k=>{k!==!1&&(i.component.value=null,a(),O(!0),d())})},o=()=>{i.component.value=null,a(),O(!1),d()},l=k=>S(k),u=k=>S(k),m=k=>{k.type==="keyup"&&(k.code==="Escape"&&(o==null||o()),k.code==="Enter"&&(s==null||s())),S(k)},g(),L(p),document.addEventListener("pointermove",l),document.addEventListener("pointerup",s),document.addEventListener("wheel",u),document.addEventListener("keydown",m),document.addEventListener("keypress",m),document.addEventListener("keyup",m)}}}),me=n=>{const{id:e,elementRef:t,isDragging:l,isOvered:s,isAllowed:o,isLazyAllowed:u,registerElement:m,unregisterElement:i}=ie(n),{pointerPosition:v}=T(),{handleDragStart:f}=ge(),g=a=>f(a,t,n);return r.onMounted(m),r.onBeforeUnmount(i),{pointerPosition:v,elementRef:t,isDragging:l,isOvered:s,isAllowed:o,isLazyAllowed:u,handleDragStart:g,id:e}},pe=n=>{const{zonesMap:e,hovered:t,draggingElements:l,isDragging:s,handleDropZoneIntersection:o}=T(),u=r.ref(null),m=r.computed(()=>t.zone.value===u.value),i=r.computed(()=>{if(!u.value||!s.value)return!1;const a=e.value.get(u.value);return a!=null&&a.groups.length?!Array.from(l.value.values()).some(d=>d.groups.length?!d.groups.some(c=>a.groups.includes(c)):!1):!0}),v=r.computed(()=>{if(!u.value||!s.value||t.zone.value!==u.value)return!1;const a=e.value.get(u.value);return a!=null&&a.groups.length?!Array.from(l.value.values()).some(d=>!d.groups.some(c=>a.groups.includes(c))):!0});return{elementRef:u,registerZone:()=>{if(!u.value)throw new Error("elementRef is not set");o("add",u.value),e.value.set(u.value,{node:u.value,groups:(n==null?void 0:n.groups)??[],events:(n==null?void 0:n.events)??{},data:(n==null?void 0:n.data)??void 0,disabled:(n==null?void 0:n.disabled)??!1}),u.value.setAttribute("data-dnd-droppable","true")},unregisterZone:()=>{u.value&&(o("remove",u.value),e.value.delete(u.value))},isOvered:m,isAllowed:i,isLazyAllowed:v}},he=n=>{const{elementRef:e,registerZone:t,unregisterZone:l,isOvered:s,isAllowed:o,isLazyAllowed:u}=pe(n);return r.onMounted(t),r.onBeforeUnmount(l),{elementRef:e,isOvered:s,isAllowed:o,isLazyAllowed:u}},ye=n=>{const{selectedElements:e,elementsMap:t}=T(),l=r.computed(()=>n.value?e.value.has(n.value):!1),s=r.computed(()=>{if(!n.value)return!1;for(const v of e.value)if(v&&I(v,n.value))return!0;return!1}),o=r.computed(()=>{if(!n.value)return!1;for(const v of e.value)if(v&&I(n.value,v))return!0;return!1}),u=()=>{n.value&&e.value.delete(n.value)},m=()=>{if(!(!n.value||!t.value.get(n.value))){if(s.value)for(const f of e.value)f&&I(f,n.value)&&e.value.delete(f);if(o.value)for(const f of e.value)f&&I(n.value,f)&&e.value.delete(f);e.value.add(n.value)}};return{handleUnselect:u,handleSelect:m,handleToggleSelect:()=>{n.value&&(e.value.has(n.value)?u():m())},isSelected:l,isParentOfSelected:s}};exports.DnDOperations=G;exports.default=oe;exports.getBoundingBox=Y;exports.useDnDStore=T;exports.useDragContainer=ne;exports.useDraggable=me;exports.useDroppable=he;exports.useSelection=ye;
|
|
2
|
-
//# sourceMappingURL=vue-dnd-kit-core.cjs.js.map
|
|
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}")),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 l=require("vue"),x={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},I={SELECT_AREA:`[${x.SELECT_AREA}]`,DRAGGABLE:`[${x.DRAGGABLE}]`,CONSTRAINT_AREA:`[${x.CONSTRAINT_AREA}]`},ee="VueDnDKitProvider",oe=(e,t,n,o)=>{const s=new Set;return t.forEach(i=>{const r=e.get(i),a=o?o(i):r?.disabled;if(!r||a)return;const c=r.modifier?.keys,g=r.modifier?.method;if(!c||!g||c.length===0){s.add(i);return}c[g](u=>n.value.has(u))&&s.add(i)}),s};let de="",Ee="",Ae="";const h=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,O=(e,t)=>e!==t&&e.contains(t),xe=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),j=()=>{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)},W=()=>{const e=document.body;e.style.userSelect=de,e.style.touchAction=Ee,e.style.overscrollBehavior=Ae,window.removeEventListener("contextmenu",D),window.removeEventListener("selectstart",D),window.removeEventListener("touchstart",D),window.removeEventListener("touchmove",D)},D=e=>e.preventDefault(),k=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const[o,s]of t.entities.draggableMap)if(s.disabled&&O(o,e))return!0;return!1},T=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const[o,s]of t.entities.droppableMap)if(s.disabled&&O(o,e))return!0;return!1},te=(e,t)=>!e.length||!t.length?!0:e.some(n=>t.includes(n));function ke(e,t,n,o){const s=new Set;for(const a of t.keys()){const c=n.get(a);for(const g of c?.groups??[])s.add(g)}const i=[...s],r=new Set;for(const a of e){const g=o.get(a)?.groups??[];te(i,g)&&r.add(a)}return r}function Ce(e,t,n){const o=new Set;for(const r of t.keys()){const a=n.get(r);for(const c of a?.groups??[])o.add(c)}const s=[...o],i=new Set;for(const r of e){const c=n.get(r)?.groups??[];te(s,c)&&i.add(r)}return i}const $=e=>{const t=new IntersectionObserver(n=>{n.forEach(o=>{const s=o.target;e[o.isIntersecting?"add":"delete"](s)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},Le=e=>{const t=new ResizeObserver(n=>{const o=n[0];if(!o)return;const{width:s,height:i}=o.contentRect;e.value={width:s,height:i}});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},Be=e=>{const t=l.ref(null),n=Le(t),o=l.watch(e,i=>{n.disconnect(),i&&n.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{o(),n.disconnect()}}}};function J(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function me(e,t){const n=t.getBoundingClientRect(),o=n.width>0?(e.clientX-n.left)/n.width:.5,s=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:o,y:s}}function ye(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Re(e,t,n){e.forEach(o=>{const s=t.get(o);n.set(o,ye(o,s))}),e.clear()}function Pe(e,t,n){n.clear();const o=t.get(e);n.set(e,ye(e,o))}function H(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Te(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Te(e,t,n,o){t.has(e)?Re(t,n,o):(t.clear(),Pe(e,n,o))}function be(e,t,n,o){if(o||!n)return!0;const s=e.closest(n);return s?t.contains(s):!1}function Oe(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),o=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const g=Math.sqrt(n*n+o*o);return Math.min(g/t,1)}const{x:s=0,y:i=0,condition:r="any"}=t;if(s===0&&i===0)return 1;const a=s>0?Math.min(n/s,1):1,c=i>0?Math.min(o/i,1):1;return r==="both"?Math.min(a,c):Math.max(a,c)}function pe(e,t,n){if(!n)return!0;const o=n.distance!=null,s=n.delay!=null;return!o&&!s?!0:o&&!s?e>=1:!o&&s?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function ze(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return pe(e.distanceProgress.value,e.delay.progress,t?.activation)?(H(e),!0):!1}function Fe(e,t){let n=null;const o=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const s=e.entities.draggableMap.get(e.entities.initiatingDraggable),i=s?.activation?.delay;if(!i){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*1e3),1),pe(e.distanceProgress.value,e.delay.progress,s?.activation)?(t(),n=null):n=requestAnimationFrame(o)};return n=requestAnimationFrame(o),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function _e(e,t){const n=e.closest(I.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function Ge(e,t,n,o){return n==="x"?{x:e,y:o.top}:n==="y"?{x:o.left,y:t}:{x:e,y:t}}function Ie(e,t,n,o,s){let i=e,r=t;return n!=="y"&&(i=Math.max(o.left,Math.min(o.right-s.width,e))),n!=="x"&&(r=Math.max(o.top,Math.min(o.bottom-s.height,t))),{x:i,y:r}}function Ke(e,t,n,o,s){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),r=i.width||s?.width||0,a=i.height||s?.height||0;let c=e.current.x-r*e.offset.x,g=e.current.y-a*e.offset.y;if(!n)return{x:c,y:g};const m=_e(n,o);if(!m)return{x:c,y:g};const{element:u,entity:f}=m,d=u.getBoundingClientRect(),y=n.getBoundingClientRect(),b=Ge(c,g,f.axis||"both",y);return f.restrictToArea?Ie(b.x,b.y,f.axis||"both",d,i):b}const _={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function He(e,t){const n=l.shallowRef(),o=l.ref(),i={keys:{pressedKeys:l.ref(new Set),forDrag:[..._.forDrag],forCancel:[..._.forCancel],forDrop:[..._.forDrop],forMove:[..._.forMove],forMoveFaster:[..._.forMoveFaster]},step:8,moveFaster:4},r=l.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:l.computed(()=>n.value?ke(r.visibleDroppableSet,r.draggingMap,r.draggableMap,r.droppableMap):new Set),allowedDraggableSet:l.computed(()=>n.value?Ce(r.visibleDraggableSet,r.draggingMap,r.draggableMap):new Set),modifiersSelectableAreaSet:l.computed(()=>oe(r.selectableAreaMap,r.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:l.computed(()=>oe(r.draggableMap,r.visibleDraggableSet,i.keys.pressedKeys,v=>k(v,{entities:r}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),a=l.reactive({draggable:new Map,droppable:new Map}),c={throttle:l.shallowRef(0)},g=l.reactive({x:window.scrollX,y:window.scrollY}),m=l.reactive({progress:0,startTime:0}),u=l.computed(()=>{if(!o.value||!r.initiatingDraggable)return 0;const v=r.draggableMap.get(r.initiatingDraggable)?.activation?.distance;return v?Oe(o.value,v):1}),f=$(r.visibleDraggableSet),d=$(r.visibleDroppableSet),y=$(r.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:C}=Be(e),S=l.ref(),z=l.computed(()=>{const p=r.initiatingDraggable;return Ke(o.value,e.value,p||null,r.constraintsAreaMap,b.value)}),E=l.computed({get:()=>t?.overlayTo,set:p=>E.value=p}),K=l.computed(()=>t?.autoScrollViewport);return{state:n,pointer:o,entities:r,keyboard:i,scrollPosition:g,delay:m,distanceProgress:u,hovered:a,collision:c,overlay:{size:b,position:z,render:S,ref:e,to:E},lib:{draggableObserver:f,droppableObserver:d,selectableAreaObserver:y,overlaySizeObserver:C},autoScrollViewport:K}}const N=e=>{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()},Ne=e=>{const t=e.entities.initiatingDraggable;if(!t)return;const o=e.entities.draggableMap.get(t)?.payload;if(!o)return;const s=o();if(!Array.isArray(s)||s.length<2)return;const[i,r,a]=s;return{index:Number(i),items:Array.isArray(r)?r:[],dropData:a}},Ue=(e,t)=>{const o=e.entities.droppableMap.get(t)?.payload;if(!o)return;const s=o();if(!Array.isArray(s)||s.length<1)return;const[i,r]=s;return{items:Array.isArray(i)?i:[],userData:r}},R=e=>e.keys().next().value,Ye=e=>e.target.closest(I.DRAGGABLE),M=(e,t)=>{const n={payload:Ne(e),provider:e};return t&&(n.dropZonePayload=Ue(e,t)),n},V=(e,t,n)=>{const o=Ye(t);if(!o||!e.entities.draggingMap.has(o))return;const s=M(e);e.entities.draggingMap.get(o)?.events?.[n]?.(s)},P=(e,t,n)=>{if(!t||k(t,e))return;const o=M(e);e.entities.draggableMap.get(t)?.events?.[n]?.(o)},w=(e,t)=>{const n=M(e);e.entities.draggableMap.forEach((o,s)=>{k(s,e)||o.events?.[t]?.(n)})},Xe=(e,t,n)=>{if(t!==n){if(t&&!T(t,e)){const o=M(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(o)}if(n&&!T(n,e)){const o=M(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(o)}}},Ze=(e,t,n)=>{if(t!==n){const o=M(e);t&&!k(t,e)&&e.entities.draggableMap.get(t)?.events?.onLeave?.(o),n&&!k(n,e)&&e.entities.draggableMap.get(n)?.events?.onHover?.(o)}},$e=(e,t)=>{const n=R(t.droppable);if(n&&!T(n,e)){const o=M(e,n);e.entities.droppableMap.get(n)?.events?.onLeave?.(o)}},he=(e,t)=>{const n=R(t.droppable);if(n&&!T(n,e)){const o=M(e,n);e.entities.droppableMap.get(n)?.events?.onLeave?.(o)}},Ve=(e,t,n)=>{if(!n)return{};const o=n.getBoundingClientRect(),s=Math.max(o.left,Math.min(e.x,t.x)),i=Math.max(o.top,Math.min(e.y,t.y)),r=Math.min(o.right,Math.max(e.x,t.x)),a=Math.min(o.bottom,Math.max(e.y,t.y)),c=Math.max(0,r-s),g=Math.max(0,a-i);return{left:`${s}px`,top:`${i}px`,width:`${c}px`,height:`${g}px`,position:"fixed",pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},qe=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=je(e.pointer.value.start,e.pointer.value.current),o=e.entities.selectableAreaMap.get(t)?.groups??[];e.entities.visibleDraggableSet.forEach(s=>{if(!t.contains(s))return;if(k(s,e)){e.entities.selectedSet.delete(s);return}const r=e.entities.draggableMap.get(s)?.groups??[];if(!te(o,r)){e.entities.selectedSet.delete(s);return}xe(n,s.getBoundingClientRect())?e.entities.selectedSet.add(s):e.entities.selectedSet.delete(s)})},je=(e,t)=>{const n=Math.min(e.x,t.x),o=Math.min(e.y,t.y),s=Math.max(e.x,t.x),i=Math.max(e.y,t.y),r=s-n,a=i-o;return new DOMRect(n,o,r,a)},We=(e,t,n=5)=>{const o=n/2;return{left:e-o,top:t-o,width:n,height:n}},Je=e=>{const t=e.pointer.value?.current,n=t?.x??0,o=t?.y??0;return We(n,o,5)},B=(e,t,n)=>{const o=e.left+e.width/2,s=e.top+e.height/2;if(n){const a=n.top??0,c=n.right??0,g=n.bottom??0,m=n.left??0,u=t.left+m,f=t.right-c,d=t.top+a,y=t.bottom-g;if(u<f&&d<y&&o>=u&&o<=f&&s>=d&&s<=y)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=t.left+t.width/2,r=t.top+t.height/2;return{top:s<r,bottom:s>r,left:o<i,right:o>i,center:!1}},Qe=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),G=(e,t)=>{const n=Qe(t);return Math.hypot(e.x-n.x,e.y-n.y)},et=(e,t)=>e.find(n=>n!==t&&O(t,n)),Q=(e,t,n)=>{const o=R(t.droppable),s=R(t.draggable);t.draggable.clear(),t.droppable.clear();const i=Je(e),r=n.zones[0],a=n.elements[0];if(r&&a&&r===a&&e.entities.droppableMap.has(r)&&r){const u=r.getBoundingClientRect(),f=e.entities.draggableMap.get(r)?.placementMargins,d=B(i,u,f);if(d.center){t.droppable.set(r,d);const y=et(n.elements,r);if(y){const b=y.getBoundingClientRect();t.draggable.set(y,B(i,b,void 0))}}else t.draggable.set(a,d)}else{if(r){const u=r.getBoundingClientRect();t.droppable.set(r,B(i,u))}if(a)if(r)if(O(r,a)){const u=a.getBoundingClientRect(),f=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,B(i,u,f))}else{const u=e.pointer.value?.current??{x:0,y:0},f=r.getBoundingClientRect(),d=a.getBoundingClientRect(),y=G(u,f);if(G(u,d)<y){t.droppable.clear();const C=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,B(i,d,C))}}else{const u=a.getBoundingClientRect(),f=e.entities.draggableMap.get(a)?.placementMargins;t.draggable.set(a,B(i,u,f))}}const g=R(t.droppable),m=R(t.draggable);Xe(e,o,g),Ze(e,s,m)},tt=(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,se=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}},re=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),nt=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),ot=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),s=n*o,i=e.width*e.height,r=t.width*t.height;return i===0||r===0?0:(s/i*100+s/r*100)/2},st=(e,t,n)=>t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height,ie=()=>!0,ae=()=>0,rt="separate",it=()=>{const e={filterElements:ie,filterZones:ie,sortElements:ae,sortZones:ae,mergeStrategy:rt,pickClosestBetweenFirst:!1},t=(o,s,i,r,a,c,g)=>{const m=new Set(r),u={containerBox:s,pointer:i},f=[...r].filter(d=>a(d,o)).map(d=>{const y=se(d);if(!g(y,u))return null;let b=0;for(const S of m)S!==d&&O(S,d)&&b++;const C=ot(y,s);return{node:d,box:y,meta:{isPointerInElement:st(y,i.x,i.y),overlapPercent:C,depth:b,centerDistance:nt(re(s),re(y))}}}).filter(d=>d!==null);if(e.minOverlapPercent!==void 0){const d=e.minOverlapPercent,y=f.filter(b=>b.meta.overlapPercent>=d);f.length=0,f.push(...y)}return f.sort((d,y)=>c(d,y,u)),f.map(d=>d.node)},n={container(o){return e.container=o,n},containerBox(o){return e.containerBox=o,n},elements(o){return e.elements=o,n},zones(o){return e.zones=o,n},filterElements(o){return e.filterElements=o,n},filterZones(o){return e.filterZones=o,n},collision(o){return e.collision=o,n},sortElements(o){return e.sortElements=o,n},sortZones(o){return e.sortZones=o,n},mergeStrategy(o){return e.mergeStrategy=o,n},pickClosestBetweenFirst(o){return e.pickClosestBetweenFirst=o,n},minOverlapPercent(o){return e.minOverlapPercent=o,n},build(){const o=e;if(!o.container||!o.elements||!o.zones||!o.collision)throw new Error("sensor: container, elements, zones, collision are required");return s=>{const i=o.container(s);if(!i)return{elements:[],zones:[]};const r=o.containerBox?o.containerBox(s):se(i),a=s.pointer.value?.current??{x:0,y:0},c=t(s,r,a,o.elements(s),o.filterElements,o.sortElements,o.collision),g=t(s,r,a,o.zones(s),o.filterZones,o.sortZones,o.collision);if(o.mergeStrategy==="unified-closest"){const m=[...c.map(f=>({node:f,isZone:!1,distance:0})),...g.map(f=>({node:f,isZone:!0,distance:0}))];if(m.length===0)return{elements:[],zones:[]};for(const f of m){const d=f.node.getBoundingClientRect();f.distance=G(a,d)}const u=m.reduce((f,d)=>d.distance<f.distance?d:f);return u.isZone?{elements:[],zones:[u.node]}:{elements:[u.node],zones:[]}}if(o.pickClosestBetweenFirst&&c[0]&&g[0]){const m=G(a,g[0].getBoundingClientRect());return G(a,c[0].getBoundingClientRect())<m?{elements:c,zones:[]}:{elements:[],zones:g}}return{elements:c,zones:g}}}};return n},De=()=>it(),at=e=>e.overlay.ref?.value??null,lt=e=>{const t=e.overlay.position?.value??{x:0,y:0},n=e.overlay.size?.value??null,{x:o,y:s}=t,i=n?.width??0,r=n?.height??0;return{x:o,y:s,width:i,height:r,top:s,left:o,right:o+i,bottom:s+r}},ct=e=>e.entities.allowedDraggableSet,ut=e=>e.entities.allowedDroppableSet,gt=(e,t)=>!t.entities.draggingMap.has(e),ft=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>O(n,e)),dt=(e,t)=>t.entities.draggableMap.has(e)?!k(e,t):t.entities.droppableMap.has(e)?!T(e,t):!0,le=(e,t)=>gt(e,t)&&ft(e,t)&&dt(e,t),mt=(e,t)=>tt(e,t.containerBox),ce=(e,t,n)=>{if(n.pointer.x>=n.containerBox.x&&n.pointer.x<=n.containerBox.x+n.containerBox.width&&n.pointer.y>=n.containerBox.y&&n.pointer.y<=n.containerBox.y+n.containerBox.height){if(e.meta.isPointerInElement&&t.meta.isPointerInElement)return t.meta.depth-e.meta.depth;if(e.meta.isPointerInElement!==t.meta.isPointerInElement)return e.meta.isPointerInElement?-1:1}return Math.abs(e.meta.overlapPercent-t.meta.overlapPercent)<=1?e.meta.centerDistance-t.meta.centerDistance:t.meta.overlapPercent-e.meta.overlapPercent},U=De().container(at).containerBox(lt).elements(ct).zones(ut).filterElements(le).filterZones(le).collision(mt).minOverlapPercent(10).sortElements(ce).sortZones(ce).build();function ue(e){const n=(e.collision?.run??U)(e);Q(e,e.hovered,n)}function yt(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){ue(e);return}const o=Date.now();o-t.value>=n&&(t.value=o,ue(e))}async function Se(e){const t=e.hovered.droppable.keys().next().value;if(!t||T(t,e))return!0;const n=e.entities.droppableMap.get(t),o=M(e,t),s=n?.events?.onDrop?.(o);if(s!=null&&typeof s.then=="function")try{return await s,!0}catch{const r=e.entities.initiatingDraggable;return P(e,r,"onSelfDragCancel"),w(e,"onDragCancel"),he(e,e.hovered),!1}return!0}function ve(e){const t=e.entities.initiatingDraggable;P(e,t,"onSelfDragEnd"),w(e,"onDragEnd"),$e(e,e.hovered)}function bt(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),o=[...e.entities.selectedSet];n?.events?.onSelected?.(o)}const pt=e=>{const t={current:null},n={value:0},o=async()=>{W(),t.current?.cancel(),t.current=null;const a=e.state.value;if(a==="dragging"){if(!await Se(e)){N(e),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",s);return}ve(e)}else a==="selecting"&&bt(e);N(e),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",s)},s=a=>{if(e.pointer.value){if(e.pointer.value.current={x:a.clientX,y:a.clientY},ze(e)){V(e,a,"onSelfDragStart"),w(e,"onDragStart");return}if(e.state.value==="dragging"){yt(e,n);const c=e.entities.initiatingDraggable;P(e,c,"onSelfDragMove"),w(e,"onDragMove")}e.state.value==="selecting"&&qe(e)}};return{pointerDown:a=>{document.addEventListener("pointerup",o),document.addEventListener("pointermove",s);const c=a.target,g=c.closest(I.SELECT_AREA),m=c.closest(I.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(g)){j(),e.pointer.value=J(a),e.state.value="selecting",e.entities.selectingArea=g;return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(m)){const u=e.entities.draggableMap.get(m);if(!be(c,m,u?.dragHandle))return;j(),e.entities.initiatingDraggable=m;const f=me(a,m);e.pointer.value=J(a,f.x,f.y),u?.activation?.distance||u?.activation?.delay?(e.state.value="activating",u?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Fe(e,()=>{H(e),V(e,a,"onSelfDragStart"),w(e,"onDragStart")}))):(H(e),V(e,a,"onSelfDragStart"),w(e,"onDragStart"))}},pointerUp:o,pointerMove:s,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",o),document.removeEventListener("pointermove",s),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},ht={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}},Dt=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),W(),P(e,e.entities.initiatingDraggable,"onSelfDragCancel"),w(e,"onDragCancel"),he(e,e.hovered),N(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Se(e)&&ve(e),W(),N(e)))();return}const s=ht[t.code];if(s&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=n.forMoveFaster.some(g=>n.pressedKeys.value.has(g)),r=e.keyboard.step*(i?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+s.dx*r,y:e.pointer.value.current.y+s.dy*r};const c=(e.collision?.run??U)(e);Q(e,e.hovered,c),P(e,e.entities.initiatingDraggable,"onSelfDragMove"),w(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const s=document.activeElement;if(!s)return;const i=s.closest(I.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const r=e.entities.draggableMap.get(i);if(!be(s,i,r?.dragHandle,!0))return;t.preventDefault(),j();const a=i.getBoundingClientRect(),c=a.left+a.width/2,g=a.top+a.height/2,m={clientX:c,clientY:g};e.entities.initiatingDraggable=i;const u=me(m,i);e.pointer.value=J(m,u.x,u.y),H(e);const d=(e.collision?.run??U)(e);Q(e,e.hovered,d),P(e,i,"onSelfDragStart"),w(e,"onDragStart")}},St=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},vt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},q={keyDown:Dt,keyUp:St,clear:vt},wt=e=>()=>{e.state.value&&(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY)},A=50,Mt=144,ge=1e3/Mt;function Et(e){return e==null?{top:A,right:A,bottom:A,left:A}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??A,right:e.right??A,bottom:e.bottom??A,left:e.left??A}}const At={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,rect:e.getBoundingClientRect()}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function we(e,t,n,o=At,s){const{speed:i=10,disabled:r=!1}=t,a=Et(t.threshold);let c=null,g=null,m=null,u=0,f=0;const d=S=>{s&&(s.value=S)},y=S=>{const z=e.value,E=n();if(!z||!E||r){d(!1);return}g||(g=S);const K=S-g;if(K<ge){c=requestAnimationFrame(y);return}const p=i*(K/ge);g=S;const{scrollTop:v,scrollLeft:F,rect:Me}=o.getScrollState(z);(!m||u!==v||f!==F)&&(m=Me,u=v,f=F);let L=!1,X=v,Z=F;a.top>0&&E.y-m.top<a.top?(X=v-p,L=!0):a.bottom>0&&m.bottom-E.y<a.bottom&&(X=v+p,L=!0),a.left>0&&E.x-m.left<a.left?(Z=F-p,L=!0):a.right>0&&m.right-E.x<a.right&&(Z=F+p,L=!0),L&&o.setScroll(z,X,Z),d(L),c=requestAnimationFrame(y)};return{run:()=>{g=null,c=requestAnimationFrame(y)},stop:()=>{c&&(cancelAnimationFrame(c),c=null),m=null,u=0,f=0,g=null,d(!1)}}}const xt={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft,rect:new DOMRect(0,0,window.innerWidth,window.innerHeight)}},setScroll(e,t,n){window.scrollTo(n,t)}},kt={get value(){return typeof document<"u"?document.documentElement:null}};function Ct(e,t){const n=l.shallowRef(!1),s=we(kt,t??{},()=>{if(e.state.value!=="dragging")return null;const a=e.overlay.position.value,c=e.overlay.size.value;return a?c?.width&&c?.height?{x:a.x+c.width/2,y:a.y+c.height/2}:a:null},xt,n),i=l.watch(()=>e.state.value,a=>{a==="dragging"?s.run():s.stop()}),r=()=>{i(),s.stop()};return l.onScopeDispose(r),{isScrolling:n,stop:r}}const Lt=e=>{const t=pt(e),n=q.keyDown(e),o=q.keyUp(e),s=q.clear(e),i=wt(e);let r=null;l.watch(e.autoScrollViewport,a=>{r?.(),r=null,(a===!0||a&&typeof a=="object")&&(r=Ct(e,a===!0?{}:a).stop)},{immediate:!0}),l.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",o),document.addEventListener("blur",s),document.addEventListener("scroll",i,!0)}),l.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",n),document.removeEventListener("keyup",o),document.removeEventListener("blur",s),document.removeEventListener("scroll",i,!0),r?.(),t.cleanup()})},Y=()=>{const e=l.inject(ee);if(!e)throw Error("DnD provider not found");return e},ne=()=>{const e=Y();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}},Bt=l.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:n,overlay:o}=ne();return(s,i)=>l.unref(n)==="dragging"?(l.openBlock(),l.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:l.normalizeStyle({"--position-x":l.unref(o).position.value.x+"px","--position-y":l.unref(o).position.value.y+"px"})},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(t).draggingMap,([r,a])=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.unref(t).draggableMap.get(r)?.render?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(l.unref(t).draggableMap.get(r)?.render),{key:0})):(l.openBlock(),l.createBlock(l.resolveDynamicComponent(r.tagName),{key:1,innerHTML:a.initialOuterHTML,style:l.normalizeStyle({width:a.initialRect.width+"px",height:a.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):l.createCommentVNode("",!0)}}),Rt=l.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]}},setup(e){const t=e,n=l.useTemplateRef("overlayRef"),o=He(n,t);Lt(o);const s=l.computed(()=>o.overlay.render.value??Bt);return l.provide(ee,o),(i,r)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.renderSlot(i.$slots,"default"),(l.openBlock(),l.createBlock(l.Teleport,{to:l.unref(o).overlay.to.value||"body"},[l.createElementVNode("div",{ref_key:"overlayRef",ref:n,class:"dnd-kit-overlay-container"},[l.renderSlot(i.$slots,"overlay",{overlay:s.value},()=>[(l.openBlock(),l.createBlock(l.resolveDynamicComponent(s.value)))])],512)],8,["to"]))],64))}});function Pt(e,t,n){const o=Y();let s,i,r;typeof t=="function"?(s={},i=t):(s=t??{},i=n);const a=l.computed({get(){const u=h(e);return u?o.entities.selectedSet.has(u):!1},set(u){const f=h(e);f&&o.entities.selectedSet[u?"add":"delete"](f)}}),c=l.computed(()=>{const u=h(e);return u?o.entities.draggingMap.has(u):!1}),g=l.computed(()=>{const u=h(e);return u?o.entities.allowedDraggableSet.has(u):!1}),m=l.computed(()=>{const u=h(e);return u?o.hovered.draggable.get(u):{bottom:!1,left:!1,right:!1,top:!1,center:!1}});return l.onMounted(()=>{r=h(e),r&&(r.addEventListener("dragstart",D),r.addEventListener("drag",D),r.addEventListener("dragend",D),r.setAttribute(x.DRAGGABLE,""),o.lib.draggableObserver.observe(r),o.entities.draggableMap.set(r,{render:s.render,disabled:s.disabled??!1,groups:s.groups??[],modifier:s.modifier,events:s.events,payload:i,dragHandle:s.dragHandle,activation:s.activation,placementMargins:s.placementMargins}))}),l.onBeforeUnmount(()=>{r&&(o.lib.draggableObserver.unobserve(r),o.entities.visibleDraggableSet.delete(r),o.entities.draggableMap.delete(r),o.entities.modifiersDraggableSet.delete(r))}),{selected:a,isDragging:c,isAllowed:g,isDragOver:m}}const Tt=(e,t)=>{const n=Y(),o=l.computed(()=>e.value===n.entities.selectingArea);let s=null;l.onMounted(()=>{s=h(e),s&&(s.setAttribute(x.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(s),n.entities.selectableAreaMap.set(s,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),l.onBeforeUnmount(()=>{s&&(n.lib.selectableAreaObserver.unobserve(s),n.entities.visibleSelectableAreaSet.delete(s),n.entities.modifiersSelectableAreaSet.delete(s),n.entities.selectableAreaMap.delete(s))});const i=l.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const r=n.pointer.value;return!r||n.state.value!=="selecting"||!s?{}:Ve(r.start,r.current,s)});return{isSelecting:o,style:i}};function Ot(e,t){const n=l.inject(ee);if(!n)throw Error("DnD provider not found");let o=null;return l.onMounted(()=>{o=h(e),o&&(o.setAttribute(x.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(o,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),l.onBeforeUnmount(()=>{o&&n.entities.constraintsAreaMap.delete(o)}),{}}function zt(e,t,n){const o=Y();let s=null,i,r;typeof t=="function"?(i={},r=t):(i=t??{},r=n);const a=l.computed(()=>{const g=h(e);return g?o.entities.allowedDroppableSet.has(g):!1}),c=l.computed(()=>{const g=h(e);return g?o.hovered.droppable.get(g):{bottom:!1,left:!1,right:!1,top:!1,center:!1}});return l.onMounted(()=>{s=h(e),s&&(s.setAttribute(x.DROPPABLE,""),o.lib.droppableObserver.observe(s),o.entities.droppableMap.set(s,{disabled:i.disabled??!1,groups:i.groups??[],events:i.events,payload:r}))}),l.onBeforeUnmount(()=>{s&&(o.lib.droppableObserver.unobserve(s),o.entities.visibleDroppableSet.delete(s),o.entities.droppableMap.delete(s))}),{isAllowed:a,isDragOver:c}}const Ft=(e,t)=>{const n=ne(),o=l.shallowRef(!1),i=we(e,t??{},()=>{if(n.state.value!=="dragging")return null;const r=n.overlay.position.value,a=n.overlay.size.value;return r?a?.width&&a?.height?{x:r.x+a.width/2,y:r.y+a.height/2}:r:null},void 0,o);return l.watch(()=>n.state.value,r=>{r==="dragging"?i.run():i.stop()}),{isScrolling:o}};function fe(e,t){return t<=0?e:Math.round(e/t)*t}function _t(e,t){const n=t&&"grid"in t&&t.grid!=null,o=t?n?t.grid:t.gridX:1,s=t?n?t.grid:t.gridY:1;return l.computed(()=>{const{x:i,y:r}=e.value;return{x:fe(i,o),y:fe(r,s)}})}exports.DnDProvider=Rt;exports.createSensor=De;exports.defaultCollisionDetection=U;exports.makeAutoScroll=Ft;exports.makeConstraintArea=Ot;exports.makeDraggable=Pt;exports.makeDroppable=zt;exports.makeSelectionArea=Tt;exports.makeSnappedOverlayPosition=_t;exports.useDnDProvider=ne;
|