@vue-dnd-kit/core 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -74
- package/dist/external/components/DnDProvider.vue.d.ts +4 -4
- package/dist/external/components/DragPreview.vue.d.ts +81 -0
- package/dist/external/index.d.ts +2 -1
- package/dist/external/types/entities.d.ts +200 -198
- package/dist/external/types/index.d.ts +5 -5
- package/dist/external/types/operations.d.ts +186 -184
- package/dist/external/types/placement.d.ts +34 -34
- package/dist/external/types/pointer.d.ts +10 -10
- package/dist/external/types/provider.d.ts +84 -82
- package/dist/internal/composables/useDnDProviderState.d.ts +1 -1
- package/dist/internal/sensors/steps.d.ts +4 -4
- package/dist/internal/types/provider.d.ts +0 -1
- package/dist/internal/utils/constraints.d.ts +8 -5
- package/dist/internal/utils/observer.d.ts +3 -11
- package/dist/vue-dnd-kit-core.cjs.js +2 -2
- package/dist/vue-dnd-kit-core.es.js +368 -385
- package/package.json +75 -75
- package/dist/external/components/DefaultOverlay.vue.d.ts +0 -2
- package/dist/internal/composables/useSizeObserver.d.ts +0 -33
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
2
|
import { IDnDProviderProps } from '../../external/types/provider';
|
|
3
3
|
import { IDnDProviderInternal } from '../types/provider';
|
|
4
|
-
export declare function useDnDProviderState(
|
|
4
|
+
export declare function useDnDProviderState(previewRef: Ref<HTMLElement | null>, props?: IDnDProviderProps): IDnDProviderInternal;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IDnDProviderInternal } from '../types/provider';
|
|
2
2
|
import { TSortCompareFn, TFilterFn, TCollisionCheckFn, TContainerBoxFn } from './sensor';
|
|
3
3
|
/** Container from overlay ref */
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const previewContainer: (p: IDnDProviderInternal) => HTMLElement | null;
|
|
5
5
|
/**
|
|
6
6
|
* Box from overlay style (x,y) + size.
|
|
7
7
|
* The overlay is `position:fixed; top:0; left:0; transform:translate(x,y)`, so
|
|
@@ -12,7 +12,7 @@ export declare const overlayContainer: (p: IDnDProviderInternal) => HTMLElement
|
|
|
12
12
|
* Without the fallback: size=0 → containerBox is a zero-size point → pointer.x <= box.x+0
|
|
13
13
|
* fails whenever offset.x>0 (grabbed away from left edge) → pointerInContainer=false always.
|
|
14
14
|
*/
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const previewBoxFromStyle: TContainerBoxFn;
|
|
16
16
|
/** Allowed draggedItems (visible + filtered by groups) */
|
|
17
17
|
export declare const visibleElements: (p: IDnDProviderInternal) => Set<HTMLElement>;
|
|
18
18
|
/** Allowed droppables (visible + filtered by groups) */
|
|
@@ -38,8 +38,8 @@ export declare const sortByPointerDistance: TSortCompareFn;
|
|
|
38
38
|
/**
|
|
39
39
|
* Sort: pointer-in-element + depth when pointer inside container; overlap % + centerDistance when outside.
|
|
40
40
|
*
|
|
41
|
-
* The container box MUST be computed via
|
|
42
|
-
* position is correct for a fixed+transform overlay. The size fallback in
|
|
41
|
+
* The container box MUST be computed via previewBoxFromStyle (not getBoundingClientRect) so that
|
|
42
|
+
* position is correct for a fixed+transform overlay. The size fallback in previewBoxFromStyle ensures
|
|
43
43
|
* the box is never zero-sized on the first frame, making `pointerInContainer` reliably true whenever
|
|
44
44
|
* the cursor is above the drag ghost.
|
|
45
45
|
*/
|
|
@@ -25,7 +25,6 @@ export interface IDnDProviderInternal extends IDnDProviderExternal {
|
|
|
25
25
|
draggableObserver: IIntersectionObserverWrapper;
|
|
26
26
|
droppableObserver: IIntersectionObserverWrapper;
|
|
27
27
|
selectableAreaObserver: IIntersectionObserverWrapper;
|
|
28
|
-
overlaySizeObserver: { disconnect: () => void };
|
|
29
28
|
/** BoundingClientRect cache — invalidated on scroll and session reset */
|
|
30
29
|
rectCache: Map<HTMLElement, DOMRect>;
|
|
31
30
|
};
|
|
@@ -16,17 +16,20 @@ export declare function applyAxisConstraint(targetX: number, targetY: number, ax
|
|
|
16
16
|
/**
|
|
17
17
|
* Applies bounds constraint within container
|
|
18
18
|
*/
|
|
19
|
-
export declare function applyBoundsConstraint(targetX: number, targetY: number, axis: 'x' | 'y' | 'both', constraintRect: DOMRect, overlayRect:
|
|
19
|
+
export declare function applyBoundsConstraint(targetX: number, targetY: number, axis: 'x' | 'y' | 'both', constraintRect: DOMRect, overlayRect: {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
}): {
|
|
20
23
|
x: number;
|
|
21
24
|
y: number;
|
|
22
25
|
};
|
|
23
26
|
/**
|
|
24
27
|
* Calculates final overlay position with all constraints applied
|
|
25
28
|
*/
|
|
26
|
-
export declare function calculateConstrainedPosition(pointer: TPointerState,
|
|
29
|
+
export declare function calculateConstrainedPosition(pointer: TPointerState, overlaySize: {
|
|
27
30
|
width: number;
|
|
28
31
|
height: number;
|
|
29
|
-
} | null): {
|
|
32
|
+
} | null, firstDraggable: HTMLElement | null, constraintsAreaMap: Map<HTMLElement, IConstraintsAreaEntity>): {
|
|
30
33
|
x: number;
|
|
31
34
|
y: number;
|
|
32
35
|
};
|
|
@@ -34,7 +37,7 @@ export declare function calculateConstrainedPosition(pointer: TPointerState, ove
|
|
|
34
37
|
* Updates pointer.current with constraint-applied coordinates.
|
|
35
38
|
* When constraints exist, stores the "effective" position so pointer matches overlay.
|
|
36
39
|
*/
|
|
37
|
-
export declare function updatePointerWithConstraints(pointer: TPointerState, rawX: number, rawY: number,
|
|
40
|
+
export declare function updatePointerWithConstraints(pointer: TPointerState, rawX: number, rawY: number, overlaySize: {
|
|
38
41
|
width: number;
|
|
39
42
|
height: number;
|
|
40
|
-
} | null): void;
|
|
43
|
+
} | null, firstDraggable: HTMLElement | null, constraintsAreaMap: Map<HTMLElement, IConstraintsAreaEntity>): void;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Observers — IntersectionObserver (visibility)
|
|
3
|
+
*/
|
|
2
4
|
export interface IObserverWrapper {
|
|
3
5
|
observe: (element: HTMLElement) => void;
|
|
4
6
|
unobserve: (element: HTMLElement) => void;
|
|
@@ -11,13 +13,3 @@ export interface IObserverWrapper {
|
|
|
11
13
|
* @returns Object with observe/unobserve/disconnect methods
|
|
12
14
|
*/
|
|
13
15
|
export declare const createIntersectionObserver: (targetSet: Set<HTMLElement>) => IObserverWrapper;
|
|
14
|
-
/**
|
|
15
|
-
* Creates a ResizeObserver that tracks element size and writes to target ref
|
|
16
|
-
*
|
|
17
|
-
* @param target - Ref to write { width, height } on resize
|
|
18
|
-
* @returns Object with observe/unobserve/disconnect methods
|
|
19
|
-
*/
|
|
20
|
-
export declare const createSizeObserver: (target: Ref<{
|
|
21
|
-
width: number;
|
|
22
|
-
height: number;
|
|
23
|
-
} | null>) => IObserverWrapper;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),T={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},z={SELECT_AREA:`[${T.SELECT_AREA}]`,DRAGGABLE:`[${T.DRAGGABLE}]`,CONSTRAINT_AREA:`[${T.CONSTRAINT_AREA}]`},fe="VueDnDKitProvider",be=(e,t,n,s)=>{const a=new Set;return t.forEach(i=>{const o=e.get(i),r=s?s(i):o?.disabled;if(!o||r)return;const g=o.modifier?.keys,c=o.modifier?.method;if(!g||!c||g.length===0){a.add(i);return}g[c](l=>n.value.has(l))&&a.add(i)}),a};let De="",Be="",Pe="";const S=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,_=(e,t)=>e!==t&&e.contains(t),Oe=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ae=()=>{const e=document.body;De=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",D),window.addEventListener("selectstart",D),window.addEventListener("touchstart",D),window.addEventListener("touchmove",D)},oe=()=>{const e=document.body;e.style.userSelect=De,e.style.touchAction=Be,e.style.overscrollBehavior=Pe,window.removeEventListener("contextmenu",D),window.removeEventListener("selectstart",D),window.removeEventListener("touchstart",D),window.removeEventListener("touchmove",D)},D=e=>e.preventDefault(),de=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(s)?.disabled&&_(s,e))return!0;return!1},F=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(s)?.disabled&&_(s,e))return!0;return!1},X=(e,t)=>{if(!e.length||!t.length)return!0;const n=new Set(t);return e.some(s=>n.has(s))};function ze(e,t,n,s){const a=[];for(const o of t.keys()){const r=n.get(o);a.push({groups:r?.groups??[]})}const i=new Set;for(const o of e){const r=s.get(o),g=r?.groups??[],c=r?.groupMatch??"every";(!a.length||a[c](l=>X(l.groups,g)))&&i.add(o)}return i}function _e(e,t,n){const s=new Set;for(const o of t.keys()){const r=n.get(o);for(const g of r?.groups??[])s.add(g)}const a=[...s],i=new Set;for(const o of e){const g=n.get(o)?.groups??[];X(a,g)&&i.add(o)}return i}const W=e=>{const t=new IntersectionObserver(n=>{n.forEach(s=>{const a=s.target;e[s.isIntersecting?"add":"delete"](a)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},Fe=e=>{const t=new ResizeObserver(n=>{const s=n[0];if(!s)return;const{width:a,height:i}=s.contentRect;e.value={width:a,height:i}});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}},He=e=>{const t=u.ref(null),n=Fe(t),s=u.watch(e,i=>{n.disconnect(),i&&n.observe(i)},{immediate:!0});return{overlaySize:t,overlaySizeObserver:{disconnect:()=>{s(),n.disconnect()}}}};function ie(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function ve(e,t){const n=t.getBoundingClientRect(),s=n.width>0?(e.clientX-n.left)/n.width:.5,a=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:s,y:a}}function Me(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function Ge(e,t,n){e.forEach(s=>{const a=t.get(s);n.set(s,Me(s,a))}),e.clear()}function Ke(e,t,n){n.clear();const s=t.get(e);n.set(e,Me(e,s))}function Y(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Ne(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ne(e,t,n,s){t.has(e)?Ge(t,n,s):(t.clear(),Ke(e,n,s))}function we(e,t,n,s){if(s||!n)return!0;const a=e.closest(n);return a?t.contains(a):!1}function Ue(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),s=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const c=Math.sqrt(n*n+s*s);return Math.min(c/t,1)}const{x:a=0,y:i=0,condition:o="any"}=t;if(a===0&&i===0)return 1;const r=a>0?Math.min(n/a,1):1,g=i>0?Math.min(s/i,1):1;return o==="both"?Math.min(r,g):Math.max(r,g)}function Ae(e,t,n){if(!n)return!0;const s=n.distance!=null,a=n.delay!=null;return!s&&!a?!0:s&&!a?e>=1:!s&&a?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Ve(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Ae(e.distanceProgress.value,e.delay.progress,t?.activation)?(Y(e),!0):!1}function Ye(e,t){let n=null;const s=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const a=e.entities.draggableMap.get(e.entities.initiatingDraggable),i=a?.activation?.delay;if(!i){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(i*1e3),1),Ae(e.distanceProgress.value,e.delay.progress,a?.activation)?(t(),n=null):n=requestAnimationFrame(s)};return n=requestAnimationFrame(s),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function Ze(e,t){const n=e.closest(z.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function Xe(e,t,n,s){return n==="x"?{x:e,y:s.top}:n==="y"?{x:s.left,y:t}:{x:e,y:t}}function $e(e,t,n,s,a){let i=e,o=t;return n!=="y"&&(i=Math.max(s.left,Math.min(s.right-a.width,e))),n!=="x"&&(o=Math.max(s.top,Math.min(s.bottom-a.height,t))),{x:i,y:o}}function qe(e,t,n,s,a){if(!e||!t)return{x:0,y:0};const i=t.getBoundingClientRect(),o=i.width||a?.width||0,r=i.height||a?.height||0;let g=e.current.x-o*e.offset.x,c=e.current.y-r*e.offset.y;if(!n)return{x:g,y:c};const f=Ze(n,s);if(!f)return{x:g,y:c};const{element:l,entity:d}=f,m=l.getBoundingClientRect(),h=n.getBoundingClientRect(),b=Xe(g,c,d.axis||"both",h);return d.restrictToArea?$e(b.x,b.y,d.axis||"both",m,i):b}const K={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function je(e,t){const n=u.shallowRef(),s=u.ref(),i={keys:{pressedKeys:u.ref(new Set),forDrag:[...K.forDrag],forCancel:[...K.forCancel],forDrop:[...K.forDrop],forMove:[...K.forMove],forMoveFaster:[...K.forMoveFaster]},step:8,moveFaster:4},o=u.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,selectionBase:new Set,allowedDroppableSet:u.computed(()=>n.value?ze(o.visibleDroppableSet,o.draggingMap,o.draggableMap,o.droppableMap):new Set),allowedDraggableSet:u.computed(()=>n.value?_e(o.visibleDraggableSet,o.draggingMap,o.draggableMap):new Set),modifiersSelectableAreaSet:u.computed(()=>be(o.selectableAreaMap,o.visibleSelectableAreaSet,i.keys.pressedKeys)),modifiersDraggableSet:u.computed(()=>be(o.draggableMap,o.visibleDraggableSet,i.keys.pressedKeys,v=>de(v,{entities:o}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),r=u.reactive({draggable:new Map,droppable:new Map}),g={throttle:u.shallowRef(0)},c=u.reactive({x:window.scrollX,y:window.scrollY}),f=u.reactive({progress:0,startTime:0}),l=u.computed(()=>{if(!s.value||!o.initiatingDraggable)return 0;const v=o.draggableMap.get(o.initiatingDraggable)?.activation?.distance;return v?Ue(s.value,v):1}),d=W(o.visibleDraggableSet),m=W(o.visibleDroppableSet),h=W(o.visibleSelectableAreaSet),{overlaySize:b,overlaySizeObserver:w}=He(e),y=u.ref(),I=u.computed(()=>{c.x,c.y;const p=o.initiatingDraggable;return qe(s.value,e.value,p||null,o.constraintsAreaMap,b.value)}),x=u.computed({get:()=>t?.overlayTo,set:p=>x.value=p}),N=u.computed(()=>t?.autoScrollViewport);return{state:n,pointer:s,entities:o,keyboard:i,scrollPosition:c,delay:f,distanceProgress:l,hovered:r,collision:g,overlay:{size:b,position:I,render:y,ref:e,to:x},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:h,overlaySizeObserver:w,rectCache:new Map},autoScrollViewport:N}}const Z=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const s=e.entities.draggableMap.get(t);s&&(s.hoveredPlacement=void 0)}const n=e.hovered.droppable.keys().next().value;if(n){const s=e.entities.droppableMap.get(n);s&&(s.hoveredPlacement=void 0)}e.lib.rectCache.clear(),e.pointer.value=void 0,e.state.value=void 0,e.entities.selectingArea=void 0,e.entities.selectionBase.clear(),e.entities.initiatingDraggable=void 0,e.delay.progress=0,e.delay.startTime=0,e.entities.draggingMap.clear(),e.hovered.draggable.clear(),e.hovered.droppable.clear()};function We(e){return e.parentElement?.closest(z.SELECT_AREA)??null}const Je=(e,t,n)=>{if(!n)return{};const s=n.getBoundingClientRect(),a=Math.max(s.left,Math.min(e.x,t.x)),i=Math.max(s.top,Math.min(e.y,t.y)),o=Math.min(s.right,Math.max(e.x,t.x)),r=Math.min(s.bottom,Math.max(e.y,t.y)),g=Math.max(0,o-a),c=Math.max(0,r-i),f=a-s.left+n.scrollLeft,l=i-s.top+n.scrollTop;return{position:"absolute",left:`${f}px`,top:`${l}px`,width:`${g}px`,height:`${c}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},xe=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=Qe(e.pointer.value.start,e.pointer.value.current),s=e.entities.selectableAreaMap.get(t)?.groups??[],a=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(i=>{if(i===t||!t.contains(i))return;const o=We(i);if(o&&o!==t){e.entities.selectedSet.delete(i);return}if(de(i,e)){e.entities.selectedSet.delete(i);return}const g=e.entities.draggableMap.get(i)?.groups??[];if(!X(s,g)){e.entities.selectedSet.delete(i);return}let c=a.get(i);c||(c=i.getBoundingClientRect(),a.set(i,c));const f=e.entities.selectionBase.has(i);Oe(n,c)?f?e.entities.selectedSet.delete(i):e.entities.selectedSet.add(i):f?e.entities.selectedSet.add(i):e.entities.selectedSet.delete(i)})},Qe=(e,t)=>{const n=Math.min(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.x,t.x),i=Math.max(e.y,t.y),o=a-n,r=i-s;return new DOMRect(n,s,o,r)};function L(e,t,n){const s=Math.max(0,Math.min(t,e.length));return[...e.slice(0,s),...n,...e.slice(s)]}function me(e,t,n=1){const s=Math.max(0,Math.min(t,e.length-1)),a=Math.max(0,Math.min(n,e.length-s));return[...e.slice(0,s),...e.slice(s+a)]}function H(e,t){const n=[...new Set(t)].filter(a=>a>=0&&a<e.length).sort((a,i)=>i-a);let s=e;for(const a of n)s=me(s,a,1);return s}function Ee(e,t,n){if(t===n||t<0||n<0||t>=e.length||n>=e.length)return e;const s=[...e];return[s[t],s[n]]=[s[n],s[t]],s}const C={getInsertSide(e,t){return e?t==="vertical"?e.top&&!e.bottom?"before":e.bottom&&!e.top?"after":e.top?"before":null:e.left&&!e.right?"before":e.right&&!e.left?"after":e.left?"before":null:null},isAtZoneStart(e,t){return C.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return C.getInsertSide(e,t)==="after"&&!e?.center}};function Le(e,t){const{draggedItems:n,dropZone:s,hoveredDraggable:a}=e;if(!n.length)return null;const i=a?.placement.center===!0&&s!=null&&s.items!==a.items,o=i?s.items:a?.items??s?.items;if(!o)return null;const r=n[0].items,g=n.map(d=>d.index),c=o.length;let f,l;if(a&&!i){const d=a.items===r&&g.includes(a.index);if(d&&n.length===1){const m=C.isAtZoneStart(s?.placement,t);f=m?0:c,l=m?"prepend":"append"}else{if(d)return null;{const m=C.getInsertSide(a.placement,t),h=a.index;m==="before"?(f=Math.max(0,h),l="insert"):m==="after"?(f=Math.min(c,h+1),l="insert"):(f=c,l="append")}}}else{if(!s)return null;const d=C.isAtZoneStart(s.placement,t);f=d?0:c,l=d?"prepend":"append"}return{targetIndex:f,mode:l,targetArr:o}}function et(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:a,mode:i}=s;let{targetIndex:o}=s;const r=n.map(l=>l.index),g=n.map(l=>l.item),c=n[0].items;if(c===a){const l=r.filter(m=>m<o).length;o=Math.max(0,o-l);const d=L(H(c,r),o,g);return{sourceItems:d,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:o,mode:i,sameList:!0}}else{const l=H(c,r),d=L(a,o,g);return{sourceItems:l,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:o,mode:i,sameList:!1}}}function tt(e){const{draggedItems:t,hoveredDraggable:n}=e;if(!t.length||!n)return null;const s=t.map(f=>f.index),a=n.index,i=t.map(f=>f.item),o=n.item,r=t[0].items,g=n.items,c=r===g;if(c&&s.includes(a))return null;if(t.length===1){const f=s[0];if(c){const l=Ee(r,f,a);return{sourceItems:l,targetItems:l,sourceIndexes:s,targetIndex:a,sameList:!0}}else{const l=[...r],d=[...g];return l[f]=g[a],d[a]=r[f],{sourceItems:l,targetItems:d,sourceIndexes:s,targetIndex:a,sameList:!1}}}else{const f=Math.min(...s);if(c){const l=s.filter(y=>y<a).length,d=Math.max(0,a-l),m=s.filter(y=>y<f).length,h=Math.max(0,f-m);let b=H(r,s);b=L(b,d,i);const w=h>=d?h+i.length:h;return b=L(b,w,[o]),{sourceItems:b,targetItems:b,sourceIndexes:s,targetIndex:d,sameList:!0}}else{const l=s.filter(b=>b<f).length,d=Math.max(0,f-l);let m=H(r,s);m=L(m,d,[o]);let h=me(g,a);return h=L(h,a,i),{sourceItems:m,targetItems:h,sourceIndexes:s,targetIndex:a,sameList:!1}}}}function nt(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:a,targetIndex:i,mode:o}=s,r=n.map(c=>c.item);return{targetItems:L(a,i,r),copiedItems:r,targetIndex:i,mode:o}}function st(e){const{draggedItems:t}=e;if(!t.length)return null;const n=t.map(o=>o.index),s=t.map(o=>o.item),a=t[0].items;return{sourceItems:H(a,n),removedItems:s,sourceIndexes:n}}function Ce(e){return{insertAt:L,removeAt:me,removeIndexes:H,swapAt:Ee,getInsertSide:(t,n)=>C.getInsertSide(t,n),isAtZoneStart:(t,n)=>C.isAtZoneStart(t,n),isAtZoneEnd:(t,n)=>C.isAtZoneEnd(t,n),suggestSort:t=>et(e,t),suggestSwap:()=>tt(e),suggestCopy:t=>nt(e,t),suggestRemove:()=>st(e)}}const R=e=>e.keys().next().value,at=e=>e.target.closest(z.DRAGGABLE);function ot(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t),s=n?.payload;if(!s)return n?.data?[{index:-1,item:void 0,items:[],data:n.data()}]:[];const a=s();if(!Array.isArray(a)||a.length<2)return[];const[i,o]=a,r=Number(i),g=o,c=new Map;return c.set(r,{index:r,item:g[r],items:g,data:n?.data?.()}),e.entities.draggingMap.forEach((f,l)=>{const d=e.entities.draggableMap.get(l),m=d?.payload;if(!m)return;const h=m();if(!Array.isArray(h)||h.length<2)return;const[b,w]=h;if(w!==g)return;const y=Number(b);c.has(y)||c.set(y,{index:y,item:w[y],items:g,data:d?.data?.()})}),[...c.values()].sort((f,l)=>f.index-l.index)}const A=(e,t)=>{const n=ot(e);let s,a;if(t){const i=e.entities.droppableMap.get(t);if(i){const g=i.payload;s={items:g?g():[],placement:e.hovered.droppable.get(t),data:i.data?.()}}const o=R(e.hovered.draggable);if(o&&(o===t||t.contains(o))&&o){const g=e.entities.draggableMap.get(o),c=g?.payload,f=e.hovered.draggable.get(o),l={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(c){const d=c();if(Array.isArray(d)&&d.length>=2){const[m,h]=d,b=Number(m);a={element:o,placement:f??l,index:b,item:h[b],items:h,data:g?.data?.()}}}else g?.data&&(a={element:o,placement:f??l,index:-1,item:void 0,items:[],data:g.data()})}}return{draggedItems:n,dropZone:s,hoveredDraggable:a,provider:e,helpers:Ce({draggedItems:n,dropZone:s,hoveredDraggable:a})}},B=(e,t,n)=>{if(!t)return;const s=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!s||s.disabled||s.events?.[n]?.(A(e))},M=(e,t)=>{const n=A(e);e.entities.draggingMap.forEach(s=>{s.disabled||s.events?.[t]?.(n)})},it=(e,t,n)=>{if(t!==n){if(t&&!F(t,e)){const s=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(s)}if(n&&!F(n,e)){const s=A(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(s)}}},rt=(e,t,n)=>{if(t!==n){const s=A(e);if(t){const a=e.entities.draggableMap.get(t);a&&!a.disabled&&a.events?.onLeave?.(s)}if(n){const a=e.entities.draggableMap.get(n);a&&!a.disabled&&a.events?.onHover?.(s)}}},J=(e,t,n)=>{const s=at(t);!s||!e.entities.draggingMap.has(s)||e.entities.draggingMap.get(s)?.events?.[n]?.(A(e))},lt=(e,t)=>{const n=R(t.droppable);n&&!F(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},re=(e,t)=>{const n=R(t.droppable);n&&!F(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},ct=(e,t,n=5)=>{const s=n/2;return{left:e-s,top:t-s,width:n,height:n}},gt=e=>{const t=e.pointer.value?.current,n=t?.x??0,s=t?.y??0;return ct(n,s,5)},k=(e,t,n)=>{const s=e.left+e.width/2,a=e.top+e.height/2;if(n){const r=n.top??0,g=n.right??0,c=n.bottom??0,f=n.left??0,l=t.left+f,d=t.right-g,m=t.top+r,h=t.bottom-c;if(l<d&&m<h&&s>=l&&s<=d&&a>=m&&a<=h)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const i=t.left+t.width/2,o=t.top+t.height/2;return{top:a<=o,bottom:a>o,left:s<=i,right:s>i,center:!1}},ut=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),ye=(e,t)=>{const n=ut(t);return Math.hypot(e.x-n.x,e.y-n.y)};function ft(e,t){return e===t?!0:!e||!t?!1:e.top===t.top&&e.right===t.right&&e.bottom===t.bottom&&e.left===t.left&&e.center===t.center}function U(e,t){ft(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const dt=(e,t)=>e.find(n=>n!==t&&_(t,n)),le=(e,t,n)=>{const s=R(t.droppable),a=R(t.draggable);a&&t.draggable.delete(a),s&&t.droppable.delete(s);const i=gt(e),o=n.zones[0],r=n.elements[0];if(o&&r&&o===r&&e.entities.droppableMap.has(o)&&o){const l=o.getBoundingClientRect(),d=e.entities.draggableMap.get(o)?.placementMargins,m=k(i,l,d);if(m.center){t.droppable.set(o,m);const h=dt(n.elements,o);if(h){const b=h.getBoundingClientRect();t.draggable.set(h,k(i,b,void 0))}}else{t.draggable.set(r,m);const h=n.zones.find(b=>b!==o);if(h){const b=h.getBoundingClientRect();t.droppable.set(h,k(i,b))}}}else{if(o){const l=o.getBoundingClientRect();t.droppable.set(o,k(i,l))}if(r)if(o)if(_(o,r)){const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,k(i,l,d))}else{const l=e.pointer.value?.current??{x:0,y:0},d=o.getBoundingClientRect(),m=r.getBoundingClientRect(),h=ye(l,d);if(ye(l,m)<h){t.droppable.clear();const w=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,k(i,m,w))}}else{const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,k(i,l,d))}}const c=R(t.droppable),f=R(t.draggable);if(a&&a!==f){const l=e.entities.draggableMap.get(a);l&&U(l,void 0)}if(s&&s!==c){const l=e.entities.droppableMap.get(s);l&&U(l,void 0)}if(f){const l=e.entities.draggableMap.get(f);l&&U(l,t.draggable.get(f))}if(c){const l=e.entities.droppableMap.get(c);l&&U(l,t.droppable.get(c))}it(e,s,c),rt(e,a,f)},Q=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,ee=e=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},te=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),s=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),a=n*s,i=e.width*e.height,o=t.width*t.height;return i===0||o===0?0:(a/i*100+a/o*100)/2},mt=e=>e.overlay.ref?.value??null,pe=e=>{const t=e.overlay.position?.value??{x:0,y:0},{x:n,y:s}=t,a=e.overlay.size?.value;let i,o;if(a)i=a.width,o=a.height;else{const r=e.overlay.ref?.value?.getBoundingClientRect();i=r?.width??0,o=r?.height??0}return{x:n,y:s,width:i,height:o,top:s,left:n,right:n+i,bottom:s+o}},ce=e=>e.entities.allowedDraggableSet,Ie=e=>e.entities.allowedDroppableSet,ht=(e,t)=>!t.entities.draggingMap.has(e),bt=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>{if(_(n,e))return!0;const s=n.parentElement;return!!(s&&e!==n&&!t.entities.draggableMap.has(s)&&!t.entities.droppableMap.has(s)&&_(s,e)&&[...t.entities.draggableMap.keys()].filter(i=>i.parentElement===s).length===1)}),yt=(e,t)=>t.entities.draggableMap.has(e)?!de(e,t):t.entities.droppableMap.has(e)?!F(e,t):!0,V=(e,t)=>ht(e,t)&&bt(e,t)&&yt(e,t),ne=10;function O(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function pt(e){const t=e.pointer.value?.current??{x:0,y:0},n=document.elementFromPoint(t.x,t.y);if(!n)return null;const s=ce(e),a=Ie(e),i=[],o=[];let r=n;for(;r;)(s.has(r)||a.has(r))&&V(r,e)&&(s.has(r)&&i.push(r),a.has(r)&&o.push(r)),r=r.parentElement;return i.length===0&&o.length===0?null:{elements:i,zones:o}}const ge=e=>{if(!mt(e))return{elements:[],zones:[]};const n=e.pointer.value?.current??{x:0,y:0},s=pt(e);if(s){if(s.elements.length>0)return s;const c=s.zones[0];if(!c)return s;const f=pe(e);return{elements:[...ce(e)].filter(m=>c.contains(m)&&V(m,e)).map(m=>({el:m,box:ee(m)})).filter(({box:m})=>Q(m,f)&&te(m,f)>=ne).sort((m,h)=>O(m.box,n)-O(h.box,n)).map(({el:m})=>m),zones:s.zones}}const a=pe(e),i=[...ce(e)].filter(c=>V(c,e)),o=[...Ie(e)].filter(c=>V(c,e)),r=i.map(c=>({n:c,box:ee(c)})).filter(({box:c})=>Q(c,a)&&te(c,a)>=ne).sort((c,f)=>O(c.box,n)-O(f.box,n)).map(({n:c})=>c),g=o.map(c=>({n:c,box:ee(c)})).filter(({box:c})=>Q(c,a)&&te(c,a)>=ne).sort((c,f)=>O(c.box,n)-O(f.box,n)).map(({n:c})=>c);return{elements:r,zones:g}};function ue(e){const t=ge(e);le(e,e.hovered,t)}function St(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){ue(e);return}const s=Date.now();s-t.value>=n&&(t.value=s,ue(e))}async function ke(e){const t=e.hovered.droppable.keys().next().value;if(!t||F(t,e))return"accept";const n=e.entities.droppableMap.get(t),s=A(e,t);let a=s;if(n?.groupMatch==="some"&&(n.groups?.length??0)>0){const r=n.groups,g=s.draggedItems.filter(f=>{for(const[,l]of e.entities.draggingMap){const d=l.payload?.();if(!(!Array.isArray(d)||d.length<2)&&Number(d[0])===f.index&&d[1]===f.items)return X(l.groups??[],r)}return!0}),c=s.draggedItems.filter(f=>!g.includes(f));if(c.length>0){const f=l=>({...s,draggedItems:l,helpers:Ce({...s,draggedItems:l})});if(n.events?.onValidate){const l=n.events.onValidate({validItems:g,invalidItems:c,dropZone:s.dropZone,hoveredDraggable:s.hoveredDraggable}),d=l!=null&&typeof l.then=="function";let m;if(d){e.state.value="pending";try{m=await l}catch{const b=e.entities.initiatingDraggable;return B(e,b,"onSelfDragCancel"),M(e,"onDragCancel"),re(e,e.hovered),"cancel"}}else m=l;if(m===!1)return e.state.value="dragging","decline";const h=Array.isArray(m)?m:g;if(h.length===0)return"accept";a=f(h)}else{if(g.length===0)return"accept";a=f(g)}}}const i=n?.events?.onDrop?.(a);if(i!=null&&typeof i.then=="function"){e.state.value="pending";let r;try{r=await i}catch{const g=e.entities.initiatingDraggable;return B(e,g,"onSelfDragCancel"),M(e,"onDragCancel"),re(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return i===!1?"decline":"accept"}function Re(e){const t=e.entities.initiatingDraggable;B(e,t,"onSelfDragEnd"),M(e,"onDragEnd"),lt(e,e.hovered)}function Dt(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),s=[...e.entities.selectedSet];n?.events?.onSelected?.(s)}const vt=e=>{const t={current:null},n={value:0},s=async()=>{oe(),t.current?.cancel(),t.current=null;const r=e.state.value;if(r==="dragging"){const g=await ke(e);if(g==="accept"&&Re(e),g==="accept"||g==="cancel"){Z(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a);return}return}else r==="selecting"&&Dt(e);Z(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a)},a=r=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:r.clientX,y:r.clientY},Ve(e)){J(e,r,"onSelfDragStart"),M(e,"onDragStart");return}if(e.state.value==="dragging"){St(e,n);const g=e.entities.initiatingDraggable;B(e,g,"onSelfDragMove"),M(e,"onDragMove")}e.state.value==="selecting"&&xe(e)}};return{pointerDown:r=>{document.addEventListener("pointerup",s),document.addEventListener("pointermove",a);const g=r.target,c=g.closest(z.SELECT_AREA),f=g.closest(z.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(c)){ae(),e.pointer.value=ie(r),e.state.value="selecting",e.entities.selectingArea=c,e.entities.selectionBase=new Set(e.entities.selectedSet);return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(f)){const l=e.entities.draggableMap.get(f);if(!we(g,f,l?.dragHandle))return;ae(),e.entities.initiatingDraggable=f;const d=ve(r,f);e.pointer.value=ie(r,d.x,d.y),l?.activation?.distance||l?.activation?.delay?(e.state.value="activating",l?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ye(e,()=>{Y(e),J(e,r,"onSelfDragStart"),M(e,"onDragStart")}))):(Y(e),J(e,r,"onSelfDragStart"),M(e,"onDragStart"))}},pointerUp:s,pointerMove:a,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect(),e.lib.overlaySizeObserver.disconnect()}}},Mt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},wt=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),oe(),B(e,e.entities.initiatingDraggable,"onSelfDragCancel"),M(e,"onDragCancel"),re(e,e.hovered),Z(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await ke(e)&&Re(e),oe(),Z(e)))();return}const a=Mt[t.code];if(a&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const i=n.forMoveFaster.some(g=>n.pressedKeys.value.has(g)),o=e.keyboard.step*(i?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+a.dx*o,y:e.pointer.value.current.y+a.dy*o};const r=ge(e);le(e,e.hovered,r),B(e,e.entities.initiatingDraggable,"onSelfDragMove"),M(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const a=document.activeElement;if(!a)return;const i=a.closest(z.DRAGGABLE);if(!i||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(i))return;const o=e.entities.draggableMap.get(i);if(!we(a,i,o?.dragHandle,!0))return;t.preventDefault(),ae();const r=i.getBoundingClientRect(),g=r.left+r.width/2,c=r.top+r.height/2,f={clientX:g,clientY:c};e.entities.initiatingDraggable=i;const l=ve(f,i);e.pointer.value=ie(f,l.x,l.y),Y(e);const d=ge(e);le(e,e.hovered,d),B(e,i,"onSelfDragStart"),M(e,"onDragStart")}},At=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},xt=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},se={keyDown:wt,keyUp:At,clear:xt},Et=e=>()=>{if(!e.state.value)return;const t=e.scrollPosition.x,n=e.scrollPosition.y;if(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"){ue(e);return}if(e.state.value==="selecting"&&e.pointer.value){const s=window.scrollX-t,a=window.scrollY-n;e.pointer.value.start.x-=s,e.pointer.value.start.y-=a,xe(e)}},E=50,Lt=144,Se=1e3/Lt;function Ct(e){return e==null?{top:E,right:E,bottom:E,left:E}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??E,right:e.right??E,bottom:e.bottom??E,left:e.left??E}}const It={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Te(e,t,n,s=It,a){const{speed:i=10,disabled:o=!1}=t,r=Ct(t.threshold);let g=null,c=null,f=null,l=0,d=0;const m=y=>{a&&(a.value=y)},h=y=>{const I=e.value,x=n();if(!I||!x||o){m(!1);return}c||(c=y);const N=y-c;if(N<Se){g=requestAnimationFrame(h);return}const p=i*(N/Se);c=y;const{scrollTop:v,scrollLeft:G}=s.getScrollState(I);(!f||l!==v||d!==G)&&(f=s.getRect?s.getRect(I):I.getBoundingClientRect(),l=v,d=G);let P=!1,q=v,j=G;r.top>0&&x.y-f.top<r.top?(q=v-p,P=!0):r.bottom>0&&f.bottom-x.y<r.bottom&&(q=v+p,P=!0),r.left>0&&x.x-f.left<r.left?(j=G-p,P=!0):r.right>0&&f.right-x.x<r.right&&(j=G+p,P=!0),P&&s.setScroll(I,q,j),m(P),g=requestAnimationFrame(h)};return{run:()=>{c=null,g=requestAnimationFrame(h)},stop:()=>{g&&(cancelAnimationFrame(g),g=null),f=null,l=0,d=0,c=null,m(!1)}}}const kt={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,n){window.scrollTo(n,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Rt={get value(){return typeof document<"u"?document.documentElement:null}};function Tt(e,t){const n=u.shallowRef(!1),a=Te(Rt,t??{},()=>{if(e.state.value!=="dragging")return null;const r=e.overlay.position.value,g=e.overlay.size.value;return r?g?.width&&g?.height?{x:r.x+g.width/2,y:r.y+g.height/2}:r:null},kt,n),i=u.watch(()=>e.state.value,r=>{r==="dragging"?a.run():a.stop()}),o=()=>{i(),a.stop()};return u.onScopeDispose(o),{isScrolling:n,stop:o}}const Bt=e=>{const t=vt(e),n=se.keyDown(e),s=se.keyUp(e),a=se.clear(e),i=Et(e);let o=null;u.watch(e.autoScrollViewport,r=>{o?.(),o=null,(r===!0||r&&typeof r=="object")&&(o=Tt(e,r===!0?{}:r).stop)},{immediate:!0}),u.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",s),document.addEventListener("blur",a),document.addEventListener("scroll",i,!0)}),u.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",n),document.removeEventListener("keyup",s),document.removeEventListener("blur",a),document.removeEventListener("scroll",i,!0),o?.(),t.cleanup()})},$=()=>{const e=u.inject(fe);if(!e)throw Error("DnD provider not found");return e},he=()=>{const e=$();return{overlay:e.overlay,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},Pt=u.defineComponent({__name:"DefaultOverlay",setup(e){const{entities:t,state:n,overlay:s}=he();return(a,i)=>u.unref(n)==="dragging"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"dnd-kit-default-overlay",style:u.normalizeStyle({"--position-x":u.unref(s).position.value.x+"px","--position-y":u.unref(s).position.value.y+"px"})},[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(t).draggingMap,([o,r])=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[r.render?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(r.render),{key:0})):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(o.tagName),{key:1,innerHTML:r.initialOuterHTML,style:u.normalizeStyle({width:r.initialRect.width+"px",height:r.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),256))],4)):u.createCommentVNode("",!0)}}),Ot=u.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},overlayTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,n=u.useTemplateRef("overlayRef"),s=je(n,t);Bt(s);const a=u.computed(()=>s.overlay.render.value??Pt);return u.provide(fe,s),(i,o)=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[u.renderSlot(i.$slots,"default"),(u.openBlock(),u.createBlock(u.Teleport,{to:u.unref(s).overlay.to.value||"body"},[u.createElementVNode("div",u.mergeProps({ref_key:"overlayRef",ref:n,class:"dnd-kit-overlay-container"},t),[u.renderSlot(i.$slots,"overlay",{overlay:a.value},()=>[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(a.value)))])],16)],8,["to"]))],64))}});function zt(e,t,n){const s=$();let a,i,o;typeof t=="function"?(a={},i=t):(a=t??{},i=n);const r=u.computed({get(){const l=S(e);return l?s.entities.selectedSet.has(l):!1},set(l){const d=S(e);d&&s.entities.selectedSet[l?"add":"delete"](d)}}),g=u.computed(()=>{const l=S(e);return l?s.entities.draggingMap.has(l):!1}),c=u.computed(()=>{const l=S(e);return l?s.entities.allowedDraggableSet.has(l):!1}),f=u.computed(()=>{const l=S(e);if(l)return s.entities.draggableMap.get(l)?.hoveredPlacement});return u.onMounted(()=>{o=S(e),o&&(o.addEventListener("dragstart",D),o.addEventListener("drag",D),o.addEventListener("dragend",D),o.setAttribute(T.DRAGGABLE,""),s.lib.draggableObserver.observe(o),s.entities.draggableMap.set(o,{render:a.render,disabled:a.disabled??!1,groups:a.groups??[],modifier:a.modifier,events:a.events,payload:i,data:a.data,dragHandle:a.dragHandle,activation:a.activation,placementMargins:a.placementMargins,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{o&&(s.lib.draggableObserver.unobserve(o),s.entities.visibleDraggableSet.delete(o),s.entities.draggableMap.delete(o),s.entities.modifiersDraggableSet.delete(o))}),{selected:r,isDragging:g,isAllowed:c,isDragOver:f}}const _t=(e,t)=>{const n=$(),s=u.computed(()=>e.value===n.entities.selectingArea);let a=null;u.onMounted(()=>{a=S(e),a&&(a.setAttribute(T.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(a),n.entities.selectableAreaMap.set(a,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),u.onBeforeUnmount(()=>{a&&(n.lib.selectableAreaObserver.unobserve(a),n.entities.visibleSelectableAreaSet.delete(a),n.entities.modifiersSelectableAreaSet.delete(a),n.entities.selectableAreaMap.delete(a))});const i=u.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const o=n.pointer.value;return!o||n.state.value!=="selecting"||!a||!s.value?{}:Je(o.start,o.current,a)});return{isSelecting:s,style:i}};function Ft(e,t){const n=u.inject(fe);if(!n)throw Error("DnD provider not found");let s=null;return u.onMounted(()=>{s=S(e),s&&(s.setAttribute(T.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(s,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),u.onBeforeUnmount(()=>{s&&n.entities.constraintsAreaMap.delete(s)}),{}}function Ht(e,t,n){const s=$();let a=null,i,o;typeof t=="function"?(i={},o=t):(i=t??{},o=n);const r=u.computed(()=>{const c=S(e);return c?s.entities.allowedDroppableSet.has(c):!1}),g=u.computed(()=>{const c=S(e);if(c)return s.entities.droppableMap.get(c)?.hoveredPlacement});return u.onMounted(()=>{a=S(e),a&&(a.setAttribute(T.DROPPABLE,""),s.lib.droppableObserver.observe(a),s.entities.droppableMap.set(a,{disabled:i.disabled??!1,groups:i.groups??[],groupMatch:i.groupMatch??"every",events:i.events,payload:o,data:i.data,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{a&&(s.lib.droppableObserver.unobserve(a),s.entities.visibleDroppableSet.delete(a),s.entities.droppableMap.delete(a))}),{isAllowed:r,isDragOver:g}}const Gt=(e,t)=>{const n=he(),s=u.shallowRef(!1),i=Te(e,t??{},()=>{if(n.state.value!=="dragging")return null;const o=n.overlay.position.value,r=n.overlay.size.value;return o?r?.width&&r?.height?{x:o.x+r.width/2,y:o.y+r.height/2}:o:null},void 0,s);return u.watch(()=>n.state.value,o=>{o==="dragging"?i.run():i.stop()}),{isScrolling:s}};exports.DnDProvider=Ot;exports.makeAutoScroll=Gt;exports.makeConstraintArea=Ft;exports.makeDraggable=zt;exports.makeDroppable=Ht;exports.makeSelectionArea=_t;exports.useDnDProvider=he;
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dnd-kit-preview{transform-origin:0 0;will-change:transform}.dnd-kit-preview-container{position:fixed;top:0;left:0;pointer-events:none;cursor:grabbing;z-index:9999}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),P={SELECT_AREA:"data-dnd-kit-select-area",DRAGGABLE:"data-dnd-kit-draggable",DROPPABLE:"data-dnd-kit-droppable",CONSTRAINT_AREA:"data-dnd-kit-constraint-area"},z={SELECT_AREA:`[${P.SELECT_AREA}]`,DRAGGABLE:`[${P.DRAGGABLE}]`,CONSTRAINT_AREA:`[${P.CONSTRAINT_AREA}]`},fe="VueDnDKitProvider",he=(e,t,n,s)=>{const a=new Set;return t.forEach(o=>{const i=e.get(o),r=s?s(o):i?.disabled;if(!i||r)return;const g=i.modifier?.keys,c=i.modifier?.method;if(!g||!c||g.length===0){a.add(o);return}g[c](l=>n.value.has(l))&&a.add(o)}),a};let De="",Pe="",Oe="";const D=e=>e.value?e.value instanceof HTMLElement?e.value:e.value.$el:null,H=(e,t)=>e!==t&&e.contains(t),_e=(e,t)=>!(e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom),ae=()=>{const e=document.body;De=e.style.userSelect,e.style.userSelect="none",window.addEventListener("contextmenu",w),window.addEventListener("selectstart",w),window.addEventListener("touchstart",w),window.addEventListener("touchmove",w)},ie=()=>{const e=document.body;e.style.userSelect=De,e.style.touchAction=Pe,e.style.overscrollBehavior=Oe,window.removeEventListener("contextmenu",w),window.removeEventListener("selectstart",w),window.removeEventListener("touchstart",w),window.removeEventListener("touchmove",w)},w=e=>e.preventDefault(),de=(e,t)=>{if(t.entities.draggableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDraggableSet)if(t.entities.draggableMap.get(s)?.disabled&&H(s,e))return!0;return!1},G=(e,t)=>{if(t.entities.droppableMap.get(e)?.disabled)return!0;for(const s of t.entities.visibleDroppableSet)if(t.entities.droppableMap.get(s)?.disabled&&H(s,e))return!0;return!1},X=(e,t)=>{if(!e.length||!t.length)return!0;const n=new Set(t);return e.some(s=>n.has(s))};function Fe(e,t,n,s){const a=[];for(const i of t.keys()){const r=n.get(i);a.push({groups:r?.groups??[]})}const o=new Set;for(const i of e){const r=s.get(i),g=r?.groups??[],c=r?.groupMatch??"every";(!a.length||a[c](l=>X(l.groups,g)))&&o.add(i)}return o}function ze(e,t,n){const s=new Set;for(const i of t.keys()){const r=n.get(i);for(const g of r?.groups??[])s.add(g)}const a=[...s],o=new Set;for(const i of e){const g=n.get(i)?.groups??[];X(a,g)&&o.add(i)}return o}const W=e=>{const t=new IntersectionObserver(n=>{n.forEach(s=>{const a=s.target;e[s.isIntersecting?"add":"delete"](a)})});return{observe:n=>t.observe(n),unobserve:n=>t.unobserve(n),disconnect:()=>t.disconnect()}};function oe(e,t=0,n=0){return{start:{x:e.clientX,y:e.clientY},current:{x:e.clientX,y:e.clientY},offset:{x:t,y:n}}}function we(e,t){const n=t.getBoundingClientRect(),s=n.width>0?(e.clientX-n.left)/n.width:.5,a=n.height>0?(e.clientY-n.top)/n.height:.5;return{x:s,y:a}}function Me(e,t){return{...t,initialHTML:e.innerHTML,initialRect:e.getBoundingClientRect(),initialOuterHTML:e.outerHTML}}function He(e,t,n){e.forEach(s=>{const a=t.get(s);n.set(s,Me(s,a))}),e.clear()}function Ge(e,t,n){n.clear();const s=t.get(e);n.set(e,Me(e,s))}function Y(e){e.entities.initiatingDraggable&&(e.state.value="dragging",Ke(e.entities.initiatingDraggable,e.entities.selectedSet,e.entities.draggableMap,e.entities.draggingMap))}function Ke(e,t,n,s){t.has(e)?He(t,n,s):(t.clear(),Ge(e,n,s))}function ve(e,t,n,s){if(s||!n)return!0;const a=e.closest(n);return a?t.contains(a):!1}function Ne(e,t){if(!e||!t)return 1;const n=Math.abs(e.current.x-e.start.x),s=Math.abs(e.current.y-e.start.y);if(typeof t=="number"){const c=Math.sqrt(n*n+s*s);return Math.min(c/t,1)}const{x:a=0,y:o=0,condition:i="any"}=t;if(a===0&&o===0)return 1;const r=a>0?Math.min(n/a,1):1,g=o>0?Math.min(s/o,1):1;return i==="both"?Math.min(r,g):Math.max(r,g)}function Ae(e,t,n){if(!n)return!0;const s=n.distance!=null,a=n.delay!=null;return!s&&!a?!0:s&&!a?e>=1:!s&&a?t>=1:(n.condition??"both")==="both"?e>=1&&t>=1:e>=1||t>=1}function Ue(e){if(e.state.value!=="activating"||!e.entities.initiatingDraggable)return!1;const t=e.entities.draggableMap.get(e.entities.initiatingDraggable);return Ae(e.distanceProgress.value,e.delay.progress,t?.activation)?(Y(e),!0):!1}function Ve(e,t){let n=null;const s=()=>{if(e.state.value!=="activating"||!e.entities.initiatingDraggable){n=null;return}const a=e.entities.draggableMap.get(e.entities.initiatingDraggable),o=a?.activation?.delay;if(!o){n=null;return}e.delay.progress=Math.min((Date.now()-e.delay.startTime)/(o*1e3),1),Ae(e.distanceProgress.value,e.delay.progress,a?.activation)?(t(),n=null):n=requestAnimationFrame(s)};return n=requestAnimationFrame(s),{cancel:()=>{n!==null&&(cancelAnimationFrame(n),n=null)}}}function Ye(e,t){const n=e.closest(z.CONSTRAINT_AREA);return!n||!t.has(n)?null:{element:n,entity:t.get(n)}}function Ze(e,t,n,s){return n==="x"?{x:e,y:s.top}:n==="y"?{x:s.left,y:t}:{x:e,y:t}}function Xe(e,t,n,s,a){let o=e,i=t;return n!=="y"&&(o=Math.max(s.left,Math.min(s.right-a.width,e))),n!=="x"&&(i=Math.max(s.top,Math.min(s.bottom-a.height,t))),{x:o,y:i}}function $e(e,t,n,s){if(!e)return{x:0,y:0};const a=t?.width??0,o=t?.height??0;let i=e.current.x-a*e.offset.x,r=e.current.y-o*e.offset.y;if(!n)return{x:i,y:r};const g=Ye(n,s);if(!g)return{x:i,y:r};const{element:c,entity:f}=g,l=c.getBoundingClientRect(),d=n.getBoundingClientRect(),m=Ze(i,r,f.axis||"both",d);return f.restrictToArea?Xe(m.x,m.y,f.axis||"both",l,t??{width:0,height:0}):m}const N={forDrag:["Enter","Space"],forCancel:["Escape"],forDrop:["Enter","Space"],forMove:["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","KeyW","KeyA","KeyS","KeyD"],forMoveFaster:["ShiftLeft","ShiftRight"]};function qe(e,t){const n=u.shallowRef(),s=u.ref(),o={keys:{pressedKeys:u.ref(new Set),forDrag:[...N.forDrag],forCancel:[...N.forCancel],forDrop:[...N.forDrop],forMove:[...N.forMove],forMoveFaster:[...N.forMoveFaster]},step:8,moveFaster:4},i=u.reactive({draggableMap:new Map,droppableMap:new Map,selectableAreaMap:new Map,constraintsAreaMap:new Map,initiatingDraggable:void 0,selectingArea:void 0,draggingMap:new Map,selectedSet:new Set,selectionBase:new Set,allowedDroppableSet:u.computed(()=>n.value?Fe(i.visibleDroppableSet,i.draggingMap,i.draggableMap,i.droppableMap):new Set),allowedDraggableSet:u.computed(()=>n.value?ze(i.visibleDraggableSet,i.draggingMap,i.draggableMap):new Set),modifiersSelectableAreaSet:u.computed(()=>he(i.selectableAreaMap,i.visibleSelectableAreaSet,o.keys.pressedKeys)),modifiersDraggableSet:u.computed(()=>he(i.draggableMap,i.visibleDraggableSet,o.keys.pressedKeys,S=>de(S,{entities:i}))),visibleDraggableSet:new Set,visibleDroppableSet:new Set,visibleSelectableAreaSet:new Set}),r=u.reactive({draggable:new Map,droppable:new Map}),g={throttle:u.shallowRef(0)},c=u.reactive({x:window.scrollX,y:window.scrollY}),f=u.reactive({progress:0,startTime:0}),l=u.computed(()=>{if(!s.value||!i.initiatingDraggable)return 0;const S=i.draggableMap.get(i.initiatingDraggable)?.activation?.distance;return S?Ne(s.value,S):1}),d=W(i.visibleDraggableSet),m=W(i.visibleDroppableSet),p=W(i.visibleSelectableAreaSet),h=u.ref(),M=u.shallowRef(new DOMRect),b=u.computed(()=>{c.x,c.y;const y=M.value,S=i.initiatingDraggable,R=S?i.draggingMap.get(S):null,I=y.width&&y.height?y:R?.initialRect??null;return $e(s.value,I,S||null,i.constraintsAreaMap)}),E=u.computed({get:()=>t?.previewTo,set:y=>E.value=y}),k=u.computed(()=>t?.autoScrollViewport);return{state:n,pointer:s,entities:i,keyboard:o,scrollPosition:c,delay:f,distanceProgress:l,hovered:r,collision:g,preview:{size:M,position:b,render:h,ref:e,to:E},lib:{draggableObserver:d,droppableObserver:m,selectableAreaObserver:p,rectCache:new Map},autoScrollViewport:k}}const Z=e=>{const t=e.hovered.draggable.keys().next().value;if(t){const s=e.entities.draggableMap.get(t);s&&(s.hoveredPlacement=void 0)}const n=e.hovered.droppable.keys().next().value;if(n){const s=e.entities.droppableMap.get(n);s&&(s.hoveredPlacement=void 0)}e.lib.rectCache.clear(),e.pointer.value=void 0,e.state.value=void 0,e.entities.selectingArea=void 0,e.entities.selectionBase.clear(),e.entities.initiatingDraggable=void 0,e.delay.progress=0,e.delay.startTime=0,e.entities.draggingMap.clear(),e.hovered.draggable.clear(),e.hovered.droppable.clear()};function je(e){return e.parentElement?.closest(z.SELECT_AREA)??null}const We=(e,t,n)=>{if(!n)return{};const s=n.getBoundingClientRect(),a=Math.max(s.left,Math.min(e.x,t.x)),o=Math.max(s.top,Math.min(e.y,t.y)),i=Math.min(s.right,Math.max(e.x,t.x)),r=Math.min(s.bottom,Math.max(e.y,t.y)),g=Math.max(0,i-a),c=Math.max(0,r-o),f=a-s.left+n.scrollLeft,l=o-s.top+n.scrollTop;return{position:"absolute",left:`${f}px`,top:`${l}px`,width:`${g}px`,height:`${c}px`,pointerEvents:"none",border:"1px solid #3b82f6",backgroundColor:"#3b82f61a"}},Ee=e=>{if(!e.pointer.value||!e.entities.selectingArea)return;const{selectingArea:t}=e.entities,n=Je(e.pointer.value.start,e.pointer.value.current),s=e.entities.selectableAreaMap.get(t)?.groups??[],a=e.lib.rectCache;e.entities.visibleDraggableSet.forEach(o=>{if(o===t||!t.contains(o))return;const i=je(o);if(i&&i!==t){e.entities.selectedSet.delete(o);return}if(de(o,e)){e.entities.selectedSet.delete(o);return}const g=e.entities.draggableMap.get(o)?.groups??[];if(!X(s,g)){e.entities.selectedSet.delete(o);return}let c=a.get(o);c||(c=o.getBoundingClientRect(),a.set(o,c));const f=e.entities.selectionBase.has(o);_e(n,c)?f?e.entities.selectedSet.delete(o):e.entities.selectedSet.add(o):f?e.entities.selectedSet.add(o):e.entities.selectedSet.delete(o)})},Je=(e,t)=>{const n=Math.min(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.x,t.x),o=Math.max(e.y,t.y),i=a-n,r=o-s;return new DOMRect(n,s,i,r)};function L(e,t,n){const s=Math.max(0,Math.min(t,e.length));return[...e.slice(0,s),...n,...e.slice(s)]}function me(e,t,n=1){const s=Math.max(0,Math.min(t,e.length-1)),a=Math.max(0,Math.min(n,e.length-s));return[...e.slice(0,s),...e.slice(s+a)]}function K(e,t){const n=[...new Set(t)].filter(a=>a>=0&&a<e.length).sort((a,o)=>o-a);let s=e;for(const a of n)s=me(s,a,1);return s}function xe(e,t,n){if(t===n||t<0||n<0||t>=e.length||n>=e.length)return e;const s=[...e];return[s[t],s[n]]=[s[n],s[t]],s}const C={getInsertSide(e,t){return e?t==="vertical"?e.top&&!e.bottom?"before":e.bottom&&!e.top?"after":e.top?"before":null:e.left&&!e.right?"before":e.right&&!e.left?"after":e.left?"before":null:null},isAtZoneStart(e,t){return C.getInsertSide(e,t)==="before"&&!e?.center},isAtZoneEnd(e,t){return C.getInsertSide(e,t)==="after"&&!e?.center}};function Le(e,t){const{draggedItems:n,dropZone:s,hoveredDraggable:a}=e;if(!n.length)return null;const o=a?.placement.center===!0&&s!=null&&s.items!==a.items,i=o?s.items:a?.items??s?.items;if(!i)return null;const r=n[0].items,g=n.map(d=>d.index),c=i.length;let f,l;if(a&&!o){const d=a.items===r&&g.includes(a.index);if(d&&n.length===1){const m=C.isAtZoneStart(s?.placement,t);f=m?0:c,l=m?"prepend":"append"}else{if(d)return null;{const m=C.getInsertSide(a.placement,t),p=a.index;m==="before"?(f=Math.max(0,p),l="insert"):m==="after"?(f=Math.min(c,p+1),l="insert"):(f=c,l="append")}}}else{if(!s)return null;const d=C.isAtZoneStart(s.placement,t);f=d?0:c,l=d?"prepend":"append"}return{targetIndex:f,mode:l,targetArr:i}}function Qe(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:a,mode:o}=s;let{targetIndex:i}=s;const r=n.map(l=>l.index),g=n.map(l=>l.item),c=n[0].items;if(c===a){const l=r.filter(m=>m<i).length;i=Math.max(0,i-l);const d=L(K(c,r),i,g);return{sourceItems:d,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:i,mode:o,sameList:!0}}else{const l=K(c,r),d=L(a,i,g);return{sourceItems:l,targetItems:d,draggedItems:g,sourceIndexes:r,targetIndex:i,mode:o,sameList:!1}}}function et(e){const{draggedItems:t,hoveredDraggable:n}=e;if(!t.length||!n)return null;const s=t.map(f=>f.index),a=n.index,o=t.map(f=>f.item),i=n.item,r=t[0].items,g=n.items,c=r===g;if(c&&s.includes(a))return null;if(t.length===1){const f=s[0];if(c){const l=xe(r,f,a);return{sourceItems:l,targetItems:l,sourceIndexes:s,targetIndex:a,sameList:!0}}else{const l=[...r],d=[...g];return l[f]=g[a],d[a]=r[f],{sourceItems:l,targetItems:d,sourceIndexes:s,targetIndex:a,sameList:!1}}}else{const f=Math.min(...s);if(c){const l=s.filter(b=>b<a).length,d=Math.max(0,a-l),m=s.filter(b=>b<f).length,p=Math.max(0,f-m);let h=K(r,s);h=L(h,d,o);const M=p>=d?p+o.length:p;return h=L(h,M,[i]),{sourceItems:h,targetItems:h,sourceIndexes:s,targetIndex:d,sameList:!0}}else{const l=s.filter(h=>h<f).length,d=Math.max(0,f-l);let m=K(r,s);m=L(m,d,[i]);let p=me(g,a);return p=L(p,a,o),{sourceItems:m,targetItems:p,sourceIndexes:s,targetIndex:a,sameList:!1}}}}function tt(e,t="vertical"){const{draggedItems:n}=e;if(!n.length)return null;const s=Le(e,t);if(!s)return null;const{targetArr:a,targetIndex:o,mode:i}=s,r=n.map(c=>c.item);return{targetItems:L(a,o,r),copiedItems:r,targetIndex:o,mode:i}}function nt(e){const{draggedItems:t}=e;if(!t.length)return null;const n=t.map(i=>i.index),s=t.map(i=>i.item),a=t[0].items;return{sourceItems:K(a,n),removedItems:s,sourceIndexes:n}}function Ce(e){return{insertAt:L,removeAt:me,removeIndexes:K,swapAt:xe,getInsertSide:(t,n)=>C.getInsertSide(t,n),isAtZoneStart:(t,n)=>C.isAtZoneStart(t,n),isAtZoneEnd:(t,n)=>C.isAtZoneEnd(t,n),suggestSort:t=>Qe(e,t),suggestSwap:()=>et(e),suggestCopy:t=>tt(e,t),suggestRemove:()=>nt(e)}}const B=e=>e.keys().next().value,st=e=>e.target.closest(z.DRAGGABLE);function at(e){const t=e.entities.initiatingDraggable;if(!t)return[];const n=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t),s=n?.payload;if(!s)return n?.data?[{index:-1,item:void 0,items:[],data:n.data()}]:[];const a=s();if(!Array.isArray(a)||a.length<2)return[];const[o,i]=a,r=Number(o),g=i,c=new Map;return c.set(r,{index:r,item:g[r],items:g,data:n?.data?.()}),e.entities.draggingMap.forEach((f,l)=>{const d=e.entities.draggableMap.get(l),m=d?.payload;if(!m)return;const p=m();if(!Array.isArray(p)||p.length<2)return;const[h,M]=p;if(M!==g)return;const b=Number(h);c.has(b)||c.set(b,{index:b,item:M[b],items:g,data:d?.data?.()})}),[...c.values()].sort((f,l)=>f.index-l.index)}const A=(e,t)=>{const n=at(e);let s,a;if(t){const o=e.entities.droppableMap.get(t);if(o){const g=o.payload;s={items:g?g():[],placement:e.hovered.droppable.get(t),data:o.data?.()}}const i=B(e.hovered.draggable);if(i&&(i===t||t.contains(i))&&i){const g=e.entities.draggableMap.get(i),c=g?.payload,f=e.hovered.draggable.get(i),l={top:!1,right:!1,bottom:!1,left:!1,center:!1};if(c){const d=c();if(Array.isArray(d)&&d.length>=2){const[m,p]=d,h=Number(m);a={element:i,placement:f??l,index:h,item:p[h],items:p,data:g?.data?.()}}}else g?.data&&(a={element:i,placement:f??l,index:-1,item:void 0,items:[],data:g.data()})}}return{draggedItems:n,dropZone:s,hoveredDraggable:a,provider:e,helpers:Ce({draggedItems:n,dropZone:s,hoveredDraggable:a})}},O=(e,t,n)=>{if(!t)return;const s=e.entities.draggingMap.get(t)??e.entities.draggableMap.get(t);!s||s.disabled||s.events?.[n]?.(A(e))},v=(e,t)=>{const n=A(e);e.entities.draggingMap.forEach(s=>{s.disabled||s.events?.[t]?.(n)})},it=(e,t,n)=>{if(t!==n){if(t&&!G(t,e)){const s=A(e,t);e.entities.droppableMap.get(t)?.events?.onLeave?.(s)}if(n&&!G(n,e)){const s=A(e,n);e.entities.droppableMap.get(n)?.events?.onEnter?.(s)}}},ot=(e,t,n)=>{if(t!==n){const s=A(e);if(t){const a=e.entities.draggableMap.get(t);a&&!a.disabled&&a.events?.onLeave?.(s)}if(n){const a=e.entities.draggableMap.get(n);a&&!a.disabled&&a.events?.onHover?.(s)}}},J=(e,t,n)=>{const s=st(t);!s||!e.entities.draggingMap.has(s)||e.entities.draggingMap.get(s)?.events?.[n]?.(A(e))},rt=(e,t)=>{const n=B(t.droppable);n&&!G(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},re=(e,t)=>{const n=B(t.droppable);n&&!G(n,e)&&e.entities.droppableMap.get(n)?.events?.onLeave?.(A(e,n))},lt=(e,t,n=5)=>{const s=n/2;return{left:e-s,top:t-s,width:n,height:n}},ct=e=>{const t=e.pointer.value?.current,n=t?.x??0,s=t?.y??0;return lt(n,s,5)},T=(e,t,n)=>{const s=e.left+e.width/2,a=e.top+e.height/2;if(n){const r=n.top??0,g=n.right??0,c=n.bottom??0,f=n.left??0,l=t.left+f,d=t.right-g,m=t.top+r,p=t.bottom-c;if(l<d&&m<p&&s>=l&&s<=d&&a>=m&&a<=p)return{top:!1,right:!1,bottom:!1,left:!1,center:!0}}const o=t.left+t.width/2,i=t.top+t.height/2;return{top:a<=i,bottom:a>i,left:s<=o,right:s>o,center:!1}},gt=e=>({x:e.left+e.width/2,y:e.top+e.height/2}),be=(e,t)=>{const n=gt(t);return Math.hypot(e.x-n.x,e.y-n.y)};function ut(e,t){return e===t?!0:!e||!t?!1:e.top===t.top&&e.right===t.right&&e.bottom===t.bottom&&e.left===t.left&&e.center===t.center}function U(e,t){ut(e.hoveredPlacement,t)||(e.hoveredPlacement=t)}const ft=(e,t)=>e.find(n=>n!==t&&H(t,n)),le=(e,t,n)=>{const s=B(t.droppable),a=B(t.draggable);a&&t.draggable.delete(a),s&&t.droppable.delete(s);const o=ct(e),i=n.zones[0],r=n.elements[0];if(i&&r&&i===r&&e.entities.droppableMap.has(i)&&i){const l=i.getBoundingClientRect(),d=e.entities.draggableMap.get(i)?.placementMargins,m=T(o,l,d);if(m.center){t.droppable.set(i,m);const p=ft(n.elements,i);if(p){const h=p.getBoundingClientRect();t.draggable.set(p,T(o,h,void 0))}}else{t.draggable.set(r,m);const p=n.zones.find(h=>h!==i);if(p){const h=p.getBoundingClientRect();t.droppable.set(p,T(o,h))}}}else{if(i){const l=i.getBoundingClientRect();t.droppable.set(i,T(o,l))}if(r)if(i)if(H(i,r)){const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(o,l,d))}else{const l=e.pointer.value?.current??{x:0,y:0},d=i.getBoundingClientRect(),m=r.getBoundingClientRect(),p=be(l,d);if(be(l,m)<p){t.droppable.clear();const M=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(o,m,M))}}else{const l=r.getBoundingClientRect(),d=e.entities.draggableMap.get(r)?.placementMargins;t.draggable.set(r,T(o,l,d))}}const c=B(t.droppable),f=B(t.draggable);if(a&&a!==f){const l=e.entities.draggableMap.get(a);l&&U(l,void 0)}if(s&&s!==c){const l=e.entities.droppableMap.get(s);l&&U(l,void 0)}if(f){const l=e.entities.draggableMap.get(f);l&&U(l,t.draggable.get(f))}if(c){const l=e.entities.droppableMap.get(c);l&&U(l,t.droppable.get(c))}it(e,s,c),ot(e,a,f)},Q=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,ee=e=>{if(!e)return{x:0,y:0,width:0,height:0,top:0,left:0,right:0,bottom:0};const t=e.getBoundingClientRect();return{x:t.x,y:t.y,width:t.width,height:t.height,top:t.top,left:t.left,right:t.right,bottom:t.bottom}},te=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),s=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y)),a=n*s,o=e.width*e.height,i=t.width*t.height;return o===0||i===0?0:(a/o*100+a/i*100)/2},dt=e=>e.preview.ref?.value??null,ye=e=>{const t=e.preview.position?.value??{x:0,y:0},{x:n,y:s}=t,a=e.preview.size?.value;let o,i;if(a)o=a.width,i=a.height;else{const r=e.preview.ref?.value?.getBoundingClientRect();o=r?.width??0,i=r?.height??0}return{x:n,y:s,width:o,height:i,top:s,left:n,right:n+o,bottom:s+i}},ce=e=>e.entities.allowedDraggableSet,ke=e=>e.entities.allowedDroppableSet,mt=(e,t)=>!t.entities.draggingMap.has(e),pt=(e,t)=>![...t.entities.draggingMap.keys()].some(n=>{if(H(n,e))return!0;const s=n.parentElement;return!!(s&&e!==n&&!t.entities.draggableMap.has(s)&&!t.entities.droppableMap.has(s)&&H(s,e)&&[...t.entities.draggableMap.keys()].filter(o=>o.parentElement===s).length===1)}),ht=(e,t)=>t.entities.draggableMap.has(e)?!de(e,t):t.entities.droppableMap.has(e)?!G(e,t):!0,V=(e,t)=>mt(e,t)&&pt(e,t)&&ht(e,t),ne=10;function F(e,t){return Math.hypot(t.x-(e.x+e.width/2),t.y-(e.y+e.height/2))}function bt(e){const t=e.pointer.value?.current??{x:0,y:0},n=document.elementFromPoint(t.x,t.y);if(!n)return null;const s=ce(e),a=ke(e),o=[],i=[];let r=n;for(;r;)(s.has(r)||a.has(r))&&V(r,e)&&(s.has(r)&&o.push(r),a.has(r)&&i.push(r)),r=r.parentElement;return o.length===0&&i.length===0?null:{elements:o,zones:i}}const ge=e=>{if(!dt(e))return{elements:[],zones:[]};const n=e.pointer.value?.current??{x:0,y:0},s=bt(e);if(s){if(s.elements.length>0)return s;const c=s.zones[0];if(!c)return s;const f=ye(e);return{elements:[...ce(e)].filter(m=>c.contains(m)&&V(m,e)).map(m=>({el:m,box:ee(m)})).filter(({box:m})=>Q(m,f)&&te(m,f)>=ne).sort((m,p)=>F(m.box,n)-F(p.box,n)).map(({el:m})=>m),zones:s.zones}}const a=ye(e),o=[...ce(e)].filter(c=>V(c,e)),i=[...ke(e)].filter(c=>V(c,e)),r=o.map(c=>({n:c,box:ee(c)})).filter(({box:c})=>Q(c,a)&&te(c,a)>=ne).sort((c,f)=>F(c.box,n)-F(f.box,n)).map(({n:c})=>c),g=i.map(c=>({n:c,box:ee(c)})).filter(({box:c})=>Q(c,a)&&te(c,a)>=ne).sort((c,f)=>F(c.box,n)-F(f.box,n)).map(({n:c})=>c);return{elements:r,zones:g}};function ue(e){const t=ge(e);le(e,e.hovered,t)}function yt(e,t){const n=e.collision?.throttle?.value??0;if(n<=0){ue(e);return}const s=Date.now();s-t.value>=n&&(t.value=s,ue(e))}async function Re(e){const t=e.hovered.droppable.keys().next().value;if(!t||G(t,e))return"accept";const n=e.entities.droppableMap.get(t),s=A(e,t);let a=s;if(n?.groupMatch==="some"&&(n.groups?.length??0)>0){const r=n.groups,g=s.draggedItems.filter(f=>{for(const[,l]of e.entities.draggingMap){const d=l.payload?.();if(!(!Array.isArray(d)||d.length<2)&&Number(d[0])===f.index&&d[1]===f.items)return X(l.groups??[],r)}return!0}),c=s.draggedItems.filter(f=>!g.includes(f));if(c.length>0){const f=l=>({...s,draggedItems:l,helpers:Ce({...s,draggedItems:l})});if(n.events?.onValidate){const l=n.events.onValidate({validItems:g,invalidItems:c,dropZone:s.dropZone,hoveredDraggable:s.hoveredDraggable}),d=l!=null&&typeof l.then=="function";let m;if(d){e.state.value="pending";try{m=await l}catch{const h=e.entities.initiatingDraggable;return O(e,h,"onSelfDragCancel"),v(e,"onDragCancel"),re(e,e.hovered),"cancel"}}else m=l;if(m===!1)return e.state.value="dragging","decline";const p=Array.isArray(m)?m:g;if(p.length===0)return"accept";a=f(p)}else{if(g.length===0)return"accept";a=f(g)}}}const o=n?.events?.onDrop?.(a);if(o!=null&&typeof o.then=="function"){e.state.value="pending";let r;try{r=await o}catch{const g=e.entities.initiatingDraggable;return O(e,g,"onSelfDragCancel"),v(e,"onDragCancel"),re(e,e.hovered),"cancel"}return r===!1?(e.state.value="dragging","decline"):"accept"}return o===!1?"decline":"accept"}function Ie(e){const t=e.entities.initiatingDraggable;O(e,t,"onSelfDragEnd"),v(e,"onDragEnd"),rt(e,e.hovered)}function St(e){const t=e.entities.selectingArea;if(!t)return;const n=e.entities.selectableAreaMap.get(t),s=[...e.entities.selectedSet];n?.events?.onSelected?.(s)}const Dt=e=>{const t={current:null},n={value:0},s=async()=>{ie(),t.current?.cancel(),t.current=null;const r=e.state.value;if(r==="dragging"){const g=await Re(e);if(g==="accept"&&Ie(e),g==="accept"||g==="cancel"){Z(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a);return}return}else r==="selecting"&&St(e);Z(e),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a)},a=r=>{if(e.pointer.value&&e.state.value!=="pending"){if(e.pointer.value.current={x:r.clientX,y:r.clientY},Ue(e)){J(e,r,"onSelfDragStart"),v(e,"onDragStart");return}if(e.state.value==="dragging"){yt(e,n);const g=e.entities.initiatingDraggable;O(e,g,"onSelfDragMove"),v(e,"onDragMove")}e.state.value==="selecting"&&Ee(e)}};return{pointerDown:r=>{document.addEventListener("pointerup",s),document.addEventListener("pointermove",a);const g=r.target,c=g.closest(z.SELECT_AREA),f=g.closest(z.DRAGGABLE);if(e.entities.modifiersSelectableAreaSet.size>0&&e.entities.modifiersSelectableAreaSet.has(c)){ae(),e.pointer.value=oe(r),e.state.value="selecting",e.entities.selectingArea=c,e.entities.selectionBase=new Set(e.entities.selectedSet);return}if(e.entities.modifiersDraggableSet.size>0&&e.entities.modifiersDraggableSet.has(f)){const l=e.entities.draggableMap.get(f);if(!ve(g,f,l?.dragHandle))return;ae(),e.entities.initiatingDraggable=f;const d=we(r,f);e.pointer.value=oe(r,d.x,d.y),l?.activation?.distance||l?.activation?.delay?(e.state.value="activating",l?.activation?.delay&&(e.delay.startTime=Date.now(),t.current=Ve(e,()=>{Y(e),J(e,r,"onSelfDragStart"),v(e,"onDragStart")}))):(Y(e),J(e,r,"onSelfDragStart"),v(e,"onDragStart"))}},pointerUp:s,pointerMove:a,cleanup:()=>{t.current?.cancel(),document.removeEventListener("pointerup",s),document.removeEventListener("pointermove",a),e.lib.draggableObserver.disconnect(),e.lib.droppableObserver.disconnect(),e.lib.selectableAreaObserver.disconnect()}}},wt={ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1},ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},KeyW:{dx:0,dy:-1},KeyA:{dx:-1,dy:0},KeyS:{dx:0,dy:1},KeyD:{dx:1,dy:0}},Mt=e=>t=>{const{keys:n}=e.keyboard;if(n.pressedKeys.value.add(t.code),e.state.value==="dragging"){if(n.forCancel.includes(t.code)){t.preventDefault(),ie(),O(e,e.entities.initiatingDraggable,"onSelfDragCancel"),v(e,"onDragCancel"),re(e,e.hovered),Z(e);return}if(n.forDrop.includes(t.code)){t.preventDefault(),(async()=>(await Re(e)&&Ie(e),ie(),Z(e)))();return}const a=wt[t.code];if(a&&n.forMove.includes(t.code)&&e.pointer.value){t.preventDefault();const o=n.forMoveFaster.some(g=>n.pressedKeys.value.has(g)),i=e.keyboard.step*(o?e.keyboard.moveFaster:1);e.pointer.value.current={x:e.pointer.value.current.x+a.dx*i,y:e.pointer.value.current.y+a.dy*i};const r=ge(e);le(e,e.hovered,r),O(e,e.entities.initiatingDraggable,"onSelfDragMove"),v(e,"onDragMove");return}return}if(n.forDrag.includes(t.code)){const a=document.activeElement;if(!a)return;const o=a.closest(z.DRAGGABLE);if(!o||e.entities.modifiersDraggableSet.size===0||!e.entities.modifiersDraggableSet.has(o))return;const i=e.entities.draggableMap.get(o);if(!ve(a,o,i?.dragHandle,!0))return;t.preventDefault(),ae();const r=o.getBoundingClientRect(),g=r.left+r.width/2,c=r.top+r.height/2,f={clientX:g,clientY:c};e.entities.initiatingDraggable=o;const l=we(f,o);e.pointer.value=oe(f,l.x,l.y),Y(e);const d=ge(e);le(e,e.hovered,d),O(e,o,"onSelfDragStart"),v(e,"onDragStart")}},vt=e=>t=>{e.keyboard.keys.pressedKeys.value.delete(t.code)},At=e=>()=>{e.keyboard.keys.pressedKeys.value.clear()},se={keyDown:Mt,keyUp:vt,clear:At},Et=e=>()=>{if(!e.state.value)return;const t=e.scrollPosition.x,n=e.scrollPosition.y;if(e.scrollPosition.x=window.scrollX,e.scrollPosition.y=window.scrollY,e.lib.rectCache.clear(),e.state.value==="dragging"){ue(e);return}if(e.state.value==="selecting"&&e.pointer.value){const s=window.scrollX-t,a=window.scrollY-n;e.pointer.value.start.x-=s,e.pointer.value.start.y-=a,Ee(e)}},x=50,xt=144,Se=1e3/xt;function Lt(e){return e==null?{top:x,right:x,bottom:x,left:x}:typeof e=="number"?{top:e,right:e,bottom:e,left:e}:{top:e.top??x,right:e.right??x,bottom:e.bottom??x,left:e.left??x}}const Ct={getScrollState(e){return{scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}},setScroll(e,t,n){e.scrollTop=t,e.scrollLeft=n}};function Te(e,t,n,s=Ct,a){const{speed:o=10,disabled:i=!1}=t,r=Lt(t.threshold);let g=null,c=null,f=null,l=0,d=0;const m=b=>{a&&(a.value=b)},p=b=>{const E=e.value,k=n();if(!E||!k||i){m(!1);return}c||(c=b);const y=b-c;if(y<Se){g=requestAnimationFrame(p);return}const S=o*(y/Se);c=b;const{scrollTop:R,scrollLeft:I}=s.getScrollState(E);(!f||l!==R||d!==I)&&(f=s.getRect?s.getRect(E):E.getBoundingClientRect(),l=R,d=I);let _=!1,q=R,j=I;r.top>0&&k.y-f.top<r.top?(q=R-S,_=!0):r.bottom>0&&f.bottom-k.y<r.bottom&&(q=R+S,_=!0),r.left>0&&k.x-f.left<r.left?(j=I-S,_=!0):r.right>0&&f.right-k.x<r.right&&(j=I+S,_=!0),_&&s.setScroll(E,q,j),m(_),g=requestAnimationFrame(p)};return{run:()=>{c=null,g=requestAnimationFrame(p)},stop:()=>{g&&(cancelAnimationFrame(g),g=null),f=null,l=0,d=0,c=null,m(!1)}}}const kt={getScrollState(){return{scrollTop:window.scrollY??document.documentElement.scrollTop,scrollLeft:window.scrollX??document.documentElement.scrollLeft}},setScroll(e,t,n){window.scrollTo(n,t)},getRect(){return new DOMRect(0,0,window.innerWidth,window.innerHeight)}},Rt={get value(){return typeof document<"u"?document.documentElement:null}};function It(e,t){const n=u.shallowRef(!1),a=Te(Rt,t??{},()=>{if(e.state.value!=="dragging")return null;const r=e.preview.position.value,g=e.preview.size.value;return r?g?.width&&g?.height?{x:r.x+g.width/2,y:r.y+g.height/2}:r:null},kt,n),o=u.watch(()=>e.state.value,r=>{r==="dragging"?a.run():a.stop()}),i=()=>{o(),a.stop()};return u.onScopeDispose(i),{isScrolling:n,stop:i}}const Tt=e=>{const t=Dt(e),n=se.keyDown(e),s=se.keyUp(e),a=se.clear(e),o=Et(e);let i=null;u.watch(e.autoScrollViewport,r=>{i?.(),i=null,(r===!0||r&&typeof r=="object")&&(i=It(e,r===!0?{}:r).stop)},{immediate:!0}),u.onMounted(()=>{document.addEventListener("pointerdown",t.pointerDown),document.addEventListener("keydown",n),document.addEventListener("keyup",s),document.addEventListener("blur",a),document.addEventListener("scroll",o,!0)}),u.onBeforeUnmount(()=>{document.removeEventListener("pointerdown",t.pointerDown),document.removeEventListener("pointerup",t.pointerUp),document.removeEventListener("pointermove",t.pointerMove),document.removeEventListener("keydown",n),document.removeEventListener("keyup",s),document.removeEventListener("blur",a),document.removeEventListener("scroll",o,!0),i?.(),t.cleanup()})},$=()=>{const e=u.inject(fe);if(!e)throw Error("DnD provider not found");return e},pe=()=>{const e=$();return{preview:e.preview,delay:e.delay,distanceProgress:e.distanceProgress,entities:e.entities,pointer:e.pointer,state:e.state,scrollPosition:e.scrollPosition,keyboard:e.keyboard,hovered:e.hovered,collision:e.collision,autoScrollViewport:e.autoScrollViewport}},Be=u.defineComponent({__name:"DragPreview",setup(e){const{state:t,entities:n,preview:s}=pe(),a=u.useTemplateRef("contentRef");return u.watch(()=>a.value,()=>{const o=a.value?.getBoundingClientRect();o&&(s.size.value=o)}),(o,i)=>u.unref(t)==="dragging"?(u.openBlock(),u.createElementBlock("div",{key:0,class:"dnd-kit-preview",ref_key:"contentRef",ref:a,style:u.normalizeStyle({transform:`translate3d(${u.unref(s).position.value.x}px, ${u.unref(s).position.value.y}px, 0)`})},[u.renderSlot(o.$slots,"default",{draggingMap:u.unref(n).draggingMap},()=>[(u.openBlock(!0),u.createElementBlock(u.Fragment,null,u.renderList(u.unref(n).draggingMap,([r,g])=>(u.openBlock(),u.createElementBlock(u.Fragment,{key:r},[g.render?(u.openBlock(),u.createBlock(u.resolveDynamicComponent(g.render),{key:0})):(u.openBlock(),u.createBlock(u.resolveDynamicComponent(r.tagName),{key:1,innerHTML:g.initialOuterHTML,style:u.normalizeStyle({width:g.initialRect.width+"px",height:g.initialRect.height+"px"})},null,8,["innerHTML","style"]))],64))),128))])],4)):u.createCommentVNode("",!0)}}),Bt=u.defineComponent({__name:"DnDProvider",props:{autoScrollViewport:{type:[Object,Boolean,null]},previewTo:{type:[String,Boolean,null]},style:{},class:{}},setup(e){const t=e,n=u.useTemplateRef("previewRef"),s=qe(n,t);Tt(s);const a=u.computed(()=>s.preview.render.value??Be);return u.provide(fe,s),(o,i)=>(u.openBlock(),u.createElementBlock(u.Fragment,null,[u.renderSlot(o.$slots,"default"),(u.openBlock(),u.createBlock(u.Teleport,{to:u.unref(s).preview.to.value||"body"},[u.createElementVNode("div",u.mergeProps({ref_key:"previewRef",ref:n,class:"dnd-kit-preview-container"},t),[u.renderSlot(o.$slots,"preview",{preview:a.value},()=>[(u.openBlock(),u.createBlock(u.resolveDynamicComponent(a.value)))])],16)],8,["to"]))],64))}});function Pt(e,t,n){const s=$();let a,o,i;typeof t=="function"?(a={},o=t):(a=t??{},o=n);const r=u.computed({get(){const l=D(e);return l?s.entities.selectedSet.has(l):!1},set(l){const d=D(e);d&&s.entities.selectedSet[l?"add":"delete"](d)}}),g=u.computed(()=>{const l=D(e);return l?s.entities.draggingMap.has(l):!1}),c=u.computed(()=>{const l=D(e);return l?s.entities.allowedDraggableSet.has(l):!1}),f=u.computed(()=>{const l=D(e);if(l)return s.entities.draggableMap.get(l)?.hoveredPlacement});return u.onMounted(()=>{i=D(e),i&&(i.addEventListener("dragstart",w),i.addEventListener("drag",w),i.addEventListener("dragend",w),i.setAttribute(P.DRAGGABLE,""),s.lib.draggableObserver.observe(i),s.entities.draggableMap.set(i,{render:a.render,disabled:a.disabled??!1,groups:a.groups??[],modifier:a.modifier,events:a.events,payload:o,data:a.data,dragHandle:a.dragHandle,activation:a.activation,placementMargins:a.placementMargins,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{i&&(s.lib.draggableObserver.unobserve(i),s.entities.visibleDraggableSet.delete(i),s.entities.draggableMap.delete(i),s.entities.modifiersDraggableSet.delete(i))}),{selected:r,isDragging:g,isAllowed:c,isDragOver:f}}const Ot=(e,t)=>{const n=$(),s=u.computed(()=>e.value===n.entities.selectingArea);let a=null;u.onMounted(()=>{a=D(e),a&&(a.setAttribute(P.SELECT_AREA,""),n.lib.selectableAreaObserver.observe(a),n.entities.selectableAreaMap.set(a,{modifier:t?.modifier??{keys:["ControlLeft"],method:"every"},events:t?.events,disabled:t?.disabled??!1,groups:t?.groups??[]}))}),u.onBeforeUnmount(()=>{a&&(n.lib.selectableAreaObserver.unobserve(a),n.entities.visibleSelectableAreaSet.delete(a),n.entities.modifiersSelectableAreaSet.delete(a),n.entities.selectableAreaMap.delete(a))});const o=u.computed(()=>{n.scrollPosition.x,n.scrollPosition.y;const i=n.pointer.value;return!i||n.state.value!=="selecting"||!a||!s.value?{}:We(i.start,i.current,a)});return{isSelecting:s,style:o}};function _t(e,t){const n=u.inject(fe);if(!n)throw Error("DnD provider not found");let s=null;return u.onMounted(()=>{s=D(e),s&&(s.setAttribute(P.CONSTRAINT_AREA,""),n.entities.constraintsAreaMap.set(s,{axis:t?.axis||"both",restrictToArea:t?.restrictToArea||!1}))}),u.onBeforeUnmount(()=>{s&&n.entities.constraintsAreaMap.delete(s)}),{}}function Ft(e,t,n){const s=$();let a=null,o,i;typeof t=="function"?(o={},i=t):(o=t??{},i=n);const r=u.computed(()=>{const c=D(e);return c?s.entities.allowedDroppableSet.has(c):!1}),g=u.computed(()=>{const c=D(e);if(c)return s.entities.droppableMap.get(c)?.hoveredPlacement});return u.onMounted(()=>{a=D(e),a&&(a.setAttribute(P.DROPPABLE,""),s.lib.droppableObserver.observe(a),s.entities.droppableMap.set(a,{disabled:o.disabled??!1,groups:o.groups??[],groupMatch:o.groupMatch??"every",events:o.events,payload:i,data:o.data,hoveredPlacement:void 0}))}),u.onBeforeUnmount(()=>{a&&(s.lib.droppableObserver.unobserve(a),s.entities.visibleDroppableSet.delete(a),s.entities.droppableMap.delete(a))}),{isAllowed:r,isDragOver:g}}const zt=(e,t)=>{const n=pe(),s=u.shallowRef(!1),o=Te(e,t??{},()=>{if(n.state.value!=="dragging")return null;const i=n.preview.position.value,r=n.preview.size.value;return i?r?.width&&r?.height?{x:i.x+r.width/2,y:i.y+r.height/2}:i:null},void 0,s);return u.watch(()=>n.state.value,i=>{i==="dragging"?o.run():o.stop()}),{isScrolling:s}};exports.DnDProvider=Bt;exports.DragPreview=Be;exports.makeAutoScroll=zt;exports.makeConstraintArea=_t;exports.makeDraggable=Pt;exports.makeDroppable=Ft;exports.makeSelectionArea=Ot;exports.useDnDProvider=pe;
|