@vue-dnd-kit/core 0.0.24-beta → 0.0.25-beta

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/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
+ import { default as DnDContext } from './components/DnDContext';
1
2
  import { default as DragOverlay } from './components/DragOverlay';
2
3
  import { useDnDStore } from './composables/useDnDStore';
3
4
  import { useDraggable } from './composables/useDraggable';
4
5
  import { useDroppable } from './composables/useDroppable';
5
6
  import { useSelection } from './composables/useSelection';
6
7
 
7
- export { DragOverlay, useDraggable, useDroppable, useDnDStore, useSelection };
8
+ export { DragOverlay, DnDContext, useDraggable, useDroppable, useDnDStore, useSelection, };
8
9
  export { getBoundingBox } from './utils/geometry';
9
10
  export type { IDnDStore, IActiveContainer, IBoundingBox, IDragElement, IDraggingElement, IDropZone, IPoint, IPointerPosition, IUseDragOptions, IUseDropOptions, } from './types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");let G=!1,R;const L=()=>(G||(R=n.effectScope(!0).run(()=>({isDragging:n.computed(()=>R.draggingElements.value.length>0),activeContainer:{component:n.ref(null),ref:n.ref(null)},elements:n.ref([]),draggingElements:n.ref([]),selectedElements:n.ref([]),zones:n.ref([]),hovered:{zone:n.ref(null),element:n.ref(null)},pointerPosition:{current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}}})),G=!0),R),W=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:u,isDragging:c,activeContainer:d}=L();return n.onMounted(()=>{d.ref=t}),n.onBeforeUnmount(()=>{d.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:u,isDragging:c}},b=["innerHTML"],ee=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:u,isDragging:c,draggingElements:d}=W(),r=n.computed(()=>{var s,m,h,y;return{transform:`translate3d(${(((s=u.current.value)==null?void 0:s.x)??0)-(((m=u.offset.pixel.value)==null?void 0:m.x)??0)}px, ${(((h=u.current.value)==null?void 0:h.y)??0)-(((y=u.offset.pixel.value)==null?void 0:y.y)??0)}px, 0)`,zIndex:1e3,position:"fixed",top:0,left:0,transition:"0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"}});return(s,m)=>n.unref(c)?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"elementRef",ref:e,style:n.normalizeStyle(r.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),(h,y)=>{var i,E;return n.openBlock(),n.createElementBlock("div",{key:y,innerHTML:h.initialHTML,style:n.normalizeStyle({width:`${(i=h.initialRect)==null?void 0:i.width}px`,height:`${(E=h.initialRect)==null?void 0:E.height}px`})},null,12,b)}),128))],4)):n.createCommentVNode("",!0)}}),te=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=L(),u=n.computed(()=>e.component.value??ee);return(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(u.value)))}}),ne="data-dnd-draggable",re=t=>{const{elements:e,draggingElements:u,hovered:c,selectedElements:d,isDragging:r}=L(),s=n.ref(null),m=n.computed(()=>{var p;return((p=c.element.value)==null?void 0:p.node)===s.value}),h=n.computed(()=>u.value.some(p=>p.node===s.value)),y=n.computed(()=>{if(!s.value||!r.value)return!1;const p=e.value.find(D=>D.node===s.value);return p!=null&&p.groups.length?!u.value.some(D=>D.groups.length?!D.groups.some(o=>p.groups.includes(o)):!1):!0});return{elementRef:s,registerElement:()=>{if(!s.value)throw new Error("ElementRef is not set");e.value.push({node:s.value,groups:(t==null?void 0:t.groups)??[],layer:(t==null?void 0:t.layer)??null,defaultLayer:(t==null?void 0:t.layer)??null,events:(t==null?void 0:t.events)??{},data:(t==null?void 0:t.data)??void 0}),s.value.setAttribute(ne,"true")},unregisterElement:()=>{const p=e.value.findIndex(o=>o.node===s.value);p!==-1&&e.value.splice(p,1);const D=d.value.findIndex(o=>o.node===s.value);D!==-1&&d.value.splice(D,1)},isDragging:h,isOvered:m,isAllowed:y}},oe=()=>{let t="",e="",u="";const c=()=>{const s=document.body;t=s.style.userSelect,e=s.style.touchAction,u=s.style.overscrollBehavior,s.style.userSelect="none",s.style.touchAction="none",s.style.overscrollBehavior="none",window.addEventListener("contextmenu",r),window.addEventListener("selectstart",r),window.addEventListener("touchstart",r),window.addEventListener("touchmove",r)},d=()=>{const s=document.body;s.style.userSelect=t,s.style.touchAction=e,s.style.overscrollBehavior=u,window.removeEventListener("contextmenu",r),window.removeEventListener("selectstart",r),window.removeEventListener("touchstart",r),window.removeEventListener("touchmove",r)},r=s=>s.preventDefault();return{disableInteractions:c,enableInteractions:d}},J=(t,e)=>t.x<e.x+e.width&&t.x+t.width>e.x&&t.y<e.y+e.height&&t.y+t.height>e.y,k=t=>{if(!t)return{x:0,y:0,width:0,height:0,bottom:0,left:0,right:0,top:0};const e=t.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}},U=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),le=(t,e)=>{const u=k(t);return{pixel:{x:e.x-u.x,y:e.y-u.y},percent:{x:(e.x-u.x)/u.width*100,y:(e.y-u.y)/u.height*100}}},K=(t,e)=>{const u=e.x-t.x,c=e.y-t.y;return Math.sqrt(u*u+c*c)},M=(t,e)=>t?e.contains(t):!1,ie=t=>{const e=L();return{onPointerStart:r=>{e.pointerPosition.start.value={x:r.clientX,y:r.clientY},e.pointerPosition.current.value={x:r.clientX,y:r.clientY};const{pixel:s,percent:m}=le(t.value,{x:r.clientX,y:r.clientY});e.pointerPosition.offset.pixel.value=s,e.pointerPosition.offset.percent.value=m},onPointerMove:r=>{e.pointerPosition.current.value={x:r.clientX,y:r.clientY}},onPointerEnd:()=>{e.pointerPosition.current.value=null,e.pointerPosition.start.value=null,e.pointerPosition.offset.pixel.value=null,e.pointerPosition.offset.percent.value=null}}},se=t=>{const e=L(),{onPointerStart:u,onPointerMove:c,onPointerEnd:d}=ie(t);let r=null;const s=o=>{var v,x;const g=e.selectedElements.value.some(P=>P.node===o);if(e.selectedElements.value.length&&g)return e.selectedElements.value.map(P=>{var C,H;return{...P,initialHTML:((C=P.node)==null?void 0:C.outerHTML)??"",initialRect:(H=P.node)==null?void 0:H.getBoundingClientRect()}});e.selectedElements.value=[];const f=e.elements.value.find(P=>P.node===o);return f?[{...f,initialHTML:((v=f.node)==null?void 0:v.outerHTML)??"",initialRect:(x=f.node)==null?void 0:x.getBoundingClientRect()}]:[]},m=(o,g)=>{const f=Math.max(0,Math.min(o.x+o.width,g.x+g.width)-Math.max(o.x,g.x)),v=Math.max(0,Math.min(o.y+o.height,g.y+g.height)-Math.max(o.y,g.y)),x=f*v,P=o.width*o.height,C=g.width*g.height;return(x/P*100+x/C*100)/2},h=()=>{var Z,A,X,Y,$,F,q,N,j,V;const o=k(e.activeContainer.ref.value),g=U(o),f=((Z=e.pointerPosition.current.value)==null?void 0:Z.x)??0,v=((A=e.pointerPosition.current.value)==null?void 0:A.y)??0,P=!(o&&f>=o.x&&f<=o.x+o.width&&v>=o.y&&v<=o.y+o.height),C=e.draggingElements.value.map(l=>l.node),H=e.elements.value.filter(l=>{if(!l.node||C.some(w=>w&&M(l.node,w))||l.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(I=>l.groups.includes(I)):!1))return!1;const a=k(l.node);return a&&o&&J(a,o)}).map(l=>{const a=k(l.node),w=U(a),S=f>=a.x&&f<=a.x+a.width&&v>=a.y&&v<=a.y+a.height,I=m(a,o),T=K(g,w),B=e.elements.value.filter(_=>_!==l&&_.node&&l.node&&M(l.node,_.node)).length;return{element:l,isPointerInElement:S,overlapPercent:I,depth:B,centerDistance:T}}).sort((l,a)=>{if(!P){if(l.isPointerInElement&&a.isPointerInElement)return a.depth-l.depth;if(l.isPointerInElement!==a.isPointerInElement)return l.isPointerInElement?-1:1}return Math.abs(l.overlapPercent-a.overlapPercent)<=1?l.centerDistance-a.centerDistance:a.overlapPercent-l.overlapPercent}),Q=e.zones.value.filter(l=>{if(!l.node||C.some(w=>w&&M(l.node,w))||l.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(I=>l.groups.includes(I)):!1))return!1;const a=k(l.node);return a&&o&&J(a,o)}).map(l=>{const a=k(l.node),w=U(a),S=f>=a.x&&f<=a.x+a.width&&v>=a.y&&v<=a.y+a.height,I=m(a,o),T=K(g,w),B=e.zones.value.filter(_=>_!==l&&_.node&&l.node&&M(l.node,_.node)).length;return{zone:l,isPointerInElement:S,overlapPercent:I,depth:B,centerDistance:T}}).sort((l,a)=>{if(!P){if(l.isPointerInElement&&a.isPointerInElement)return a.depth-l.depth;if(l.isPointerInElement!==a.isPointerInElement)return l.isPointerInElement?-1:1}return Math.abs(l.overlapPercent-a.overlapPercent)<=1?l.centerDistance-a.centerDistance:a.overlapPercent-l.overlapPercent}),O=e.hovered.element.value,z=e.hovered.zone.value;e.hovered.element.value=((X=H[0])==null?void 0:X.element)??null,e.hovered.zone.value=((Y=Q[0])==null?void 0:Y.zone)??null,e.hovered.element.value!==O&&(($=O==null?void 0:O.events)!=null&&$.onLeave&&O.events.onLeave(e),(q=(F=e.hovered.element.value)==null?void 0:F.events)!=null&&q.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==z&&((N=z==null?void 0:z.events)!=null&&N.onLeave&&z.events.onLeave(e),(V=(j=e.hovered.zone.value)==null?void 0:j.events)!=null&&V.onHover&&e.hovered.zone.value.events.onHover(e)),r=requestAnimationFrame(h)},y=()=>{h()},i=()=>{r!==null&&(cancelAnimationFrame(r),r=null)};return{activate:o=>{e.draggingElements.value=s(t.value),u(o),y()},track:o=>{c(o)},deactivate:()=>{var o,g;d(),e.hovered.zone.value?(g=(o=e.hovered.zone.value.events).onDrop)==null||g.call(o,e):e.draggingElements.value.forEach(f=>{var v,x;return(x=(v=f.events).onEnd)==null?void 0:x.call(v,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,i()}}},ae=t=>{const{elementRef:e,registerElement:u,unregisterElement:c,isDragging:d,isOvered:r,isAllowed:s}=re(t),{disableInteractions:m,enableInteractions:h}=oe(),y=L(),{activate:i,track:E,deactivate:p}=se(e),D=v=>{t!=null&&t.container&&(y.activeContainer.component.value=n.markRaw(t.container)),m(),i(v),document.addEventListener("pointermove",o),document.addEventListener("pointerup",f),document.addEventListener("wheel",g)},o=v=>{E(v)},g=v=>{E(v)},f=()=>{y.activeContainer.component.value=null,h(),p(),document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",f),document.removeEventListener("wheel",g)};return n.onMounted(u),n.onBeforeUnmount(c),{pointerPosition:y.pointerPosition,elementRef:e,isDragging:d,isOvered:r,isAllowed:s,handleDragStart:D}},ue=t=>{const{zones:e,hovered:u,draggingElements:c,isDragging:d}=L(),r=n.ref(null),s=n.computed(()=>{var i;return((i=u.zone.value)==null?void 0:i.node)===r.value}),m=n.computed(()=>{if(!r.value||!d.value)return!1;const i=e.value.find(E=>E.node===r.value);return i!=null&&i.groups.length?!c.value.some(E=>E.groups.length?!E.groups.some(p=>i.groups.includes(p)):!1):!0});return{elementRef:r,registerZone:()=>{if(!r.value)throw new Error("elementRef is not set");e.value.push({node:r.value,groups:(t==null?void 0:t.groups)??[],events:(t==null?void 0:t.events)??{},data:(t==null?void 0:t.data)??void 0}),r.value.setAttribute("data-dnd-droppable","true")},unregisterZone:()=>{if(!r.value)throw new Error("elementRef is not set");const i=e.value.findIndex(E=>E.node===r.value);i!==-1&&e.value.splice(i,1)},isOvered:s,isAllowed:m}},ce=t=>{const{elementRef:e,registerZone:u,unregisterZone:c,isOvered:d,isAllowed:r}=ue(t);return n.onMounted(u),n.onBeforeUnmount(c),{elementRef:e,isOvered:d,isAllowed:r}},de=t=>{const{selectedElements:e,elements:u}=L(),c=n.computed(()=>u.value.find(i=>i.node===t.value)),d=n.computed(()=>e.value.some(i=>i.node===t.value)),r=n.computed(()=>t.value?e.value.some(i=>i.node&&M(i.node,t.value)):!1),s=n.computed(()=>t.value?e.value.some(i=>i.node&&M(t.value,i.node)):!1),m=()=>{c.value&&(e.value=e.value.filter(i=>i.node!==t.value))},h=()=>{c.value&&(r.value&&(e.value=e.value.filter(i=>i.node&&!M(i.node,t.value))),s.value&&(e.value=e.value.filter(i=>i.node&&!M(t.value,i.node))),e.value.push(c.value))};return{handleUnselect:m,handleSelect:h,handleToggleSelect:()=>{c.value&&(e.value.some(i=>i.node===t.value)?m():h())},isSelected:d,isParentOfSelected:r}};exports.DragOverlay=te;exports.getBoundingBox=k;exports.useDnDStore=L;exports.useDraggable=ae;exports.useDroppable=ce;exports.useSelection=de;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");let G=!1,T;const S=()=>(G||(T=n.effectScope(!0).run(()=>({isDragging:n.computed(()=>T.draggingElements.value.length>0),activeContainer:{component:n.ref(null),ref:n.ref(null)},elements:n.ref([]),draggingElements:n.ref([]),selectedElements:n.ref([]),zones:n.ref([]),hovered:{zone:n.ref(null),element:n.ref(null)},pointerPosition:{current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}}})),G=!0),T),b=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:s,isDragging:c,activeContainer:d}=S();return n.onMounted(()=>{d.ref=t}),n.onBeforeUnmount(()=>{d.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:s,isDragging:c}},ee=["innerHTML"],te=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:s,isDragging:c,draggingElements:d}=b(),r=n.computed(()=>{var a,m,h,y;return{transform:`translate3d(${(((a=s.current.value)==null?void 0:a.x)??0)-(((m=s.offset.pixel.value)==null?void 0:m.x)??0)}px, ${(((h=s.current.value)==null?void 0:h.y)??0)-(((y=s.offset.pixel.value)==null?void 0:y.y)??0)}px, 0)`,zIndex:1e3,position:"fixed",top:0,left:0,transition:"0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"}});return(a,m)=>n.unref(c)?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"elementRef",ref:e,style:n.normalizeStyle(r.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(d),(h,y)=>{var i,E;return n.openBlock(),n.createElementBlock("div",{key:y,innerHTML:h.initialHTML,style:n.normalizeStyle({width:`${(i=h.initialRect)==null?void 0:i.width}px`,height:`${(E=h.initialRect)==null?void 0:E.height}px`})},null,12,ee)}),128))],4)):n.createCommentVNode("",!0)}}),Q=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=S(),s=n.computed(()=>e.component.value??te);return(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(s.value)))}}),ne=n.defineComponent({__name:"DnDContext",setup(t){const e=n.ref(null);return(s,c)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"contextRef",ref:e},[n.renderSlot(s.$slots,"default"),n.createVNode(Q)],512))}}),re="data-dnd-draggable",oe=t=>{const{elements:e,draggingElements:s,hovered:c,selectedElements:d,isDragging:r}=S(),a=n.ref(null),m=n.computed(()=>{var p;return((p=c.element.value)==null?void 0:p.node)===a.value}),h=n.computed(()=>s.value.some(p=>p.node===a.value)),y=n.computed(()=>{if(!a.value||!r.value)return!1;const p=e.value.find(D=>D.node===a.value);return p!=null&&p.groups.length?!s.value.some(D=>D.groups.length?!D.groups.some(o=>p.groups.includes(o)):!1):!0});return{elementRef:a,registerElement:()=>{if(!a.value)throw new Error("ElementRef is not set");e.value.push({node:a.value,groups:(t==null?void 0:t.groups)??[],layer:(t==null?void 0:t.layer)??null,defaultLayer:(t==null?void 0:t.layer)??null,events:(t==null?void 0:t.events)??{},data:(t==null?void 0:t.data)??void 0}),a.value.setAttribute(re,"true")},unregisterElement:()=>{const p=e.value.findIndex(o=>o.node===a.value);p!==-1&&e.value.splice(p,1);const D=d.value.findIndex(o=>o.node===a.value);D!==-1&&d.value.splice(D,1)},isDragging:h,isOvered:m,isAllowed:y}},le=()=>{let t="",e="",s="";const c=()=>{const a=document.body;t=a.style.userSelect,e=a.style.touchAction,s=a.style.overscrollBehavior,a.style.userSelect="none",a.style.touchAction="none",a.style.overscrollBehavior="none",window.addEventListener("contextmenu",r),window.addEventListener("selectstart",r),window.addEventListener("touchstart",r),window.addEventListener("touchmove",r)},d=()=>{const a=document.body;a.style.userSelect=t,a.style.touchAction=e,a.style.overscrollBehavior=s,window.removeEventListener("contextmenu",r),window.removeEventListener("selectstart",r),window.removeEventListener("touchstart",r),window.removeEventListener("touchmove",r)},r=a=>a.preventDefault();return{disableInteractions:c,enableInteractions:d}},J=(t,e)=>t.x<e.x+e.width&&t.x+t.width>e.x&&t.y<e.y+e.height&&t.y+t.height>e.y,k=t=>{if(!t)return{x:0,y:0,width:0,height:0,bottom:0,left:0,right:0,top:0};const e=t.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}},$=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),ie=(t,e)=>{const s=k(t);return{pixel:{x:e.x-s.x,y:e.y-s.y},percent:{x:(e.x-s.x)/s.width*100,y:(e.y-s.y)/s.height*100}}},K=(t,e)=>{const s=e.x-t.x,c=e.y-t.y;return Math.sqrt(s*s+c*c)},L=(t,e)=>t?e.contains(t):!1,se=t=>{const e=S();return{onPointerStart:r=>{e.pointerPosition.start.value={x:r.clientX,y:r.clientY},e.pointerPosition.current.value={x:r.clientX,y:r.clientY};const{pixel:a,percent:m}=ie(t.value,{x:r.clientX,y:r.clientY});e.pointerPosition.offset.pixel.value=a,e.pointerPosition.offset.percent.value=m},onPointerMove:r=>{e.pointerPosition.current.value={x:r.clientX,y:r.clientY}},onPointerEnd:()=>{e.pointerPosition.current.value=null,e.pointerPosition.start.value=null,e.pointerPosition.offset.pixel.value=null,e.pointerPosition.offset.percent.value=null}}},ae=t=>{const e=S(),{onPointerStart:s,onPointerMove:c,onPointerEnd:d}=se(t);let r=null;const a=o=>{var v,x;const g=e.selectedElements.value.some(P=>P.node===o);if(e.selectedElements.value.length&&g)return e.selectedElements.value.map(P=>{var M,B;return{...P,initialHTML:((M=P.node)==null?void 0:M.outerHTML)??"",initialRect:(B=P.node)==null?void 0:B.getBoundingClientRect()}});e.selectedElements.value=[];const f=e.elements.value.find(P=>P.node===o);return f?[{...f,initialHTML:((v=f.node)==null?void 0:v.outerHTML)??"",initialRect:(x=f.node)==null?void 0:x.getBoundingClientRect()}]:[]},m=(o,g)=>{const f=Math.max(0,Math.min(o.x+o.width,g.x+g.width)-Math.max(o.x,g.x)),v=Math.max(0,Math.min(o.y+o.height,g.y+g.height)-Math.max(o.y,g.y)),x=f*v,P=o.width*o.height,M=g.width*g.height;return(x/P*100+x/M*100)/2},h=()=>{var U,Z,A,X,Y,F,q,N,V,j;const o=k(e.activeContainer.ref.value),g=$(o),f=((U=e.pointerPosition.current.value)==null?void 0:U.x)??0,v=((Z=e.pointerPosition.current.value)==null?void 0:Z.y)??0,P=!(o&&f>=o.x&&f<=o.x+o.width&&v>=o.y&&v<=o.y+o.height),M=e.draggingElements.value.map(l=>l.node),B=e.elements.value.filter(l=>{if(!l.node||M.some(w=>w&&L(l.node,w))||l.groups.length&&!!e.draggingElements.value.some(C=>C.groups.length?!C.groups.some(_=>l.groups.includes(_)):!1))return!1;const u=k(l.node);return u&&o&&J(u,o)}).map(l=>{const u=k(l.node),w=$(u),C=f>=u.x&&f<=u.x+u.width&&v>=u.y&&v<=u.y+u.height,_=m(u,o),H=K(g,w),R=e.elements.value.filter(I=>I!==l&&I.node&&l.node&&L(l.node,I.node)).length;return{element:l,isPointerInElement:C,overlapPercent:_,depth:R,centerDistance:H}}).sort((l,u)=>{if(!P){if(l.isPointerInElement&&u.isPointerInElement)return u.depth-l.depth;if(l.isPointerInElement!==u.isPointerInElement)return l.isPointerInElement?-1:1}return Math.abs(l.overlapPercent-u.overlapPercent)<=1?l.centerDistance-u.centerDistance:u.overlapPercent-l.overlapPercent}),W=e.zones.value.filter(l=>{if(!l.node||M.some(w=>w&&L(l.node,w))||l.groups.length&&!!e.draggingElements.value.some(C=>C.groups.length?!C.groups.some(_=>l.groups.includes(_)):!1))return!1;const u=k(l.node);return u&&o&&J(u,o)}).map(l=>{const u=k(l.node),w=$(u),C=f>=u.x&&f<=u.x+u.width&&v>=u.y&&v<=u.y+u.height,_=m(u,o),H=K(g,w),R=e.zones.value.filter(I=>I!==l&&I.node&&l.node&&L(l.node,I.node)).length;return{zone:l,isPointerInElement:C,overlapPercent:_,depth:R,centerDistance:H}}).sort((l,u)=>{if(!P){if(l.isPointerInElement&&u.isPointerInElement)return u.depth-l.depth;if(l.isPointerInElement!==u.isPointerInElement)return l.isPointerInElement?-1:1}return Math.abs(l.overlapPercent-u.overlapPercent)<=1?l.centerDistance-u.centerDistance:u.overlapPercent-l.overlapPercent}),O=e.hovered.element.value,z=e.hovered.zone.value;e.hovered.element.value=((A=B[0])==null?void 0:A.element)??null,e.hovered.zone.value=((X=W[0])==null?void 0:X.zone)??null,e.hovered.element.value!==O&&((Y=O==null?void 0:O.events)!=null&&Y.onLeave&&O.events.onLeave(e),(q=(F=e.hovered.element.value)==null?void 0:F.events)!=null&&q.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==z&&((N=z==null?void 0:z.events)!=null&&N.onLeave&&z.events.onLeave(e),(j=(V=e.hovered.zone.value)==null?void 0:V.events)!=null&&j.onHover&&e.hovered.zone.value.events.onHover(e)),r=requestAnimationFrame(h)},y=()=>{h()},i=()=>{r!==null&&(cancelAnimationFrame(r),r=null)};return{activate:o=>{e.draggingElements.value=a(t.value),s(o),y()},track:o=>{c(o)},deactivate:()=>{var o,g;d(),e.hovered.zone.value?(g=(o=e.hovered.zone.value.events).onDrop)==null||g.call(o,e):e.draggingElements.value.forEach(f=>{var v,x;return(x=(v=f.events).onEnd)==null?void 0:x.call(v,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,i()}}},ue=t=>{const{elementRef:e,registerElement:s,unregisterElement:c,isDragging:d,isOvered:r,isAllowed:a}=oe(t),{disableInteractions:m,enableInteractions:h}=le(),y=S(),{activate:i,track:E,deactivate:p}=ae(e),D=v=>{t!=null&&t.container&&(y.activeContainer.component.value=n.markRaw(t.container)),m(),i(v),document.addEventListener("pointermove",o),document.addEventListener("pointerup",f),document.addEventListener("wheel",g)},o=v=>{E(v)},g=v=>{E(v)},f=()=>{y.activeContainer.component.value=null,h(),p(),document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",f),document.removeEventListener("wheel",g)};return n.onMounted(s),n.onBeforeUnmount(c),{pointerPosition:y.pointerPosition,elementRef:e,isDragging:d,isOvered:r,isAllowed:a,handleDragStart:D}},ce=t=>{const{zones:e,hovered:s,draggingElements:c,isDragging:d}=S(),r=n.ref(null),a=n.computed(()=>{var i;return((i=s.zone.value)==null?void 0:i.node)===r.value}),m=n.computed(()=>{if(!r.value||!d.value)return!1;const i=e.value.find(E=>E.node===r.value);return i!=null&&i.groups.length?!c.value.some(E=>E.groups.length?!E.groups.some(p=>i.groups.includes(p)):!1):!0});return{elementRef:r,registerZone:()=>{if(!r.value)throw new Error("elementRef is not set");e.value.push({node:r.value,groups:(t==null?void 0:t.groups)??[],events:(t==null?void 0:t.events)??{},data:(t==null?void 0:t.data)??void 0}),r.value.setAttribute("data-dnd-droppable","true")},unregisterZone:()=>{if(!r.value)throw new Error("elementRef is not set");const i=e.value.findIndex(E=>E.node===r.value);i!==-1&&e.value.splice(i,1)},isOvered:a,isAllowed:m}},de=t=>{const{elementRef:e,registerZone:s,unregisterZone:c,isOvered:d,isAllowed:r}=ce(t);return n.onMounted(s),n.onBeforeUnmount(c),{elementRef:e,isOvered:d,isAllowed:r}},ve=t=>{const{selectedElements:e,elements:s}=S(),c=n.computed(()=>s.value.find(i=>i.node===t.value)),d=n.computed(()=>e.value.some(i=>i.node===t.value)),r=n.computed(()=>t.value?e.value.some(i=>i.node&&L(i.node,t.value)):!1),a=n.computed(()=>t.value?e.value.some(i=>i.node&&L(t.value,i.node)):!1),m=()=>{c.value&&(e.value=e.value.filter(i=>i.node!==t.value))},h=()=>{c.value&&(r.value&&(e.value=e.value.filter(i=>i.node&&!L(i.node,t.value))),a.value&&(e.value=e.value.filter(i=>i.node&&!L(t.value,i.node))),e.value.push(c.value))};return{handleUnselect:m,handleSelect:h,handleToggleSelect:()=>{c.value&&(e.value.some(i=>i.node===t.value)?m():h())},isSelected:d,isParentOfSelected:r}};exports.DnDContext=ne;exports.DragOverlay=Q;exports.getBoundingBox=k;exports.useDnDStore=S;exports.useDraggable=ue;exports.useDroppable=de;exports.useSelection=ve;
@@ -1,9 +1,9 @@
1
- import { effectScope as ie, ref as p, computed as w, onMounted as F, onBeforeUnmount as U, defineComponent as oe, createElementBlock as X, createCommentVNode as se, unref as b, openBlock as R, normalizeStyle as ee, Fragment as ae, renderList as ue, createBlock as ce, resolveDynamicComponent as ve, markRaw as de } from "vue";
2
- let te = !1, Y;
3
- const M = () => (te || (Y = ie(!0).run(() => ({
1
+ import { effectScope as ie, ref as p, computed as w, onMounted as F, onBeforeUnmount as U, defineComponent as N, createElementBlock as $, createCommentVNode as se, unref as ee, openBlock as R, normalizeStyle as te, Fragment as ae, renderList as ue, createBlock as ce, resolveDynamicComponent as ve, renderSlot as de, createVNode as ge, markRaw as he } from "vue";
2
+ let ne = !1, X;
3
+ const I = () => (ne || (X = ie(!0).run(() => ({
4
4
  /** Whether any drag operation is currently active */
5
5
  isDragging: w(
6
- () => Y.draggingElements.value.length > 0
6
+ () => X.draggingElements.value.length > 0
7
7
  ),
8
8
  /** Active container where dragging occurs */
9
9
  activeContainer: {
@@ -41,8 +41,8 @@ const M = () => (te || (Y = ie(!0).run(() => ({
41
41
  pixel: p(null)
42
42
  }
43
43
  }
44
- })), te = !0), Y), ge = () => {
45
- const t = p(null), { draggingElements: e, pointerPosition: a, isDragging: u, activeContainer: c } = M();
44
+ })), ne = !0), X), fe = () => {
45
+ const t = p(null), { draggingElements: e, pointerPosition: i, isDragging: u, activeContainer: c } = I();
46
46
  return F(() => {
47
47
  c.ref = t;
48
48
  }), U(() => {
@@ -50,16 +50,16 @@ const M = () => (te || (Y = ie(!0).run(() => ({
50
50
  }), {
51
51
  elementRef: t,
52
52
  draggingElements: e,
53
- pointerPosition: a,
53
+ pointerPosition: i,
54
54
  isDragging: u
55
55
  };
56
- }, he = ["innerHTML"], fe = /* @__PURE__ */ oe({
56
+ }, me = ["innerHTML"], pe = /* @__PURE__ */ N({
57
57
  __name: "DefaultOverlay",
58
58
  setup(t) {
59
- const { elementRef: e, pointerPosition: a, isDragging: u, draggingElements: c } = ge(), n = w(() => {
60
- var i, h, f, y;
59
+ const { elementRef: e, pointerPosition: i, isDragging: u, draggingElements: c } = fe(), n = w(() => {
60
+ var s, h, f, y;
61
61
  return {
62
- transform: `translate3d(${(((i = a.current.value) == null ? void 0 : i.x) ?? 0) - (((h = a.offset.pixel.value) == null ? void 0 : h.x) ?? 0)}px, ${(((f = a.current.value) == null ? void 0 : f.y) ?? 0) - (((y = a.offset.pixel.value) == null ? void 0 : y.y) ?? 0)}px, 0)`,
62
+ transform: `translate3d(${(((s = i.current.value) == null ? void 0 : s.x) ?? 0) - (((h = i.offset.pixel.value) == null ? void 0 : h.x) ?? 0)}px, ${(((f = i.current.value) == null ? void 0 : f.y) ?? 0) - (((y = i.offset.pixel.value) == null ? void 0 : y.y) ?? 0)}px, 0)`,
63
63
  zIndex: 1e3,
64
64
  position: "fixed",
65
65
  top: 0,
@@ -67,76 +67,88 @@ const M = () => (te || (Y = ie(!0).run(() => ({
67
67
  transition: "0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"
68
68
  };
69
69
  });
70
- return (i, h) => b(u) ? (R(), X("div", {
70
+ return (s, h) => ee(u) ? (R(), $("div", {
71
71
  key: 0,
72
72
  ref_key: "elementRef",
73
73
  ref: e,
74
- style: ee(n.value)
74
+ style: te(n.value)
75
75
  }, [
76
- (R(!0), X(ae, null, ue(b(c), (f, y) => {
76
+ (R(!0), $(ae, null, ue(ee(c), (f, y) => {
77
77
  var l, E;
78
- return R(), X("div", {
78
+ return R(), $("div", {
79
79
  key: y,
80
80
  innerHTML: f.initialHTML,
81
- style: ee({
81
+ style: te({
82
82
  width: `${(l = f.initialRect) == null ? void 0 : l.width}px`,
83
83
  height: `${(E = f.initialRect) == null ? void 0 : E.height}px`
84
84
  })
85
- }, null, 12, he);
85
+ }, null, 12, me);
86
86
  }), 128))
87
87
  ], 4)) : se("", !0);
88
88
  }
89
- }), Le = /* @__PURE__ */ oe({
89
+ }), ye = /* @__PURE__ */ N({
90
90
  __name: "DragOverlay",
91
91
  setup(t) {
92
- const { activeContainer: e } = M(), a = w(
93
- () => e.component.value ?? fe
92
+ const { activeContainer: e } = I(), i = w(
93
+ () => e.component.value ?? pe
94
94
  );
95
- return (u, c) => (R(), ce(ve(a.value)));
95
+ return (u, c) => (R(), ce(ve(i.value)));
96
96
  }
97
- }), me = "data-dnd-draggable", pe = (t) => {
97
+ }), Ie = /* @__PURE__ */ N({
98
+ __name: "DnDContext",
99
+ setup(t) {
100
+ const e = p(null);
101
+ return (i, u) => (R(), $("div", {
102
+ ref_key: "contextRef",
103
+ ref: e
104
+ }, [
105
+ de(i.$slots, "default"),
106
+ ge(ye)
107
+ ], 512));
108
+ }
109
+ }), Ee = "data-dnd-draggable", Pe = (t) => {
98
110
  const {
99
111
  elements: e,
100
- draggingElements: a,
112
+ draggingElements: i,
101
113
  hovered: u,
102
114
  selectedElements: c,
103
115
  isDragging: n
104
- } = M(), i = p(null), h = w(
116
+ } = I(), s = p(null), h = w(
105
117
  () => {
106
118
  var m;
107
- return ((m = u.element.value) == null ? void 0 : m.node) === i.value;
119
+ return ((m = u.element.value) == null ? void 0 : m.node) === s.value;
108
120
  }
109
121
  ), f = w(
110
- () => a.value.some((m) => m.node === i.value)
122
+ () => i.value.some((m) => m.node === s.value)
111
123
  ), y = w(() => {
112
- if (!i.value || !n.value) return !1;
124
+ if (!s.value || !n.value) return !1;
113
125
  const m = e.value.find(
114
- (D) => D.node === i.value
126
+ (D) => D.node === s.value
115
127
  );
116
- return m != null && m.groups.length ? !a.value.some((D) => D.groups.length ? !D.groups.some(
128
+ return m != null && m.groups.length ? !i.value.some((D) => D.groups.length ? !D.groups.some(
117
129
  (r) => m.groups.includes(r)
118
130
  ) : !1) : !0;
119
131
  });
120
132
  return {
121
- elementRef: i,
133
+ elementRef: s,
122
134
  registerElement: () => {
123
- if (!i.value) throw new Error("ElementRef is not set");
135
+ if (!s.value) throw new Error("ElementRef is not set");
124
136
  e.value.push({
125
- node: i.value,
137
+ node: s.value,
126
138
  groups: (t == null ? void 0 : t.groups) ?? [],
127
139
  layer: (t == null ? void 0 : t.layer) ?? null,
128
140
  defaultLayer: (t == null ? void 0 : t.layer) ?? null,
129
141
  events: (t == null ? void 0 : t.events) ?? {},
130
142
  data: (t == null ? void 0 : t.data) ?? void 0
131
- }), i.value.setAttribute(me, "true");
143
+ }), s.value.setAttribute(Ee, "true");
132
144
  },
133
145
  unregisterElement: () => {
134
146
  const m = e.value.findIndex(
135
- (r) => r.node === i.value
147
+ (r) => r.node === s.value
136
148
  );
137
149
  m !== -1 && e.value.splice(m, 1);
138
150
  const D = c.value.findIndex(
139
- (r) => r.node === i.value
151
+ (r) => r.node === s.value
140
152
  );
141
153
  D !== -1 && c.value.splice(D, 1);
142
154
  },
@@ -144,20 +156,20 @@ const M = () => (te || (Y = ie(!0).run(() => ({
144
156
  isOvered: h,
145
157
  isAllowed: y
146
158
  };
147
- }, ye = () => {
148
- let t = "", e = "", a = "";
159
+ }, we = () => {
160
+ let t = "", e = "", i = "";
149
161
  const u = () => {
150
- const i = document.body;
151
- t = i.style.userSelect, e = i.style.touchAction, a = i.style.overscrollBehavior, i.style.userSelect = "none", i.style.touchAction = "none", i.style.overscrollBehavior = "none", window.addEventListener("contextmenu", n), window.addEventListener("selectstart", n), window.addEventListener("touchstart", n), window.addEventListener("touchmove", n);
162
+ const s = document.body;
163
+ t = s.style.userSelect, e = s.style.touchAction, i = s.style.overscrollBehavior, s.style.userSelect = "none", s.style.touchAction = "none", s.style.overscrollBehavior = "none", window.addEventListener("contextmenu", n), window.addEventListener("selectstart", n), window.addEventListener("touchstart", n), window.addEventListener("touchmove", n);
152
164
  }, c = () => {
153
- const i = document.body;
154
- i.style.userSelect = t, i.style.touchAction = e, i.style.overscrollBehavior = a, window.removeEventListener("contextmenu", n), window.removeEventListener("selectstart", n), window.removeEventListener("touchstart", n), window.removeEventListener("touchmove", n);
155
- }, n = (i) => i.preventDefault();
165
+ const s = document.body;
166
+ s.style.userSelect = t, s.style.touchAction = e, s.style.overscrollBehavior = i, window.removeEventListener("contextmenu", n), window.removeEventListener("selectstart", n), window.removeEventListener("touchstart", n), window.removeEventListener("touchmove", n);
167
+ }, n = (s) => s.preventDefault();
156
168
  return {
157
169
  disableInteractions: u,
158
170
  enableInteractions: c
159
171
  };
160
- }, ne = (t, e) => t.x < e.x + e.width && t.x + t.width > e.x && t.y < e.y + e.height && t.y + t.height > e.y, z = (t) => {
172
+ }, re = (t, e) => t.x < e.x + e.width && t.x + t.width > e.x && t.y < e.y + e.height && t.y + t.height > e.y, k = (t) => {
161
173
  if (!t)
162
174
  return {
163
175
  x: 0,
@@ -180,37 +192,37 @@ const M = () => (te || (Y = ie(!0).run(() => ({
180
192
  width: e.width,
181
193
  height: e.height
182
194
  };
183
- }, $ = (t) => ({
195
+ }, Y = (t) => ({
184
196
  x: t.x + t.width / 2,
185
197
  y: t.y + t.height / 2
186
- }), Ee = (t, e) => {
187
- const a = z(t);
198
+ }), xe = (t, e) => {
199
+ const i = k(t);
188
200
  return {
189
201
  pixel: {
190
- x: e.x - a.x,
191
- y: e.y - a.y
202
+ x: e.x - i.x,
203
+ y: e.y - i.y
192
204
  },
193
205
  percent: {
194
- x: (e.x - a.x) / a.width * 100,
195
- y: (e.y - a.y) / a.height * 100
206
+ x: (e.x - i.x) / i.width * 100,
207
+ y: (e.y - i.y) / i.height * 100
196
208
  }
197
209
  };
198
- }, re = (t, e) => {
199
- const a = e.x - t.x, u = e.y - t.y;
200
- return Math.sqrt(a * a + u * u);
201
- }, C = (t, e) => t ? e.contains(t) : !1, Pe = (t) => {
202
- const e = M();
210
+ }, oe = (t, e) => {
211
+ const i = e.x - t.x, u = e.y - t.y;
212
+ return Math.sqrt(i * i + u * u);
213
+ }, _ = (t, e) => t ? e.contains(t) : !1, De = (t) => {
214
+ const e = I();
203
215
  return {
204
216
  onPointerStart: (n) => {
205
217
  e.pointerPosition.start.value = { x: n.clientX, y: n.clientY }, e.pointerPosition.current.value = {
206
218
  x: n.clientX,
207
219
  y: n.clientY
208
220
  };
209
- const { pixel: i, percent: h } = Ee(t.value, {
221
+ const { pixel: s, percent: h } = xe(t.value, {
210
222
  x: n.clientX,
211
223
  y: n.clientY
212
224
  });
213
- e.pointerPosition.offset.pixel.value = i, e.pointerPosition.offset.percent.value = h;
225
+ e.pointerPosition.offset.pixel.value = s, e.pointerPosition.offset.percent.value = h;
214
226
  },
215
227
  onPointerMove: (n) => {
216
228
  e.pointerPosition.current.value = {
@@ -222,20 +234,20 @@ const M = () => (te || (Y = ie(!0).run(() => ({
222
234
  e.pointerPosition.current.value = null, e.pointerPosition.start.value = null, e.pointerPosition.offset.pixel.value = null, e.pointerPosition.offset.percent.value = null;
223
235
  }
224
236
  };
225
- }, we = (t) => {
226
- const e = M(), { onPointerStart: a, onPointerMove: u, onPointerEnd: c } = Pe(t);
237
+ }, Ce = (t) => {
238
+ const e = I(), { onPointerStart: i, onPointerMove: u, onPointerEnd: c } = De(t);
227
239
  let n = null;
228
- const i = (r) => {
229
- var v, L;
240
+ const s = (r) => {
241
+ var v, C;
230
242
  const d = e.selectedElements.value.some(
231
243
  (P) => P.node === r
232
244
  );
233
245
  if (e.selectedElements.value.length && d)
234
246
  return e.selectedElements.value.map((P) => {
235
- var S, T;
247
+ var M, T;
236
248
  return {
237
249
  ...P,
238
- initialHTML: ((S = P.node) == null ? void 0 : S.outerHTML) ?? "",
250
+ initialHTML: ((M = P.node) == null ? void 0 : M.outerHTML) ?? "",
239
251
  initialRect: (T = P.node) == null ? void 0 : T.getBoundingClientRect()
240
252
  };
241
253
  });
@@ -247,7 +259,7 @@ const M = () => (te || (Y = ie(!0).run(() => ({
247
259
  {
248
260
  ...g,
249
261
  initialHTML: ((v = g.node) == null ? void 0 : v.outerHTML) ?? "",
250
- initialRect: (L = g.node) == null ? void 0 : L.getBoundingClientRect()
262
+ initialRect: (C = g.node) == null ? void 0 : C.getBoundingClientRect()
251
263
  }
252
264
  ] : [];
253
265
  }, h = (r, d) => {
@@ -257,71 +269,71 @@ const M = () => (te || (Y = ie(!0).run(() => ({
257
269
  ), v = Math.max(
258
270
  0,
259
271
  Math.min(r.y + r.height, d.y + d.height) - Math.max(r.y, d.y)
260
- ), L = g * v, P = r.width * r.height, S = d.width * d.height;
261
- return (L / P * 100 + L / S * 100) / 2;
272
+ ), C = g * v, P = r.width * r.height, M = d.width * d.height;
273
+ return (C / P * 100 + C / M * 100) / 2;
262
274
  }, f = () => {
263
- var q, N, B, V, j, G, J, K, Q, W;
264
- const r = z(e.activeContainer.ref.value), d = $(r), g = ((q = e.pointerPosition.current.value) == null ? void 0 : q.x) ?? 0, v = ((N = e.pointerPosition.current.value) == null ? void 0 : N.y) ?? 0, P = !(r && g >= r.x && g <= r.x + r.width && v >= r.y && v <= r.y + r.height), S = e.draggingElements.value.map((o) => o.node), T = e.elements.value.filter((o) => {
265
- if (!o.node || S.some(
266
- (x) => x && C(o.node, x)
275
+ var q, V, B, j, G, J, K, Q, W, b;
276
+ const r = k(e.activeContainer.ref.value), d = Y(r), g = ((q = e.pointerPosition.current.value) == null ? void 0 : q.x) ?? 0, v = ((V = e.pointerPosition.current.value) == null ? void 0 : V.y) ?? 0, P = !(r && g >= r.x && g <= r.x + r.width && v >= r.y && v <= r.y + r.height), M = e.draggingElements.value.map((o) => o.node), T = e.elements.value.filter((o) => {
277
+ if (!o.node || M.some(
278
+ (x) => x && _(o.node, x)
267
279
  ) || o.groups.length && !!e.draggingElements.value.some(
268
- (I) => I.groups.length ? !I.groups.some(
269
- (_) => o.groups.includes(_)
280
+ (L) => L.groups.length ? !L.groups.some(
281
+ (S) => o.groups.includes(S)
270
282
  ) : !1
271
283
  ))
272
284
  return !1;
273
- const s = z(o.node);
274
- return s && r && ne(s, r);
285
+ const a = k(o.node);
286
+ return a && r && re(a, r);
275
287
  }).map((o) => {
276
- const s = z(o.node), x = $(s), I = g >= s.x && g <= s.x + s.width && v >= s.y && v <= s.y + s.height, _ = h(s, r), Z = re(d, x), A = e.elements.value.filter(
277
- (O) => O !== o && O.node && o.node && C(
288
+ const a = k(o.node), x = Y(a), L = g >= a.x && g <= a.x + a.width && v >= a.y && v <= a.y + a.height, S = h(a, r), Z = oe(d, x), A = e.elements.value.filter(
289
+ (O) => O !== o && O.node && o.node && _(
278
290
  o.node,
279
291
  O.node
280
292
  )
281
293
  ).length;
282
294
  return {
283
295
  element: o,
284
- isPointerInElement: I,
285
- overlapPercent: _,
296
+ isPointerInElement: L,
297
+ overlapPercent: S,
286
298
  depth: A,
287
299
  centerDistance: Z
288
300
  };
289
- }).sort((o, s) => {
301
+ }).sort((o, a) => {
290
302
  if (!P) {
291
- if (o.isPointerInElement && s.isPointerInElement)
292
- return s.depth - o.depth;
293
- if (o.isPointerInElement !== s.isPointerInElement)
303
+ if (o.isPointerInElement && a.isPointerInElement)
304
+ return a.depth - o.depth;
305
+ if (o.isPointerInElement !== a.isPointerInElement)
294
306
  return o.isPointerInElement ? -1 : 1;
295
307
  }
296
- return Math.abs(o.overlapPercent - s.overlapPercent) <= 1 ? o.centerDistance - s.centerDistance : s.overlapPercent - o.overlapPercent;
308
+ return Math.abs(o.overlapPercent - a.overlapPercent) <= 1 ? o.centerDistance - a.centerDistance : a.overlapPercent - o.overlapPercent;
297
309
  }), le = e.zones.value.filter((o) => {
298
- if (!o.node || S.some(
299
- (x) => x && C(o.node, x)
300
- ) || o.groups.length && !!e.draggingElements.value.some((I) => I.groups.length ? !I.groups.some((_) => o.groups.includes(_)) : !1))
310
+ if (!o.node || M.some(
311
+ (x) => x && _(o.node, x)
312
+ ) || o.groups.length && !!e.draggingElements.value.some((L) => L.groups.length ? !L.groups.some((S) => o.groups.includes(S)) : !1))
301
313
  return !1;
302
- const s = z(o.node);
303
- return s && r && ne(s, r);
314
+ const a = k(o.node);
315
+ return a && r && re(a, r);
304
316
  }).map((o) => {
305
- const s = z(o.node), x = $(s), I = g >= s.x && g <= s.x + s.width && v >= s.y && v <= s.y + s.height, _ = h(s, r), Z = re(d, x), A = e.zones.value.filter(
306
- (O) => O !== o && O.node && o.node && C(o.node, O.node)
317
+ const a = k(o.node), x = Y(a), L = g >= a.x && g <= a.x + a.width && v >= a.y && v <= a.y + a.height, S = h(a, r), Z = oe(d, x), A = e.zones.value.filter(
318
+ (O) => O !== o && O.node && o.node && _(o.node, O.node)
307
319
  ).length;
308
320
  return {
309
321
  zone: o,
310
- isPointerInElement: I,
311
- overlapPercent: _,
322
+ isPointerInElement: L,
323
+ overlapPercent: S,
312
324
  depth: A,
313
325
  centerDistance: Z
314
326
  };
315
- }).sort((o, s) => {
327
+ }).sort((o, a) => {
316
328
  if (!P) {
317
- if (o.isPointerInElement && s.isPointerInElement)
318
- return s.depth - o.depth;
319
- if (o.isPointerInElement !== s.isPointerInElement)
329
+ if (o.isPointerInElement && a.isPointerInElement)
330
+ return a.depth - o.depth;
331
+ if (o.isPointerInElement !== a.isPointerInElement)
320
332
  return o.isPointerInElement ? -1 : 1;
321
333
  }
322
- return Math.abs(o.overlapPercent - s.overlapPercent) <= 1 ? o.centerDistance - s.centerDistance : s.overlapPercent - o.overlapPercent;
323
- }), k = e.hovered.element.value, H = e.hovered.zone.value;
324
- e.hovered.element.value = ((B = T[0]) == null ? void 0 : B.element) ?? null, e.hovered.zone.value = ((V = le[0]) == null ? void 0 : V.zone) ?? null, e.hovered.element.value !== k && ((j = k == null ? void 0 : k.events) != null && j.onLeave && k.events.onLeave(e), (J = (G = e.hovered.element.value) == null ? void 0 : G.events) != null && J.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== H && ((K = H == null ? void 0 : H.events) != null && K.onLeave && H.events.onLeave(e), (W = (Q = e.hovered.zone.value) == null ? void 0 : Q.events) != null && W.onHover && e.hovered.zone.value.events.onHover(e)), n = requestAnimationFrame(f);
334
+ return Math.abs(o.overlapPercent - a.overlapPercent) <= 1 ? o.centerDistance - a.centerDistance : a.overlapPercent - o.overlapPercent;
335
+ }), z = e.hovered.element.value, H = e.hovered.zone.value;
336
+ e.hovered.element.value = ((B = T[0]) == null ? void 0 : B.element) ?? null, e.hovered.zone.value = ((j = le[0]) == null ? void 0 : j.zone) ?? null, e.hovered.element.value !== z && ((G = z == null ? void 0 : z.events) != null && G.onLeave && z.events.onLeave(e), (K = (J = e.hovered.element.value) == null ? void 0 : J.events) != null && K.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== H && ((Q = H == null ? void 0 : H.events) != null && Q.onLeave && H.events.onLeave(e), (b = (W = e.hovered.zone.value) == null ? void 0 : W.events) != null && b.onHover && e.hovered.zone.value.events.onHover(e)), n = requestAnimationFrame(f);
325
337
  }, y = () => {
326
338
  f();
327
339
  }, l = () => {
@@ -329,7 +341,7 @@ const M = () => (te || (Y = ie(!0).run(() => ({
329
341
  };
330
342
  return {
331
343
  activate: (r) => {
332
- e.draggingElements.value = i(t.value), a(r), y();
344
+ e.draggingElements.value = s(t.value), i(r), y();
333
345
  },
334
346
  track: (r) => {
335
347
  u(r);
@@ -338,22 +350,22 @@ const M = () => (te || (Y = ie(!0).run(() => ({
338
350
  var r, d;
339
351
  c(), e.hovered.zone.value ? (d = (r = e.hovered.zone.value.events).onDrop) == null || d.call(r, e) : e.draggingElements.value.forEach(
340
352
  (g) => {
341
- var v, L;
342
- return (L = (v = g.events).onEnd) == null ? void 0 : L.call(v, e);
353
+ var v, C;
354
+ return (C = (v = g.events).onEnd) == null ? void 0 : C.call(v, e);
343
355
  }
344
356
  ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, l();
345
357
  }
346
358
  };
347
- }, Ie = (t) => {
359
+ }, Me = (t) => {
348
360
  const {
349
361
  elementRef: e,
350
- registerElement: a,
362
+ registerElement: i,
351
363
  unregisterElement: u,
352
364
  isDragging: c,
353
365
  isOvered: n,
354
- isAllowed: i
355
- } = pe(t), { disableInteractions: h, enableInteractions: f } = ye(), y = M(), { activate: l, track: E, deactivate: m } = we(e), D = (v) => {
356
- t != null && t.container && (y.activeContainer.component.value = de(t.container)), h(), l(v), document.addEventListener("pointermove", r), document.addEventListener("pointerup", g), document.addEventListener("wheel", d);
366
+ isAllowed: s
367
+ } = Pe(t), { disableInteractions: h, enableInteractions: f } = we(), y = I(), { activate: l, track: E, deactivate: m } = Ce(e), D = (v) => {
368
+ t != null && t.container && (y.activeContainer.component.value = he(t.container)), h(), l(v), document.addEventListener("pointermove", r), document.addEventListener("pointerup", g), document.addEventListener("wheel", d);
357
369
  }, r = (v) => {
358
370
  E(v);
359
371
  }, d = (v) => {
@@ -361,18 +373,18 @@ const M = () => (te || (Y = ie(!0).run(() => ({
361
373
  }, g = () => {
362
374
  y.activeContainer.component.value = null, f(), m(), document.removeEventListener("pointermove", r), document.removeEventListener("pointerup", g), document.removeEventListener("wheel", d);
363
375
  };
364
- return F(a), U(u), {
376
+ return F(i), U(u), {
365
377
  pointerPosition: y.pointerPosition,
366
378
  elementRef: e,
367
379
  isDragging: c,
368
380
  isOvered: n,
369
- isAllowed: i,
381
+ isAllowed: s,
370
382
  handleDragStart: D
371
383
  };
372
- }, xe = (t) => {
373
- const { zones: e, hovered: a, draggingElements: u, isDragging: c } = M(), n = p(null), i = w(() => {
384
+ }, Le = (t) => {
385
+ const { zones: e, hovered: i, draggingElements: u, isDragging: c } = I(), n = p(null), s = w(() => {
374
386
  var l;
375
- return ((l = a.zone.value) == null ? void 0 : l.node) === n.value;
387
+ return ((l = i.zone.value) == null ? void 0 : l.node) === n.value;
376
388
  }), h = w(() => {
377
389
  if (!n.value || !c.value) return !1;
378
390
  const l = e.value.find(
@@ -396,22 +408,22 @@ const M = () => (te || (Y = ie(!0).run(() => ({
396
408
  (E) => E.node === n.value
397
409
  );
398
410
  l !== -1 && e.value.splice(l, 1);
399
- }, isOvered: i, isAllowed: h };
400
- }, Ce = (t) => {
401
- const { elementRef: e, registerZone: a, unregisterZone: u, isOvered: c, isAllowed: n } = xe(t);
402
- return F(a), U(u), { elementRef: e, isOvered: c, isAllowed: n };
403
- }, Me = (t) => {
404
- const { selectedElements: e, elements: a } = M(), u = w(
405
- () => a.value.find((l) => l.node === t.value)
411
+ }, isOvered: s, isAllowed: h };
412
+ }, Se = (t) => {
413
+ const { elementRef: e, registerZone: i, unregisterZone: u, isOvered: c, isAllowed: n } = Le(t);
414
+ return F(i), U(u), { elementRef: e, isOvered: c, isAllowed: n };
415
+ }, Oe = (t) => {
416
+ const { selectedElements: e, elements: i } = I(), u = w(
417
+ () => i.value.find((l) => l.node === t.value)
406
418
  ), c = w(
407
419
  () => e.value.some((l) => l.node === t.value)
408
420
  ), n = w(() => t.value ? e.value.some(
409
- (l) => l.node && C(
421
+ (l) => l.node && _(
410
422
  l.node,
411
423
  t.value
412
424
  )
413
- ) : !1), i = w(() => t.value ? e.value.some(
414
- (l) => l.node && C(
425
+ ) : !1), s = w(() => t.value ? e.value.some(
426
+ (l) => l.node && _(
415
427
  t.value,
416
428
  l.node
417
429
  )
@@ -421,12 +433,12 @@ const M = () => (te || (Y = ie(!0).run(() => ({
421
433
  ));
422
434
  }, f = () => {
423
435
  u.value && (n.value && (e.value = e.value.filter(
424
- (l) => l.node && !C(
436
+ (l) => l.node && !_(
425
437
  l.node,
426
438
  t.value
427
439
  )
428
- )), i.value && (e.value = e.value.filter(
429
- (l) => l.node && !C(
440
+ )), s.value && (e.value = e.value.filter(
441
+ (l) => l.node && !_(
430
442
  t.value,
431
443
  l.node
432
444
  )
@@ -443,10 +455,11 @@ const M = () => (te || (Y = ie(!0).run(() => ({
443
455
  };
444
456
  };
445
457
  export {
446
- Le as DragOverlay,
447
- z as getBoundingBox,
448
- M as useDnDStore,
449
- Ie as useDraggable,
450
- Ce as useDroppable,
451
- Me as useSelection
458
+ Ie as DnDContext,
459
+ ye as DragOverlay,
460
+ k as getBoundingBox,
461
+ I as useDnDStore,
462
+ Me as useDraggable,
463
+ Se as useDroppable,
464
+ Oe as useSelection
452
465
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-dnd-kit/core",
3
- "version": "0.0.24-beta",
3
+ "version": "0.0.25-beta",
4
4
  "description": "Core functionality for Vue DnD Kit - a lightweight Vue 3 library for building performant and accessible drag and drop interfaces",
5
5
  "author": "ZiZIGY",
6
6
  "license": "MIT",