bitboss-ui 0.2.25 → 0.2.27

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.
Files changed (129) hide show
  1. package/dist/composables/useConfirm.d.ts +6 -0
  2. package/dist/index101.js +1 -1
  3. package/dist/index103.js +2 -2
  4. package/dist/index109.js +1 -1
  5. package/dist/index111.js +3 -3
  6. package/dist/index113.js +1 -1
  7. package/dist/index116.js +1 -1
  8. package/dist/index118.js +1 -1
  9. package/dist/index125.js +1 -1
  10. package/dist/index126.js +1 -1
  11. package/dist/index127.js +1 -1
  12. package/dist/index131.js +2 -2
  13. package/dist/index15.js +8 -8
  14. package/dist/index17.js +9 -9
  15. package/dist/index19.js +87 -92
  16. package/dist/index19.js.map +1 -1
  17. package/dist/index199.js +3 -5
  18. package/dist/index199.js.map +1 -1
  19. package/dist/index200.js +3 -16
  20. package/dist/index200.js.map +1 -1
  21. package/dist/index201.js +2 -16
  22. package/dist/index201.js.map +1 -1
  23. package/dist/index202.js +2 -19
  24. package/dist/index202.js.map +1 -1
  25. package/dist/index203.js +3 -20
  26. package/dist/index203.js.map +1 -1
  27. package/dist/index204.js +34 -28
  28. package/dist/index204.js.map +1 -1
  29. package/dist/index205.js +6 -8
  30. package/dist/index205.js.map +1 -1
  31. package/dist/index206.js +5 -2
  32. package/dist/index206.js.map +1 -1
  33. package/dist/index207.js +16 -235
  34. package/dist/index207.js.map +1 -1
  35. package/dist/index208.js +16 -10
  36. package/dist/index208.js.map +1 -1
  37. package/dist/index209.js +19 -3
  38. package/dist/index209.js.map +1 -1
  39. package/dist/index21.js +2 -2
  40. package/dist/index210.js +20 -3
  41. package/dist/index210.js.map +1 -1
  42. package/dist/index211.js +29 -3
  43. package/dist/index211.js.map +1 -1
  44. package/dist/index212.js +8 -35
  45. package/dist/index212.js.map +1 -1
  46. package/dist/index213.js +2 -6
  47. package/dist/index213.js.map +1 -1
  48. package/dist/index214.js +8 -376
  49. package/dist/index214.js.map +1 -1
  50. package/dist/index215.js +375 -131
  51. package/dist/index215.js.map +1 -1
  52. package/dist/index216.js +2 -2
  53. package/dist/index216.js.map +1 -1
  54. package/dist/index217.js +363 -164
  55. package/dist/index217.js.map +1 -1
  56. package/dist/index218.js +134 -23
  57. package/dist/index218.js.map +1 -1
  58. package/dist/index219.js +164 -363
  59. package/dist/index219.js.map +1 -1
  60. package/dist/index220.js +23 -2
  61. package/dist/index220.js.map +1 -1
  62. package/dist/index221.js +235 -2
  63. package/dist/index221.js.map +1 -1
  64. package/dist/index223.js +2 -2
  65. package/dist/index224.js +25 -76
  66. package/dist/index224.js.map +1 -1
  67. package/dist/index225.js +12 -27
  68. package/dist/index225.js.map +1 -1
  69. package/dist/index226.js +79 -13
  70. package/dist/index226.js.map +1 -1
  71. package/dist/index228.js +224 -2
  72. package/dist/index228.js.map +1 -1
  73. package/dist/index229.js +257 -294
  74. package/dist/index229.js.map +1 -1
  75. package/dist/index230.js +434 -5
  76. package/dist/index230.js.map +1 -1
  77. package/dist/index231.js +89 -2
  78. package/dist/index231.js.map +1 -1
  79. package/dist/index232.js +200 -2
  80. package/dist/index232.js.map +1 -1
  81. package/dist/index233.js +295 -2
  82. package/dist/index233.js.map +1 -1
  83. package/dist/index234.js +6 -2
  84. package/dist/index234.js.map +1 -1
  85. package/dist/index235.js +2 -2
  86. package/dist/index237.js +2 -224
  87. package/dist/index237.js.map +1 -1
  88. package/dist/index238.js +2 -258
  89. package/dist/index238.js.map +1 -1
  90. package/dist/index239.js +2 -435
  91. package/dist/index239.js.map +1 -1
  92. package/dist/index240.js +2 -89
  93. package/dist/index240.js.map +1 -1
  94. package/dist/index244.js +2 -200
  95. package/dist/index244.js.map +1 -1
  96. package/dist/index245.js +2 -162
  97. package/dist/index245.js.map +1 -1
  98. package/dist/index246.js +162 -2
  99. package/dist/index246.js.map +1 -1
  100. package/dist/index247.js +2 -2
  101. package/dist/index247.js.map +1 -1
  102. package/dist/index248.js +69 -2
  103. package/dist/index248.js.map +1 -1
  104. package/dist/index249.js +15 -69
  105. package/dist/index249.js.map +1 -1
  106. package/dist/index250.js +37 -14
  107. package/dist/index250.js.map +1 -1
  108. package/dist/index251.js +2 -38
  109. package/dist/index251.js.map +1 -1
  110. package/dist/index252.js +2 -2
  111. package/dist/index252.js.map +1 -1
  112. package/dist/index253.js +2 -2
  113. package/dist/index253.js.map +1 -1
  114. package/dist/index254.js +2 -2
  115. package/dist/index255.js +1 -1
  116. package/dist/index29.js +2 -2
  117. package/dist/index3.js +39 -40
  118. package/dist/index3.js.map +1 -1
  119. package/dist/index31.js +5 -5
  120. package/dist/index59.js +23 -23
  121. package/dist/index59.js.map +1 -1
  122. package/dist/index65.js +3 -3
  123. package/dist/index69.js +2 -2
  124. package/dist/index72.js +1 -1
  125. package/dist/index75.js +1 -1
  126. package/dist/index77.js +1 -1
  127. package/dist/index79.js +3 -3
  128. package/dist/style.css +1 -1
  129. package/package.json +1 -1
package/dist/index214.js CHANGED
@@ -1,381 +1,13 @@
1
- import { shift as tt, flip as et, computePosition as ot, arrow as nt } from "./index219.js";
2
- import { detectOverflow as At, offset as It } from "./index219.js";
3
- import { createCoords as v, rectToClientRect as q, round as A, max as O, min as D, floor as B } from "./index242.js";
4
- import { getOverflowAncestors as H, isElement as x, getWindow as T, getComputedStyle as w, getDocumentElement as L, isHTMLElement as b, isWebKit as U, getNodeName as W, isOverflowElement as z, getNodeScroll as I, isTableElement as it, isContainingBlock as X, getContainingBlock as K, getParentNode as V, isLastTraversableNode as Y } from "./index243.js";
5
- function j(t) {
6
- const e = w(t);
7
- let n = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
8
- const s = b(t), c = s ? t.offsetWidth : n, i = s ? t.offsetHeight : o, r = A(n) !== c || A(o) !== i;
9
- return r && (n = c, o = i), {
10
- width: n,
11
- height: o,
12
- $: r
13
- };
1
+ import { getCurrentScope as o, onScopeDispose as n, unref as r } from "vue";
2
+ function f(e) {
3
+ return o() ? (n(e), !0) : !1;
14
4
  }
15
- function S(t) {
16
- return x(t) ? t : t.contextElement;
5
+ function p(e) {
6
+ return typeof e == "function" ? e() : r(e);
17
7
  }
18
- function F(t) {
19
- const e = S(t);
20
- if (!b(e))
21
- return v(1);
22
- const n = e.getBoundingClientRect(), {
23
- width: o,
24
- height: s,
25
- $: c
26
- } = j(e);
27
- let i = (c ? A(n.width) : n.width) / o, r = (c ? A(n.height) : n.height) / s;
28
- return (!i || !Number.isFinite(i)) && (i = 1), (!r || !Number.isFinite(r)) && (r = 1), {
29
- x: i,
30
- y: r
31
- };
32
- }
33
- const st = /* @__PURE__ */ v(0);
34
- function G(t) {
35
- const e = T(t);
36
- return !U() || !e.visualViewport ? st : {
37
- x: e.visualViewport.offsetLeft,
38
- y: e.visualViewport.offsetTop
39
- };
40
- }
41
- function rt(t, e, n) {
42
- return e === void 0 && (e = !1), !n || e && n !== T(t) ? !1 : e;
43
- }
44
- function E(t, e, n, o) {
45
- e === void 0 && (e = !1), n === void 0 && (n = !1);
46
- const s = t.getBoundingClientRect(), c = S(t);
47
- let i = v(1);
48
- e && (o ? x(o) && (i = F(o)) : i = F(t));
49
- const r = rt(c, n, o) ? G(c) : v(0);
50
- let l = (s.left + r.x) / i.x, f = (s.top + r.y) / i.y, a = s.width / i.x, u = s.height / i.y;
51
- if (c) {
52
- const m = T(c), p = o && x(o) ? T(o) : o;
53
- let g = m.frameElement;
54
- for (; g && o && p !== m; ) {
55
- const h = F(g), R = g.getBoundingClientRect(), d = w(g), y = R.left + (g.clientLeft + parseFloat(d.paddingLeft)) * h.x, C = R.top + (g.clientTop + parseFloat(d.paddingTop)) * h.y;
56
- l *= h.x, f *= h.y, a *= h.x, u *= h.y, l += y, f += C, g = T(g).frameElement;
57
- }
58
- }
59
- return q({
60
- width: a,
61
- height: u,
62
- x: l,
63
- y: f
64
- });
65
- }
66
- const ct = [":popover-open", ":modal"];
67
- function J(t) {
68
- let e = !1, n = 0, o = 0;
69
- function s(i) {
70
- try {
71
- e = e || t.matches(i);
72
- } catch {
73
- }
74
- }
75
- ct.forEach((i) => {
76
- s(i);
77
- });
78
- const c = K(t);
79
- if (e && c) {
80
- const i = c.getBoundingClientRect();
81
- n = i.x, o = i.y;
82
- }
83
- return [e, n, o];
84
- }
85
- function lt(t) {
86
- let {
87
- elements: e,
88
- rect: n,
89
- offsetParent: o,
90
- strategy: s
91
- } = t;
92
- const c = L(o), [i] = e ? J(e.floating) : [!1];
93
- if (o === c || i)
94
- return n;
95
- let r = {
96
- scrollLeft: 0,
97
- scrollTop: 0
98
- }, l = v(1);
99
- const f = v(0), a = b(o);
100
- if ((a || !a && s !== "fixed") && ((W(o) !== "body" || z(c)) && (r = I(o)), b(o))) {
101
- const u = E(o);
102
- l = F(o), f.x = u.x + o.clientLeft, f.y = u.y + o.clientTop;
103
- }
104
- return {
105
- width: n.width * l.x,
106
- height: n.height * l.y,
107
- x: n.x * l.x - r.scrollLeft * l.x + f.x,
108
- y: n.y * l.y - r.scrollTop * l.y + f.y
109
- };
110
- }
111
- function ft(t) {
112
- return Array.from(t.getClientRects());
113
- }
114
- function Q(t) {
115
- return E(L(t)).left + I(t).scrollLeft;
116
- }
117
- function ut(t) {
118
- const e = L(t), n = I(t), o = t.ownerDocument.body, s = O(e.scrollWidth, e.clientWidth, o.scrollWidth, o.clientWidth), c = O(e.scrollHeight, e.clientHeight, o.scrollHeight, o.clientHeight);
119
- let i = -n.scrollLeft + Q(t);
120
- const r = -n.scrollTop;
121
- return w(o).direction === "rtl" && (i += O(e.clientWidth, o.clientWidth) - s), {
122
- width: s,
123
- height: c,
124
- x: i,
125
- y: r
126
- };
127
- }
128
- function at(t, e) {
129
- const n = T(t), o = L(t), s = n.visualViewport;
130
- let c = o.clientWidth, i = o.clientHeight, r = 0, l = 0;
131
- if (s) {
132
- c = s.width, i = s.height;
133
- const f = U();
134
- (!f || f && e === "fixed") && (r = s.offsetLeft, l = s.offsetTop);
135
- }
136
- return {
137
- width: c,
138
- height: i,
139
- x: r,
140
- y: l
141
- };
142
- }
143
- function ht(t, e) {
144
- const n = E(t, !0, e === "fixed"), o = n.top + t.clientTop, s = n.left + t.clientLeft, c = b(t) ? F(t) : v(1), i = t.clientWidth * c.x, r = t.clientHeight * c.y, l = s * c.x, f = o * c.y;
145
- return {
146
- width: i,
147
- height: r,
148
- x: l,
149
- y: f
150
- };
151
- }
152
- function _(t, e, n) {
153
- let o;
154
- if (e === "viewport")
155
- o = at(t, n);
156
- else if (e === "document")
157
- o = ut(L(t));
158
- else if (x(e))
159
- o = ht(e, n);
160
- else {
161
- const s = G(t);
162
- o = {
163
- ...e,
164
- x: e.x - s.x,
165
- y: e.y - s.y
166
- };
167
- }
168
- return q(o);
169
- }
170
- function Z(t, e) {
171
- const n = V(t);
172
- return n === e || !x(n) || Y(n) ? !1 : w(n).position === "fixed" || Z(n, e);
173
- }
174
- function dt(t, e) {
175
- const n = e.get(t);
176
- if (n)
177
- return n;
178
- let o = H(t, [], !1).filter((r) => x(r) && W(r) !== "body"), s = null;
179
- const c = w(t).position === "fixed";
180
- let i = c ? V(t) : t;
181
- for (; x(i) && !Y(i); ) {
182
- const r = w(i), l = X(i);
183
- !l && r.position === "fixed" && (s = null), (c ? !l && !s : !l && r.position === "static" && !!s && ["absolute", "fixed"].includes(s.position) || z(i) && !l && Z(t, i)) ? o = o.filter((a) => a !== i) : s = r, i = V(i);
184
- }
185
- return e.set(t, o), o;
186
- }
187
- function gt(t) {
188
- let {
189
- element: e,
190
- boundary: n,
191
- rootBoundary: o,
192
- strategy: s
193
- } = t;
194
- const i = [...n === "clippingAncestors" ? dt(e, this._c) : [].concat(n), o], r = i[0], l = i.reduce((f, a) => {
195
- const u = _(e, a, s);
196
- return f.top = O(u.top, f.top), f.right = D(u.right, f.right), f.bottom = D(u.bottom, f.bottom), f.left = O(u.left, f.left), f;
197
- }, _(e, r, s));
198
- return {
199
- width: l.right - l.left,
200
- height: l.bottom - l.top,
201
- x: l.left,
202
- y: l.top
203
- };
204
- }
205
- function pt(t) {
206
- const {
207
- width: e,
208
- height: n
209
- } = j(t);
210
- return {
211
- width: e,
212
- height: n
213
- };
214
- }
215
- function mt(t, e, n, o) {
216
- const s = b(e), c = L(e), i = n === "fixed", r = E(t, !0, i, e);
217
- let l = {
218
- scrollLeft: 0,
219
- scrollTop: 0
220
- };
221
- const f = v(0);
222
- if (s || !s && !i)
223
- if ((W(e) !== "body" || z(c)) && (l = I(e)), s) {
224
- const h = E(e, !0, i, e);
225
- f.x = h.x + e.clientLeft, f.y = h.y + e.clientTop;
226
- } else
227
- c && (f.x = Q(c));
228
- let a = r.left + l.scrollLeft - f.x, u = r.top + l.scrollTop - f.y;
229
- const [m, p, g] = J(o);
230
- return m && (a += p, u += g, s && (a += e.clientLeft, u += e.clientTop)), {
231
- x: a,
232
- y: u,
233
- width: r.width,
234
- height: r.height
235
- };
236
- }
237
- function k(t, e) {
238
- return !b(t) || w(t).position === "fixed" ? null : e ? e(t) : t.offsetParent;
239
- }
240
- function P(t, e) {
241
- const n = T(t);
242
- if (!b(t))
243
- return n;
244
- let o = k(t, e);
245
- for (; o && it(o) && w(o).position === "static"; )
246
- o = k(o, e);
247
- return o && (W(o) === "html" || W(o) === "body" && w(o).position === "static" && !X(o)) ? n : o || K(t) || n;
248
- }
249
- const yt = async function(t) {
250
- const e = this.getOffsetParent || P, n = this.getDimensions;
251
- return {
252
- reference: mt(t.reference, await e(t.floating), t.strategy, t.floating),
253
- floating: {
254
- x: 0,
255
- y: 0,
256
- ...await n(t.floating)
257
- }
258
- };
259
- };
260
- function wt(t) {
261
- return w(t).direction === "rtl";
262
- }
263
- const vt = {
264
- convertOffsetParentRelativeRectToViewportRelativeRect: lt,
265
- getDocumentElement: L,
266
- getClippingRect: gt,
267
- getOffsetParent: P,
268
- getElementRects: yt,
269
- getClientRects: ft,
270
- getDimensions: pt,
271
- getScale: F,
272
- isElement: x,
273
- isRTL: wt
274
- };
275
- function xt(t, e) {
276
- let n = null, o;
277
- const s = L(t);
278
- function c() {
279
- var r;
280
- clearTimeout(o), (r = n) == null || r.disconnect(), n = null;
281
- }
282
- function i(r, l) {
283
- r === void 0 && (r = !1), l === void 0 && (l = 1), c();
284
- const {
285
- left: f,
286
- top: a,
287
- width: u,
288
- height: m
289
- } = t.getBoundingClientRect();
290
- if (r || e(), !u || !m)
291
- return;
292
- const p = B(a), g = B(s.clientWidth - (f + u)), h = B(s.clientHeight - (a + m)), R = B(f), y = {
293
- rootMargin: -p + "px " + -g + "px " + -h + "px " + -R + "px",
294
- threshold: O(0, D(1, l)) || 1
295
- };
296
- let C = !0;
297
- function $(M) {
298
- const N = M[0].intersectionRatio;
299
- if (N !== l) {
300
- if (!C)
301
- return i();
302
- N ? i(!1, N) : o = setTimeout(() => {
303
- i(!1, 1e-7);
304
- }, 100);
305
- }
306
- C = !1;
307
- }
308
- try {
309
- n = new IntersectionObserver($, {
310
- ...y,
311
- // Handle <iframe>s
312
- root: s.ownerDocument
313
- });
314
- } catch {
315
- n = new IntersectionObserver($, y);
316
- }
317
- n.observe(t);
318
- }
319
- return i(!0), c;
320
- }
321
- function Ct(t, e, n, o) {
322
- o === void 0 && (o = {});
323
- const {
324
- ancestorScroll: s = !0,
325
- ancestorResize: c = !0,
326
- elementResize: i = typeof ResizeObserver == "function",
327
- layoutShift: r = typeof IntersectionObserver == "function",
328
- animationFrame: l = !1
329
- } = o, f = S(t), a = s || c ? [...f ? H(f) : [], ...H(e)] : [];
330
- a.forEach((d) => {
331
- s && d.addEventListener("scroll", n, {
332
- passive: !0
333
- }), c && d.addEventListener("resize", n);
334
- });
335
- const u = f && r ? xt(f, n) : null;
336
- let m = -1, p = null;
337
- i && (p = new ResizeObserver((d) => {
338
- let [y] = d;
339
- y && y.target === f && p && (p.unobserve(e), cancelAnimationFrame(m), m = requestAnimationFrame(() => {
340
- var C;
341
- (C = p) == null || C.observe(e);
342
- })), n();
343
- }), f && !l && p.observe(f), p.observe(e));
344
- let g, h = l ? E(t) : null;
345
- l && R();
346
- function R() {
347
- const d = E(t);
348
- h && (d.x !== h.x || d.y !== h.y || d.width !== h.width || d.height !== h.height) && n(), h = d, g = requestAnimationFrame(R);
349
- }
350
- return n(), () => {
351
- var d;
352
- a.forEach((y) => {
353
- s && y.removeEventListener("scroll", n), c && y.removeEventListener("resize", n);
354
- }), u == null || u(), (d = p) == null || d.disconnect(), p = null, l && cancelAnimationFrame(g);
355
- };
356
- }
357
- const Tt = tt, Et = et, Ot = nt, Ft = (t, e, n) => {
358
- const o = /* @__PURE__ */ new Map(), s = {
359
- platform: vt,
360
- ...n
361
- }, c = {
362
- ...s.platform,
363
- _c: o
364
- };
365
- return ot(t, e, {
366
- ...s,
367
- platform: c
368
- });
369
- };
8
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
370
9
  export {
371
- Ot as arrow,
372
- Ct as autoUpdate,
373
- Ft as computePosition,
374
- At as detectOverflow,
375
- Et as flip,
376
- H as getOverflowAncestors,
377
- It as offset,
378
- vt as platform,
379
- Tt as shift
10
+ p as toValue,
11
+ f as tryOnScopeDispose
380
12
  };
381
13
  //# sourceMappingURL=index214.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index214.js","sources":["../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"],"sourcesContent":["import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getContainingBlock, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction topLayer(floating) {\n let isTopLayer = false;\n let x = 0;\n let y = 0;\n function setIsTopLayer(selector) {\n try {\n isTopLayer = isTopLayer || floating.matches(selector);\n } catch (e) {}\n }\n topLayerSelectors.forEach(selector => {\n setIsTopLayer(selector);\n });\n const containingBlock = getContainingBlock(floating);\n if (isTopLayer && containingBlock) {\n const rect = containingBlock.getBoundingClientRect();\n x = rect.x;\n y = rect.y;\n }\n return [isTopLayer, x, y];\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const documentElement = getDocumentElement(offsetParent);\n const [isTopLayer] = elements ? topLayer(elements.floating) : [false];\n if (offsetParent === documentElement || isTopLayer) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy, floating) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n let x = rect.left + scroll.scrollLeft - offsets.x;\n let y = rect.top + scroll.scrollTop - offsets.y;\n const [isTopLayer, topLayerX, topLayerY] = topLayer(floating);\n if (isTopLayer) {\n x += topLayerX;\n y += topLayerY;\n if (isOffsetParentAnElement) {\n x += offsetParent.clientLeft;\n y += offsetParent.clientTop;\n }\n }\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy, data.floating),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, inline, limitShift, platform, shift, size };\n"],"names":["getCssDimensions","element","css","getComputedStyle","width","height","hasOffset","isHTMLElement","offsetWidth","offsetHeight","shouldFallback","round","unwrapElement","isElement","getScale","domElement","createCoords","rect","$","x","y","noOffsets","getVisualOffsets","win","getWindow","isWebKit","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","offsetParent","clientRect","scale","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","left","top","rectToClientRect","topLayerSelectors","topLayer","floating","isTopLayer","setIsTopLayer","selector","containingBlock","getContainingBlock","convertOffsetParentRelativeRectToViewportRelativeRect","_ref","elements","strategy","documentElement","getDocumentElement","scroll","offsets","isOffsetParentAnElement","getNodeName","isOverflowElement","getNodeScroll","offsetRect","getClientRects","getWindowScrollBarX","getDocumentRect","html","body","max","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","parentNode","getParentNode","isLastTraversableNode","getClippingElementAncestors","cache","cachedResult","result","getOverflowAncestors","el","currentContainingBlockComputedStyle","elementIsFixed","currentNode","computedStyle","currentNodeIsContaining","isContainingBlock","ancestor","getClippingRect","boundary","rootBoundary","clippingAncestors","firstClippingAncestor","clippingRect","accRect","min","getDimensions","getRectRelativeToOffsetParent","topLayerX","topLayerY","getTrueOffsetParent","polyfill","getOffsetParent","window","isTableElement","getElementRects","data","getOffsetParentFn","getDimensionsFn","isRTL","platform","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","insetTop","floor","insetRight","insetBottom","insetLeft","options","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","reference","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","shift","shift$1","flip","flip$1","arrow","arrow$1","computePosition","mergedOptions","platformWithCache","computePosition$1"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index214.js","sources":["../node_modules/@vueuse/shared/index.mjs"],"sourcesContent":["import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n"],"names":["tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","toValue","r","unref"],"mappings":";AAgDA,SAASA,EAAkBC,GAAI;AAC7B,SAAIC,EAAe,KACjBC,EAAeF,CAAE,GACV,MAEF;AACT;AA0JA,SAASG,EAAQC,GAAG;AAClB,SAAO,OAAOA,KAAM,aAAaA,EAAC,IAAKC,EAAMD,CAAC;AAChD;AA6EiB,OAAO,oBAAsB,OAAe,sBAAsB;","x_google_ignoreList":[0]}