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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,65 +1,65 @@
1
- import { effectScope as ie, ref as p, computed as w, onMounted as F, onBeforeUnmount as U, defineComponent as oe, createElementBlock as X, createCommentVNode as se, unref as b, openBlock as R, normalizeStyle as ee, Fragment as ae, renderList as ue, createBlock as ce, resolveDynamicComponent as ve, markRaw as de } from "vue";
2
- let te = !1, Y;
3
- const M = () => (te || (Y = ie(!0).run(() => ({
1
+ import { effectScope as de, ref as E, computed as w, onMounted as A, onBeforeUnmount as U, defineComponent as ae, createElementBlock as $, createCommentVNode as ge, unref as re, openBlock as R, normalizeStyle as oe, Fragment as fe, renderList as he, createBlock as me, resolveDynamicComponent as pe, watch as ue, nextTick as ye, getCurrentScope as Ee, onScopeDispose as we, shallowRef as W, toValue as N, getCurrentInstance as Pe, markRaw as xe } from "vue";
2
+ let le = !1, X;
3
+ const C = () => (le || (X = de(!0).run(() => ({
4
4
  /** Whether any drag operation is currently active */
5
5
  isDragging: w(
6
- () => Y.draggingElements.value.length > 0
6
+ () => X.draggingElements.value.length > 0
7
7
  ),
8
8
  /** Active container where dragging occurs */
9
9
  activeContainer: {
10
10
  /** Component instance of active container */
11
- component: p(null),
11
+ component: E(null),
12
12
  /** DOM reference of active container */
13
- ref: p(null)
13
+ ref: E(null)
14
14
  },
15
15
  /** All registered draggable elements */
16
- elements: p([]),
16
+ elements: E([]),
17
17
  /** Elements currently being dragged */
18
- draggingElements: p([]),
18
+ draggingElements: E([]),
19
19
  /** Elements currently selected (for multi-drag) */
20
- selectedElements: p([]),
20
+ selectedElements: E([]),
21
21
  /** All registered drop zones */
22
- zones: p([]),
22
+ zones: E([]),
23
23
  /** Current hover states */
24
24
  hovered: {
25
25
  /** Currently hovered drop zone */
26
- zone: p(null),
26
+ zone: E(null),
27
27
  /** Currently hovered draggable element */
28
- element: p(null)
28
+ element: E(null)
29
29
  },
30
30
  /** Pointer position tracking */
31
31
  pointerPosition: {
32
32
  /** Current pointer coordinates */
33
- current: p(null),
33
+ current: E(null),
34
34
  /** Initial coordinates when drag started */
35
- start: p(null),
35
+ start: E(null),
36
36
  /** Offset from start position */
37
37
  offset: {
38
38
  /** Offset as percentage of container */
39
- percent: p(null),
39
+ percent: E(null),
40
40
  /** Offset in pixels */
41
- pixel: p(null)
41
+ pixel: E(null)
42
42
  }
43
43
  }
44
- })), te = !0), Y), ge = () => {
45
- const t = p(null), { draggingElements: e, pointerPosition: a, isDragging: u, activeContainer: c } = M();
46
- return F(() => {
44
+ })), le = !0), X), De = () => {
45
+ const t = E(null), { draggingElements: e, pointerPosition: l, isDragging: u, activeContainer: c } = C();
46
+ return A(() => {
47
47
  c.ref = t;
48
48
  }), U(() => {
49
49
  c.ref.value = null;
50
50
  }), {
51
51
  elementRef: t,
52
52
  draggingElements: e,
53
- pointerPosition: a,
53
+ pointerPosition: l,
54
54
  isDragging: u
55
55
  };
56
- }, he = ["innerHTML"], fe = /* @__PURE__ */ oe({
56
+ }, Ie = ["innerHTML"], Me = /* @__PURE__ */ ae({
57
57
  __name: "DefaultOverlay",
58
58
  setup(t) {
59
- const { elementRef: e, pointerPosition: a, isDragging: u, draggingElements: c } = ge(), n = w(() => {
60
- var i, h, f, y;
59
+ const { elementRef: e, pointerPosition: l, isDragging: u, draggingElements: c } = De(), r = w(() => {
60
+ var s, d, h, p;
61
61
  return {
62
- transform: `translate3d(${(((i = a.current.value) == null ? void 0 : i.x) ?? 0) - (((h = a.offset.pixel.value) == null ? void 0 : h.x) ?? 0)}px, ${(((f = a.current.value) == null ? void 0 : f.y) ?? 0) - (((y = a.offset.pixel.value) == null ? void 0 : y.y) ?? 0)}px, 0)`,
62
+ transform: `translate3d(${(((s = l.current.value) == null ? void 0 : s.x) ?? 0) - (((d = l.offset.pixel.value) == null ? void 0 : d.x) ?? 0)}px, ${(((h = l.current.value) == null ? void 0 : h.y) ?? 0) - (((p = l.offset.pixel.value) == null ? void 0 : p.y) ?? 0)}px, 0)`,
63
63
  zIndex: 1e3,
64
64
  position: "fixed",
65
65
  top: 0,
@@ -67,97 +67,200 @@ const M = () => (te || (Y = ie(!0).run(() => ({
67
67
  transition: "0.3s cubic-bezier(0.165, 0.84, 0.44, 1)"
68
68
  };
69
69
  });
70
- return (i, h) => b(u) ? (R(), X("div", {
70
+ return (s, d) => re(u) ? (R(), $("div", {
71
71
  key: 0,
72
72
  ref_key: "elementRef",
73
73
  ref: e,
74
- style: ee(n.value)
74
+ style: oe(r.value)
75
75
  }, [
76
- (R(!0), X(ae, null, ue(b(c), (f, y) => {
77
- var l, E;
78
- return R(), X("div", {
79
- key: y,
80
- innerHTML: f.initialHTML,
81
- style: ee({
82
- width: `${(l = f.initialRect) == null ? void 0 : l.width}px`,
83
- height: `${(E = f.initialRect) == null ? void 0 : E.height}px`
76
+ (R(!0), $(fe, null, he(re(c), (h, p) => {
77
+ var o, g;
78
+ return R(), $("div", {
79
+ key: p,
80
+ innerHTML: h.initialHTML,
81
+ style: oe({
82
+ width: `${(o = h.initialRect) == null ? void 0 : o.width}px`,
83
+ height: `${(g = h.initialRect) == null ? void 0 : g.height}px`
84
84
  })
85
- }, null, 12, he);
85
+ }, null, 12, Ie);
86
86
  }), 128))
87
- ], 4)) : se("", !0);
87
+ ], 4)) : ge("", !0);
88
88
  }
89
- }), Le = /* @__PURE__ */ oe({
89
+ }), Fe = /* @__PURE__ */ ae({
90
90
  __name: "DragOverlay",
91
91
  setup(t) {
92
- const { activeContainer: e } = M(), a = w(
93
- () => e.component.value ?? fe
92
+ const { activeContainer: e } = C(), l = w(
93
+ () => e.component.value ?? Me
94
94
  );
95
- return (u, c) => (R(), ce(ve(a.value)));
95
+ return (u, c) => (R(), me(pe(l.value)));
96
96
  }
97
- }), me = "data-dnd-draggable", pe = (t) => {
97
+ }), Se = "data-dnd-draggable";
98
+ function Ce(t) {
99
+ return Ee() ? (we(t), !0) : !1;
100
+ }
101
+ const Le = typeof window < "u" && typeof document < "u";
102
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
103
+ const _e = (t) => t != null, Y = () => {
104
+ };
105
+ function Oe(t) {
106
+ return Array.isArray(t) ? t : [t];
107
+ }
108
+ function ke(t, e, l) {
109
+ const u = ue(t, (...c) => (ye(() => u()), e(...c)), l);
110
+ return u;
111
+ }
112
+ const ce = Le ? window : void 0;
113
+ function b(t) {
114
+ var e;
115
+ const l = N(t);
116
+ return (e = l == null ? void 0 : l.$el) != null ? e : l;
117
+ }
118
+ function Te() {
119
+ const t = W(!1), e = Pe();
120
+ return e && A(() => {
121
+ t.value = !0;
122
+ }, e), t;
123
+ }
124
+ function ze(t) {
125
+ const e = Te();
126
+ return w(() => (e.value, !!t()));
127
+ }
128
+ function He(t, e, l = {}) {
129
+ const {
130
+ root: u,
131
+ rootMargin: c = "0px",
132
+ threshold: r = 0,
133
+ window: s = ce,
134
+ immediate: d = !0
135
+ } = l, h = ze(() => s && "IntersectionObserver" in s), p = w(() => {
136
+ const n = N(t);
137
+ return Oe(n).map(b).filter(_e);
138
+ });
139
+ let o = Y;
140
+ const g = W(d), x = h.value ? ue(
141
+ () => [p.value, b(u), g.value],
142
+ ([n, v]) => {
143
+ if (o(), !g.value || !n.length)
144
+ return;
145
+ const m = new IntersectionObserver(
146
+ e,
147
+ {
148
+ root: b(v),
149
+ rootMargin: c,
150
+ threshold: r
151
+ }
152
+ );
153
+ n.forEach((f) => f && m.observe(f)), o = () => {
154
+ m.disconnect(), o = Y;
155
+ };
156
+ },
157
+ { immediate: d, flush: "post" }
158
+ ) : Y, y = () => {
159
+ o(), x(), g.value = !1;
160
+ };
161
+ return Ce(y), {
162
+ isSupported: h,
163
+ isActive: g,
164
+ pause() {
165
+ o(), g.value = !1;
166
+ },
167
+ resume() {
168
+ g.value = !0;
169
+ },
170
+ stop: y
171
+ };
172
+ }
173
+ function Re(t, e = {}) {
174
+ const {
175
+ window: l = ce,
176
+ scrollTarget: u,
177
+ threshold: c = 0,
178
+ rootMargin: r,
179
+ once: s = !1
180
+ } = e, d = W(!1), { stop: h } = He(
181
+ t,
182
+ (p) => {
183
+ let o = d.value, g = 0;
184
+ for (const x of p)
185
+ x.time >= g && (g = x.time, o = x.isIntersecting);
186
+ d.value = o, s && ke(d, () => {
187
+ h();
188
+ });
189
+ },
190
+ {
191
+ root: u,
192
+ window: l,
193
+ threshold: c,
194
+ rootMargin: N(r)
195
+ }
196
+ );
197
+ return d;
198
+ }
199
+ const Ae = (t) => {
98
200
  const {
99
201
  elements: e,
100
- draggingElements: a,
202
+ draggingElements: l,
101
203
  hovered: u,
102
204
  selectedElements: c,
103
- isDragging: n
104
- } = M(), i = p(null), h = w(
205
+ isDragging: r
206
+ } = C(), s = E(null), d = w(
105
207
  () => {
106
- var m;
107
- return ((m = u.element.value) == null ? void 0 : m.node) === i.value;
208
+ var y;
209
+ return ((y = u.element.value) == null ? void 0 : y.node) === s.value;
108
210
  }
109
- ), f = w(
110
- () => a.value.some((m) => m.node === i.value)
111
- ), y = w(() => {
112
- if (!i.value || !n.value) return !1;
113
- const m = e.value.find(
114
- (D) => D.node === i.value
211
+ ), h = Re(s), p = w(
212
+ () => l.value.some((y) => y.node === s.value)
213
+ ), o = w(() => {
214
+ if (!s.value || !r.value) return !1;
215
+ const y = e.value.find(
216
+ (n) => n.node === s.value
115
217
  );
116
- return m != null && m.groups.length ? !a.value.some((D) => D.groups.length ? !D.groups.some(
117
- (r) => m.groups.includes(r)
218
+ return y != null && y.groups.length ? !l.value.some((n) => n.groups.length ? !n.groups.some(
219
+ (v) => y.groups.includes(v)
118
220
  ) : !1) : !0;
119
221
  });
120
222
  return {
121
- elementRef: i,
223
+ elementRef: s,
122
224
  registerElement: () => {
123
- if (!i.value) throw new Error("ElementRef is not set");
225
+ if (!s.value) throw new Error("ElementRef is not set");
124
226
  e.value.push({
125
- node: i.value,
227
+ node: s.value,
126
228
  groups: (t == null ? void 0 : t.groups) ?? [],
127
229
  layer: (t == null ? void 0 : t.layer) ?? null,
128
230
  defaultLayer: (t == null ? void 0 : t.layer) ?? null,
129
231
  events: (t == null ? void 0 : t.events) ?? {},
130
- data: (t == null ? void 0 : t.data) ?? void 0
131
- }), i.value.setAttribute(me, "true");
232
+ data: (t == null ? void 0 : t.data) ?? void 0,
233
+ isVisible: h.value
234
+ }), s.value.setAttribute(Se, "true");
132
235
  },
133
236
  unregisterElement: () => {
134
- const m = e.value.findIndex(
135
- (r) => r.node === i.value
237
+ const y = e.value.findIndex(
238
+ (v) => v.node === s.value
136
239
  );
137
- m !== -1 && e.value.splice(m, 1);
138
- const D = c.value.findIndex(
139
- (r) => r.node === i.value
240
+ y !== -1 && e.value.splice(y, 1);
241
+ const n = c.value.findIndex(
242
+ (v) => v.node === s.value
140
243
  );
141
- D !== -1 && c.value.splice(D, 1);
244
+ n !== -1 && c.value.splice(n, 1);
142
245
  },
143
- isDragging: f,
144
- isOvered: h,
145
- isAllowed: y
246
+ isDragging: p,
247
+ isOvered: d,
248
+ isAllowed: o
146
249
  };
147
- }, ye = () => {
148
- let t = "", e = "", a = "";
250
+ }, Ve = () => {
251
+ let t = "", e = "", l = "";
149
252
  const u = () => {
150
- const i = document.body;
151
- t = i.style.userSelect, e = i.style.touchAction, a = i.style.overscrollBehavior, i.style.userSelect = "none", i.style.touchAction = "none", i.style.overscrollBehavior = "none", window.addEventListener("contextmenu", n), window.addEventListener("selectstart", n), window.addEventListener("touchstart", n), window.addEventListener("touchmove", n);
253
+ const s = document.body;
254
+ t = s.style.userSelect, e = s.style.touchAction, l = s.style.overscrollBehavior, s.style.userSelect = "none", s.style.touchAction = "none", s.style.overscrollBehavior = "none", window.addEventListener("contextmenu", r), window.addEventListener("selectstart", r), window.addEventListener("touchstart", r), window.addEventListener("touchmove", r);
152
255
  }, c = () => {
153
- const i = document.body;
154
- i.style.userSelect = t, i.style.touchAction = e, i.style.overscrollBehavior = a, window.removeEventListener("contextmenu", n), window.removeEventListener("selectstart", n), window.removeEventListener("touchstart", n), window.removeEventListener("touchmove", n);
155
- }, n = (i) => i.preventDefault();
256
+ const s = document.body;
257
+ s.style.userSelect = t, s.style.touchAction = e, s.style.overscrollBehavior = l, window.removeEventListener("contextmenu", r), window.removeEventListener("selectstart", r), window.removeEventListener("touchstart", r), window.removeEventListener("touchmove", r);
258
+ }, r = (s) => s.preventDefault();
156
259
  return {
157
260
  disableInteractions: u,
158
261
  enableInteractions: c
159
262
  };
160
- }, ne = (t, e) => t.x < e.x + e.width && t.x + t.width > e.x && t.y < e.y + e.height && t.y + t.height > e.y, z = (t) => {
263
+ }, se = (t, e) => t.x < e.x + e.width && t.x + t.width > e.x && t.y < e.y + e.height && t.y + t.height > e.y, k = (t) => {
161
264
  if (!t)
162
265
  return {
163
266
  x: 0,
@@ -180,273 +283,273 @@ const M = () => (te || (Y = ie(!0).run(() => ({
180
283
  width: e.width,
181
284
  height: e.height
182
285
  };
183
- }, $ = (t) => ({
286
+ }, F = (t) => ({
184
287
  x: t.x + t.width / 2,
185
288
  y: t.y + t.height / 2
186
- }), Ee = (t, e) => {
187
- const a = z(t);
289
+ }), Ze = (t, e) => {
290
+ const l = k(t);
188
291
  return {
189
292
  pixel: {
190
- x: e.x - a.x,
191
- y: e.y - a.y
293
+ x: e.x - l.x,
294
+ y: e.y - l.y
192
295
  },
193
296
  percent: {
194
- x: (e.x - a.x) / a.width * 100,
195
- y: (e.y - a.y) / a.height * 100
297
+ x: (e.x - l.x) / l.width * 100,
298
+ y: (e.y - l.y) / l.height * 100
196
299
  }
197
300
  };
198
- }, re = (t, e) => {
199
- const a = e.x - t.x, u = e.y - t.y;
200
- return Math.sqrt(a * a + u * u);
201
- }, C = (t, e) => t ? e.contains(t) : !1, Pe = (t) => {
202
- const e = M();
301
+ }, ie = (t, e) => {
302
+ const l = e.x - t.x, u = e.y - t.y;
303
+ return Math.sqrt(l * l + u * u);
304
+ }, S = (t, e) => t ? e.contains(t) : !1, $e = (t) => {
305
+ const e = C();
203
306
  return {
204
- onPointerStart: (n) => {
205
- e.pointerPosition.start.value = { x: n.clientX, y: n.clientY }, e.pointerPosition.current.value = {
206
- x: n.clientX,
207
- y: n.clientY
307
+ onPointerStart: (r) => {
308
+ e.pointerPosition.start.value = { x: r.clientX, y: r.clientY }, e.pointerPosition.current.value = {
309
+ x: r.clientX,
310
+ y: r.clientY
208
311
  };
209
- const { pixel: i, percent: h } = Ee(t.value, {
210
- x: n.clientX,
211
- y: n.clientY
312
+ const { pixel: s, percent: d } = Ze(t.value, {
313
+ x: r.clientX,
314
+ y: r.clientY
212
315
  });
213
- e.pointerPosition.offset.pixel.value = i, e.pointerPosition.offset.percent.value = h;
316
+ e.pointerPosition.offset.pixel.value = s, e.pointerPosition.offset.percent.value = d;
214
317
  },
215
- onPointerMove: (n) => {
318
+ onPointerMove: (r) => {
216
319
  e.pointerPosition.current.value = {
217
- x: n.clientX,
218
- y: n.clientY
320
+ x: r.clientX,
321
+ y: r.clientY
219
322
  };
220
323
  },
221
324
  onPointerEnd: () => {
222
325
  e.pointerPosition.current.value = null, e.pointerPosition.start.value = null, e.pointerPosition.offset.pixel.value = null, e.pointerPosition.offset.percent.value = null;
223
326
  }
224
327
  };
225
- }, we = (t) => {
226
- const e = M(), { onPointerStart: a, onPointerMove: u, onPointerEnd: c } = Pe(t);
227
- let n = null;
228
- const i = (r) => {
229
- var v, L;
230
- const d = e.selectedElements.value.some(
231
- (P) => P.node === r
328
+ }, Xe = (t) => {
329
+ const e = C(), { onPointerStart: l, onPointerMove: u, onPointerEnd: c } = $e(t);
330
+ let r = null;
331
+ const s = (n) => {
332
+ var f, I;
333
+ const v = e.selectedElements.value.some(
334
+ (P) => P.node === n
232
335
  );
233
- if (e.selectedElements.value.length && d)
336
+ if (e.selectedElements.value.length && v)
234
337
  return e.selectedElements.value.map((P) => {
235
- var S, T;
338
+ var L, H;
236
339
  return {
237
340
  ...P,
238
- initialHTML: ((S = P.node) == null ? void 0 : S.outerHTML) ?? "",
239
- initialRect: (T = P.node) == null ? void 0 : T.getBoundingClientRect()
341
+ initialHTML: ((L = P.node) == null ? void 0 : L.outerHTML) ?? "",
342
+ initialRect: (H = P.node) == null ? void 0 : H.getBoundingClientRect()
240
343
  };
241
344
  });
242
345
  e.selectedElements.value = [];
243
- const g = e.elements.value.find(
244
- (P) => P.node === r
346
+ const m = e.elements.value.find(
347
+ (P) => P.node === n
245
348
  );
246
- return g ? [
349
+ return m ? [
247
350
  {
248
- ...g,
249
- initialHTML: ((v = g.node) == null ? void 0 : v.outerHTML) ?? "",
250
- initialRect: (L = g.node) == null ? void 0 : L.getBoundingClientRect()
351
+ ...m,
352
+ initialHTML: ((f = m.node) == null ? void 0 : f.outerHTML) ?? "",
353
+ initialRect: (I = m.node) == null ? void 0 : I.getBoundingClientRect()
251
354
  }
252
355
  ] : [];
253
- }, h = (r, d) => {
254
- const g = Math.max(
356
+ }, d = (n, v) => {
357
+ const m = Math.max(
255
358
  0,
256
- Math.min(r.x + r.width, d.x + d.width) - Math.max(r.x, d.x)
257
- ), v = Math.max(
359
+ Math.min(n.x + n.width, v.x + v.width) - Math.max(n.x, v.x)
360
+ ), f = Math.max(
258
361
  0,
259
- Math.min(r.y + r.height, d.y + d.height) - Math.max(r.y, d.y)
260
- ), L = g * v, P = r.width * r.height, S = d.width * d.height;
261
- return (L / P * 100 + L / S * 100) / 2;
262
- }, f = () => {
263
- var q, N, B, V, j, G, J, K, Q, W;
264
- const r = z(e.activeContainer.ref.value), d = $(r), g = ((q = e.pointerPosition.current.value) == null ? void 0 : q.x) ?? 0, v = ((N = e.pointerPosition.current.value) == null ? void 0 : N.y) ?? 0, P = !(r && g >= r.x && g <= r.x + r.width && v >= r.y && v <= r.y + r.height), S = e.draggingElements.value.map((o) => o.node), T = e.elements.value.filter((o) => {
265
- if (!o.node || S.some(
266
- (x) => x && C(o.node, x)
267
- ) || o.groups.length && !!e.draggingElements.value.some(
268
- (I) => I.groups.length ? !I.groups.some(
269
- (_) => o.groups.includes(_)
362
+ Math.min(n.y + n.height, v.y + v.height) - Math.max(n.y, v.y)
363
+ ), I = m * f, P = n.width * n.height, L = v.width * v.height;
364
+ return (I / P * 100 + I / L * 100) / 2;
365
+ }, h = () => {
366
+ var q, B, G, j, J, K, Q, ee, te, ne;
367
+ const n = k(e.activeContainer.ref.value), v = F(n), m = ((q = e.pointerPosition.current.value) == null ? void 0 : q.x) ?? 0, f = ((B = e.pointerPosition.current.value) == null ? void 0 : B.y) ?? 0, P = !(n && m >= n.x && m <= n.x + n.width && f >= n.y && f <= n.y + n.height), L = e.draggingElements.value.map((i) => i.node), H = e.elements.value.filter((i) => {
368
+ if (!i.node || !i.isVisible || !i.node || L.some(
369
+ (D) => D && S(i.node, D)
370
+ ) || i.groups.length && !!e.draggingElements.value.some(
371
+ (M) => M.groups.length ? !M.groups.some(
372
+ (_) => i.groups.includes(_)
270
373
  ) : !1
271
374
  ))
272
375
  return !1;
273
- const s = z(o.node);
274
- return s && r && ne(s, r);
275
- }).map((o) => {
276
- const s = z(o.node), x = $(s), I = g >= s.x && g <= s.x + s.width && v >= s.y && v <= s.y + s.height, _ = h(s, r), Z = re(d, x), A = e.elements.value.filter(
277
- (O) => O !== o && O.node && o.node && C(
278
- o.node,
376
+ const a = k(i.node);
377
+ return a && n && se(a, n);
378
+ }).map((i) => {
379
+ const a = k(i.node), D = F(a), M = m >= a.x && m <= a.x + a.width && f >= a.y && f <= a.y + a.height, _ = d(a, n), V = ie(v, D), Z = e.elements.value.filter(
380
+ (O) => O !== i && O.node && i.node && S(
381
+ i.node,
279
382
  O.node
280
383
  )
281
384
  ).length;
282
385
  return {
283
- element: o,
284
- isPointerInElement: I,
386
+ element: i,
387
+ isPointerInElement: M,
285
388
  overlapPercent: _,
286
- depth: A,
287
- centerDistance: Z
389
+ depth: Z,
390
+ centerDistance: V
288
391
  };
289
- }).sort((o, s) => {
392
+ }).sort((i, a) => {
290
393
  if (!P) {
291
- if (o.isPointerInElement && s.isPointerInElement)
292
- return s.depth - o.depth;
293
- if (o.isPointerInElement !== s.isPointerInElement)
294
- return o.isPointerInElement ? -1 : 1;
394
+ if (i.isPointerInElement && a.isPointerInElement)
395
+ return a.depth - i.depth;
396
+ if (i.isPointerInElement !== a.isPointerInElement)
397
+ return i.isPointerInElement ? -1 : 1;
295
398
  }
296
- return Math.abs(o.overlapPercent - s.overlapPercent) <= 1 ? o.centerDistance - s.centerDistance : s.overlapPercent - o.overlapPercent;
297
- }), le = e.zones.value.filter((o) => {
298
- if (!o.node || S.some(
299
- (x) => x && C(o.node, x)
300
- ) || o.groups.length && !!e.draggingElements.value.some((I) => I.groups.length ? !I.groups.some((_) => o.groups.includes(_)) : !1))
399
+ return Math.abs(i.overlapPercent - a.overlapPercent) <= 1 ? i.centerDistance - a.centerDistance : a.overlapPercent - i.overlapPercent;
400
+ }), ve = e.zones.value.filter((i) => {
401
+ if (!i.node || L.some(
402
+ (D) => D && S(i.node, D)
403
+ ) || i.groups.length && !!e.draggingElements.value.some((M) => M.groups.length ? !M.groups.some((_) => i.groups.includes(_)) : !1))
301
404
  return !1;
302
- const s = z(o.node);
303
- return s && r && ne(s, r);
304
- }).map((o) => {
305
- const s = z(o.node), x = $(s), I = g >= s.x && g <= s.x + s.width && v >= s.y && v <= s.y + s.height, _ = h(s, r), Z = re(d, x), A = e.zones.value.filter(
306
- (O) => O !== o && O.node && o.node && C(o.node, O.node)
405
+ const a = k(i.node);
406
+ return a && n && se(a, n);
407
+ }).map((i) => {
408
+ const a = k(i.node), D = F(a), M = m >= a.x && m <= a.x + a.width && f >= a.y && f <= a.y + a.height, _ = d(a, n), V = ie(v, D), Z = e.zones.value.filter(
409
+ (O) => O !== i && O.node && i.node && S(i.node, O.node)
307
410
  ).length;
308
411
  return {
309
- zone: o,
310
- isPointerInElement: I,
412
+ zone: i,
413
+ isPointerInElement: M,
311
414
  overlapPercent: _,
312
- depth: A,
313
- centerDistance: Z
415
+ depth: Z,
416
+ centerDistance: V
314
417
  };
315
- }).sort((o, s) => {
418
+ }).sort((i, a) => {
316
419
  if (!P) {
317
- if (o.isPointerInElement && s.isPointerInElement)
318
- return s.depth - o.depth;
319
- if (o.isPointerInElement !== s.isPointerInElement)
320
- return o.isPointerInElement ? -1 : 1;
420
+ if (i.isPointerInElement && a.isPointerInElement)
421
+ return a.depth - i.depth;
422
+ if (i.isPointerInElement !== a.isPointerInElement)
423
+ return i.isPointerInElement ? -1 : 1;
321
424
  }
322
- return Math.abs(o.overlapPercent - s.overlapPercent) <= 1 ? o.centerDistance - s.centerDistance : s.overlapPercent - o.overlapPercent;
323
- }), k = e.hovered.element.value, H = e.hovered.zone.value;
324
- e.hovered.element.value = ((B = T[0]) == null ? void 0 : B.element) ?? null, e.hovered.zone.value = ((V = le[0]) == null ? void 0 : V.zone) ?? null, e.hovered.element.value !== k && ((j = k == null ? void 0 : k.events) != null && j.onLeave && k.events.onLeave(e), (J = (G = e.hovered.element.value) == null ? void 0 : G.events) != null && J.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== H && ((K = H == null ? void 0 : H.events) != null && K.onLeave && H.events.onLeave(e), (W = (Q = e.hovered.zone.value) == null ? void 0 : Q.events) != null && W.onHover && e.hovered.zone.value.events.onHover(e)), n = requestAnimationFrame(f);
325
- }, y = () => {
326
- f();
327
- }, l = () => {
328
- n !== null && (cancelAnimationFrame(n), n = null);
425
+ return Math.abs(i.overlapPercent - a.overlapPercent) <= 1 ? i.centerDistance - a.centerDistance : a.overlapPercent - i.overlapPercent;
426
+ }), T = e.hovered.element.value, z = e.hovered.zone.value;
427
+ e.hovered.element.value = ((G = H[0]) == null ? void 0 : G.element) ?? null, e.hovered.zone.value = ((j = ve[0]) == null ? void 0 : j.zone) ?? null, e.hovered.element.value !== T && ((J = T == null ? void 0 : T.events) != null && J.onLeave && T.events.onLeave(e), (Q = (K = e.hovered.element.value) == null ? void 0 : K.events) != null && Q.onHover && e.hovered.element.value.events.onHover(e)), e.hovered.zone.value !== z && ((ee = z == null ? void 0 : z.events) != null && ee.onLeave && z.events.onLeave(e), (ne = (te = e.hovered.zone.value) == null ? void 0 : te.events) != null && ne.onHover && e.hovered.zone.value.events.onHover(e)), r = requestAnimationFrame(h);
428
+ }, p = () => {
429
+ h();
430
+ }, o = () => {
431
+ r !== null && (cancelAnimationFrame(r), r = null);
329
432
  };
330
433
  return {
331
- activate: (r) => {
332
- e.draggingElements.value = i(t.value), a(r), y();
434
+ activate: (n) => {
435
+ e.draggingElements.value = s(t.value), l(n), p();
333
436
  },
334
- track: (r) => {
335
- u(r);
437
+ track: (n) => {
438
+ u(n);
336
439
  },
337
440
  deactivate: () => {
338
- var r, d;
339
- c(), e.hovered.zone.value ? (d = (r = e.hovered.zone.value.events).onDrop) == null || d.call(r, e) : e.draggingElements.value.forEach(
340
- (g) => {
341
- var v, L;
342
- return (L = (v = g.events).onEnd) == null ? void 0 : L.call(v, e);
441
+ var n, v;
442
+ c(), e.hovered.zone.value ? (v = (n = e.hovered.zone.value.events).onDrop) == null || v.call(n, e) : e.draggingElements.value.forEach(
443
+ (m) => {
444
+ var f, I;
445
+ return (I = (f = m.events).onEnd) == null ? void 0 : I.call(f, e);
343
446
  }
344
- ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, l();
447
+ ), e.draggingElements.value = [], e.selectedElements.value = [], e.hovered.zone.value = null, e.hovered.element.value = null, o();
345
448
  }
346
449
  };
347
- }, Ie = (t) => {
450
+ }, Ue = (t) => {
348
451
  const {
349
452
  elementRef: e,
350
- registerElement: a,
453
+ registerElement: l,
351
454
  unregisterElement: u,
352
455
  isDragging: c,
353
- isOvered: n,
354
- isAllowed: i
355
- } = pe(t), { disableInteractions: h, enableInteractions: f } = ye(), y = M(), { activate: l, track: E, deactivate: m } = we(e), D = (v) => {
356
- t != null && t.container && (y.activeContainer.component.value = de(t.container)), h(), l(v), document.addEventListener("pointermove", r), document.addEventListener("pointerup", g), document.addEventListener("wheel", d);
357
- }, r = (v) => {
358
- E(v);
359
- }, d = (v) => {
360
- E(v);
361
- }, g = () => {
362
- y.activeContainer.component.value = null, f(), m(), document.removeEventListener("pointermove", r), document.removeEventListener("pointerup", g), document.removeEventListener("wheel", d);
456
+ isOvered: r,
457
+ isAllowed: s
458
+ } = Ae(t), { disableInteractions: d, enableInteractions: h } = Ve(), p = C(), { activate: o, track: g, deactivate: x } = Xe(e), y = (f) => {
459
+ t != null && t.container && (p.activeContainer.component.value = xe(t.container)), d(), o(f), document.addEventListener("pointermove", n), document.addEventListener("pointerup", m), document.addEventListener("wheel", v);
460
+ }, n = (f) => {
461
+ g(f);
462
+ }, v = (f) => {
463
+ g(f);
464
+ }, m = () => {
465
+ p.activeContainer.component.value = null, h(), x(), document.removeEventListener("pointermove", n), document.removeEventListener("pointerup", m), document.removeEventListener("wheel", v);
363
466
  };
364
- return F(a), U(u), {
365
- pointerPosition: y.pointerPosition,
467
+ return A(l), U(u), {
468
+ pointerPosition: p.pointerPosition,
366
469
  elementRef: e,
367
470
  isDragging: c,
368
- isOvered: n,
369
- isAllowed: i,
370
- handleDragStart: D
471
+ isOvered: r,
472
+ isAllowed: s,
473
+ handleDragStart: y
371
474
  };
372
- }, xe = (t) => {
373
- const { zones: e, hovered: a, draggingElements: u, isDragging: c } = M(), n = p(null), i = w(() => {
374
- var l;
375
- return ((l = a.zone.value) == null ? void 0 : l.node) === n.value;
376
- }), h = w(() => {
377
- if (!n.value || !c.value) return !1;
378
- const l = e.value.find(
379
- (E) => E.node === n.value
475
+ }, Ye = (t) => {
476
+ const { zones: e, hovered: l, draggingElements: u, isDragging: c } = C(), r = E(null), s = w(() => {
477
+ var o;
478
+ return ((o = l.zone.value) == null ? void 0 : o.node) === r.value;
479
+ }), d = w(() => {
480
+ if (!r.value || !c.value) return !1;
481
+ const o = e.value.find(
482
+ (g) => g.node === r.value
380
483
  );
381
- return l != null && l.groups.length ? !u.value.some((E) => E.groups.length ? !E.groups.some(
382
- (m) => l.groups.includes(m)
484
+ return o != null && o.groups.length ? !u.value.some((g) => g.groups.length ? !g.groups.some(
485
+ (x) => o.groups.includes(x)
383
486
  ) : !1) : !0;
384
487
  });
385
- return { elementRef: n, registerZone: () => {
386
- if (!n.value) throw new Error("elementRef is not set");
488
+ return { elementRef: r, registerZone: () => {
489
+ if (!r.value) throw new Error("elementRef is not set");
387
490
  e.value.push({
388
- node: n.value,
491
+ node: r.value,
389
492
  groups: (t == null ? void 0 : t.groups) ?? [],
390
493
  events: (t == null ? void 0 : t.events) ?? {},
391
494
  data: (t == null ? void 0 : t.data) ?? void 0
392
- }), n.value.setAttribute("data-dnd-droppable", "true");
495
+ }), r.value.setAttribute("data-dnd-droppable", "true");
393
496
  }, unregisterZone: () => {
394
- if (!n.value) throw new Error("elementRef is not set");
395
- const l = e.value.findIndex(
396
- (E) => E.node === n.value
497
+ if (!r.value) throw new Error("elementRef is not set");
498
+ const o = e.value.findIndex(
499
+ (g) => g.node === r.value
397
500
  );
398
- l !== -1 && e.value.splice(l, 1);
399
- }, isOvered: i, isAllowed: h };
400
- }, Ce = (t) => {
401
- const { elementRef: e, registerZone: a, unregisterZone: u, isOvered: c, isAllowed: n } = xe(t);
402
- return F(a), U(u), { elementRef: e, isOvered: c, isAllowed: n };
403
- }, Me = (t) => {
404
- const { selectedElements: e, elements: a } = M(), u = w(
405
- () => a.value.find((l) => l.node === t.value)
501
+ o !== -1 && e.value.splice(o, 1);
502
+ }, isOvered: s, isAllowed: d };
503
+ }, We = (t) => {
504
+ const { elementRef: e, registerZone: l, unregisterZone: u, isOvered: c, isAllowed: r } = Ye(t);
505
+ return A(l), U(u), { elementRef: e, isOvered: c, isAllowed: r };
506
+ }, Ne = (t) => {
507
+ const { selectedElements: e, elements: l } = C(), u = w(
508
+ () => l.value.find((o) => o.node === t.value)
406
509
  ), c = w(
407
- () => e.value.some((l) => l.node === t.value)
408
- ), n = w(() => t.value ? e.value.some(
409
- (l) => l.node && C(
410
- l.node,
510
+ () => e.value.some((o) => o.node === t.value)
511
+ ), r = w(() => t.value ? e.value.some(
512
+ (o) => o.node && S(
513
+ o.node,
411
514
  t.value
412
515
  )
413
- ) : !1), i = w(() => t.value ? e.value.some(
414
- (l) => l.node && C(
516
+ ) : !1), s = w(() => t.value ? e.value.some(
517
+ (o) => o.node && S(
415
518
  t.value,
416
- l.node
519
+ o.node
417
520
  )
418
- ) : !1), h = () => {
521
+ ) : !1), d = () => {
419
522
  u.value && (e.value = e.value.filter(
420
- (l) => l.node !== t.value
523
+ (o) => o.node !== t.value
421
524
  ));
422
- }, f = () => {
423
- u.value && (n.value && (e.value = e.value.filter(
424
- (l) => l.node && !C(
425
- l.node,
525
+ }, h = () => {
526
+ u.value && (r.value && (e.value = e.value.filter(
527
+ (o) => o.node && !S(
528
+ o.node,
426
529
  t.value
427
530
  )
428
- )), i.value && (e.value = e.value.filter(
429
- (l) => l.node && !C(
531
+ )), s.value && (e.value = e.value.filter(
532
+ (o) => o.node && !S(
430
533
  t.value,
431
- l.node
534
+ o.node
432
535
  )
433
536
  )), e.value.push(u.value));
434
537
  };
435
538
  return {
436
- handleUnselect: h,
437
- handleSelect: f,
539
+ handleUnselect: d,
540
+ handleSelect: h,
438
541
  handleToggleSelect: () => {
439
- u.value && (e.value.some((l) => l.node === t.value) ? h() : f());
542
+ u.value && (e.value.some((o) => o.node === t.value) ? d() : h());
440
543
  },
441
544
  isSelected: c,
442
- isParentOfSelected: n
545
+ isParentOfSelected: r
443
546
  };
444
547
  };
445
548
  export {
446
- Le as DragOverlay,
447
- z as getBoundingBox,
448
- M as useDnDStore,
449
- Ie as useDraggable,
450
- Ce as useDroppable,
451
- Me as useSelection
549
+ Fe as DragOverlay,
550
+ k as getBoundingBox,
551
+ C as useDnDStore,
552
+ Ue as useDraggable,
553
+ We as useDroppable,
554
+ Ne as useSelection
452
555
  };