@vue-dnd-kit/core 0.1.3-beta → 0.1.5-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.
@@ -1,5 +1,6 @@
1
1
  import { IDragElement, IDraggingElement, IDropZone, IPoint } from "../types";
2
2
  import { Component } from 'vue';
3
+ import { MaybeElement } from '@vueuse/core';
3
4
  export declare const useDnDStore: () => {
4
5
  isDragging: import('vue').ComputedRef<boolean>;
5
6
  activeContainer: {
@@ -478,7 +479,7 @@ export declare const useDnDStore: () => {
478
479
  __file?: string | undefined;
479
480
  __name?: string | undefined;
480
481
  } | null;
481
- isVisible?: any;
482
+ isVisible?: boolean | undefined;
482
483
  data: any;
483
484
  events: {
484
485
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -726,7 +727,7 @@ export declare const useDnDStore: () => {
726
727
  __file?: string | undefined;
727
728
  __name?: string | undefined;
728
729
  } | null;
729
- isVisible?: any;
730
+ isVisible?: boolean | undefined;
730
731
  data: any;
731
732
  events: {
732
733
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -987,7 +988,7 @@ export declare const useDnDStore: () => {
987
988
  __file?: string | undefined;
988
989
  __name?: string | undefined;
989
990
  } | null;
990
- isVisible?: any;
991
+ isVisible?: boolean | undefined;
991
992
  data: any;
992
993
  events: {
993
994
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1247,7 +1248,7 @@ export declare const useDnDStore: () => {
1247
1248
  __file?: string | undefined;
1248
1249
  __name?: string | undefined;
1249
1250
  } | null;
1250
- isVisible?: any;
1251
+ isVisible?: boolean | undefined;
1251
1252
  data: any;
1252
1253
  events: {
1253
1254
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1496,7 +1497,7 @@ export declare const useDnDStore: () => {
1496
1497
  __file?: string | undefined;
1497
1498
  __name?: string | undefined;
1498
1499
  } | null;
1499
- isVisible?: any;
1500
+ isVisible?: boolean | undefined;
1500
1501
  data: any;
1501
1502
  events: {
1502
1503
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1744,7 +1745,7 @@ export declare const useDnDStore: () => {
1744
1745
  __file?: string | undefined;
1745
1746
  __name?: string | undefined;
1746
1747
  } | null;
1747
- isVisible?: any;
1748
+ isVisible?: boolean | undefined;
1748
1749
  data: any;
1749
1750
  events: {
1750
1751
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -2033,7 +2034,7 @@ export declare const useDnDStore: () => {
2033
2034
  __file?: string | undefined;
2034
2035
  __name?: string | undefined;
2035
2036
  } | null;
2036
- isVisible?: any;
2037
+ isVisible?: boolean | undefined;
2037
2038
  data: any;
2038
2039
  events: {
2039
2040
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -2281,7 +2282,7 @@ export declare const useDnDStore: () => {
2281
2282
  __file?: string | undefined;
2282
2283
  __name?: string | undefined;
2283
2284
  } | null;
2284
- isVisible?: any;
2285
+ isVisible?: boolean | undefined;
2285
2286
  data: any;
2286
2287
  events: {
2287
2288
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -2322,4 +2323,6 @@ export declare const useDnDStore: () => {
2322
2323
  } | null>;
2323
2324
  };
2324
2325
  };
2326
+ elementNodeMap: import('vue').ComputedRef<Map<MaybeElement, number>>;
2327
+ cleanup: () => void;
2325
2328
  };
@@ -320,7 +320,7 @@ export declare const useDragContainer: () => {
320
320
  __file?: string | undefined;
321
321
  __name?: string | undefined;
322
322
  } | null;
323
- isVisible?: any;
323
+ isVisible?: boolean | undefined;
324
324
  data: any;
325
325
  events: {
326
326
  onHover?: ((store: import('..').IDnDStore) => void) | undefined;
@@ -580,7 +580,7 @@ export declare const useDragContainer: () => {
580
580
  __file?: string | undefined;
581
581
  __name?: string | undefined;
582
582
  } | null;
583
- isVisible?: any;
583
+ isVisible?: boolean | undefined;
584
584
  data: any;
585
585
  events: {
586
586
  onHover?: ((store: import('..').IDnDStore) => void) | undefined;
@@ -37,5 +37,4 @@ export declare const useDraggable: (options?: IUseDragOptions) => {
37
37
  isOvered: import('vue').ComputedRef<boolean>;
38
38
  isAllowed: import('vue').ComputedRef<boolean>;
39
39
  handleDragStart: (event: PointerEvent) => void;
40
- isVisible: import('vue').ShallowRef<boolean, boolean>;
41
40
  };
@@ -14,5 +14,4 @@ export declare const useElementManager: (options?: IUseDragOptions) => {
14
14
  isDragging: import('vue').ComputedRef<boolean>;
15
15
  isOvered: import('vue').ComputedRef<boolean>;
16
16
  isAllowed: import('vue').ComputedRef<boolean>;
17
- isVisible: import('vue').ShallowRef<boolean, boolean>;
18
17
  };
@@ -58,7 +58,7 @@ export interface IDragElement {
58
58
  /** Default layer component */
59
59
  defaultLayer: Component | null;
60
60
  /** Visibility state of the element */
61
- isVisible?: any;
61
+ isVisible?: boolean;
62
62
  /** Custom data associated with element */
63
63
  data: any;
64
64
  /** Event handlers */
@@ -0,0 +1 @@
1
+ export declare const preventEvent: (event: Event) => void;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue");function te(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function ne(t){let e=!1,r;const s=n.effectScope(!0);return(...c)=>(e||(r=s.run(()=>t(...c)),e=!0),r)}const re=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const oe=t=>t!=null,R=()=>{};function le(t,e){function r(...s){return new Promise((c,o)=>{Promise.resolve(t(()=>e.apply(this,s),{fn:e,thisArg:this,args:s})).then(c).catch(o)})}return r}function ie(...t){let e=0,r,s=!0,c=R,o,l,v,f,m;!n.isRef(t[0])&&typeof t[0]=="object"?{delay:l,trailing:v=!0,leading:f=!0,rejectOnCancel:m=!1}=t[0]:[l,v=!0,f=!0,m=!1]=t;const i=()=>{r&&(clearTimeout(r),r=void 0,c(),c=R)};return D=>{const p=n.toValue(l),E=Date.now()-e,u=()=>o=D();return i(),p<=0?(e=Date.now(),u()):(E>p&&(f||!s)?(e=Date.now(),u()):v&&(o=new Promise((h,y)=>{c=m?y:h,r=setTimeout(()=>{e=Date.now(),s=!0,h(u()),i()},Math.max(0,p-E))})),!f&&!r&&(r=setTimeout(()=>s=!0,p)),s=!1,o)}}function se(t){return Array.isArray(t)?t:[t]}function ue(t,e=200,r=!1,s=!0,c=!1){return le(ie(e,r,s,c),t)}function ae(t,e,r){const s=n.watch(t,(...c)=>(n.nextTick(()=>s()),e(...c)),r);return s}const Q=re?window:void 0;function H(t){var e;const r=n.toValue(t);return(e=r==null?void 0:r.$el)!=null?e:r}function ce(){const t=n.shallowRef(!1),e=n.getCurrentInstance();return e&&n.onMounted(()=>{t.value=!0},e),t}function de(t){const e=ce();return n.computed(()=>(e.value,!!t()))}function ve(t,e,r={}){const{root:s,rootMargin:c="0px",threshold:o=0,window:l=Q,immediate:v=!0}=r,f=de(()=>l&&"IntersectionObserver"in l),m=n.computed(()=>{const E=n.toValue(t);return se(E).map(H).filter(oe)});let i=R;const g=n.shallowRef(v),D=f.value?n.watch(()=>[m.value,H(s),g.value],([E,u])=>{if(i(),!g.value||!E.length)return;const h=new IntersectionObserver(e,{root:H(u),rootMargin:c,threshold:o});E.forEach(y=>y&&h.observe(y)),i=()=>{h.disconnect(),i=R}},{immediate:v,flush:"post"}):R,p=()=>{i(),D(),g.value=!1};return te(p),{isSupported:f,isActive:g,pause(){i(),g.value=!1},resume(){g.value=!0},stop:p}}function fe(t,e={}){const{window:r=Q,scrollTarget:s,threshold:c=0,rootMargin:o,once:l=!1}=e,v=n.shallowRef(!1),{stop:f}=ve(t,m=>{let i=v.value,g=0;for(const D of m)D.time>=g&&(g=D.time,i=D.isIntersecting);v.value=i,l&&ae(v,()=>{f()})},{root:s,window:r,threshold:c,rootMargin:n.toValue(o)});return v}const I=ne(()=>{const t=n.ref([]),e=n.computed(()=>t.value.length>0),r={component:n.ref(null),ref:n.ref(null)},s=n.ref([]),c=n.computed(()=>s.value.map((m,i)=>{var g;if((g=m.isVisible)!=null&&g.value||m.isVisible&&i)return i}).filter(m=>m!==void 0)),o=n.ref([]),l=n.ref([]),v={zone:n.ref(null),element:n.ref(null)},f={current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}};return{isDragging:e,activeContainer:r,elements:s,draggingElements:t,selectedElements:o,zones:l,visibleElements:c,hovered:v,pointerPosition:f}}),ge=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:r,isDragging:s,activeContainer:c}=I();return n.onMounted(()=>{c.ref=t}),n.onBeforeUnmount(()=>{c.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:r,isDragging:s}},me=["innerHTML"],he=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:r,isDragging:s,draggingElements:c}=ge(),o=n.computed(()=>{var l,v,f,m;return{transform:`translate3d(${(((l=r.current.value)==null?void 0:l.x)??0)-(((v=r.offset.pixel.value)==null?void 0:v.x)??0)}px, ${(((f=r.current.value)==null?void 0:f.y)??0)-(((m=r.offset.pixel.value)==null?void 0:m.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(l,v)=>n.unref(s)?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"elementRef",ref:e,style:n.normalizeStyle(o.value)},[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(n.unref(c),(f,m)=>{var i,g;return n.openBlock(),n.createElementBlock("div",{key:m,innerHTML:f.initialHTML,style:n.normalizeStyle({width:`${(i=f.initialRect)==null?void 0:i.width}px`,height:`${(g=f.initialRect)==null?void 0:g.height}px`})},null,12,me)}),128))],4)):n.createCommentVNode("",!0)}}),j=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=I(),r=n.computed(()=>e.component.value??he);return(s,c)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(r.value)))}}),pe={install(t){t.component("DragOverlay",j);const e=t.mount;t.mount=function(s){const c=e.call(this,s),o=typeof s=="string"?document.querySelector(s):s;if(o&&o instanceof Element&&!o.querySelector("#vue-dnd-kit-overlay")){const l=document.createElement("div");l.id="vue-dnd-kit-overlay",l.style.pointerEvents="none",o.appendChild(l);const v=n.createVNode(j);n.render(v,l),t.__VUE_DND_KIT_OVERLAY__={container:l,vnode:v}}return c};const r=t.unmount;t.unmount=function(){return t.__VUE_DND_KIT_OVERLAY__&&(n.render(null,t.__VUE_DND_KIT_OVERLAY__.container),delete t.__VUE_DND_KIT_OVERLAY__),r.call(this)}}},ye="data-vue-dnd-kit-draggable",Ee=t=>{const{elements:e,draggingElements:r,hovered:s,selectedElements:c,isDragging:o}=I(),l=n.ref(null),v=n.computed(()=>{var p;return((p=s.element.value)==null?void 0:p.node)===l.value}),f=fe(l),m=n.computed(()=>r.value.some(p=>p.node===l.value)),i=n.computed(()=>{if(!l.value||!o.value)return!1;const p=e.value.find(E=>E.node===l.value);return p!=null&&p.groups.length?!r.value.some(E=>E.groups.length?!E.groups.some(u=>p.groups.includes(u)):!1):!0});return{elementRef:l,registerElement:()=>{if(!l.value)throw new Error("ElementRef is not set");e.value.push({node:l.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,isVisible:f}),l.value.setAttribute(ye,"true"),l.value.setAttribute("draggable","false")},unregisterElement:()=>{const p=e.value.findIndex(u=>u.node===l.value);p!==-1&&e.value.splice(p,1);const E=c.value.findIndex(u=>u.node===l.value);E!==-1&&c.value.splice(E,1)},isDragging:m,isOvered:v,isAllowed:i,isVisible:f}},we=()=>{let t="",e="",r="";const s=()=>{const l=document.body;t=l.style.userSelect,e=l.style.touchAction,r=l.style.overscrollBehavior,l.style.userSelect="none",l.style.touchAction="none",l.style.overscrollBehavior="none",window.addEventListener("contextmenu",o),window.addEventListener("selectstart",o),window.addEventListener("touchstart",o),window.addEventListener("touchmove",o)},c=()=>{const l=document.body;l.style.userSelect=t,l.style.touchAction=e,l.style.overscrollBehavior=r,window.removeEventListener("contextmenu",o),window.removeEventListener("selectstart",o),window.removeEventListener("touchstart",o),window.removeEventListener("touchmove",o)},o=l=>l.preventDefault();return{disableInteractions:s,enableInteractions:c}},G=(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}),Pe=(t,e)=>{const r=k(t);return{pixel:{x:e.x-r.x,y:e.y-r.y},percent:{x:(e.x-r.x)/r.width*100,y:(e.y-r.y)/r.height*100}}},J=(t,e)=>{const r=e.x-t.x,s=e.y-t.y;return Math.sqrt(r*r+s*s)},M=(t,e)=>t?e.contains(t):!1,De=t=>{const e=I();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:l,percent:v}=Pe(t.value,{x:o.clientX,y:o.clientY});e.pointerPosition.offset.pixel.value=l,e.pointerPosition.offset.percent.value=v},onPointerMove:o=>{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}}},_e=t=>{const e=I(),{onPointerStart:r,onPointerMove:s,onPointerEnd:c}=De(t);let o=null;const l=u=>{var w,P;const h=e.selectedElements.value.some(_=>_.node===u);if(e.selectedElements.value.length&&h)return e.selectedElements.value.map(_=>{var L,b;return{..._,initialHTML:((L=_.node)==null?void 0:L.outerHTML)??"",initialRect:(b=_.node)==null?void 0:b.getBoundingClientRect()}});e.selectedElements.value=[];const y=e.elements.value.find(_=>_.node===u);return y?[{...y,initialHTML:((w=y.node)==null?void 0:w.outerHTML)??"",initialRect:(P=y.node)==null?void 0:P.getBoundingClientRect()}]:[]},v=(u,h)=>{const y=Math.max(0,Math.min(u.x+u.width,h.x+h.width)-Math.max(u.x,h.x)),w=Math.max(0,Math.min(u.y+u.height,h.y+h.height)-Math.max(u.y,h.y)),P=y*w,_=u.width*u.height,L=h.width*h.height;return(P/_*100+P/L*100)/2},f=ue(()=>{var B,Y,N,F,Z,$,q,K,W,X;const u=k(e.activeContainer.ref.value),h=U(u),y=((B=e.pointerPosition.current.value)==null?void 0:B.x)??0,w=((Y=e.pointerPosition.current.value)==null?void 0:Y.y)??0,_=!(u&&y>=u.x&&y<=u.x+u.width&&w>=u.y&&w<=u.y+u.height),L=e.draggingElements.value.map(a=>a.node),b=e.visibleElements.value.map(a=>e.elements.value[a]).filter(a=>{if(!a.node||L.some(x=>x&&M(a.node,x))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(C=>a.groups.includes(C)):!1))return!1;const d=k(a.node);return d&&u&&G(d,u)}).map(a=>{const d=k(a.node),x=U(d),S=y>=d.x&&y<=d.x+d.width&&w>=d.y&&w<=d.y+d.height,C=v(d,u),A=J(h,x),z=e.elements.value.filter(O=>O!==a&&O.node&&a.node&&M(a.node,O.node)).length;return{element:a,isPointerInElement:S,overlapPercent:C,depth:z,centerDistance:A}}).sort((a,d)=>{if(!_){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}),ee=e.zones.value.filter(a=>{if(!a.node||L.some(x=>x&&M(a.node,x))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(C=>a.groups.includes(C)):!1))return!1;const d=k(a.node);return d&&u&&G(d,u)}).map(a=>{const d=k(a.node),x=U(d),S=y>=d.x&&y<=d.x+d.width&&w>=d.y&&w<=d.y+d.height,C=v(d,u),A=J(h,x),z=e.zones.value.filter(O=>O!==a&&O.node&&a.node&&M(a.node,O.node)).length;return{zone:a,isPointerInElement:S,overlapPercent:C,depth:z,centerDistance:A}}).sort((a,d)=>{if(!_){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}),T=e.hovered.element.value,V=e.hovered.zone.value;e.hovered.element.value=((N=b[0])==null?void 0:N.element)??null,e.hovered.zone.value=((F=ee[0])==null?void 0:F.zone)??null,e.hovered.element.value!==T&&((Z=T==null?void 0:T.events)!=null&&Z.onLeave&&T.events.onLeave(e),(q=($=e.hovered.element.value)==null?void 0:$.events)!=null&&q.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==V&&((K=V==null?void 0:V.events)!=null&&K.onLeave&&V.events.onLeave(e),(X=(W=e.hovered.zone.value)==null?void 0:W.events)!=null&&X.onHover&&e.hovered.zone.value.events.onHover(e))},1e3),m=()=>{f(),o=requestAnimationFrame(m)},i=()=>{m()},g=()=>{o!==null&&(cancelAnimationFrame(o),o=null)};return{activate:u=>{e.draggingElements.value=l(t.value),r(u),i()},track:u=>{s(u)},deactivate:()=>{var u,h;c(),e.hovered.zone.value?(h=(u=e.hovered.zone.value.events).onDrop)==null||h.call(u,e):e.draggingElements.value.forEach(y=>{var w,P;return(P=(w=y.events).onEnd)==null?void 0:P.call(w,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,g()}}},xe=t=>{const{elementRef:e,registerElement:r,unregisterElement:s,isDragging:c,isOvered:o,isAllowed:l,isVisible:v}=Ee(t),{disableInteractions:f,enableInteractions:m}=we(),{activeContainer:i,pointerPosition:g}=I(),{activate:D,track:p,deactivate:E}=_e(e),u=P=>{t!=null&&t.container&&(i.component.value=n.markRaw(t.container)),f(),D(P),document.addEventListener("pointermove",h),document.addEventListener("pointerup",w),document.addEventListener("wheel",y)},h=P=>p(P),y=P=>p(P),w=()=>{i.component.value=null,m(),E(),document.removeEventListener("pointermove",h),document.removeEventListener("pointerup",w),document.removeEventListener("wheel",y)};return n.onMounted(r),n.onBeforeUnmount(s),{pointerPosition:g,elementRef:e,isDragging:c,isOvered:o,isAllowed:l,handleDragStart:u,isVisible:v}},Se=t=>{const{zones:e,hovered:r,draggingElements:s,isDragging:c}=I(),o=n.ref(null),l=n.computed(()=>{var i;return((i=r.zone.value)==null?void 0:i.node)===o.value}),v=n.computed(()=>{if(!o.value||!c.value)return!1;const i=e.value.find(g=>g.node===o.value);return i!=null&&i.groups.length?!s.value.some(g=>g.groups.length?!g.groups.some(D=>i.groups.includes(D)):!1):!0});return{elementRef:o,registerZone:()=>{if(!o.value)throw new Error("elementRef is not set");e.value.push({node:o.value,groups:(t==null?void 0:t.groups)??[],events:(t==null?void 0:t.events)??{},data:(t==null?void 0:t.data)??void 0}),o.value.setAttribute("data-dnd-droppable","true")},unregisterZone:()=>{if(!o.value)throw new Error("elementRef is not set");const i=e.value.findIndex(g=>g.node===o.value);i!==-1&&e.value.splice(i,1)},isOvered:l,isAllowed:v}},Ie=t=>{const{elementRef:e,registerZone:r,unregisterZone:s,isOvered:c,isAllowed:o}=Se(t);return n.onMounted(r),n.onBeforeUnmount(s),{elementRef:e,isOvered:c,isAllowed:o}},Me=t=>{const{selectedElements:e,elements:r}=I(),s=n.computed(()=>r.value.find(i=>i.node===t.value)),c=n.computed(()=>e.value.some(i=>i.node===t.value)),o=n.computed(()=>t.value?e.value.some(i=>i.node&&M(i.node,t.value)):!1),l=n.computed(()=>t.value?e.value.some(i=>i.node&&M(t.value,i.node)):!1),v=()=>{s.value&&(e.value=e.value.filter(i=>i.node!==t.value))},f=()=>{s.value&&(o.value&&(e.value=e.value.filter(i=>i.node&&!M(i.node,t.value))),l.value&&(e.value=e.value.filter(i=>i.node&&!M(t.value,i.node))),e.value.push(s.value))};return{handleUnselect:v,handleSelect:f,handleToggleSelect:()=>{s.value&&(e.value.some(i=>i.node===t.value)?v():f())},isSelected:c,isParentOfSelected:o}};exports.default=pe;exports.useDnDStore=I;exports.useDraggable=xe;exports.useDroppable=Ie;exports.useSelection=Me;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue");function ne(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function re(t){let e=!1,o;const l=n.effectScope(!0);return(...c)=>(e||(o=l.run(()=>t(...c)),e=!0),o)}const oe=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const le=t=>t!=null,R=()=>{};function se(t,e){function o(...l){return new Promise((c,r)=>{Promise.resolve(t(()=>e.apply(this,l),{fn:e,thisArg:this,args:l})).then(c).catch(r)})}return o}function ie(...t){let e=0,o,l=!0,c=R,r,a,m,v,w;!n.isRef(t[0])&&typeof t[0]=="object"?{delay:a,trailing:m=!0,leading:v=!0,rejectOnCancel:w=!1}=t[0]:[a,m=!0,v=!0,w=!1]=t;const s=()=>{o&&(clearTimeout(o),o=void 0,c(),c=R)};return y=>{const h=n.toValue(a),P=Date.now()-e,i=()=>r=y();return s(),h<=0?(e=Date.now(),i()):(P>h&&(v||!l)?(e=Date.now(),i()):m&&(r=new Promise((f,g)=>{c=w?g:f,o=setTimeout(()=>{e=Date.now(),l=!0,f(i()),s()},Math.max(0,h-P))})),!v&&!o&&(o=setTimeout(()=>l=!0,h)),l=!1,r)}}function ae(t){return Array.isArray(t)?t:[t]}function ue(t,e=200,o=!1,l=!0,c=!1){return se(ie(e,o,l,c),t)}const ce=oe?window:void 0;function U(t){var e;const o=n.toValue(t);return(e=o==null?void 0:o.$el)!=null?e:o}function de(){const t=n.shallowRef(!1),e=n.getCurrentInstance();return e&&n.onMounted(()=>{t.value=!0},e),t}function ve(t){const e=de();return n.computed(()=>(e.value,!!t()))}function fe(t,e,o={}){const{root:l,rootMargin:c="0px",threshold:r=0,window:a=ce,immediate:m=!0}=o,v=ve(()=>a&&"IntersectionObserver"in a),w=n.computed(()=>{const P=n.toValue(t);return ae(P).map(U).filter(le)});let s=R;const E=n.shallowRef(m),y=v.value?n.watch(()=>[w.value,U(l),E.value],([P,i])=>{if(s(),!E.value||!P.length)return;const f=new IntersectionObserver(e,{root:U(i),rootMargin:c,threshold:r});P.forEach(g=>g&&f.observe(g)),s=()=>{f.disconnect(),s=R}},{immediate:m,flush:"post"}):R,h=()=>{s(),y(),E.value=!1};return ne(h),{isSupported:v,isActive:E,pause(){s(),E.value=!1},resume(){E.value=!0},stop:h}}const L=re(()=>{const t=n.ref([]),e=n.computed(()=>t.value.length>0),o={component:n.ref(null),ref:n.ref(null)},l=n.ref([]),c=n.computed(()=>{const h=new Map;return l.value.forEach((P,i)=>{P.node&&h.set(P.node,i)}),h}),r=n.ref(new Set),a=n.computed(()=>Array.from(r.value).sort((h,P)=>h-P)),m=n.computed(()=>l.value.filter(h=>h.node).map(h=>h.node));n.watch(()=>m.value.length,h=>{if(h===0)return;v&&(v(),v=null);const{stop:P}=fe(m,i=>{let f=!1;i.forEach(g=>{const p=g.target,D=c.value.get(p);D!==void 0&&l.value[D].isVisible!==g.isIntersecting&&(l.value[D].isVisible=g.isIntersecting,f=!0,g.isIntersecting?r.value.add(D):r.value.delete(D))}),f&&(r.value=new Set(r.value))},{threshold:.1,immediate:!0});v=P},{immediate:!0});let v=null;const w=n.ref([]),s=n.ref([]),E={zone:n.ref(null),element:n.ref(null)},y={current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}};return{isDragging:e,activeContainer:o,elements:l,draggingElements:t,selectedElements:w,zones:s,visibleElements:a,hovered:E,pointerPosition:y,elementNodeMap:c,cleanup:()=>{v&&(v(),v=null)}}}),ge=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:o,isDragging:l,activeContainer:c}=L();return n.onMounted(()=>{c.ref=t}),n.onBeforeUnmount(()=>{c.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:o,isDragging:l}},me=["innerHTML"],he=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:o,isDragging:l,draggingElements:c}=ge(),r=n.computed(()=>{var a,m,v,w;return{transform:`translate3d(${(((a=o.current.value)==null?void 0:a.x)??0)-(((m=o.offset.pixel.value)==null?void 0:m.x)??0)}px, ${(((v=o.current.value)==null?void 0:v.y)??0)-(((w=o.offset.pixel.value)==null?void 0:w.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(l)?(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(c),(v,w)=>{var s,E;return n.openBlock(),n.createElementBlock("div",{key:w,innerHTML:v.initialHTML,style:n.normalizeStyle({width:`${(s=v.initialRect)==null?void 0:s.width}px`,height:`${(E=v.initialRect)==null?void 0:E.height}px`})},null,12,me)}),128))],4)):n.createCommentVNode("",!0)}}),G=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=L(),o=n.computed(()=>e.component.value??he);return(l,c)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(o.value)))}}),pe={install(t){t.component("DragOverlay",G);const e=t.mount;t.mount=function(l){const c=e.call(this,l),r=typeof l=="string"?document.querySelector(l):l;if(r&&r instanceof Element&&!r.querySelector("#vue-dnd-kit-overlay")){const a=document.createElement("div");a.id="vue-dnd-kit-overlay",a.style.pointerEvents="none",r.appendChild(a);const m=n.createVNode(G);n.render(m,a),t.__VUE_DND_KIT_OVERLAY__={container:a,vnode:m}}return c};const o=t.unmount;t.unmount=function(){return t.__VUE_DND_KIT_OVERLAY__&&(n.render(null,t.__VUE_DND_KIT_OVERLAY__.container),delete t.__VUE_DND_KIT_OVERLAY__),o.call(this)}}},J="data-vue-dnd-kit-draggable",x=t=>{t.preventDefault()},Ee=t=>{const{elements:e,draggingElements:o,hovered:l,selectedElements:c,isDragging:r}=L(),a=n.ref(null),m=n.computed(()=>{var y;return((y=l.element.value)==null?void 0:y.node)===a.value}),v=n.computed(()=>o.value.some(y=>y.node===a.value)),w=n.computed(()=>{if(!a.value||!r.value)return!1;const y=e.value.find(h=>h.node===a.value);return y!=null&&y.groups.length?!o.value.some(h=>h.groups.length?!h.groups.some(P=>y.groups.includes(P)):!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,isVisible:!1}),a.value.addEventListener("dragstart",x),a.value.addEventListener("drag",x),a.value.setAttribute(J,"true"),a.value.setAttribute("draggable","false")},unregisterElement:()=>{var P,i,f,g;const y=e.value.findIndex(p=>p.node===a.value);y!==-1&&e.value.splice(y,1);const h=c.value.findIndex(p=>p.node===a.value);h!==-1&&c.value.splice(h,1),(P=a.value)==null||P.removeEventListener("dragstart",x),(i=a.value)==null||i.removeEventListener("drag",x),(f=a.value)==null||f.removeAttribute(J),(g=a.value)==null||g.removeAttribute("draggable")},isDragging:v,isOvered:m,isAllowed:w}},ye=()=>{let t="",e="",o="";return{disableInteractions:()=>{const r=document.body;t=r.style.userSelect,e=r.style.touchAction,o=r.style.overscrollBehavior,r.style.userSelect="none",r.style.touchAction="none",r.style.overscrollBehavior="none",window.addEventListener("contextmenu",x),window.addEventListener("selectstart",x),window.addEventListener("touchstart",x),window.addEventListener("touchmove",x)},enableInteractions:()=>{const r=document.body;r.style.userSelect=t,r.style.touchAction=e,r.style.overscrollBehavior=o,window.removeEventListener("contextmenu",x),window.removeEventListener("selectstart",x),window.removeEventListener("touchstart",x),window.removeEventListener("touchmove",x)}}},Q=(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,T=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}},N=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),we=(t,e)=>{const o=T(t);return{pixel:{x:e.x-o.x,y:e.y-o.y},percent:{x:(e.x-o.x)/o.width*100,y:(e.y-o.y)/o.height*100}}},ee=(t,e)=>{const o=e.x-t.x,l=e.y-t.y;return Math.sqrt(o*o+l*l)},M=(t,e)=>t?e.contains(t):!1,Pe=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:a,percent:m}=we(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}}},De=t=>{const e=L(),{onPointerStart:o,onPointerMove:l,onPointerEnd:c}=Pe(t);let r=null;const a=i=>{var p,D;const f=e.selectedElements.value.some(_=>_.node===i);if(e.selectedElements.value.length&&f)return e.selectedElements.value.map(_=>{var C,V;return{..._,initialHTML:((C=_.node)==null?void 0:C.outerHTML)??"",initialRect:(V=_.node)==null?void 0:V.getBoundingClientRect()}});e.selectedElements.value=[];const g=e.elements.value.find(_=>_.node===i);return g?[{...g,initialHTML:((p=g.node)==null?void 0:p.outerHTML)??"",initialRect:(D=g.node)==null?void 0:D.getBoundingClientRect()}]:[]},m=(i,f)=>{const g=Math.max(0,Math.min(i.x+i.width,f.x+f.width)-Math.max(i.x,f.x)),p=Math.max(0,Math.min(i.y+i.height,f.y+f.height)-Math.max(i.y,f.y)),D=g*p,_=i.width*i.height,C=f.width*f.height;return(D/_*100+D/C*100)/2},v=ue(()=>{var B,Y,F,Z,$,q,K,W,X,j;const i=T(e.activeContainer.ref.value),f=N(i),g=((B=e.pointerPosition.current.value)==null?void 0:B.x)??0,p=((Y=e.pointerPosition.current.value)==null?void 0:Y.y)??0,_=!(i&&g>=i.x&&g<=i.x+i.width&&p>=i.y&&p<=i.y+i.height),C=e.draggingElements.value.map(u=>u.node),V=e.visibleElements.value.map(u=>e.elements.value[u]).filter(u=>{if(!u.node||C.some(S=>S&&M(u.node,S))||u.groups.length&&!!e.draggingElements.value.some(I=>I.groups.length?!I.groups.some(O=>u.groups.includes(O)):!1))return!1;const d=T(u.node);return d&&i&&Q(d,i)}).map(u=>{const d=T(u.node),S=N(d),I=g>=d.x&&g<=d.x+d.width&&p>=d.y&&p<=d.y+d.height,O=m(d,i),z=ee(f,S),H=e.elements.value.filter(k=>k!==u&&k.node&&u.node&&M(u.node,k.node)).length;return{element:u,isPointerInElement:I,overlapPercent:O,depth:H,centerDistance:z}}).sort((u,d)=>{if(!_){if(u.isPointerInElement&&d.isPointerInElement)return d.depth-u.depth;if(u.isPointerInElement!==d.isPointerInElement)return u.isPointerInElement?-1:1}return Math.abs(u.overlapPercent-d.overlapPercent)<=1?u.centerDistance-d.centerDistance:d.overlapPercent-u.overlapPercent}),te=e.zones.value.filter(u=>{if(!u.node||C.some(S=>S&&M(u.node,S))||u.groups.length&&!!e.draggingElements.value.some(I=>I.groups.length?!I.groups.some(O=>u.groups.includes(O)):!1))return!1;const d=T(u.node);return d&&i&&Q(d,i)}).map(u=>{const d=T(u.node),S=N(d),I=g>=d.x&&g<=d.x+d.width&&p>=d.y&&p<=d.y+d.height,O=m(d,i),z=ee(f,S),H=e.zones.value.filter(k=>k!==u&&k.node&&u.node&&M(u.node,k.node)).length;return{zone:u,isPointerInElement:I,overlapPercent:O,depth:H,centerDistance:z}}).sort((u,d)=>{if(!_){if(u.isPointerInElement&&d.isPointerInElement)return d.depth-u.depth;if(u.isPointerInElement!==d.isPointerInElement)return u.isPointerInElement?-1:1}return Math.abs(u.overlapPercent-d.overlapPercent)<=1?u.centerDistance-d.centerDistance:d.overlapPercent-u.overlapPercent}),b=e.hovered.element.value,A=e.hovered.zone.value;e.hovered.element.value=((F=V[0])==null?void 0:F.element)??null,e.hovered.zone.value=((Z=te[0])==null?void 0:Z.zone)??null,e.hovered.element.value!==b&&(($=b==null?void 0:b.events)!=null&&$.onLeave&&b.events.onLeave(e),(K=(q=e.hovered.element.value)==null?void 0:q.events)!=null&&K.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==A&&((W=A==null?void 0:A.events)!=null&&W.onLeave&&A.events.onLeave(e),(j=(X=e.hovered.zone.value)==null?void 0:X.events)!=null&&j.onHover&&e.hovered.zone.value.events.onHover(e))},1e3),w=()=>{v(),r=requestAnimationFrame(w)},s=()=>{w()},E=()=>{r!==null&&(cancelAnimationFrame(r),r=null)};return{activate:i=>{e.draggingElements.value=a(t.value),o(i),s()},track:i=>{l(i)},deactivate:()=>{var i,f;c(),e.hovered.zone.value?(f=(i=e.hovered.zone.value.events).onDrop)==null||f.call(i,e):e.draggingElements.value.forEach(g=>{var p,D;return(D=(p=g.events).onEnd)==null?void 0:D.call(p,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,E()}}},_e=t=>{const{elementRef:e,registerElement:o,unregisterElement:l,isDragging:c,isOvered:r,isAllowed:a}=Ee(t),{disableInteractions:m,enableInteractions:v}=ye(),{activeContainer:w,pointerPosition:s}=L(),{activate:E,track:y,deactivate:h}=De(e),P=p=>{t!=null&&t.container&&(w.component.value=n.markRaw(t.container)),m(),E(p),document.addEventListener("pointermove",i),document.addEventListener("pointerup",g),document.addEventListener("wheel",f)},i=p=>y(p),f=p=>y(p),g=()=>{w.component.value=null,v(),h(),document.removeEventListener("pointermove",i),document.removeEventListener("pointerup",g),document.removeEventListener("wheel",f)};return n.onMounted(o),n.onBeforeUnmount(l),{pointerPosition:s,elementRef:e,isDragging:c,isOvered:r,isAllowed:a,handleDragStart:P}},xe=t=>{const{zones:e,hovered:o,draggingElements:l,isDragging:c}=L(),r=n.ref(null),a=n.computed(()=>{var s;return((s=o.zone.value)==null?void 0:s.node)===r.value}),m=n.computed(()=>{if(!r.value||!c.value)return!1;const s=e.value.find(E=>E.node===r.value);return s!=null&&s.groups.length?!l.value.some(E=>E.groups.length?!E.groups.some(y=>s.groups.includes(y)):!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 s=e.value.findIndex(E=>E.node===r.value);s!==-1&&e.value.splice(s,1)},isOvered:a,isAllowed:m}},Se=t=>{const{elementRef:e,registerZone:o,unregisterZone:l,isOvered:c,isAllowed:r}=xe(t);return n.onMounted(o),n.onBeforeUnmount(l),{elementRef:e,isOvered:c,isAllowed:r}},Ie=t=>{const{selectedElements:e,elements:o}=L(),l=n.computed(()=>o.value.find(s=>s.node===t.value)),c=n.computed(()=>e.value.some(s=>s.node===t.value)),r=n.computed(()=>t.value?e.value.some(s=>s.node&&M(s.node,t.value)):!1),a=n.computed(()=>t.value?e.value.some(s=>s.node&&M(t.value,s.node)):!1),m=()=>{l.value&&(e.value=e.value.filter(s=>s.node!==t.value))},v=()=>{l.value&&(r.value&&(e.value=e.value.filter(s=>s.node&&!M(s.node,t.value))),a.value&&(e.value=e.value.filter(s=>s.node&&!M(t.value,s.node))),e.value.push(l.value))};return{handleUnselect:m,handleSelect:v,handleToggleSelect:()=>{l.value&&(e.value.some(s=>s.node===t.value)?m():v())},isSelected:c,isParentOfSelected:r}};exports.default=pe;exports.useDnDStore=L;exports.useDraggable=_e;exports.useDroppable=Se;exports.useSelection=Ie;
@@ -1,190 +1,196 @@
1
- import { effectScope as fe, watch as ue, nextTick as ge, isRef as me, getCurrentScope as he, onScopeDispose as pe, toValue as H, shallowRef as K, computed as D, getCurrentInstance as ye, onMounted as U, ref as P, onBeforeUnmount as W, defineComponent as ce, createElementBlock as F, createCommentVNode as Ee, unref as re, openBlock as b, normalizeStyle as oe, Fragment as we, renderList as Pe, createBlock as De, resolveDynamicComponent as _e, createVNode as xe, render as le, markRaw as Ie } from "vue";
1
+ import { effectScope as ge, getCurrentScope as me, onScopeDispose as he, isRef as pe, toValue as K, computed as P, shallowRef as ce, watch as ve, getCurrentInstance as Ee, onMounted as N, ref as D, onBeforeUnmount as W, defineComponent as de, createElementBlock as F, createCommentVNode as ye, unref as re, openBlock as H, normalizeStyle as oe, Fragment as we, renderList as Pe, createBlock as De, resolveDynamicComponent as _e, createVNode as xe, render as le, markRaw as Ie } from "vue";
2
2
  function Le(t) {
3
- return he() ? (pe(t), !0) : !1;
3
+ return me() ? (he(t), !0) : !1;
4
4
  }
5
5
  function Se(t) {
6
- let e = !1, n;
7
- const i = fe(!0);
8
- return (...u) => (e || (n = i.run(() => t(...u)), e = !0), n);
6
+ let e = !1, r;
7
+ const o = ge(!0);
8
+ return (...u) => (e || (r = o.run(() => t(...u)), e = !0), r);
9
9
  }
10
10
  const Me = typeof window < "u" && typeof document < "u";
11
11
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
12
- const Ce = (t) => t != null, A = () => {
12
+ const Ce = (t) => t != null, b = () => {
13
13
  };
14
14
  function Oe(t, e) {
15
- function n(...i) {
16
- return new Promise((u, r) => {
17
- Promise.resolve(t(() => e.apply(this, i), { fn: e, thisArg: this, args: i })).then(u).catch(r);
15
+ function r(...o) {
16
+ return new Promise((u, n) => {
17
+ Promise.resolve(t(() => e.apply(this, o), { fn: e, thisArg: this, args: o })).then(u).catch(n);
18
18
  });
19
19
  }
20
- return n;
20
+ return r;
21
21
  }
22
22
  function Te(...t) {
23
- let e = 0, n, i = !0, u = A, r, o, v, d, g;
24
- !me(t[0]) && typeof t[0] == "object" ? { delay: o, trailing: v = !0, leading: d = !0, rejectOnCancel: g = !1 } = t[0] : [o, v = !0, d = !0, g = !1] = t;
23
+ let e = 0, r, o = !0, u = b, n, s, g, v, y;
24
+ !pe(t[0]) && typeof t[0] == "object" ? { delay: s, trailing: g = !0, leading: v = !0, rejectOnCancel: y = !1 } = t[0] : [s, g = !0, v = !0, y = !1] = t;
25
25
  const l = () => {
26
- n && (clearTimeout(n), n = void 0, u(), u = A);
26
+ r && (clearTimeout(r), r = void 0, u(), u = b);
27
27
  };
28
- return (_) => {
29
- const h = H(o), y = Date.now() - e, s = () => r = _();
30
- return l(), h <= 0 ? (e = Date.now(), s()) : (y > h && (d || !i) ? (e = Date.now(), s()) : v && (r = new Promise((m, p) => {
31
- u = g ? p : m, n = setTimeout(() => {
32
- e = Date.now(), i = !0, m(s()), l();
33
- }, Math.max(0, h - y));
34
- })), !d && !n && (n = setTimeout(() => i = !0, h)), i = !1, r);
28
+ return (E) => {
29
+ const m = K(s), w = Date.now() - e, i = () => n = E();
30
+ return l(), m <= 0 ? (e = Date.now(), i()) : (w > m && (v || !o) ? (e = Date.now(), i()) : g && (n = new Promise((d, f) => {
31
+ u = y ? f : d, r = setTimeout(() => {
32
+ e = Date.now(), o = !0, d(i()), l();
33
+ }, Math.max(0, m - w));
34
+ })), !v && !r && (r = setTimeout(() => o = !0, m)), o = !1, n);
35
35
  };
36
36
  }
37
- function Ve(t) {
37
+ function Ae(t) {
38
38
  return Array.isArray(t) ? t : [t];
39
39
  }
40
- function ke(t, e = 200, n = !1, i = !0, u = !1) {
40
+ function ke(t, e = 200, r = !1, o = !0, u = !1) {
41
41
  return Oe(
42
- Te(e, n, i, u),
42
+ Te(e, r, o, u),
43
43
  t
44
44
  );
45
45
  }
46
- function Re(t, e, n) {
47
- const i = ue(t, (...u) => (ge(() => i()), e(...u)), n);
48
- return i;
49
- }
50
- const ve = Me ? window : void 0;
46
+ const Re = Me ? window : void 0;
51
47
  function Z(t) {
52
48
  var e;
53
- const n = H(t);
54
- return (e = n == null ? void 0 : n.$el) != null ? e : n;
49
+ const r = K(t);
50
+ return (e = r == null ? void 0 : r.$el) != null ? e : r;
55
51
  }
56
- function Ae() {
57
- const t = K(!1), e = ye();
58
- return e && U(() => {
52
+ function Ve() {
53
+ const t = ce(!1), e = Ee();
54
+ return e && N(() => {
59
55
  t.value = !0;
60
56
  }, e), t;
61
57
  }
62
- function ze(t) {
63
- const e = Ae();
64
- return D(() => (e.value, !!t()));
58
+ function be(t) {
59
+ const e = Ve();
60
+ return P(() => (e.value, !!t()));
65
61
  }
66
- function be(t, e, n = {}) {
62
+ function ze(t, e, r = {}) {
67
63
  const {
68
- root: i,
64
+ root: o,
69
65
  rootMargin: u = "0px",
70
- threshold: r = 0,
71
- window: o = ve,
72
- immediate: v = !0
73
- } = n, d = ze(() => o && "IntersectionObserver" in o), g = D(() => {
74
- const y = H(t);
75
- return Ve(y).map(Z).filter(Ce);
66
+ threshold: n = 0,
67
+ window: s = Re,
68
+ immediate: g = !0
69
+ } = r, v = be(() => s && "IntersectionObserver" in s), y = P(() => {
70
+ const w = K(t);
71
+ return Ae(w).map(Z).filter(Ce);
76
72
  });
77
- let l = A;
78
- const f = K(v), _ = d.value ? ue(
79
- () => [g.value, Z(i), f.value],
80
- ([y, s]) => {
81
- if (l(), !f.value || !y.length)
73
+ let l = b;
74
+ const p = ce(g), E = v.value ? ve(
75
+ () => [y.value, Z(o), p.value],
76
+ ([w, i]) => {
77
+ if (l(), !p.value || !w.length)
82
78
  return;
83
- const m = new IntersectionObserver(
79
+ const d = new IntersectionObserver(
84
80
  e,
85
81
  {
86
- root: Z(s),
82
+ root: Z(i),
87
83
  rootMargin: u,
88
- threshold: r
84
+ threshold: n
89
85
  }
90
86
  );
91
- y.forEach((p) => p && m.observe(p)), l = () => {
92
- m.disconnect(), l = A;
87
+ w.forEach((f) => f && d.observe(f)), l = () => {
88
+ d.disconnect(), l = b;
93
89
  };
94
90
  },
95
- { immediate: v, flush: "post" }
96
- ) : A, h = () => {
97
- l(), _(), f.value = !1;
91
+ { immediate: g, flush: "post" }
92
+ ) : b, m = () => {
93
+ l(), E(), p.value = !1;
98
94
  };
99
- return Le(h), {
100
- isSupported: d,
101
- isActive: f,
95
+ return Le(m), {
96
+ isSupported: v,
97
+ isActive: p,
102
98
  pause() {
103
- l(), f.value = !1;
99
+ l(), p.value = !1;
104
100
  },
105
101
  resume() {
106
- f.value = !0;
102
+ p.value = !0;
107
103
  },
108
- stop: h
104
+ stop: m
109
105
  };
110
106
  }
111
- function He(t, e = {}) {
112
- const {
113
- window: n = ve,
114
- scrollTarget: i,
115
- threshold: u = 0,
116
- rootMargin: r,
117
- once: o = !1
118
- } = e, v = K(!1), { stop: d } = be(
119
- t,
120
- (g) => {
121
- let l = v.value, f = 0;
122
- for (const _ of g)
123
- _.time >= f && (f = _.time, l = _.isIntersecting);
124
- v.value = l, o && Re(v, () => {
125
- d();
126
- });
107
+ const C = Se(() => {
108
+ const t = D([]), e = P(() => t.value.length > 0), r = {
109
+ component: D(null),
110
+ ref: D(null)
111
+ }, o = D([]), u = P(() => {
112
+ const m = /* @__PURE__ */ new Map();
113
+ return o.value.forEach((w, i) => {
114
+ w.node && m.set(w.node, i);
115
+ }), m;
116
+ }), n = D(/* @__PURE__ */ new Set()), s = P(
117
+ () => Array.from(n.value).sort((m, w) => m - w)
118
+ ), g = P(
119
+ () => o.value.filter((m) => m.node).map((m) => m.node)
120
+ );
121
+ ve(
122
+ () => g.value.length,
123
+ (m) => {
124
+ if (m === 0) return;
125
+ v && (v(), v = null);
126
+ const { stop: w } = ze(
127
+ g,
128
+ (i) => {
129
+ let d = !1;
130
+ i.forEach((f) => {
131
+ const h = f.target, _ = u.value.get(h);
132
+ _ !== void 0 && o.value[_].isVisible !== f.isIntersecting && (o.value[_].isVisible = f.isIntersecting, d = !0, f.isIntersecting ? n.value.add(_) : n.value.delete(_));
133
+ }), d && (n.value = new Set(n.value));
134
+ },
135
+ {
136
+ threshold: 0.1,
137
+ // Элемент считается видимым, если видно хотя бы 10%
138
+ immediate: !0
139
+ }
140
+ );
141
+ v = w;
127
142
  },
128
- {
129
- root: i,
130
- window: n,
131
- threshold: u,
132
- rootMargin: H(r)
133
- }
143
+ { immediate: !0 }
134
144
  );
135
- return v;
136
- }
137
- const M = Se(() => {
138
- const t = P([]), e = D(() => t.value.length > 0), n = {
139
- component: P(null),
140
- ref: P(null)
141
- }, i = P([]), u = D(
142
- () => i.value.map((g, l) => {
143
- var f;
144
- if ((f = g.isVisible) != null && f.value || g.isVisible && l)
145
- return l;
146
- }).filter((g) => g !== void 0)
147
- ), r = P([]), o = P([]), v = {
148
- zone: P(null),
149
- element: P(null)
150
- }, d = {
151
- current: P(null),
152
- start: P(null),
145
+ let v = null;
146
+ const y = D([]), l = D([]), p = {
147
+ zone: D(null),
148
+ element: D(null)
149
+ }, E = {
150
+ current: D(null),
151
+ start: D(null),
153
152
  offset: {
154
- percent: P(null),
155
- pixel: P(null)
153
+ percent: D(null),
154
+ pixel: D(null)
156
155
  }
157
156
  };
158
157
  return {
159
158
  isDragging: e,
160
- activeContainer: n,
161
- elements: i,
159
+ activeContainer: r,
160
+ elements: o,
162
161
  draggingElements: t,
163
- selectedElements: r,
164
- zones: o,
165
- visibleElements: u,
166
- hovered: v,
167
- pointerPosition: d
162
+ selectedElements: y,
163
+ zones: l,
164
+ visibleElements: s,
165
+ // Теперь это computed свойство
166
+ hovered: p,
167
+ pointerPosition: E,
168
+ // Экспортируем Map для быстрого доступа
169
+ elementNodeMap: u,
170
+ // Добавляем метод для очистки ресурсов
171
+ cleanup: () => {
172
+ v && (v(), v = null);
173
+ }
168
174
  };
169
- }), Ue = () => {
170
- const t = P(null), { draggingElements: e, pointerPosition: n, isDragging: i, activeContainer: u } = M();
171
- return U(() => {
175
+ }), He = () => {
176
+ const t = D(null), { draggingElements: e, pointerPosition: r, isDragging: o, activeContainer: u } = C();
177
+ return N(() => {
172
178
  u.ref = t;
173
179
  }), W(() => {
174
180
  u.ref.value = null;
175
181
  }), {
176
182
  elementRef: t,
177
183
  draggingElements: e,
178
- pointerPosition: n,
179
- isDragging: i
184
+ pointerPosition: r,
185
+ isDragging: o
180
186
  };
181
- }, Ye = ["innerHTML"], Ne = /* @__PURE__ */ ce({
187
+ }, Ne = ["innerHTML"], Ue = /* @__PURE__ */ de({
182
188
  __name: "DefaultOverlay",
183
189
  setup(t) {
184
- const { elementRef: e, pointerPosition: n, isDragging: i, draggingElements: u } = Ue(), r = D(() => {
185
- var o, v, d, g;
190
+ const { elementRef: e, pointerPosition: r, isDragging: o, draggingElements: u } = He(), n = P(() => {
191
+ var s, g, v, y;
186
192
  return {
187
- transform: `translate3d(${(((o = n.current.value) == null ? void 0 : o.x) ?? 0) - (((v = n.offset.pixel.value) == null ? void 0 : v.x) ?? 0)}px, ${(((d = n.current.value) == null ? void 0 : d.y) ?? 0) - (((g = n.offset.pixel.value) == null ? void 0 : g.y) ?? 0)}px, 0)`,
193
+ transform: `translate3d(${(((s = r.current.value) == null ? void 0 : s.x) ?? 0) - (((g = r.offset.pixel.value) == null ? void 0 : g.x) ?? 0)}px, ${(((v = r.current.value) == null ? void 0 : v.y) ?? 0) - (((y = r.offset.pixel.value) == null ? void 0 : y.y) ?? 0)}px, 0)`,
188
194
  zIndex: 1e3,
189
195
  position: "fixed",
190
196
  top: 0,
@@ -192,121 +198,122 @@ const M = Se(() => {
192
198
  transition: "0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"
193
199
  };
194
200
  });
195
- return (o, v) => re(i) ? (b(), F("div", {
201
+ return (s, g) => re(o) ? (H(), F("div", {
196
202
  key: 0,
197
203
  ref_key: "elementRef",
198
204
  ref: e,
199
- style: oe(r.value)
205
+ style: oe(n.value)
200
206
  }, [
201
- (b(!0), F(we, null, Pe(re(u), (d, g) => {
202
- var l, f;
203
- return b(), F("div", {
204
- key: g,
205
- innerHTML: d.initialHTML,
207
+ (H(!0), F(we, null, Pe(re(u), (v, y) => {
208
+ var l, p;
209
+ return H(), F("div", {
210
+ key: y,
211
+ innerHTML: v.initialHTML,
206
212
  style: oe({
207
- width: `${(l = d.initialRect) == null ? void 0 : l.width}px`,
208
- height: `${(f = d.initialRect) == null ? void 0 : f.height}px`
213
+ width: `${(l = v.initialRect) == null ? void 0 : l.width}px`,
214
+ height: `${(p = v.initialRect) == null ? void 0 : p.height}px`
209
215
  })
210
- }, null, 12, Ye);
216
+ }, null, 12, Ne);
211
217
  }), 128))
212
- ], 4)) : Ee("", !0);
218
+ ], 4)) : ye("", !0);
213
219
  }
214
- }), ie = /* @__PURE__ */ ce({
220
+ }), ie = /* @__PURE__ */ de({
215
221
  __name: "DragOverlay",
216
222
  setup(t) {
217
- const { activeContainer: e } = M(), n = D(
218
- () => e.component.value ?? Ne
223
+ const { activeContainer: e } = C(), r = P(
224
+ () => e.component.value ?? Ue
219
225
  );
220
- return (i, u) => (b(), De(_e(n.value)));
226
+ return (o, u) => (H(), De(_e(r.value)));
221
227
  }
222
- }), Ge = {
228
+ }), qe = {
223
229
  install(t) {
224
230
  t.component("DragOverlay", ie);
225
231
  const e = t.mount;
226
- t.mount = function(i) {
227
- const u = e.call(this, i), r = typeof i == "string" ? document.querySelector(i) : i;
228
- if (r && r instanceof Element && !r.querySelector("#vue-dnd-kit-overlay")) {
229
- const o = document.createElement("div");
230
- o.id = "vue-dnd-kit-overlay", o.style.pointerEvents = "none", r.appendChild(o);
231
- const v = xe(ie);
232
- le(v, o), t.__VUE_DND_KIT_OVERLAY__ = {
233
- container: o,
234
- vnode: v
232
+ t.mount = function(o) {
233
+ const u = e.call(this, o), n = typeof o == "string" ? document.querySelector(o) : o;
234
+ if (n && n instanceof Element && !n.querySelector("#vue-dnd-kit-overlay")) {
235
+ const s = document.createElement("div");
236
+ s.id = "vue-dnd-kit-overlay", s.style.pointerEvents = "none", n.appendChild(s);
237
+ const g = xe(ie);
238
+ le(g, s), t.__VUE_DND_KIT_OVERLAY__ = {
239
+ container: s,
240
+ vnode: g
235
241
  };
236
242
  }
237
243
  return u;
238
244
  };
239
- const n = t.unmount;
245
+ const r = t.unmount;
240
246
  t.unmount = function() {
241
- return t.__VUE_DND_KIT_OVERLAY__ && (le(null, t.__VUE_DND_KIT_OVERLAY__.container), delete t.__VUE_DND_KIT_OVERLAY__), n.call(this);
247
+ return t.__VUE_DND_KIT_OVERLAY__ && (le(null, t.__VUE_DND_KIT_OVERLAY__.container), delete t.__VUE_DND_KIT_OVERLAY__), r.call(this);
242
248
  };
243
249
  }
244
- }, Fe = "data-vue-dnd-kit-draggable", Ze = (t) => {
250
+ }, se = "data-vue-dnd-kit-draggable", I = (t) => {
251
+ t.preventDefault();
252
+ }, Ye = (t) => {
245
253
  const {
246
254
  elements: e,
247
- draggingElements: n,
248
- hovered: i,
255
+ draggingElements: r,
256
+ hovered: o,
249
257
  selectedElements: u,
250
- isDragging: r
251
- } = M(), o = P(null), v = D(
258
+ isDragging: n
259
+ } = C(), s = D(null), g = P(
252
260
  () => {
253
- var h;
254
- return ((h = i.element.value) == null ? void 0 : h.node) === o.value;
261
+ var E;
262
+ return ((E = o.element.value) == null ? void 0 : E.node) === s.value;
255
263
  }
256
- ), d = He(o), g = D(
257
- () => n.value.some((h) => h.node === o.value)
258
- ), l = D(() => {
259
- if (!o.value || !r.value) return !1;
260
- const h = e.value.find(
261
- (y) => y.node === o.value
264
+ ), v = P(
265
+ () => r.value.some((E) => E.node === s.value)
266
+ ), y = P(() => {
267
+ if (!s.value || !n.value) return !1;
268
+ const E = e.value.find(
269
+ (m) => m.node === s.value
262
270
  );
263
- return h != null && h.groups.length ? !n.value.some((y) => y.groups.length ? !y.groups.some(
264
- (s) => h.groups.includes(s)
271
+ return E != null && E.groups.length ? !r.value.some((m) => m.groups.length ? !m.groups.some(
272
+ (w) => E.groups.includes(w)
265
273
  ) : !1) : !0;
266
274
  });
267
275
  return {
268
- elementRef: o,
276
+ elementRef: s,
269
277
  registerElement: () => {
270
- if (!o.value) throw new Error("ElementRef is not set");
278
+ if (!s.value) throw new Error("ElementRef is not set");
271
279
  e.value.push({
272
- node: o.value,
280
+ node: s.value,
273
281
  groups: (t == null ? void 0 : t.groups) ?? [],
274
282
  layer: (t == null ? void 0 : t.layer) ?? null,
275
283
  defaultLayer: (t == null ? void 0 : t.layer) ?? null,
276
284
  events: (t == null ? void 0 : t.events) ?? {},
277
285
  data: (t == null ? void 0 : t.data) ?? void 0,
278
- isVisible: d
279
- }), o.value.setAttribute(Fe, "true"), o.value.setAttribute("draggable", "false");
286
+ isVisible: !1
287
+ }), s.value.addEventListener("dragstart", I), s.value.addEventListener("drag", I), s.value.setAttribute(se, "true"), s.value.setAttribute("draggable", "false");
280
288
  },
281
289
  unregisterElement: () => {
282
- const h = e.value.findIndex(
283
- (s) => s.node === o.value
290
+ var w, i, d, f;
291
+ const E = e.value.findIndex(
292
+ (h) => h.node === s.value
284
293
  );
285
- h !== -1 && e.value.splice(h, 1);
286
- const y = u.value.findIndex(
287
- (s) => s.node === o.value
294
+ E !== -1 && e.value.splice(E, 1);
295
+ const m = u.value.findIndex(
296
+ (h) => h.node === s.value
288
297
  );
289
- y !== -1 && u.value.splice(y, 1);
298
+ m !== -1 && u.value.splice(m, 1), (w = s.value) == null || w.removeEventListener("dragstart", I), (i = s.value) == null || i.removeEventListener("drag", I), (d = s.value) == null || d.removeAttribute(se), (f = s.value) == null || f.removeAttribute("draggable");
290
299
  },
291
- isDragging: g,
292
- isOvered: v,
293
- isAllowed: l,
294
- isVisible: d
300
+ isDragging: v,
301
+ isOvered: g,
302
+ isAllowed: y
295
303
  };
296
- }, $e = () => {
297
- let t = "", e = "", n = "";
298
- const i = () => {
299
- const o = document.body;
300
- t = o.style.userSelect, e = o.style.touchAction, n = o.style.overscrollBehavior, o.style.userSelect = "none", o.style.touchAction = "none", o.style.overscrollBehavior = "none", window.addEventListener("contextmenu", r), window.addEventListener("selectstart", r), window.addEventListener("touchstart", r), window.addEventListener("touchmove", r);
301
- }, u = () => {
302
- const o = document.body;
303
- o.style.userSelect = t, o.style.touchAction = e, o.style.overscrollBehavior = n, window.removeEventListener("contextmenu", r), window.removeEventListener("selectstart", r), window.removeEventListener("touchstart", r), window.removeEventListener("touchmove", r);
304
- }, r = (o) => o.preventDefault();
304
+ }, Fe = () => {
305
+ let t = "", e = "", r = "";
305
306
  return {
306
- disableInteractions: i,
307
- enableInteractions: u
307
+ disableInteractions: () => {
308
+ const n = document.body;
309
+ t = n.style.userSelect, e = n.style.touchAction, r = n.style.overscrollBehavior, n.style.userSelect = "none", n.style.touchAction = "none", n.style.overscrollBehavior = "none", window.addEventListener("contextmenu", I), window.addEventListener("selectstart", I), window.addEventListener("touchstart", I), window.addEventListener("touchmove", I);
310
+ },
311
+ enableInteractions: () => {
312
+ const n = document.body;
313
+ n.style.userSelect = t, n.style.touchAction = e, n.style.overscrollBehavior = r, window.removeEventListener("contextmenu", I), window.removeEventListener("selectstart", I), window.removeEventListener("touchstart", I), window.removeEventListener("touchmove", I);
314
+ }
308
315
  };
309
- }, se = (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, V = (t) => {
316
+ }, ae = (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) => {
310
317
  if (!t)
311
318
  return {
312
319
  x: 0,
@@ -332,108 +339,108 @@ const M = Se(() => {
332
339
  }, $ = (t) => ({
333
340
  x: t.x + t.width / 2,
334
341
  y: t.y + t.height / 2
335
- }), Ke = (t, e) => {
336
- const n = V(t);
342
+ }), Ze = (t, e) => {
343
+ const r = k(t);
337
344
  return {
338
345
  pixel: {
339
- x: e.x - n.x,
340
- y: e.y - n.y
346
+ x: e.x - r.x,
347
+ y: e.y - r.y
341
348
  },
342
349
  percent: {
343
- x: (e.x - n.x) / n.width * 100,
344
- y: (e.y - n.y) / n.height * 100
350
+ x: (e.x - r.x) / r.width * 100,
351
+ y: (e.y - r.y) / r.height * 100
345
352
  }
346
353
  };
347
- }, ae = (t, e) => {
348
- const n = e.x - t.x, i = e.y - t.y;
349
- return Math.sqrt(n * n + i * i);
350
- }, S = (t, e) => t ? e.contains(t) : !1, We = (t) => {
351
- const e = M();
354
+ }, ue = (t, e) => {
355
+ const r = e.x - t.x, o = e.y - t.y;
356
+ return Math.sqrt(r * r + o * o);
357
+ }, M = (t, e) => t ? e.contains(t) : !1, $e = (t) => {
358
+ const e = C();
352
359
  return {
353
- onPointerStart: (r) => {
354
- e.pointerPosition.start.value = { x: r.clientX, y: r.clientY }, e.pointerPosition.current.value = {
355
- x: r.clientX,
356
- y: r.clientY
360
+ onPointerStart: (n) => {
361
+ e.pointerPosition.start.value = { x: n.clientX, y: n.clientY }, e.pointerPosition.current.value = {
362
+ x: n.clientX,
363
+ y: n.clientY
357
364
  };
358
- const { pixel: o, percent: v } = Ke(t.value, {
359
- x: r.clientX,
360
- y: r.clientY
365
+ const { pixel: s, percent: g } = Ze(t.value, {
366
+ x: n.clientX,
367
+ y: n.clientY
361
368
  });
362
- e.pointerPosition.offset.pixel.value = o, e.pointerPosition.offset.percent.value = v;
369
+ e.pointerPosition.offset.pixel.value = s, e.pointerPosition.offset.percent.value = g;
363
370
  },
364
- onPointerMove: (r) => {
371
+ onPointerMove: (n) => {
365
372
  e.pointerPosition.current.value = {
366
- x: r.clientX,
367
- y: r.clientY
373
+ x: n.clientX,
374
+ y: n.clientY
368
375
  };
369
376
  },
370
377
  onPointerEnd: () => {
371
378
  e.pointerPosition.current.value = null, e.pointerPosition.start.value = null, e.pointerPosition.offset.pixel.value = null, e.pointerPosition.offset.percent.value = null;
372
379
  }
373
380
  };
374
- }, Xe = (t) => {
375
- const e = M(), { onPointerStart: n, onPointerMove: i, onPointerEnd: u } = We(t);
376
- let r = null;
377
- const o = (s) => {
378
- var E, w;
379
- const m = e.selectedElements.value.some(
380
- (x) => x.node === s
381
+ }, Ke = (t) => {
382
+ const e = C(), { onPointerStart: r, onPointerMove: o, onPointerEnd: u } = $e(t);
383
+ let n = null;
384
+ const s = (i) => {
385
+ var h, _;
386
+ const d = e.selectedElements.value.some(
387
+ (x) => x.node === i
381
388
  );
382
- if (e.selectedElements.value.length && m)
389
+ if (e.selectedElements.value.length && d)
383
390
  return e.selectedElements.value.map((x) => {
384
- var C, z;
391
+ var O, z;
385
392
  return {
386
393
  ...x,
387
- initialHTML: ((C = x.node) == null ? void 0 : C.outerHTML) ?? "",
394
+ initialHTML: ((O = x.node) == null ? void 0 : O.outerHTML) ?? "",
388
395
  initialRect: (z = x.node) == null ? void 0 : z.getBoundingClientRect()
389
396
  };
390
397
  });
391
398
  e.selectedElements.value = [];
392
- const p = e.elements.value.find(
393
- (x) => x.node === s
399
+ const f = e.elements.value.find(
400
+ (x) => x.node === i
394
401
  );
395
- return p ? [
402
+ return f ? [
396
403
  {
397
- ...p,
398
- initialHTML: ((E = p.node) == null ? void 0 : E.outerHTML) ?? "",
399
- initialRect: (w = p.node) == null ? void 0 : w.getBoundingClientRect()
404
+ ...f,
405
+ initialHTML: ((h = f.node) == null ? void 0 : h.outerHTML) ?? "",
406
+ initialRect: (_ = f.node) == null ? void 0 : _.getBoundingClientRect()
400
407
  }
401
408
  ] : [];
402
- }, v = (s, m) => {
403
- const p = Math.max(
409
+ }, g = (i, d) => {
410
+ const f = Math.max(
404
411
  0,
405
- Math.min(s.x + s.width, m.x + m.width) - Math.max(s.x, m.x)
406
- ), E = Math.max(
412
+ Math.min(i.x + i.width, d.x + d.width) - Math.max(i.x, d.x)
413
+ ), h = Math.max(
407
414
  0,
408
- Math.min(s.y + s.height, m.y + m.height) - Math.max(s.y, m.y)
409
- ), w = p * E, x = s.width * s.height, C = m.width * m.height;
410
- return (w / x * 100 + w / C * 100) / 2;
411
- }, d = ke(() => {
415
+ Math.min(i.y + i.height, d.y + d.height) - Math.max(i.y, d.y)
416
+ ), _ = f * h, x = i.width * i.height, O = d.width * d.height;
417
+ return (_ / x * 100 + _ / O * 100) / 2;
418
+ }, v = ke(() => {
412
419
  var X, q, j, G, B, J, Q, ee, te, ne;
413
- const s = V(e.activeContainer.ref.value), m = $(s), p = ((X = e.pointerPosition.current.value) == null ? void 0 : X.x) ?? 0, E = ((q = e.pointerPosition.current.value) == null ? void 0 : q.y) ?? 0, x = !(s && p >= s.x && p <= s.x + s.width && E >= s.y && E <= s.y + s.height), C = e.draggingElements.value.map((a) => a.node), z = e.visibleElements.value.map((a) => e.elements.value[a]).filter((a) => {
414
- if (!a.node || C.some(
415
- (I) => I && S(a.node, I)
420
+ const i = k(e.activeContainer.ref.value), d = $(i), f = ((X = e.pointerPosition.current.value) == null ? void 0 : X.x) ?? 0, h = ((q = e.pointerPosition.current.value) == null ? void 0 : q.y) ?? 0, x = !(i && f >= i.x && f <= i.x + i.width && h >= i.y && h <= i.y + i.height), O = e.draggingElements.value.map((a) => a.node), z = e.visibleElements.value.map((a) => e.elements.value[a]).filter((a) => {
421
+ if (!a.node || O.some(
422
+ (L) => L && M(a.node, L)
416
423
  ) || a.groups.length && !!e.draggingElements.value.some(
417
- (L) => L.groups.length ? !L.groups.some(
418
- (O) => a.groups.includes(O)
424
+ (S) => S.groups.length ? !S.groups.some(
425
+ (T) => a.groups.includes(T)
419
426
  ) : !1
420
427
  ))
421
428
  return !1;
422
- const c = V(a.node);
423
- return c && s && se(c, s);
429
+ const c = k(a.node);
430
+ return c && i && ae(c, i);
424
431
  }).map((a) => {
425
- const c = V(a.node), I = $(c), L = p >= c.x && p <= c.x + c.width && E >= c.y && E <= c.y + c.height, O = v(c, s), Y = ae(m, I), N = e.elements.value.filter(
426
- (T) => T !== a && T.node && a.node && S(
432
+ const c = k(a.node), L = $(c), S = f >= c.x && f <= c.x + c.width && h >= c.y && h <= c.y + c.height, T = g(c, i), U = ue(d, L), Y = e.elements.value.filter(
433
+ (A) => A !== a && A.node && a.node && M(
427
434
  a.node,
428
- T.node
435
+ A.node
429
436
  )
430
437
  ).length;
431
438
  return {
432
439
  element: a,
433
- isPointerInElement: L,
434
- overlapPercent: O,
435
- depth: N,
436
- centerDistance: Y
440
+ isPointerInElement: S,
441
+ overlapPercent: T,
442
+ depth: Y,
443
+ centerDistance: U
437
444
  };
438
445
  }).sort((a, c) => {
439
446
  if (!x) {
@@ -441,23 +448,23 @@ const M = Se(() => {
441
448
  if (a.isPointerInElement !== c.isPointerInElement) return a.isPointerInElement ? -1 : 1;
442
449
  }
443
450
  return Math.abs(a.overlapPercent - c.overlapPercent) <= 1 ? a.centerDistance - c.centerDistance : c.overlapPercent - a.overlapPercent;
444
- }), de = e.zones.value.filter((a) => {
445
- if (!a.node || C.some(
446
- (I) => I && S(a.node, I)
447
- ) || a.groups.length && !!e.draggingElements.value.some((L) => L.groups.length ? !L.groups.some((O) => a.groups.includes(O)) : !1))
451
+ }), fe = e.zones.value.filter((a) => {
452
+ if (!a.node || O.some(
453
+ (L) => L && M(a.node, L)
454
+ ) || a.groups.length && !!e.draggingElements.value.some((S) => S.groups.length ? !S.groups.some((T) => a.groups.includes(T)) : !1))
448
455
  return !1;
449
- const c = V(a.node);
450
- return c && s && se(c, s);
456
+ const c = k(a.node);
457
+ return c && i && ae(c, i);
451
458
  }).map((a) => {
452
- const c = V(a.node), I = $(c), L = p >= c.x && p <= c.x + c.width && E >= c.y && E <= c.y + c.height, O = v(c, s), Y = ae(m, I), N = e.zones.value.filter(
453
- (T) => T !== a && T.node && a.node && S(a.node, T.node)
459
+ const c = k(a.node), L = $(c), S = f >= c.x && f <= c.x + c.width && h >= c.y && h <= c.y + c.height, T = g(c, i), U = ue(d, L), Y = e.zones.value.filter(
460
+ (A) => A !== a && A.node && a.node && M(a.node, A.node)
454
461
  ).length;
455
462
  return {
456
463
  zone: a,
457
- isPointerInElement: L,
458
- overlapPercent: O,
459
- depth: N,
460
- centerDistance: Y
464
+ isPointerInElement: S,
465
+ overlapPercent: T,
466
+ depth: Y,
467
+ centerDistance: U
461
468
  };
462
469
  }).sort((a, c) => {
463
470
  if (!x) {
@@ -465,132 +472,130 @@ const M = Se(() => {
465
472
  if (a.isPointerInElement !== c.isPointerInElement) return a.isPointerInElement ? -1 : 1;
466
473
  }
467
474
  return Math.abs(a.overlapPercent - c.overlapPercent) <= 1 ? a.centerDistance - c.centerDistance : c.overlapPercent - a.overlapPercent;
468
- }), k = e.hovered.element.value, R = e.hovered.zone.value;
469
- e.hovered.element.value = ((j = z[0]) == null ? void 0 : j.element) ?? null, e.hovered.zone.value = ((G = de[0]) == null ? void 0 : G.zone) ?? null, e.hovered.element.value !== k && ((B = k == null ? void 0 : k.events) != null && B.onLeave && k.events.onLeave(e), (Q = (J = e.hovered.element.value) == null ? void 0 : J.events) != null && Q.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== R && ((ee = R == null ? void 0 : R.events) != null && ee.onLeave && R.events.onLeave(e), (ne = (te = e.hovered.zone.value) == null ? void 0 : te.events) != null && ne.onHover && e.hovered.zone.value.events.onHover(e));
470
- }, 1e3), g = () => {
471
- d(), r = requestAnimationFrame(g);
475
+ }), R = e.hovered.element.value, V = e.hovered.zone.value;
476
+ e.hovered.element.value = ((j = z[0]) == null ? void 0 : j.element) ?? null, e.hovered.zone.value = ((G = fe[0]) == null ? void 0 : G.zone) ?? null, e.hovered.element.value !== R && ((B = R == null ? void 0 : R.events) != null && B.onLeave && R.events.onLeave(e), (Q = (J = e.hovered.element.value) == null ? void 0 : J.events) != null && Q.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== V && ((ee = V == null ? void 0 : V.events) != null && ee.onLeave && V.events.onLeave(e), (ne = (te = e.hovered.zone.value) == null ? void 0 : te.events) != null && ne.onHover && e.hovered.zone.value.events.onHover(e));
477
+ }, 1e3), y = () => {
478
+ v(), n = requestAnimationFrame(y);
472
479
  }, l = () => {
473
- g();
474
- }, f = () => {
475
- r !== null && (cancelAnimationFrame(r), r = null);
480
+ y();
481
+ }, p = () => {
482
+ n !== null && (cancelAnimationFrame(n), n = null);
476
483
  };
477
484
  return {
478
- activate: (s) => {
479
- e.draggingElements.value = o(t.value), n(s), l();
485
+ activate: (i) => {
486
+ e.draggingElements.value = s(t.value), r(i), l();
480
487
  },
481
- track: (s) => {
482
- i(s);
488
+ track: (i) => {
489
+ o(i);
483
490
  },
484
491
  deactivate: () => {
485
- var s, m;
486
- u(), e.hovered.zone.value ? (m = (s = e.hovered.zone.value.events).onDrop) == null || m.call(s, e) : e.draggingElements.value.forEach(
487
- (p) => {
488
- var E, w;
489
- return (w = (E = p.events).onEnd) == null ? void 0 : w.call(E, e);
492
+ var i, d;
493
+ u(), e.hovered.zone.value ? (d = (i = e.hovered.zone.value.events).onDrop) == null || d.call(i, e) : e.draggingElements.value.forEach(
494
+ (f) => {
495
+ var h, _;
496
+ return (_ = (h = f.events).onEnd) == null ? void 0 : _.call(h, e);
490
497
  }
491
- ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, f();
498
+ ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, p();
492
499
  }
493
500
  };
494
- }, Be = (t) => {
501
+ }, je = (t) => {
495
502
  const {
496
503
  elementRef: e,
497
- registerElement: n,
498
- unregisterElement: i,
504
+ registerElement: r,
505
+ unregisterElement: o,
499
506
  isDragging: u,
500
- isOvered: r,
501
- isAllowed: o,
502
- isVisible: v
503
- } = Ze(t), { disableInteractions: d, enableInteractions: g } = $e(), { activeContainer: l, pointerPosition: f } = M(), { activate: _, track: h, deactivate: y } = Xe(e), s = (w) => {
504
- t != null && t.container && (l.component.value = Ie(t.container)), d(), _(w), document.addEventListener("pointermove", m), document.addEventListener("pointerup", E), document.addEventListener("wheel", p);
505
- }, m = (w) => h(w), p = (w) => h(w), E = () => {
506
- l.component.value = null, g(), y(), document.removeEventListener("pointermove", m), document.removeEventListener("pointerup", E), document.removeEventListener("wheel", p);
507
+ isOvered: n,
508
+ isAllowed: s
509
+ } = Ye(t), { disableInteractions: g, enableInteractions: v } = Fe(), { activeContainer: y, pointerPosition: l } = C(), { activate: p, track: E, deactivate: m } = Ke(e), w = (h) => {
510
+ t != null && t.container && (y.component.value = Ie(t.container)), g(), p(h), document.addEventListener("pointermove", i), document.addEventListener("pointerup", f), document.addEventListener("wheel", d);
511
+ }, i = (h) => E(h), d = (h) => E(h), f = () => {
512
+ y.component.value = null, v(), m(), document.removeEventListener("pointermove", i), document.removeEventListener("pointerup", f), document.removeEventListener("wheel", d);
507
513
  };
508
- return U(n), W(i), {
509
- pointerPosition: f,
514
+ return N(r), W(o), {
515
+ pointerPosition: l,
510
516
  elementRef: e,
511
517
  isDragging: u,
512
- isOvered: r,
513
- isAllowed: o,
514
- handleDragStart: s,
515
- isVisible: v
518
+ isOvered: n,
519
+ isAllowed: s,
520
+ handleDragStart: w
516
521
  };
517
- }, qe = (t) => {
518
- const { zones: e, hovered: n, draggingElements: i, isDragging: u } = M(), r = P(null), o = D(() => {
522
+ }, We = (t) => {
523
+ const { zones: e, hovered: r, draggingElements: o, isDragging: u } = C(), n = D(null), s = P(() => {
519
524
  var l;
520
- return ((l = n.zone.value) == null ? void 0 : l.node) === r.value;
521
- }), v = D(() => {
522
- if (!r.value || !u.value) return !1;
525
+ return ((l = r.zone.value) == null ? void 0 : l.node) === n.value;
526
+ }), g = P(() => {
527
+ if (!n.value || !u.value) return !1;
523
528
  const l = e.value.find(
524
- (f) => f.node === r.value
529
+ (p) => p.node === n.value
525
530
  );
526
- return l != null && l.groups.length ? !i.value.some((f) => f.groups.length ? !f.groups.some(
527
- (_) => l.groups.includes(_)
531
+ return l != null && l.groups.length ? !o.value.some((p) => p.groups.length ? !p.groups.some(
532
+ (E) => l.groups.includes(E)
528
533
  ) : !1) : !0;
529
534
  });
530
- return { elementRef: r, registerZone: () => {
531
- if (!r.value) throw new Error("elementRef is not set");
535
+ return { elementRef: n, registerZone: () => {
536
+ if (!n.value) throw new Error("elementRef is not set");
532
537
  e.value.push({
533
- node: r.value,
538
+ node: n.value,
534
539
  groups: (t == null ? void 0 : t.groups) ?? [],
535
540
  events: (t == null ? void 0 : t.events) ?? {},
536
541
  data: (t == null ? void 0 : t.data) ?? void 0
537
- }), r.value.setAttribute("data-dnd-droppable", "true");
542
+ }), n.value.setAttribute("data-dnd-droppable", "true");
538
543
  }, unregisterZone: () => {
539
- if (!r.value) throw new Error("elementRef is not set");
544
+ if (!n.value) throw new Error("elementRef is not set");
540
545
  const l = e.value.findIndex(
541
- (f) => f.node === r.value
546
+ (p) => p.node === n.value
542
547
  );
543
548
  l !== -1 && e.value.splice(l, 1);
544
- }, isOvered: o, isAllowed: v };
545
- }, Je = (t) => {
546
- const { elementRef: e, registerZone: n, unregisterZone: i, isOvered: u, isAllowed: r } = qe(t);
547
- return U(n), W(i), { elementRef: e, isOvered: u, isAllowed: r };
548
- }, Qe = (t) => {
549
- const { selectedElements: e, elements: n } = M(), i = D(
550
- () => n.value.find((l) => l.node === t.value)
551
- ), u = D(
549
+ }, isOvered: s, isAllowed: g };
550
+ }, Ge = (t) => {
551
+ const { elementRef: e, registerZone: r, unregisterZone: o, isOvered: u, isAllowed: n } = We(t);
552
+ return N(r), W(o), { elementRef: e, isOvered: u, isAllowed: n };
553
+ }, Be = (t) => {
554
+ const { selectedElements: e, elements: r } = C(), o = P(
555
+ () => r.value.find((l) => l.node === t.value)
556
+ ), u = P(
552
557
  () => e.value.some((l) => l.node === t.value)
553
- ), r = D(() => t.value ? e.value.some(
554
- (l) => l.node && S(
558
+ ), n = P(() => t.value ? e.value.some(
559
+ (l) => l.node && M(
555
560
  l.node,
556
561
  t.value
557
562
  )
558
- ) : !1), o = D(() => t.value ? e.value.some(
559
- (l) => l.node && S(
563
+ ) : !1), s = P(() => t.value ? e.value.some(
564
+ (l) => l.node && M(
560
565
  t.value,
561
566
  l.node
562
567
  )
563
- ) : !1), v = () => {
564
- i.value && (e.value = e.value.filter(
568
+ ) : !1), g = () => {
569
+ o.value && (e.value = e.value.filter(
565
570
  (l) => l.node !== t.value
566
571
  ));
567
- }, d = () => {
568
- i.value && (r.value && (e.value = e.value.filter(
569
- (l) => l.node && !S(
572
+ }, v = () => {
573
+ o.value && (n.value && (e.value = e.value.filter(
574
+ (l) => l.node && !M(
570
575
  l.node,
571
576
  t.value
572
577
  )
573
- )), o.value && (e.value = e.value.filter(
574
- (l) => l.node && !S(
578
+ )), s.value && (e.value = e.value.filter(
579
+ (l) => l.node && !M(
575
580
  t.value,
576
581
  l.node
577
582
  )
578
- )), e.value.push(i.value));
583
+ )), e.value.push(o.value));
579
584
  };
580
585
  return {
581
- handleUnselect: v,
582
- handleSelect: d,
586
+ handleUnselect: g,
587
+ handleSelect: v,
583
588
  handleToggleSelect: () => {
584
- i.value && (e.value.some((l) => l.node === t.value) ? v() : d());
589
+ o.value && (e.value.some((l) => l.node === t.value) ? g() : v());
585
590
  },
586
591
  isSelected: u,
587
- isParentOfSelected: r
592
+ isParentOfSelected: n
588
593
  };
589
594
  };
590
595
  export {
591
- Ge as default,
592
- M as useDnDStore,
593
- Be as useDraggable,
594
- Je as useDroppable,
595
- Qe as useSelection
596
+ qe as default,
597
+ C as useDnDStore,
598
+ je as useDraggable,
599
+ Ge as useDroppable,
600
+ Be as useSelection
596
601
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-dnd-kit/core",
3
- "version": "0.1.3-beta",
3
+ "version": "0.1.5-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",