@vue-dnd-kit/core 0.0.31-beta → 0.0.35-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.
@@ -478,6 +478,7 @@ export declare const useDnDStore: () => {
478
478
  __file?: string | undefined;
479
479
  __name?: string | undefined;
480
480
  } | null;
481
+ isVisible?: any;
481
482
  data: any;
482
483
  events: {
483
484
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -725,6 +726,7 @@ export declare const useDnDStore: () => {
725
726
  __file?: string | undefined;
726
727
  __name?: string | undefined;
727
728
  } | null;
729
+ isVisible?: any;
728
730
  data: any;
729
731
  events: {
730
732
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -985,6 +987,7 @@ export declare const useDnDStore: () => {
985
987
  __file?: string | undefined;
986
988
  __name?: string | undefined;
987
989
  } | null;
990
+ isVisible?: any;
988
991
  data: any;
989
992
  events: {
990
993
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1244,6 +1247,7 @@ export declare const useDnDStore: () => {
1244
1247
  __file?: string | undefined;
1245
1248
  __name?: string | undefined;
1246
1249
  } | null;
1250
+ isVisible?: any;
1247
1251
  data: any;
1248
1252
  events: {
1249
1253
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1492,6 +1496,7 @@ export declare const useDnDStore: () => {
1492
1496
  __file?: string | undefined;
1493
1497
  __name?: string | undefined;
1494
1498
  } | null;
1499
+ isVisible?: any;
1495
1500
  data: any;
1496
1501
  events: {
1497
1502
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -1739,6 +1744,7 @@ export declare const useDnDStore: () => {
1739
1744
  __file?: string | undefined;
1740
1745
  __name?: string | undefined;
1741
1746
  } | null;
1747
+ isVisible?: any;
1742
1748
  data: any;
1743
1749
  events: {
1744
1750
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -2026,6 +2032,7 @@ export declare const useDnDStore: () => {
2026
2032
  __file?: string | undefined;
2027
2033
  __name?: string | undefined;
2028
2034
  } | null;
2035
+ isVisible?: any;
2029
2036
  data: any;
2030
2037
  events: {
2031
2038
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -2273,6 +2280,7 @@ export declare const useDnDStore: () => {
2273
2280
  __file?: string | undefined;
2274
2281
  __name?: string | undefined;
2275
2282
  } | null;
2283
+ isVisible?: any;
2276
2284
  data: any;
2277
2285
  events: {
2278
2286
  onHover?: ((store: import('../types').IDnDStore) => void) | undefined;
@@ -320,6 +320,7 @@ export declare const useDragContainer: () => {
320
320
  __file?: string | undefined;
321
321
  __name?: string | undefined;
322
322
  } | null;
323
+ isVisible?: any;
323
324
  data: any;
324
325
  events: {
325
326
  onHover?: ((store: import('..').IDnDStore) => void) | undefined;
@@ -579,6 +580,7 @@ export declare const useDragContainer: () => {
579
580
  __file?: string | undefined;
580
581
  __name?: string | undefined;
581
582
  } | null;
583
+ isVisible?: any;
582
584
  data: any;
583
585
  events: {
584
586
  onHover?: ((store: import('..').IDnDStore) => void) | undefined;
@@ -78,4 +78,5 @@ export declare const useDraggable: (options?: IUseDragOptions) => {
78
78
  isOvered: import('vue').ComputedRef<boolean>;
79
79
  isAllowed: import('vue').ComputedRef<boolean>;
80
80
  handleDragStart: (event: PointerEvent) => void;
81
+ isVisible: import('vue').ShallowRef<boolean, boolean>;
81
82
  };
@@ -14,4 +14,5 @@ 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>;
17
18
  };
@@ -57,6 +57,8 @@ export interface IDragElement {
57
57
  layer: Component | null;
58
58
  /** Default layer component */
59
59
  defaultLayer: Component | null;
60
+ /** Visibility state of the element */
61
+ isVisible?: any;
60
62
  /** Custom data associated with element */
61
63
  data: any;
62
64
  /** Event handlers */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");function Q(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function ee(t){let e=!1,r;const c=n.effectScope(!0);return(...d)=>(e||(r=c.run(()=>t(...d)),e=!0),r)}const te=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ne=t=>t!=null,H=()=>{};function re(t){return Array.isArray(t)?t:[t]}function oe(t,e,r){const c=n.watch(t,(...d)=>(n.nextTick(()=>c()),e(...d)),r);return c}const J=te?window:void 0;function A(t){var e;const r=n.toValue(t);return(e=r==null?void 0:r.$el)!=null?e:r}function le(){const t=n.shallowRef(!1),e=n.getCurrentInstance();return e&&n.onMounted(()=>{t.value=!0},e),t}function se(t){const e=le();return n.computed(()=>(e.value,!!t()))}function ie(t,e,r={}){const{root:c,rootMargin:d="0px",threshold:o=0,window:i=J,immediate:v=!0}=r,h=se(()=>i&&"IntersectionObserver"in i),y=n.computed(()=>{const l=n.toValue(t);return re(l).map(A).filter(ne)});let s=H;const g=n.shallowRef(v),P=h.value?n.watch(()=>[y.value,A(c),g.value],([l,f])=>{if(s(),!g.value||!l.length)return;const p=new IntersectionObserver(e,{root:A(f),rootMargin:d,threshold:o});l.forEach(m=>m&&p.observe(m)),s=()=>{p.disconnect(),s=H}},{immediate:v,flush:"post"}):H,E=()=>{s(),P(),g.value=!1};return Q(E),{isSupported:h,isActive:g,pause(){s(),g.value=!1},resume(){g.value=!0},stop:E}}function ae(t,e={}){const{window:r=J,scrollTarget:c,threshold:d=0,rootMargin:o,once:i=!1}=e,v=n.shallowRef(!1),{stop:h}=ie(t,y=>{let s=v.value,g=0;for(const P of y)P.time>=g&&(g=P.time,s=P.isIntersecting);v.value=s,i&&oe(v,()=>{h()})},{root:c,window:r,threshold:d,rootMargin:n.toValue(o)});return v}const M=ee(()=>{const t=n.ref([]),e=n.computed(()=>t.value.length>0),r={component:n.ref(null),ref:n.ref(null)},c=n.ref([]),d=n.ref([]),o=n.ref([]),i={zone:n.ref(null),element:n.ref(null)},v={current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}};return{isDragging:e,activeContainer:r,elements:c,draggingElements:t,selectedElements:d,zones:o,hovered:i,pointerPosition:v}}),ue=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:r,isDragging:c,activeContainer:d}=M();return n.onMounted(()=>{d.ref=t}),n.onBeforeUnmount(()=>{d.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:r,isDragging:c}},ce=["innerHTML"],de=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:r,isDragging:c,draggingElements:d}=ue(),o=n.computed(()=>{var i,v,h,y;return{transform:`translate3d(${(((i=r.current.value)==null?void 0:i.x)??0)-(((v=r.offset.pixel.value)==null?void 0:v.x)??0)}px, ${(((h=r.current.value)==null?void 0:h.y)??0)-(((y=r.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(i,v)=>n.unref(c)?(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(d),(h,y)=>{var s,g;return n.openBlock(),n.createElementBlock("div",{key:y,innerHTML:h.initialHTML,style:n.normalizeStyle({width:`${(s=h.initialRect)==null?void 0:s.width}px`,height:`${(g=h.initialRect)==null?void 0:g.height}px`})},null,12,ce)}),128))],4)):n.createCommentVNode("",!0)}}),ve=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=M(),r=n.computed(()=>e.component.value??de);return(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(r.value)))}}),fe="data-dnd-draggable",ge=t=>{const{elements:e,draggingElements:r,hovered:c,selectedElements:d,isDragging:o}=M(),i=n.ref(null),v=n.computed(()=>{var E;return((E=c.element.value)==null?void 0:E.node)===i.value}),h=ae(i),y=n.computed(()=>r.value.some(E=>E.node===i.value)),s=n.computed(()=>{if(!i.value||!o.value)return!1;const E=e.value.find(l=>l.node===i.value);return E!=null&&E.groups.length?!r.value.some(l=>l.groups.length?!l.groups.some(f=>E.groups.includes(f)):!1):!0});return{elementRef:i,registerElement:()=>{if(!i.value)throw new Error("ElementRef is not set");e.value.push({node:i.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:h}),i.value.setAttribute(fe,"true")},unregisterElement:()=>{const E=e.value.findIndex(f=>f.node===i.value);E!==-1&&e.value.splice(E,1);const l=d.value.findIndex(f=>f.node===i.value);l!==-1&&d.value.splice(l,1)},isDragging:y,isOvered:v,isAllowed:s}},me=()=>{let t="",e="",r="";const c=()=>{const i=document.body;t=i.style.userSelect,e=i.style.touchAction,r=i.style.overscrollBehavior,i.style.userSelect="none",i.style.touchAction="none",i.style.overscrollBehavior="none",window.addEventListener("contextmenu",o),window.addEventListener("selectstart",o),window.addEventListener("touchstart",o),window.addEventListener("touchmove",o)},d=()=>{const i=document.body;i.style.userSelect=t,i.style.touchAction=e,i.style.overscrollBehavior=r,window.removeEventListener("contextmenu",o),window.removeEventListener("selectstart",o),window.removeEventListener("touchstart",o),window.removeEventListener("touchmove",o)},o=i=>i.preventDefault();return{disableInteractions:c,enableInteractions:d}},N=(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}},b=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),he=(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,c=e.y-t.y;return Math.sqrt(r*r+c*c)},I=(t,e)=>t?e.contains(t):!1,pe=t=>{const e=M();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:i,percent:v}=he(t.value,{x:o.clientX,y:o.clientY});e.pointerPosition.offset.pixel.value=i,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}}},ye=t=>{const e=M(),{onPointerStart:r,onPointerMove:c,onPointerEnd:d}=pe(t);let o=null;const i=l=>{var m,x;const f=e.selectedElements.value.some(w=>w.node===l);if(e.selectedElements.value.length&&f)return e.selectedElements.value.map(w=>{var C,z;return{...w,initialHTML:((C=w.node)==null?void 0:C.outerHTML)??"",initialRect:(z=w.node)==null?void 0:z.getBoundingClientRect()}});e.selectedElements.value=[];const p=e.elements.value.find(w=>w.node===l);return p?[{...p,initialHTML:((m=p.node)==null?void 0:m.outerHTML)??"",initialRect:(x=p.node)==null?void 0:x.getBoundingClientRect()}]:[]},v=(l,f)=>{const p=Math.max(0,Math.min(l.x+l.width,f.x+f.width)-Math.max(l.x,f.x)),m=Math.max(0,Math.min(l.y+l.height,f.y+f.height)-Math.max(l.y,f.y)),x=p*m,w=l.width*l.height,C=f.width*f.height;return(x/w*100+x/C*100)/2},h=()=>{var V,U,Z,$,X,Y,F,W,q,G;const l=k(e.activeContainer.ref.value),f=b(l),p=((V=e.pointerPosition.current.value)==null?void 0:V.x)??0,m=((U=e.pointerPosition.current.value)==null?void 0:U.y)??0,w=!(l&&p>=l.x&&p<=l.x+l.width&&m>=l.y&&m<=l.y+l.height),C=e.draggingElements.value.map(a=>a.node),z=e.elements.value.filter(a=>{if(!a.node||C.some(D=>D&&I(a.node,D))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(L=>a.groups.includes(L)):!1))return!1;const u=k(a.node);return u&&l&&N(u,l)}).map(a=>{const u=k(a.node),D=b(u),S=p>=u.x&&p<=u.x+u.width&&m>=u.y&&m<=u.y+u.height,L=v(u,l),R=j(f,D),B=e.elements.value.filter(_=>_!==a&&_.node&&a.node&&I(a.node,_.node)).length;return{element:a,isPointerInElement:S,overlapPercent:L,depth:B,centerDistance:R}}).sort((a,u)=>{if(!w){if(a.isPointerInElement&&u.isPointerInElement)return u.depth-a.depth;if(a.isPointerInElement!==u.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-u.overlapPercent)<=1?a.centerDistance-u.centerDistance:u.overlapPercent-a.overlapPercent}),K=e.zones.value.filter(a=>{if(!a.node||C.some(D=>D&&I(a.node,D))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(L=>a.groups.includes(L)):!1))return!1;const u=k(a.node);return u&&l&&N(u,l)}).map(a=>{const u=k(a.node),D=b(u),S=p>=u.x&&p<=u.x+u.width&&m>=u.y&&m<=u.y+u.height,L=v(u,l),R=j(f,D),B=e.zones.value.filter(_=>_!==a&&_.node&&a.node&&I(a.node,_.node)).length;return{zone:a,isPointerInElement:S,overlapPercent:L,depth:B,centerDistance:R}}).sort((a,u)=>{if(!w){if(a.isPointerInElement&&u.isPointerInElement)return u.depth-a.depth;if(a.isPointerInElement!==u.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-u.overlapPercent)<=1?a.centerDistance-u.centerDistance:u.overlapPercent-a.overlapPercent}),O=e.hovered.element.value,T=e.hovered.zone.value;e.hovered.element.value=((Z=z[0])==null?void 0:Z.element)??null,e.hovered.zone.value=(($=K[0])==null?void 0:$.zone)??null,e.hovered.element.value!==O&&((X=O==null?void 0:O.events)!=null&&X.onLeave&&O.events.onLeave(e),(F=(Y=e.hovered.element.value)==null?void 0:Y.events)!=null&&F.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==T&&((W=T==null?void 0:T.events)!=null&&W.onLeave&&T.events.onLeave(e),(G=(q=e.hovered.zone.value)==null?void 0:q.events)!=null&&G.onHover&&e.hovered.zone.value.events.onHover(e)),o=requestAnimationFrame(h)},y=()=>{h()},s=()=>{o!==null&&(cancelAnimationFrame(o),o=null)};return{activate:l=>{e.draggingElements.value=i(t.value),r(l),y()},track:l=>{c(l)},deactivate:()=>{var l,f;d(),e.hovered.zone.value?(f=(l=e.hovered.zone.value.events).onDrop)==null||f.call(l,e):e.draggingElements.value.forEach(p=>{var m,x;return(x=(m=p.events).onEnd)==null?void 0:x.call(m,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,s()}}},Ee=t=>{const{elementRef:e,registerElement:r,unregisterElement:c,isDragging:d,isOvered:o,isAllowed:i}=ge(t),{disableInteractions:v,enableInteractions:h}=me(),y=M(),{activate:s,track:g,deactivate:P}=ye(e),E=m=>{t!=null&&t.container&&(y.activeContainer.component.value=n.markRaw(t.container)),v(),s(m),document.addEventListener("pointermove",l),document.addEventListener("pointerup",p),document.addEventListener("wheel",f)},l=m=>{g(m)},f=m=>{g(m)},p=()=>{y.activeContainer.component.value=null,h(),P(),document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",p),document.removeEventListener("wheel",f)};return n.onMounted(r),n.onBeforeUnmount(c),{pointerPosition:y.pointerPosition,elementRef:e,isDragging:d,isOvered:o,isAllowed:i,handleDragStart:E}},we=t=>{const{zones:e,hovered:r,draggingElements:c,isDragging:d}=M(),o=n.ref(null),i=n.computed(()=>{var s;return((s=r.zone.value)==null?void 0:s.node)===o.value}),v=n.computed(()=>{if(!o.value||!d.value)return!1;const s=e.value.find(g=>g.node===o.value);return s!=null&&s.groups.length?!c.value.some(g=>g.groups.length?!g.groups.some(P=>s.groups.includes(P)):!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 s=e.value.findIndex(g=>g.node===o.value);s!==-1&&e.value.splice(s,1)},isOvered:i,isAllowed:v}},Pe=t=>{const{elementRef:e,registerZone:r,unregisterZone:c,isOvered:d,isAllowed:o}=we(t);return n.onMounted(r),n.onBeforeUnmount(c),{elementRef:e,isOvered:d,isAllowed:o}},De=t=>{const{selectedElements:e,elements:r}=M(),c=n.computed(()=>r.value.find(s=>s.node===t.value)),d=n.computed(()=>e.value.some(s=>s.node===t.value)),o=n.computed(()=>t.value?e.value.some(s=>s.node&&I(s.node,t.value)):!1),i=n.computed(()=>t.value?e.value.some(s=>s.node&&I(t.value,s.node)):!1),v=()=>{c.value&&(e.value=e.value.filter(s=>s.node!==t.value))},h=()=>{c.value&&(o.value&&(e.value=e.value.filter(s=>s.node&&!I(s.node,t.value))),i.value&&(e.value=e.value.filter(s=>s.node&&!I(t.value,s.node))),e.value.push(c.value))};return{handleUnselect:v,handleSelect:h,handleToggleSelect:()=>{c.value&&(e.value.some(s=>s.node===t.value)?v():h())},isSelected:d,isParentOfSelected:o}};exports.DragOverlay=ve;exports.getBoundingBox=k;exports.useDnDStore=M;exports.useDraggable=Ee;exports.useDroppable=Pe;exports.useSelection=De;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue");function Q(t){return n.getCurrentScope()?(n.onScopeDispose(t),!0):!1}function ee(t){let e=!1,r;const c=n.effectScope(!0);return(...d)=>(e||(r=c.run(()=>t(...d)),e=!0),r)}const te=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ne=t=>t!=null,H=()=>{};function re(t){return Array.isArray(t)?t:[t]}function oe(t,e,r){const c=n.watch(t,(...d)=>(n.nextTick(()=>c()),e(...d)),r);return c}const J=te?window:void 0;function b(t){var e;const r=n.toValue(t);return(e=r==null?void 0:r.$el)!=null?e:r}function le(){const t=n.shallowRef(!1),e=n.getCurrentInstance();return e&&n.onMounted(()=>{t.value=!0},e),t}function se(t){const e=le();return n.computed(()=>(e.value,!!t()))}function ie(t,e,r={}){const{root:c,rootMargin:d="0px",threshold:o=0,window:i=J,immediate:v=!0}=r,g=se(()=>i&&"IntersectionObserver"in i),E=n.computed(()=>{const s=n.toValue(t);return re(s).map(b).filter(ne)});let l=H;const m=n.shallowRef(v),P=g.value?n.watch(()=>[E.value,b(c),m.value],([s,f])=>{if(l(),!m.value||!s.length)return;const h=new IntersectionObserver(e,{root:b(f),rootMargin:d,threshold:o});s.forEach(p=>p&&h.observe(p)),l=()=>{h.disconnect(),l=H}},{immediate:v,flush:"post"}):H,y=()=>{l(),P(),m.value=!1};return Q(y),{isSupported:g,isActive:m,pause(){l(),m.value=!1},resume(){m.value=!0},stop:y}}function ae(t,e={}){const{window:r=J,scrollTarget:c,threshold:d=0,rootMargin:o,once:i=!1}=e,v=n.shallowRef(!1),{stop:g}=ie(t,E=>{let l=v.value,m=0;for(const P of E)P.time>=m&&(m=P.time,l=P.isIntersecting);v.value=l,i&&oe(v,()=>{g()})},{root:c,window:r,threshold:d,rootMargin:n.toValue(o)});return v}const M=ee(()=>{const t=n.ref([]),e=n.computed(()=>t.value.length>0),r={component:n.ref(null),ref:n.ref(null)},c=n.ref([]),d=n.ref([]),o=n.ref([]),i={zone:n.ref(null),element:n.ref(null)},v={current:n.ref(null),start:n.ref(null),offset:{percent:n.ref(null),pixel:n.ref(null)}};return{isDragging:e,activeContainer:r,elements:c,draggingElements:t,selectedElements:d,zones:o,hovered:i,pointerPosition:v}}),ue=()=>{const t=n.ref(null),{draggingElements:e,pointerPosition:r,isDragging:c,activeContainer:d}=M();return n.onMounted(()=>{d.ref=t}),n.onBeforeUnmount(()=>{d.ref.value=null}),{elementRef:t,draggingElements:e,pointerPosition:r,isDragging:c}},ce=["innerHTML"],de=n.defineComponent({__name:"DefaultOverlay",setup(t){const{elementRef:e,pointerPosition:r,isDragging:c,draggingElements:d}=ue(),o=n.computed(()=>{var i,v,g,E;return{transform:`translate3d(${(((i=r.current.value)==null?void 0:i.x)??0)-(((v=r.offset.pixel.value)==null?void 0:v.x)??0)}px, ${(((g=r.current.value)==null?void 0:g.y)??0)-(((E=r.offset.pixel.value)==null?void 0:E.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(i,v)=>n.unref(c)?(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(d),(g,E)=>{var l,m;return n.openBlock(),n.createElementBlock("div",{key:E,innerHTML:g.initialHTML,style:n.normalizeStyle({width:`${(l=g.initialRect)==null?void 0:l.width}px`,height:`${(m=g.initialRect)==null?void 0:m.height}px`})},null,12,ce)}),128))],4)):n.createCommentVNode("",!0)}}),ve=n.defineComponent({__name:"DragOverlay",setup(t){const{activeContainer:e}=M(),r=n.computed(()=>e.component.value??de);return(c,d)=>(n.openBlock(),n.createBlock(n.resolveDynamicComponent(r.value)))}}),fe="data-dnd-draggable",ge=t=>{const{elements:e,draggingElements:r,hovered:c,selectedElements:d,isDragging:o}=M(),i=n.ref(null),v=n.computed(()=>{var y;return((y=c.element.value)==null?void 0:y.node)===i.value}),g=ae(i),E=n.computed(()=>r.value.some(y=>y.node===i.value)),l=n.computed(()=>{if(!i.value||!o.value)return!1;const y=e.value.find(s=>s.node===i.value);return y!=null&&y.groups.length?!r.value.some(s=>s.groups.length?!s.groups.some(f=>y.groups.includes(f)):!1):!0});return{elementRef:i,registerElement:()=>{if(!i.value)throw new Error("ElementRef is not set");e.value.push({node:i.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:g}),i.value.setAttribute(fe,"true")},unregisterElement:()=>{const y=e.value.findIndex(f=>f.node===i.value);y!==-1&&e.value.splice(y,1);const s=d.value.findIndex(f=>f.node===i.value);s!==-1&&d.value.splice(s,1)},isDragging:E,isOvered:v,isAllowed:l,isVisible:g}},me=()=>{let t="",e="",r="";const c=()=>{const i=document.body;t=i.style.userSelect,e=i.style.touchAction,r=i.style.overscrollBehavior,i.style.userSelect="none",i.style.touchAction="none",i.style.overscrollBehavior="none",window.addEventListener("contextmenu",o),window.addEventListener("selectstart",o),window.addEventListener("touchstart",o),window.addEventListener("touchmove",o)},d=()=>{const i=document.body;i.style.userSelect=t,i.style.touchAction=e,i.style.overscrollBehavior=r,window.removeEventListener("contextmenu",o),window.removeEventListener("selectstart",o),window.removeEventListener("touchstart",o),window.removeEventListener("touchmove",o)},o=i=>i.preventDefault();return{disableInteractions:c,enableInteractions:d}},N=(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}},V=t=>({x:t.x+t.width/2,y:t.y+t.height/2}),he=(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,c=e.y-t.y;return Math.sqrt(r*r+c*c)},I=(t,e)=>t?e.contains(t):!1,pe=t=>{const e=M();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:i,percent:v}=he(t.value,{x:o.clientX,y:o.clientY});e.pointerPosition.offset.pixel.value=i,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}}},ye=t=>{const e=M(),{onPointerStart:r,onPointerMove:c,onPointerEnd:d}=pe(t);let o=null;const i=s=>{var p,w;const f=e.selectedElements.value.some(D=>D.node===s);if(e.selectedElements.value.length&&f)return e.selectedElements.value.map(D=>{var C,z;return{...D,initialHTML:((C=D.node)==null?void 0:C.outerHTML)??"",initialRect:(z=D.node)==null?void 0:z.getBoundingClientRect()}});e.selectedElements.value=[];const h=e.elements.value.find(D=>D.node===s);return h?[{...h,initialHTML:((p=h.node)==null?void 0:p.outerHTML)??"",initialRect:(w=h.node)==null?void 0:w.getBoundingClientRect()}]:[]},v=(s,f)=>{const h=Math.max(0,Math.min(s.x+s.width,f.x+f.width)-Math.max(s.x,f.x)),p=Math.max(0,Math.min(s.y+s.height,f.y+f.height)-Math.max(s.y,f.y)),w=h*p,D=s.width*s.height,C=f.width*f.height;return(w/D*100+w/C*100)/2},g=()=>{var A,U,Z,$,X,Y,F,W,q,G;const s=k(e.activeContainer.ref.value),f=V(s),h=((A=e.pointerPosition.current.value)==null?void 0:A.x)??0,p=((U=e.pointerPosition.current.value)==null?void 0:U.y)??0,D=!(s&&h>=s.x&&h<=s.x+s.width&&p>=s.y&&p<=s.y+s.height),C=e.draggingElements.value.map(a=>a.node),z=e.elements.value.filter(a=>{if(!a.isVisible||!a.isVisible.value||!a.node||C.some(x=>x&&I(a.node,x))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(L=>a.groups.includes(L)):!1))return!1;const u=k(a.node);return u&&s&&N(u,s)}).map(a=>{const u=k(a.node),x=V(u),S=h>=u.x&&h<=u.x+u.width&&p>=u.y&&p<=u.y+u.height,L=v(u,s),R=j(f,x),B=e.elements.value.filter(_=>_!==a&&_.node&&a.node&&I(a.node,_.node)).length;return{element:a,isPointerInElement:S,overlapPercent:L,depth:B,centerDistance:R}}).sort((a,u)=>{if(!D){if(a.isPointerInElement&&u.isPointerInElement)return u.depth-a.depth;if(a.isPointerInElement!==u.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-u.overlapPercent)<=1?a.centerDistance-u.centerDistance:u.overlapPercent-a.overlapPercent}),K=e.zones.value.filter(a=>{if(!a.node||C.some(x=>x&&I(a.node,x))||a.groups.length&&!!e.draggingElements.value.some(S=>S.groups.length?!S.groups.some(L=>a.groups.includes(L)):!1))return!1;const u=k(a.node);return u&&s&&N(u,s)}).map(a=>{const u=k(a.node),x=V(u),S=h>=u.x&&h<=u.x+u.width&&p>=u.y&&p<=u.y+u.height,L=v(u,s),R=j(f,x),B=e.zones.value.filter(_=>_!==a&&_.node&&a.node&&I(a.node,_.node)).length;return{zone:a,isPointerInElement:S,overlapPercent:L,depth:B,centerDistance:R}}).sort((a,u)=>{if(!D){if(a.isPointerInElement&&u.isPointerInElement)return u.depth-a.depth;if(a.isPointerInElement!==u.isPointerInElement)return a.isPointerInElement?-1:1}return Math.abs(a.overlapPercent-u.overlapPercent)<=1?a.centerDistance-u.centerDistance:u.overlapPercent-a.overlapPercent}),O=e.hovered.element.value,T=e.hovered.zone.value;e.hovered.element.value=((Z=z[0])==null?void 0:Z.element)??null,e.hovered.zone.value=(($=K[0])==null?void 0:$.zone)??null,e.hovered.element.value!==O&&((X=O==null?void 0:O.events)!=null&&X.onLeave&&O.events.onLeave(e),(F=(Y=e.hovered.element.value)==null?void 0:Y.events)!=null&&F.onHover&&e.hovered.element.value.events.onHover(e)),e.hovered.zone.value!==T&&((W=T==null?void 0:T.events)!=null&&W.onLeave&&T.events.onLeave(e),(G=(q=e.hovered.zone.value)==null?void 0:q.events)!=null&&G.onHover&&e.hovered.zone.value.events.onHover(e)),o=requestAnimationFrame(g)},E=()=>{g()},l=()=>{o!==null&&(cancelAnimationFrame(o),o=null)};return{activate:s=>{e.draggingElements.value=i(t.value),r(s),E()},track:s=>{c(s)},deactivate:()=>{var s,f;d(),e.hovered.zone.value?(f=(s=e.hovered.zone.value.events).onDrop)==null||f.call(s,e):e.draggingElements.value.forEach(h=>{var p,w;return(w=(p=h.events).onEnd)==null?void 0:w.call(p,e)}),e.draggingElements.value=[],e.selectedElements.value=[],e.hovered.zone.value=null,e.hovered.element.value=null,l()}}},Ee=t=>{const{elementRef:e,registerElement:r,unregisterElement:c,isDragging:d,isOvered:o,isAllowed:i,isVisible:v}=ge(t),{disableInteractions:g,enableInteractions:E}=me(),l=M(),{activate:m,track:P,deactivate:y}=ye(e),s=w=>{t!=null&&t.container&&(l.activeContainer.component.value=n.markRaw(t.container)),g(),m(w),document.addEventListener("pointermove",f),document.addEventListener("pointerup",p),document.addEventListener("wheel",h)},f=w=>{P(w)},h=w=>{P(w)},p=()=>{l.activeContainer.component.value=null,E(),y(),document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",p),document.removeEventListener("wheel",h)};return n.onMounted(r),n.onBeforeUnmount(c),{pointerPosition:l.pointerPosition,elementRef:e,isDragging:d,isOvered:o,isAllowed:i,handleDragStart:s,isVisible:v}},we=t=>{const{zones:e,hovered:r,draggingElements:c,isDragging:d}=M(),o=n.ref(null),i=n.computed(()=>{var l;return((l=r.zone.value)==null?void 0:l.node)===o.value}),v=n.computed(()=>{if(!o.value||!d.value)return!1;const l=e.value.find(m=>m.node===o.value);return l!=null&&l.groups.length?!c.value.some(m=>m.groups.length?!m.groups.some(P=>l.groups.includes(P)):!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 l=e.value.findIndex(m=>m.node===o.value);l!==-1&&e.value.splice(l,1)},isOvered:i,isAllowed:v}},Pe=t=>{const{elementRef:e,registerZone:r,unregisterZone:c,isOvered:d,isAllowed:o}=we(t);return n.onMounted(r),n.onBeforeUnmount(c),{elementRef:e,isOvered:d,isAllowed:o}},De=t=>{const{selectedElements:e,elements:r}=M(),c=n.computed(()=>r.value.find(l=>l.node===t.value)),d=n.computed(()=>e.value.some(l=>l.node===t.value)),o=n.computed(()=>t.value?e.value.some(l=>l.node&&I(l.node,t.value)):!1),i=n.computed(()=>t.value?e.value.some(l=>l.node&&I(t.value,l.node)):!1),v=()=>{c.value&&(e.value=e.value.filter(l=>l.node!==t.value))},g=()=>{c.value&&(o.value&&(e.value=e.value.filter(l=>l.node&&!I(l.node,t.value))),i.value&&(e.value=e.value.filter(l=>l.node&&!I(t.value,l.node))),e.value.push(c.value))};return{handleUnselect:v,handleSelect:g,handleToggleSelect:()=>{c.value&&(e.value.some(l=>l.node===t.value)?v():g())},isSelected:d,isParentOfSelected:o}};exports.DragOverlay=ve;exports.getBoundingBox=k;exports.useDnDStore=M;exports.useDraggable=Ee;exports.useDroppable=Pe;exports.useSelection=De;
@@ -1,4 +1,4 @@
1
- import { effectScope as ce, watch as se, nextTick as ve, getCurrentScope as de, onScopeDispose as ge, shallowRef as U, toValue as W, computed as w, getCurrentInstance as fe, onMounted as A, ref as E, onBeforeUnmount as b, defineComponent as ie, createElementBlock as V, createCommentVNode as he, unref as ne, openBlock as R, normalizeStyle as re, Fragment as me, renderList as pe, createBlock as ye, resolveDynamicComponent as Ee, markRaw as we } from "vue";
1
+ import { effectScope as ce, watch as se, nextTick as ve, getCurrentScope as de, onScopeDispose as ge, shallowRef as F, toValue as U, computed as P, getCurrentInstance as fe, onMounted as A, ref as w, onBeforeUnmount as W, defineComponent as ie, createElementBlock as Z, createCommentVNode as he, unref as ne, openBlock as R, normalizeStyle as re, Fragment as me, renderList as pe, createBlock as ye, resolveDynamicComponent as Ee, markRaw as we } from "vue";
2
2
  function Pe(t) {
3
3
  return de() ? (ge(t), !0) : !1;
4
4
  }
@@ -9,7 +9,7 @@ function xe(t) {
9
9
  }
10
10
  const De = typeof window < "u" && typeof document < "u";
11
11
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
12
- const Ie = (t) => t != null, X = () => {
12
+ const Ie = (t) => t != null, $ = () => {
13
13
  };
14
14
  function Se(t) {
15
15
  return Array.isArray(t) ? t : [t];
@@ -19,20 +19,20 @@ function Me(t, e, n) {
19
19
  return u;
20
20
  }
21
21
  const ae = De ? window : void 0;
22
- function Y(t) {
22
+ function X(t) {
23
23
  var e;
24
- const n = W(t);
24
+ const n = U(t);
25
25
  return (e = n == null ? void 0 : n.$el) != null ? e : n;
26
26
  }
27
27
  function Ce() {
28
- const t = U(!1), e = fe();
28
+ const t = F(!1), e = fe();
29
29
  return e && A(() => {
30
30
  t.value = !0;
31
31
  }, e), t;
32
32
  }
33
33
  function Le(t) {
34
34
  const e = Ce();
35
- return w(() => (e.value, !!t()));
35
+ return P(() => (e.value, !!t()));
36
36
  }
37
37
  function _e(t, e, n = {}) {
38
38
  const {
@@ -41,42 +41,42 @@ function _e(t, e, n = {}) {
41
41
  threshold: r = 0,
42
42
  window: s = ae,
43
43
  immediate: v = !0
44
- } = n, h = Le(() => s && "IntersectionObserver" in s), p = w(() => {
45
- const o = W(t);
46
- return Se(o).map(Y).filter(Ie);
44
+ } = n, g = Le(() => s && "IntersectionObserver" in s), y = P(() => {
45
+ const l = U(t);
46
+ return Se(l).map(X).filter(Ie);
47
47
  });
48
- let l = X;
49
- const g = U(v), x = h.value ? se(
50
- () => [p.value, Y(u), g.value],
51
- ([o, d]) => {
52
- if (l(), !g.value || !o.length)
48
+ let o = $;
49
+ const f = F(v), x = g.value ? se(
50
+ () => [y.value, X(u), f.value],
51
+ ([l, d]) => {
52
+ if (o(), !f.value || !l.length)
53
53
  return;
54
- const m = new IntersectionObserver(
54
+ const h = new IntersectionObserver(
55
55
  e,
56
56
  {
57
- root: Y(d),
57
+ root: X(d),
58
58
  rootMargin: c,
59
59
  threshold: r
60
60
  }
61
61
  );
62
- o.forEach((f) => f && m.observe(f)), l = () => {
63
- m.disconnect(), l = X;
62
+ l.forEach((m) => m && h.observe(m)), o = () => {
63
+ h.disconnect(), o = $;
64
64
  };
65
65
  },
66
66
  { immediate: v, flush: "post" }
67
- ) : X, y = () => {
68
- l(), x(), g.value = !1;
67
+ ) : $, p = () => {
68
+ o(), x(), f.value = !1;
69
69
  };
70
- return Pe(y), {
71
- isSupported: h,
72
- isActive: g,
70
+ return Pe(p), {
71
+ isSupported: g,
72
+ isActive: f,
73
73
  pause() {
74
- l(), g.value = !1;
74
+ o(), f.value = !1;
75
75
  },
76
76
  resume() {
77
- g.value = !0;
77
+ f.value = !0;
78
78
  },
79
- stop: y
79
+ stop: p
80
80
  };
81
81
  }
82
82
  function Oe(t, e = {}) {
@@ -86,38 +86,38 @@ function Oe(t, e = {}) {
86
86
  threshold: c = 0,
87
87
  rootMargin: r,
88
88
  once: s = !1
89
- } = e, v = U(!1), { stop: h } = _e(
89
+ } = e, v = F(!1), { stop: g } = _e(
90
90
  t,
91
- (p) => {
92
- let l = v.value, g = 0;
93
- for (const x of p)
94
- x.time >= g && (g = x.time, l = x.isIntersecting);
95
- v.value = l, s && Me(v, () => {
96
- h();
91
+ (y) => {
92
+ let o = v.value, f = 0;
93
+ for (const x of y)
94
+ x.time >= f && (f = x.time, o = x.isIntersecting);
95
+ v.value = o, s && Me(v, () => {
96
+ g();
97
97
  });
98
98
  },
99
99
  {
100
100
  root: u,
101
101
  window: n,
102
102
  threshold: c,
103
- rootMargin: W(r)
103
+ rootMargin: U(r)
104
104
  }
105
105
  );
106
106
  return v;
107
107
  }
108
108
  const C = xe(() => {
109
- const t = E([]), e = w(() => t.value.length > 0), n = {
110
- component: E(null),
111
- ref: E(null)
112
- }, u = E([]), c = E([]), r = E([]), s = {
113
- zone: E(null),
114
- element: E(null)
109
+ const t = w([]), e = P(() => t.value.length > 0), n = {
110
+ component: w(null),
111
+ ref: w(null)
112
+ }, u = w([]), c = w([]), r = w([]), s = {
113
+ zone: w(null),
114
+ element: w(null)
115
115
  }, v = {
116
- current: E(null),
117
- start: E(null),
116
+ current: w(null),
117
+ start: w(null),
118
118
  offset: {
119
- percent: E(null),
120
- pixel: E(null)
119
+ percent: w(null),
120
+ pixel: w(null)
121
121
  }
122
122
  };
123
123
  return {
@@ -131,10 +131,10 @@ const C = xe(() => {
131
131
  pointerPosition: v
132
132
  };
133
133
  }), ke = () => {
134
- const t = E(null), { draggingElements: e, pointerPosition: n, isDragging: u, activeContainer: c } = C();
134
+ const t = w(null), { draggingElements: e, pointerPosition: n, isDragging: u, activeContainer: c } = C();
135
135
  return A(() => {
136
136
  c.ref = t;
137
- }), b(() => {
137
+ }), W(() => {
138
138
  c.ref.value = null;
139
139
  }), {
140
140
  elementRef: t,
@@ -145,10 +145,10 @@ const C = xe(() => {
145
145
  }, Te = ["innerHTML"], ze = /* @__PURE__ */ ie({
146
146
  __name: "DefaultOverlay",
147
147
  setup(t) {
148
- const { elementRef: e, pointerPosition: n, isDragging: u, draggingElements: c } = ke(), r = w(() => {
149
- var s, v, h, p;
148
+ const { elementRef: e, pointerPosition: n, isDragging: u, draggingElements: c } = ke(), r = P(() => {
149
+ var s, v, g, y;
150
150
  return {
151
- transform: `translate3d(${(((s = n.current.value) == null ? void 0 : s.x) ?? 0) - (((v = n.offset.pixel.value) == null ? void 0 : v.x) ?? 0)}px, ${(((h = n.current.value) == null ? void 0 : h.y) ?? 0) - (((p = n.offset.pixel.value) == null ? void 0 : p.y) ?? 0)}px, 0)`,
151
+ transform: `translate3d(${(((s = n.current.value) == null ? void 0 : s.x) ?? 0) - (((v = n.offset.pixel.value) == null ? void 0 : v.x) ?? 0)}px, ${(((g = n.current.value) == null ? void 0 : g.y) ?? 0) - (((y = n.offset.pixel.value) == null ? void 0 : y.y) ?? 0)}px, 0)`,
152
152
  zIndex: 1e3,
153
153
  position: "fixed",
154
154
  top: 0,
@@ -156,29 +156,29 @@ const C = xe(() => {
156
156
  transition: "0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"
157
157
  };
158
158
  });
159
- return (s, v) => ne(u) ? (R(), V("div", {
159
+ return (s, v) => ne(u) ? (R(), Z("div", {
160
160
  key: 0,
161
161
  ref_key: "elementRef",
162
162
  ref: e,
163
163
  style: re(r.value)
164
164
  }, [
165
- (R(!0), V(me, null, pe(ne(c), (h, p) => {
166
- var l, g;
167
- return R(), V("div", {
168
- key: p,
169
- innerHTML: h.initialHTML,
165
+ (R(!0), Z(me, null, pe(ne(c), (g, y) => {
166
+ var o, f;
167
+ return R(), Z("div", {
168
+ key: y,
169
+ innerHTML: g.initialHTML,
170
170
  style: re({
171
- width: `${(l = h.initialRect) == null ? void 0 : l.width}px`,
172
- height: `${(g = h.initialRect) == null ? void 0 : g.height}px`
171
+ width: `${(o = g.initialRect) == null ? void 0 : o.width}px`,
172
+ height: `${(f = g.initialRect) == null ? void 0 : f.height}px`
173
173
  })
174
174
  }, null, 12, Te);
175
175
  }), 128))
176
176
  ], 4)) : he("", !0);
177
177
  }
178
- }), Fe = /* @__PURE__ */ ie({
178
+ }), Ye = /* @__PURE__ */ ie({
179
179
  __name: "DragOverlay",
180
180
  setup(t) {
181
- const { activeContainer: e } = C(), n = w(
181
+ const { activeContainer: e } = C(), n = P(
182
182
  () => e.component.value ?? ze
183
183
  );
184
184
  return (u, c) => (R(), ye(Ee(n.value)));
@@ -190,20 +190,20 @@ const C = xe(() => {
190
190
  hovered: u,
191
191
  selectedElements: c,
192
192
  isDragging: r
193
- } = C(), s = E(null), v = w(
193
+ } = C(), s = w(null), v = P(
194
194
  () => {
195
- var y;
196
- return ((y = u.element.value) == null ? void 0 : y.node) === s.value;
195
+ var p;
196
+ return ((p = u.element.value) == null ? void 0 : p.node) === s.value;
197
197
  }
198
- ), h = Oe(s), p = w(
199
- () => n.value.some((y) => y.node === s.value)
200
- ), l = w(() => {
198
+ ), g = Oe(s), y = P(
199
+ () => n.value.some((p) => p.node === s.value)
200
+ ), o = P(() => {
201
201
  if (!s.value || !r.value) return !1;
202
- const y = e.value.find(
203
- (o) => o.node === s.value
202
+ const p = e.value.find(
203
+ (l) => l.node === s.value
204
204
  );
205
- return y != null && y.groups.length ? !n.value.some((o) => o.groups.length ? !o.groups.some(
206
- (d) => y.groups.includes(d)
205
+ return p != null && p.groups.length ? !n.value.some((l) => l.groups.length ? !l.groups.some(
206
+ (d) => p.groups.includes(d)
207
207
  ) : !1) : !0;
208
208
  });
209
209
  return {
@@ -217,22 +217,23 @@ const C = xe(() => {
217
217
  defaultLayer: (t == null ? void 0 : t.layer) ?? null,
218
218
  events: (t == null ? void 0 : t.events) ?? {},
219
219
  data: (t == null ? void 0 : t.data) ?? void 0,
220
- isVisible: h
220
+ isVisible: g
221
221
  }), s.value.setAttribute(He, "true");
222
222
  },
223
223
  unregisterElement: () => {
224
- const y = e.value.findIndex(
224
+ const p = e.value.findIndex(
225
225
  (d) => d.node === s.value
226
226
  );
227
- y !== -1 && e.value.splice(y, 1);
228
- const o = c.value.findIndex(
227
+ p !== -1 && e.value.splice(p, 1);
228
+ const l = c.value.findIndex(
229
229
  (d) => d.node === s.value
230
230
  );
231
- o !== -1 && c.value.splice(o, 1);
231
+ l !== -1 && c.value.splice(l, 1);
232
232
  },
233
- isDragging: p,
233
+ isDragging: y,
234
234
  isOvered: v,
235
- isAllowed: l
235
+ isAllowed: o,
236
+ isVisible: g
236
237
  };
237
238
  }, Ae = () => {
238
239
  let t = "", e = "", n = "";
@@ -270,10 +271,10 @@ const C = xe(() => {
270
271
  width: e.width,
271
272
  height: e.height
272
273
  };
273
- }, F = (t) => ({
274
+ }, Y = (t) => ({
274
275
  x: t.x + t.width / 2,
275
276
  y: t.y + t.height / 2
276
- }), Ze = (t, e) => {
277
+ }), Ve = (t, e) => {
277
278
  const n = k(t);
278
279
  return {
279
280
  pixel: {
@@ -288,7 +289,7 @@ const C = xe(() => {
288
289
  }, le = (t, e) => {
289
290
  const n = e.x - t.x, u = e.y - t.y;
290
291
  return Math.sqrt(n * n + u * u);
291
- }, M = (t, e) => t ? e.contains(t) : !1, $e = (t) => {
292
+ }, M = (t, e) => t ? e.contains(t) : !1, be = (t) => {
292
293
  const e = C();
293
294
  return {
294
295
  onPointerStart: (r) => {
@@ -296,7 +297,7 @@ const C = xe(() => {
296
297
  x: r.clientX,
297
298
  y: r.clientY
298
299
  };
299
- const { pixel: s, percent: v } = Ze(t.value, {
300
+ const { pixel: s, percent: v } = Ve(t.value, {
300
301
  x: r.clientX,
301
302
  y: r.clientY
302
303
  });
@@ -312,48 +313,48 @@ const C = xe(() => {
312
313
  e.pointerPosition.current.value = null, e.pointerPosition.start.value = null, e.pointerPosition.offset.pixel.value = null, e.pointerPosition.offset.percent.value = null;
313
314
  }
314
315
  };
315
- }, Ve = (t) => {
316
- const e = C(), { onPointerStart: n, onPointerMove: u, onPointerEnd: c } = $e(t);
316
+ }, Ze = (t) => {
317
+ const e = C(), { onPointerStart: n, onPointerMove: u, onPointerEnd: c } = be(t);
317
318
  let r = null;
318
- const s = (o) => {
319
- var f, I;
319
+ const s = (l) => {
320
+ var m, E;
320
321
  const d = e.selectedElements.value.some(
321
- (P) => P.node === o
322
+ (D) => D.node === l
322
323
  );
323
324
  if (e.selectedElements.value.length && d)
324
- return e.selectedElements.value.map((P) => {
325
+ return e.selectedElements.value.map((D) => {
325
326
  var L, H;
326
327
  return {
327
- ...P,
328
- initialHTML: ((L = P.node) == null ? void 0 : L.outerHTML) ?? "",
329
- initialRect: (H = P.node) == null ? void 0 : H.getBoundingClientRect()
328
+ ...D,
329
+ initialHTML: ((L = D.node) == null ? void 0 : L.outerHTML) ?? "",
330
+ initialRect: (H = D.node) == null ? void 0 : H.getBoundingClientRect()
330
331
  };
331
332
  });
332
333
  e.selectedElements.value = [];
333
- const m = e.elements.value.find(
334
- (P) => P.node === o
334
+ const h = e.elements.value.find(
335
+ (D) => D.node === l
335
336
  );
336
- return m ? [
337
+ return h ? [
337
338
  {
338
- ...m,
339
- initialHTML: ((f = m.node) == null ? void 0 : f.outerHTML) ?? "",
340
- initialRect: (I = m.node) == null ? void 0 : I.getBoundingClientRect()
339
+ ...h,
340
+ initialHTML: ((m = h.node) == null ? void 0 : m.outerHTML) ?? "",
341
+ initialRect: (E = h.node) == null ? void 0 : E.getBoundingClientRect()
341
342
  }
342
343
  ] : [];
343
- }, v = (o, d) => {
344
- const m = Math.max(
344
+ }, v = (l, d) => {
345
+ const h = Math.max(
345
346
  0,
346
- Math.min(o.x + o.width, d.x + d.width) - Math.max(o.x, d.x)
347
- ), f = Math.max(
347
+ Math.min(l.x + l.width, d.x + d.width) - Math.max(l.x, d.x)
348
+ ), m = Math.max(
348
349
  0,
349
- Math.min(o.y + o.height, d.y + d.height) - Math.max(o.y, d.y)
350
- ), I = m * f, P = o.width * o.height, L = d.width * d.height;
351
- return (I / P * 100 + I / L * 100) / 2;
352
- }, h = () => {
350
+ Math.min(l.y + l.height, d.y + d.height) - Math.max(l.y, d.y)
351
+ ), E = h * m, D = l.width * l.height, L = d.width * d.height;
352
+ return (E / D * 100 + E / L * 100) / 2;
353
+ }, g = () => {
353
354
  var G, N, q, B, j, J, K, Q, ee, te;
354
- const o = k(e.activeContainer.ref.value), d = F(o), m = ((G = e.pointerPosition.current.value) == null ? void 0 : G.x) ?? 0, f = ((N = e.pointerPosition.current.value) == null ? void 0 : N.y) ?? 0, P = !(o && m >= o.x && m <= o.x + o.width && f >= o.y && f <= o.y + o.height), L = e.draggingElements.value.map((i) => i.node), H = e.elements.value.filter((i) => {
355
- if (!i.node || L.some(
356
- (D) => D && M(i.node, D)
355
+ const l = k(e.activeContainer.ref.value), d = Y(l), h = ((G = e.pointerPosition.current.value) == null ? void 0 : G.x) ?? 0, m = ((N = e.pointerPosition.current.value) == null ? void 0 : N.y) ?? 0, D = !(l && h >= l.x && h <= l.x + l.width && m >= l.y && m <= l.y + l.height), L = e.draggingElements.value.map((i) => i.node), H = e.elements.value.filter((i) => {
356
+ if (!i.isVisible || !i.isVisible.value || !i.node || L.some(
357
+ (I) => I && M(i.node, I)
357
358
  ) || i.groups.length && !!e.draggingElements.value.some(
358
359
  (S) => S.groups.length ? !S.groups.some(
359
360
  (_) => i.groups.includes(_)
@@ -361,9 +362,9 @@ const C = xe(() => {
361
362
  ))
362
363
  return !1;
363
364
  const a = k(i.node);
364
- return a && o && oe(a, o);
365
+ return a && l && oe(a, l);
365
366
  }).map((i) => {
366
- const a = k(i.node), D = F(a), S = m >= a.x && m <= a.x + a.width && f >= a.y && f <= a.y + a.height, _ = v(a, o), Z = le(d, D), $ = e.elements.value.filter(
367
+ const a = k(i.node), I = Y(a), S = h >= a.x && h <= a.x + a.width && m >= a.y && m <= a.y + a.height, _ = v(a, l), V = le(d, I), b = e.elements.value.filter(
367
368
  (O) => O !== i && O.node && i.node && M(
368
369
  i.node,
369
370
  O.node
@@ -373,11 +374,11 @@ const C = xe(() => {
373
374
  element: i,
374
375
  isPointerInElement: S,
375
376
  overlapPercent: _,
376
- depth: $,
377
- centerDistance: Z
377
+ depth: b,
378
+ centerDistance: V
378
379
  };
379
380
  }).sort((i, a) => {
380
- if (!P) {
381
+ if (!D) {
381
382
  if (i.isPointerInElement && a.isPointerInElement)
382
383
  return a.depth - i.depth;
383
384
  if (i.isPointerInElement !== a.isPointerInElement)
@@ -386,24 +387,24 @@ const C = xe(() => {
386
387
  return Math.abs(i.overlapPercent - a.overlapPercent) <= 1 ? i.centerDistance - a.centerDistance : a.overlapPercent - i.overlapPercent;
387
388
  }), ue = e.zones.value.filter((i) => {
388
389
  if (!i.node || L.some(
389
- (D) => D && M(i.node, D)
390
+ (I) => I && M(i.node, I)
390
391
  ) || i.groups.length && !!e.draggingElements.value.some((S) => S.groups.length ? !S.groups.some((_) => i.groups.includes(_)) : !1))
391
392
  return !1;
392
393
  const a = k(i.node);
393
- return a && o && oe(a, o);
394
+ return a && l && oe(a, l);
394
395
  }).map((i) => {
395
- const a = k(i.node), D = F(a), S = m >= a.x && m <= a.x + a.width && f >= a.y && f <= a.y + a.height, _ = v(a, o), Z = le(d, D), $ = e.zones.value.filter(
396
+ const a = k(i.node), I = Y(a), S = h >= a.x && h <= a.x + a.width && m >= a.y && m <= a.y + a.height, _ = v(a, l), V = le(d, I), b = e.zones.value.filter(
396
397
  (O) => O !== i && O.node && i.node && M(i.node, O.node)
397
398
  ).length;
398
399
  return {
399
400
  zone: i,
400
401
  isPointerInElement: S,
401
402
  overlapPercent: _,
402
- depth: $,
403
- centerDistance: Z
403
+ depth: b,
404
+ centerDistance: V
404
405
  };
405
406
  }).sort((i, a) => {
406
- if (!P) {
407
+ if (!D) {
407
408
  if (i.isPointerInElement && a.isPointerInElement)
408
409
  return a.depth - i.depth;
409
410
  if (i.isPointerInElement !== a.isPointerInElement)
@@ -411,65 +412,67 @@ const C = xe(() => {
411
412
  }
412
413
  return Math.abs(i.overlapPercent - a.overlapPercent) <= 1 ? i.centerDistance - a.centerDistance : a.overlapPercent - i.overlapPercent;
413
414
  }), T = e.hovered.element.value, z = e.hovered.zone.value;
414
- e.hovered.element.value = ((q = H[0]) == null ? void 0 : q.element) ?? null, e.hovered.zone.value = ((B = ue[0]) == null ? void 0 : B.zone) ?? null, e.hovered.element.value !== T && ((j = T == null ? void 0 : T.events) != null && j.onLeave && T.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 !== z && ((Q = z == null ? void 0 : z.events) != null && Q.onLeave && z.events.onLeave(e), (te = (ee = e.hovered.zone.value) == null ? void 0 : ee.events) != null && te.onHover && e.hovered.zone.value.events.onHover(e)), r = requestAnimationFrame(h);
415
- }, p = () => {
416
- h();
417
- }, l = () => {
415
+ e.hovered.element.value = ((q = H[0]) == null ? void 0 : q.element) ?? null, e.hovered.zone.value = ((B = ue[0]) == null ? void 0 : B.zone) ?? null, e.hovered.element.value !== T && ((j = T == null ? void 0 : T.events) != null && j.onLeave && T.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 !== z && ((Q = z == null ? void 0 : z.events) != null && Q.onLeave && z.events.onLeave(e), (te = (ee = e.hovered.zone.value) == null ? void 0 : ee.events) != null && te.onHover && e.hovered.zone.value.events.onHover(e)), r = requestAnimationFrame(g);
416
+ }, y = () => {
417
+ g();
418
+ }, o = () => {
418
419
  r !== null && (cancelAnimationFrame(r), r = null);
419
420
  };
420
421
  return {
421
- activate: (o) => {
422
- e.draggingElements.value = s(t.value), n(o), p();
422
+ activate: (l) => {
423
+ e.draggingElements.value = s(t.value), n(l), y();
423
424
  },
424
- track: (o) => {
425
- u(o);
425
+ track: (l) => {
426
+ u(l);
426
427
  },
427
428
  deactivate: () => {
428
- var o, d;
429
- c(), e.hovered.zone.value ? (d = (o = e.hovered.zone.value.events).onDrop) == null || d.call(o, e) : e.draggingElements.value.forEach(
430
- (m) => {
431
- var f, I;
432
- return (I = (f = m.events).onEnd) == null ? void 0 : I.call(f, e);
429
+ var l, d;
430
+ c(), e.hovered.zone.value ? (d = (l = e.hovered.zone.value.events).onDrop) == null || d.call(l, e) : e.draggingElements.value.forEach(
431
+ (h) => {
432
+ var m, E;
433
+ return (E = (m = h.events).onEnd) == null ? void 0 : E.call(m, e);
433
434
  }
434
- ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, l();
435
+ ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, o();
435
436
  }
436
437
  };
437
- }, Ue = (t) => {
438
+ }, Fe = (t) => {
438
439
  const {
439
440
  elementRef: e,
440
441
  registerElement: n,
441
442
  unregisterElement: u,
442
443
  isDragging: c,
443
444
  isOvered: r,
444
- isAllowed: s
445
- } = Re(t), { disableInteractions: v, enableInteractions: h } = Ae(), p = C(), { activate: l, track: g, deactivate: x } = Ve(e), y = (f) => {
446
- t != null && t.container && (p.activeContainer.component.value = we(t.container)), v(), l(f), document.addEventListener("pointermove", o), document.addEventListener("pointerup", m), document.addEventListener("wheel", d);
447
- }, o = (f) => {
448
- g(f);
449
- }, d = (f) => {
450
- g(f);
445
+ isAllowed: s,
446
+ isVisible: v
447
+ } = Re(t), { disableInteractions: g, enableInteractions: y } = Ae(), o = C(), { activate: f, track: x, deactivate: p } = Ze(e), l = (E) => {
448
+ t != null && t.container && (o.activeContainer.component.value = we(t.container)), g(), f(E), document.addEventListener("pointermove", d), document.addEventListener("pointerup", m), document.addEventListener("wheel", h);
449
+ }, d = (E) => {
450
+ x(E);
451
+ }, h = (E) => {
452
+ x(E);
451
453
  }, m = () => {
452
- p.activeContainer.component.value = null, h(), x(), document.removeEventListener("pointermove", o), document.removeEventListener("pointerup", m), document.removeEventListener("wheel", d);
454
+ o.activeContainer.component.value = null, y(), p(), document.removeEventListener("pointermove", d), document.removeEventListener("pointerup", m), document.removeEventListener("wheel", h);
453
455
  };
454
- return A(n), b(u), {
455
- pointerPosition: p.pointerPosition,
456
+ return A(n), W(u), {
457
+ pointerPosition: o.pointerPosition,
456
458
  elementRef: e,
457
459
  isDragging: c,
458
460
  isOvered: r,
459
461
  isAllowed: s,
460
- handleDragStart: y
462
+ handleDragStart: l,
463
+ isVisible: v
461
464
  };
462
- }, Xe = (t) => {
463
- const { zones: e, hovered: n, draggingElements: u, isDragging: c } = C(), r = E(null), s = w(() => {
464
- var l;
465
- return ((l = n.zone.value) == null ? void 0 : l.node) === r.value;
466
- }), v = w(() => {
465
+ }, $e = (t) => {
466
+ const { zones: e, hovered: n, draggingElements: u, isDragging: c } = C(), r = w(null), s = P(() => {
467
+ var o;
468
+ return ((o = n.zone.value) == null ? void 0 : o.node) === r.value;
469
+ }), v = P(() => {
467
470
  if (!r.value || !c.value) return !1;
468
- const l = e.value.find(
469
- (g) => g.node === r.value
471
+ const o = e.value.find(
472
+ (f) => f.node === r.value
470
473
  );
471
- return l != null && l.groups.length ? !u.value.some((g) => g.groups.length ? !g.groups.some(
472
- (x) => l.groups.includes(x)
474
+ return o != null && o.groups.length ? !u.value.some((f) => f.groups.length ? !f.groups.some(
475
+ (x) => o.groups.includes(x)
473
476
  ) : !1) : !0;
474
477
  });
475
478
  return { elementRef: r, registerZone: () => {
@@ -482,61 +485,61 @@ const C = xe(() => {
482
485
  }), r.value.setAttribute("data-dnd-droppable", "true");
483
486
  }, unregisterZone: () => {
484
487
  if (!r.value) throw new Error("elementRef is not set");
485
- const l = e.value.findIndex(
486
- (g) => g.node === r.value
488
+ const o = e.value.findIndex(
489
+ (f) => f.node === r.value
487
490
  );
488
- l !== -1 && e.value.splice(l, 1);
491
+ o !== -1 && e.value.splice(o, 1);
489
492
  }, isOvered: s, isAllowed: v };
493
+ }, Ue = (t) => {
494
+ const { elementRef: e, registerZone: n, unregisterZone: u, isOvered: c, isAllowed: r } = $e(t);
495
+ return A(n), W(u), { elementRef: e, isOvered: c, isAllowed: r };
490
496
  }, We = (t) => {
491
- const { elementRef: e, registerZone: n, unregisterZone: u, isOvered: c, isAllowed: r } = Xe(t);
492
- return A(n), b(u), { elementRef: e, isOvered: c, isAllowed: r };
493
- }, be = (t) => {
494
- const { selectedElements: e, elements: n } = C(), u = w(
495
- () => n.value.find((l) => l.node === t.value)
496
- ), c = w(
497
- () => e.value.some((l) => l.node === t.value)
498
- ), r = w(() => t.value ? e.value.some(
499
- (l) => l.node && M(
500
- l.node,
497
+ const { selectedElements: e, elements: n } = C(), u = P(
498
+ () => n.value.find((o) => o.node === t.value)
499
+ ), c = P(
500
+ () => e.value.some((o) => o.node === t.value)
501
+ ), r = P(() => t.value ? e.value.some(
502
+ (o) => o.node && M(
503
+ o.node,
501
504
  t.value
502
505
  )
503
- ) : !1), s = w(() => t.value ? e.value.some(
504
- (l) => l.node && M(
506
+ ) : !1), s = P(() => t.value ? e.value.some(
507
+ (o) => o.node && M(
505
508
  t.value,
506
- l.node
509
+ o.node
507
510
  )
508
511
  ) : !1), v = () => {
509
512
  u.value && (e.value = e.value.filter(
510
- (l) => l.node !== t.value
513
+ (o) => o.node !== t.value
511
514
  ));
512
- }, h = () => {
515
+ }, g = () => {
513
516
  u.value && (r.value && (e.value = e.value.filter(
514
- (l) => l.node && !M(
515
- l.node,
517
+ (o) => o.node && !M(
518
+ o.node,
516
519
  t.value
517
520
  )
518
521
  )), s.value && (e.value = e.value.filter(
519
- (l) => l.node && !M(
522
+ (o) => o.node && !M(
520
523
  t.value,
521
- l.node
524
+ o.node
522
525
  )
523
526
  )), e.value.push(u.value));
524
527
  };
525
528
  return {
526
529
  handleUnselect: v,
527
- handleSelect: h,
530
+ handleSelect: g,
528
531
  handleToggleSelect: () => {
529
- u.value && (e.value.some((l) => l.node === t.value) ? v() : h());
532
+ u.value && (e.value.some((o) => o.node === t.value) ? v() : g());
530
533
  },
531
534
  isSelected: c,
532
535
  isParentOfSelected: r
533
536
  };
534
537
  };
535
538
  export {
536
- Fe as DragOverlay,
539
+ Ye as DragOverlay,
537
540
  k as getBoundingBox,
538
541
  C as useDnDStore,
539
- Ue as useDraggable,
540
- We as useDroppable,
541
- be as useSelection
542
+ Fe as useDraggable,
543
+ Ue as useDroppable,
544
+ We as useSelection
542
545
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-dnd-kit/core",
3
- "version": "0.0.31-beta",
3
+ "version": "0.0.35-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",