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