bitboss-ui 2.0.13 → 2.0.14

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 (216) hide show
  1. package/dist/index107.js +5 -5
  2. package/dist/index115.js +1 -1
  3. package/dist/index117.js +3 -3
  4. package/dist/index119.js +1 -1
  5. package/dist/index123.js +1 -1
  6. package/dist/index125.js +1 -1
  7. package/dist/index127.js +1 -1
  8. package/dist/index129.js +2 -2
  9. package/dist/index130.js +1 -1
  10. package/dist/index14.js +1 -1
  11. package/dist/index16.js +3 -3
  12. package/dist/index18.js +2 -2
  13. package/dist/index199.js +2 -81
  14. package/dist/index199.js.map +1 -1
  15. package/dist/index20.js +14 -14
  16. package/dist/index200.js +158 -2
  17. package/dist/index200.js.map +1 -1
  18. package/dist/index201.js +84 -4
  19. package/dist/index201.js.map +1 -1
  20. package/dist/index203.js +5 -2
  21. package/dist/index203.js.map +1 -1
  22. package/dist/index204.js +16 -5
  23. package/dist/index204.js.map +1 -1
  24. package/dist/index205.js +10 -10
  25. package/dist/index205.js.map +1 -1
  26. package/dist/index206.js +18 -15
  27. package/dist/index206.js.map +1 -1
  28. package/dist/index207.js +18 -18
  29. package/dist/index207.js.map +1 -1
  30. package/dist/index208.js +22 -14
  31. package/dist/index208.js.map +1 -1
  32. package/dist/index209.js +3 -27
  33. package/dist/index209.js.map +1 -1
  34. package/dist/index210.js +2 -3
  35. package/dist/index210.js.map +1 -1
  36. package/dist/index211.js +8 -2
  37. package/dist/index211.js.map +1 -1
  38. package/dist/index212.js +247 -6
  39. package/dist/index212.js.map +1 -1
  40. package/dist/index213.js +42 -239
  41. package/dist/index213.js.map +1 -1
  42. package/dist/index214.js +35 -43
  43. package/dist/index214.js.map +1 -1
  44. package/dist/index215.js +5 -44
  45. package/dist/index215.js.map +1 -1
  46. package/dist/index216.js +49 -5
  47. package/dist/index216.js.map +1 -1
  48. package/dist/index217.js +80 -48
  49. package/dist/index217.js.map +1 -1
  50. package/dist/index218.js +1 -1
  51. package/dist/index219.js +2 -2
  52. package/dist/index22.js +13 -13
  53. package/dist/index222.js +2 -44
  54. package/dist/index222.js.map +1 -1
  55. package/dist/index223.js +7 -0
  56. package/dist/index223.js.map +1 -0
  57. package/dist/index224.js +2 -13
  58. package/dist/index224.js.map +1 -1
  59. package/dist/index225.js +43 -125
  60. package/dist/index225.js.map +1 -1
  61. package/dist/index227.js +13 -2
  62. package/dist/index227.js.map +1 -1
  63. package/dist/index228.js +3 -174
  64. package/dist/index228.js.map +1 -1
  65. package/dist/index229.js +126 -5
  66. package/dist/index229.js.map +1 -1
  67. package/dist/index230.js +120 -366
  68. package/dist/index230.js.map +1 -1
  69. package/dist/index231.js +2 -158
  70. package/dist/index231.js.map +1 -1
  71. package/dist/index232.js +174 -84
  72. package/dist/index232.js.map +1 -1
  73. package/dist/index233.js +8 -0
  74. package/dist/index233.js.map +1 -0
  75. package/dist/index234.js +369 -3
  76. package/dist/index234.js.map +1 -1
  77. package/dist/index235.js +2 -106
  78. package/dist/index235.js.map +1 -1
  79. package/dist/{index240.js → index236.js} +1 -1
  80. package/dist/{index240.js.map → index236.js.map} +1 -1
  81. package/dist/index237.js +53 -47
  82. package/dist/index237.js.map +1 -1
  83. package/dist/index239.js +100 -2
  84. package/dist/index239.js.map +1 -1
  85. package/dist/index24.js +1 -1
  86. package/dist/index244.js +3 -4
  87. package/dist/index244.js.map +1 -1
  88. package/dist/index245.js +9 -3
  89. package/dist/index245.js.map +1 -1
  90. package/dist/index246.js +23 -9
  91. package/dist/index246.js.map +1 -1
  92. package/dist/index247.js +6 -23
  93. package/dist/index247.js.map +1 -1
  94. package/dist/index248.js +16 -281
  95. package/dist/index248.js.map +1 -1
  96. package/dist/index249.js +3 -6
  97. package/dist/index249.js.map +1 -1
  98. package/dist/index250.js +12 -2
  99. package/dist/index250.js.map +1 -1
  100. package/dist/index251.js +9 -2
  101. package/dist/index251.js.map +1 -1
  102. package/dist/index252.js +9 -2
  103. package/dist/index252.js.map +1 -1
  104. package/dist/index253.js +17 -2
  105. package/dist/index253.js.map +1 -1
  106. package/dist/index254.js +9 -2
  107. package/dist/index254.js.map +1 -1
  108. package/dist/index255.js +281 -2
  109. package/dist/index255.js.map +1 -1
  110. package/dist/index256.js +6 -2
  111. package/dist/index256.js.map +1 -1
  112. package/dist/index257.js +2 -2
  113. package/dist/index258.js +2 -2
  114. package/dist/index259.js +2 -2
  115. package/dist/index26.js +1 -1
  116. package/dist/index260.js +2 -28
  117. package/dist/index260.js.map +1 -1
  118. package/dist/index261.js +2 -22
  119. package/dist/index261.js.map +1 -1
  120. package/dist/index262.js +5 -0
  121. package/dist/index262.js.map +1 -0
  122. package/dist/index263.js +2 -7
  123. package/dist/index263.js.map +1 -1
  124. package/dist/index264.js +1 -5
  125. package/dist/index264.js.map +1 -1
  126. package/dist/index265.js +2 -16
  127. package/dist/index265.js.map +1 -1
  128. package/dist/index266.js +2 -9
  129. package/dist/index266.js.map +1 -1
  130. package/dist/index267.js +24 -427
  131. package/dist/index267.js.map +1 -1
  132. package/dist/index268.js +22 -89
  133. package/dist/index268.js.map +1 -1
  134. package/dist/index270.js +7 -3
  135. package/dist/index270.js.map +1 -1
  136. package/dist/index271.js +434 -0
  137. package/dist/index271.js.map +1 -0
  138. package/dist/index272.js +89 -2
  139. package/dist/index272.js.map +1 -1
  140. package/dist/index273.js +67 -7
  141. package/dist/index273.js.map +1 -1
  142. package/dist/index274.js +4 -2
  143. package/dist/index274.js.map +1 -1
  144. package/dist/index275.js +2 -126
  145. package/dist/index275.js.map +1 -1
  146. package/dist/index276.js +5 -22
  147. package/dist/index276.js.map +1 -1
  148. package/dist/{index269.js → index277.js} +1 -1
  149. package/dist/{index269.js.map → index277.js.map} +1 -1
  150. package/dist/index278.js +1 -1
  151. package/dist/index28.js +3 -3
  152. package/dist/index280.js +223 -8
  153. package/dist/index280.js.map +1 -1
  154. package/dist/index281.js +2 -17
  155. package/dist/index281.js.map +1 -1
  156. package/dist/index282.js +120 -218
  157. package/dist/index282.js.map +1 -1
  158. package/dist/index283.js +21 -435
  159. package/dist/index283.js.map +1 -1
  160. package/dist/index285.js +434 -67
  161. package/dist/index285.js.map +1 -1
  162. package/dist/index286.js +127 -5
  163. package/dist/index286.js.map +1 -1
  164. package/dist/index287.js +1 -1
  165. package/dist/index288.js +1 -1
  166. package/dist/index289.js +2 -2
  167. package/dist/index290.js +79 -15
  168. package/dist/index290.js.map +1 -1
  169. package/dist/index292.js +4 -4
  170. package/dist/index292.js.map +1 -1
  171. package/dist/index293.js +4 -59
  172. package/dist/index293.js.map +1 -1
  173. package/dist/index294.js +57 -77
  174. package/dist/index294.js.map +1 -1
  175. package/dist/index295.js +18 -0
  176. package/dist/index295.js.map +1 -0
  177. package/dist/index296.js +10 -6
  178. package/dist/index296.js.map +1 -1
  179. package/dist/index299.js +6 -34
  180. package/dist/index299.js.map +1 -1
  181. package/dist/index30.js +2 -2
  182. package/dist/index300.js +2 -47
  183. package/dist/index300.js.map +1 -1
  184. package/dist/index301.js +35 -2
  185. package/dist/index301.js.map +1 -1
  186. package/dist/index302.js +46 -10
  187. package/dist/index302.js.map +1 -1
  188. package/dist/index303.js +1 -1
  189. package/dist/index32.js +2 -2
  190. package/dist/index34.js +3 -3
  191. package/dist/index36.js +12 -12
  192. package/dist/index38.js +3 -3
  193. package/dist/index40.js +2 -2
  194. package/dist/index42.js +2 -2
  195. package/dist/index44.js +6 -6
  196. package/dist/index46.js +2 -2
  197. package/dist/index48.js +2 -2
  198. package/dist/index54.js +1 -1
  199. package/dist/index56.js +1 -1
  200. package/dist/index72.js +21 -21
  201. package/dist/index72.js.map +1 -1
  202. package/dist/index76.js +2 -2
  203. package/dist/index83.js +1 -1
  204. package/dist/index85.js +1 -1
  205. package/dist/index87.js +1 -1
  206. package/package.json +2 -2
  207. package/dist/index202.js +0 -5
  208. package/dist/index202.js.map +0 -1
  209. package/dist/index226.js +0 -126
  210. package/dist/index226.js.map +0 -1
  211. package/dist/index279.js +0 -15
  212. package/dist/index279.js.map +0 -1
  213. package/dist/index284.js +0 -130
  214. package/dist/index284.js.map +0 -1
  215. package/dist/index291.js +0 -7
  216. package/dist/index291.js.map +0 -1
package/dist/index107.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as oe, ref as x, computed as h, toRef as B, watch as ne, openBlock as n, createBlock as de, resolveDynamicComponent as ce, normalizeClass as r, unref as u, withCtx as ie, createElementBlock as d, toDisplayString as p, createCommentVNode as k, createElementVNode as s, renderSlot as f, createVNode as I, Fragment as w, renderList as T, createTextVNode as be, mergeProps as re } from "vue";
2
- import { add as ue } from "./index272.js";
3
- import { clamp as pe } from "./index203.js";
2
+ import { add as ue } from "./index275.js";
3
+ import { clamp as pe } from "./index199.js";
4
4
  import { isNil as M } from "./index126.js";
5
5
  import { useId as fe } from "./index9.js";
6
- import { useItemValue as me } from "./index273.js";
7
- import { when as he } from "./index201.js";
6
+ import { useItemValue as me } from "./index252.js";
7
+ import { when as he } from "./index223.js";
8
8
  import J from "./index16.js";
9
9
  /* empty css */
10
10
  import ye from "./index30.js";
11
11
  /* empty css */
12
- import { useOptions as _e } from "./index231.js";
12
+ import { useOptions as _e } from "./index200.js";
13
13
  const ke = {
14
14
  key: 0,
15
15
  class: "sr-only"
package/dist/index115.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as s, openBlock as e, createBlock as o, Teleport as l, createElementVNode as c, normalizeClass as m, createVNode as i, TransitionGroup as p, withCtx as u, createElementBlock as f, Fragment as d, renderList as _, unref as r, mergeProps as b } from "vue";
2
2
  import { state as k, useToast as C } from "./index12.js";
3
- import B from "./index285.js";
3
+ import B from "./index273.js";
4
4
  const N = /* @__PURE__ */ s({
5
5
  __name: "BbToast",
6
6
  props: {
package/dist/index117.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as z, defineAsyncComponent as A, ref as a, computed as _, watch as I, openBlock as b, createElementBlock as R, mergeProps as U, createElementVNode as c, renderSlot as D, normalizeProps as W, guardReactiveProps as j, unref as u, createBlock as L, withCtx as $, createCommentVNode as M } from "vue";
2
- import { useFloating as q, arrow as G } from "./index225.js";
2
+ import { useFloating as q, arrow as G } from "./index229.js";
3
3
  import { useId as J } from "./index9.js";
4
4
  import { wait as P } from "./index128.js";
5
5
  import K from "./index14.js";
6
6
  /* empty css */
7
7
  import { throttle as w } from "./index218.js";
8
8
  import { waitFor as Q } from "./index220.js";
9
- import { autoUpdate as X, flip as Y, shift as Z, hide as x } from "./index230.js";
9
+ import { autoUpdate as X, flip as Y, shift as Z, hide as x } from "./index234.js";
10
10
  const ee = /* @__PURE__ */ c("svg", {
11
11
  fill: "none",
12
12
  viewBox: "0 0 24 24",
@@ -35,7 +35,7 @@ const ee = /* @__PURE__ */ c("svg", {
35
35
  },
36
36
  setup(F) {
37
37
  const O = A(
38
- () => import("./index245.js")
38
+ () => import("./index244.js")
39
39
  ), t = F, g = `bb_${t.id ?? J().id.value}`, s = a(), d = a(), T = a(), { floatingStyles: te, placement: h, middlewareData: f } = q(
40
40
  s,
41
41
  d,
package/dist/index119.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as $, computed as g, resolveComponent as y, openBlock as f, createElementBlock as i, Fragment as k, renderList as h, normalizeClass as b, createElementVNode as s, renderSlot as t, createVNode as v, createSlots as B, withCtx as _, mergeProps as C } from "vue";
2
- import { flattenTree as T } from "./index286.js";
2
+ import { flattenTree as T } from "./index276.js";
3
3
  const w = { class: "bb-tree-row" }, E = { class: "bb-tree-main-content" }, N = /* @__PURE__ */ $({
4
4
  __name: "BbTree",
5
5
  props: {
package/dist/index123.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as m, getCurrentInstance as d, inject as x, computed as l, ref as y, watchEffect as z, openBlock as _, createElementBlock as b, mergeProps as h } from "vue";
2
- import { isCssColor as w } from "./index200.js";
2
+ import { isCssColor as w } from "./index222.js";
3
3
  const g = ["innerHTML"], $ = /* @__PURE__ */ m({
4
4
  __name: "BbIcon",
5
5
  props: {
package/dist/index125.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as p, computed as l, openBlock as _, createElementBlock as a, normalizeProps as b, guardReactiveProps as x, createStaticVNode as m } from "vue";
2
- import { isCssColor as u } from "./index200.js";
2
+ import { isCssColor as u } from "./index222.js";
3
3
  const y = /* @__PURE__ */ m('<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle class="bb-spinner__circle" cx="12" cy="3" r="0"></circle><circle class="bb-spinner__circle circle--1" cx="16.50" cy="4.21" r="0"></circle><circle class="bb-spinner__circle circle--2" cx="7.50" cy="4.21" r="0"></circle><circle class="bb-spinner__circle circle--3" cx="19.79" cy="7.50" r="0"></circle><circle class="bb-spinner__circle circle--4" cx="4.21" cy="7.50" r="0"></circle><circle class="bb-spinner__circle circle--5" cx="21.00" cy="12.00" r="0"></circle><circle class="bb-spinner__circle circle--6" cx="3.00" cy="12.00" r="0"></circle><circle class="bb-spinner__circle circle--7" cx="19.79" cy="16.50" r="0"></circle><circle class="bb-spinner__circle circle--8" cx="4.21" cy="16.50" r="0"></circle><circle class="bb-spinner__circle circle--9" cx="16.50" cy="19.79" r="0"></circle><circle class="bb-spinner__circle circle--10" cx="7.50" cy="19.79" r="0"></circle><circle class="bb-spinner__circle circle--11" cx="12" cy="21" r="0"></circle></svg>', 1), d = [
4
4
  y
5
5
  ], g = /* @__PURE__ */ p({
package/dist/index127.js CHANGED
@@ -1,4 +1,4 @@
1
- import { clamp as o } from "./index203.js";
1
+ import { clamp as o } from "./index199.js";
2
2
  const r = (t, e) => t * 100 / e, p = (t, e) => t / 100 * e, l = (t, e, n) => r(t - e, n - e), P = ({
3
3
  value: t = 0,
4
4
  originalBounds: e,
package/dist/index129.js CHANGED
@@ -1,5 +1,5 @@
1
- import { toValue as S, notNullish as $, noop as _, tryOnScopeDispose as R, useDebounceFn as q, useThrottleFn as G, tryOnMounted as Q, isClient as J, isObject as K } from "./index199.js";
2
- import { createFilterWrapper as fe, debounceFilter as ve, getLifeCycleTarget as de, throttleFilter as me } from "./index199.js";
1
+ import { toValue as S, notNullish as $, noop as _, tryOnScopeDispose as R, useDebounceFn as q, useThrottleFn as G, tryOnMounted as Q, isClient as J, isObject as K } from "./index217.js";
2
+ import { createFilterWrapper as fe, debounceFilter as ve, getLifeCycleTarget as de, throttleFilter as me } from "./index217.js";
3
3
  import { computed as O, ref as T, watch as V, reactive as k, getCurrentInstance as U, onMounted as Z, watchEffect as ee } from "vue";
4
4
  function F(l) {
5
5
  var r;
package/dist/index130.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isArray as b, isPlainObject as m } from "./index290.js";
1
+ import { isArray as b, isPlainObject as m } from "./index295.js";
2
2
  function i(e, n, l, o, r) {
3
3
  const u = {}.propertyIsEnumerable.call(o, n) ? "enumerable" : "nonenumerable";
4
4
  u === "enumerable" && (e[n] = l), r && u === "nonenumerable" && Object.defineProperty(e, n, {
package/dist/index14.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as y, getCurrentInstance as p, computed as s, resolveComponent as d, openBlock as k, createBlock as h, resolveDynamicComponent as C, mergeProps as x, withCtx as S, renderSlot as L, createTextVNode as B, toDisplayString as N } from "vue";
2
2
  import { _config as o } from "./index5.js";
3
- import { useLogger as m } from "./index212.js";
3
+ import { useLogger as m } from "./index211.js";
4
4
  const P = /* @__PURE__ */ y({
5
5
  __name: "BaseButton",
6
6
  props: {
package/dist/index16.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as C, ref as b, computed as n, watch as E, openBlock as m, createElementBlock as p, normalizeProps as c, guardReactiveProps as h, mergeProps as f, createCommentVNode as I, createElementVNode as s, renderSlot as q } from "vue";
2
- import { isCssColor as k } from "./index200.js";
3
- import { when as F } from "./index201.js";
4
- import { booleanishToBoolean as N } from "./index202.js";
2
+ import { isCssColor as k } from "./index222.js";
3
+ import { when as F } from "./index223.js";
4
+ import { booleanishToBoolean as N } from "./index224.js";
5
5
  const S = {
6
6
  "aria-hidden": "true",
7
7
  class: "bb-base-checkbox-container"
package/dist/index18.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as $, ref as p, toRef as l, openBlock as B, createBlock as w, unref as f, withCtx as i, renderSlot as s, normalizeProps as b, guardReactiveProps as h, createVNode as O, mergeProps as v } from "vue";
2
- import { useOptions as z } from "./index231.js";
2
+ import { useOptions as z } from "./index200.js";
3
3
  import F from "./index16.js";
4
4
  /* empty css */
5
- import M from "./index232.js";
5
+ import M from "./index201.js";
6
6
  /* empty css */
7
7
  const G = /* @__PURE__ */ $({
8
8
  __name: "BaseCheckboxGroup",
package/dist/index199.js CHANGED
@@ -1,84 +1,5 @@
1
- import { getCurrentScope as g, onScopeDispose as D, unref as x, onMounted as O, nextTick as S, isRef as C, getCurrentInstance as F } from "vue";
2
- function G(e) {
3
- return g() ? (D(e), !0) : !1;
4
- }
5
- function d(e) {
6
- return typeof e == "function" ? e() : x(e);
7
- }
8
- const L = typeof window < "u" && typeof document < "u";
9
- typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
10
- const V = (e) => e != null, P = Object.prototype.toString, A = (e) => P.call(e) === "[object Object]", m = () => {
11
- };
12
- function h(e, r) {
13
- function t(...n) {
14
- return new Promise((o, i) => {
15
- Promise.resolve(e(() => r.apply(this, n), { fn: r, thisArg: this, args: n })).then(o).catch(i);
16
- });
17
- }
18
- return t;
19
- }
20
- function W(e, r = {}) {
21
- let t, n, o = m;
22
- const i = (l) => {
23
- clearTimeout(l), o(), o = m;
24
- };
25
- return (l) => {
26
- const c = d(e), u = d(r.maxWait);
27
- return t && i(t), c <= 0 || u !== void 0 && u <= 0 ? (n && (i(n), n = null), Promise.resolve(l())) : new Promise((s, T) => {
28
- o = r.rejectOnCancel ? T : s, u && !n && (n = setTimeout(() => {
29
- t && i(t), n = null, s(l());
30
- }, u)), t = setTimeout(() => {
31
- n && i(n), n = null, s(l());
32
- }, c);
33
- });
34
- };
35
- }
36
- function M(...e) {
37
- let r = 0, t, n = !0, o = m, i, a, l, c, u;
38
- !C(e[0]) && typeof e[0] == "object" ? { delay: a, trailing: l = !0, leading: c = !0, rejectOnCancel: u = !1 } = e[0] : [a, l = !0, c = !0, u = !1] = e;
39
- const s = () => {
40
- t && (clearTimeout(t), t = void 0, o(), o = m);
41
- };
42
- return (w) => {
43
- const f = d(a), y = Date.now() - r, p = () => i = w();
44
- return s(), f <= 0 ? (r = Date.now(), p()) : (y > f && (c || !n) ? (r = Date.now(), p()) : l && (i = new Promise((b, j) => {
45
- o = u ? j : b, t = setTimeout(() => {
46
- r = Date.now(), n = !0, b(p()), s();
47
- }, Math.max(0, f - y));
48
- })), !c && !t && (t = setTimeout(() => n = !0, f)), n = !1, i);
49
- };
50
- }
51
- function R(e) {
52
- return F();
53
- }
54
- function E(e, r = 200, t = {}) {
55
- return h(
56
- W(r, t),
57
- e
58
- );
59
- }
60
- function I(e, r = 200, t = !1, n = !0, o = !1) {
61
- return h(
62
- M(r, t, n, o),
63
- e
64
- );
65
- }
66
- function N(e, r = !0, t) {
67
- R() ? O(e, t) : r ? e() : S(e);
68
- }
1
+ const n = (t, a, m) => Math.min(Math.max(t, a), m);
69
2
  export {
70
- h as createFilterWrapper,
71
- W as debounceFilter,
72
- R as getLifeCycleTarget,
73
- L as isClient,
74
- A as isObject,
75
- m as noop,
76
- V as notNullish,
77
- M as throttleFilter,
78
- d as toValue,
79
- N as tryOnMounted,
80
- G as tryOnScopeDispose,
81
- E as useDebounceFn,
82
- I as useThrottleFn
3
+ n as clamp
83
4
  };
84
5
  //# sourceMappingURL=index199.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index199.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(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\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(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\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(/^-?\\d+\\.?\\d*/)) == 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.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\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})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\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 const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\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","isClient","notNullish","val","toString","isObject","noop","createFilterWrapper","filter","wrapper","args","resolve","reject","debounceFilter","ms","options","timer","maxTimer","lastRejector","_clearTimeout","timer2","invoke","duration","maxDuration","throttleFilter","lastExec","isLeading","lastValue","trailing","leading","rejectOnCancel","isRef","clear","_invoke","elapsed","getLifeCycleTarget","target","getCurrentInstance","useDebounceFn","useThrottleFn","tryOnMounted","sync","onMounted","nextTick"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index199.js","sources":["../src/utilities/functions/clamp.ts"],"sourcesContent":["/**\n * Returns value ensuring it doesn't go below min and exceed max.\n * EXAMPLE: clamp(5, 7, 20) === 7\n * @param value The value to clamp\n * @param min Minimum bound\n * @param max Maximum bound\n * @returns\n */\n\nexport const clamp = (value: number, min: number, max: number) => {\n\treturn Math.min(Math.max(value, min), max);\n};\n"],"names":["clamp","value","min","max"],"mappings":"AASO,MAAMA,IAAQ,CAACC,GAAeC,GAAaC,MAC1C,KAAK,IAAI,KAAK,IAAIF,GAAOC,CAAG,GAAGC,CAAG;"}
package/dist/index20.js CHANGED
@@ -4,20 +4,20 @@ import { defineComponent as $, ref as f, watch as x, openBlock as u, createEleme
4
4
  /* empty css */
5
5
  import p from "./index14.js";
6
6
  /* empty css */
7
- import r from "./index204.js";
8
- import z from "./index205.js";
9
- import U from "./index206.js";
10
- import W from "./index207.js";
11
- import E from "./index208.js";
12
- import T from "./index209.js";
13
- import { hash as g } from "./index210.js";
14
- import { last as j } from "./index211.js";
15
- import { useLogger as H } from "./index212.js";
16
- import P from "./index213.js";
17
- import Z from "./index214.js";
18
- import q from "./index215.js";
19
- import w from "./index216.js";
20
- import F from "./index217.js";
7
+ import r from "./index203.js";
8
+ import z from "./index204.js";
9
+ import U from "./index205.js";
10
+ import W from "./index206.js";
11
+ import E from "./index207.js";
12
+ import T from "./index208.js";
13
+ import { hash as g } from "./index209.js";
14
+ import { last as j } from "./index210.js";
15
+ import { useLogger as H } from "./index211.js";
16
+ import P from "./index212.js";
17
+ import Z from "./index213.js";
18
+ import q from "./index214.js";
19
+ import w from "./index215.js";
20
+ import F from "./index216.js";
21
21
  const G = { class: "bb-base-date-picker" }, I = { class: "bb-base-date-picker__body" }, J = { class: "bb-base-date-picker__controls" }, K = /* @__PURE__ */ l("span", { class: "sr-only" }, "Seleziona un mese", -1), Q = /* @__PURE__ */ l("svg", {
22
22
  fill: "none",
23
23
  height: "6",
package/dist/index200.js CHANGED
@@ -1,5 +1,161 @@
1
- const s = (r) => !!r && !!r.match(/^(#|var\(--|(rgb|hsl)a?\()/);
1
+ import { ref as a, computed as r, onBeforeMount as Y, onBeforeUnmount as Z, watch as H, nextTick as N } from "vue";
2
+ import { last as _ } from "./index210.js";
3
+ import { useArray as Q } from "./index250.js";
4
+ import { uniqBy as $ } from "./index251.js";
5
+ import { useItemValue as ee } from "./index252.js";
6
+ import { useItemText as te } from "./index253.js";
7
+ import { hash as v } from "./index209.js";
8
+ import { isNotNil as q } from "./index131.js";
9
+ import { waitFor as le } from "./index220.js";
10
+ import { isNil as oe } from "./index126.js";
11
+ const he = (l) => {
12
+ const i = a(""), F = a(), u = (e) => {
13
+ F.value = e, l.emit("update:modelValue", e);
14
+ }, d = a([]), {
15
+ array: k,
16
+ add: E,
17
+ remove: P,
18
+ set: y
19
+ } = Q(), {
20
+ array: S,
21
+ add: j,
22
+ remove: J
23
+ } = Q(), { getItemText: L } = te(), { getItemValue: U } = ee(), O = (e) => {
24
+ const t = !!(l.disabled.value || e.disabled), o = L(e, l.itemText), n = U(e, l.itemValue);
25
+ if (n === void 0)
26
+ throw new Error(
27
+ 'The result of extracting "value" from option was undefined. Affected item is ' + JSON.stringify(e) + " please check itemValue property is correct."
28
+ );
29
+ const X = v(n);
30
+ return {
31
+ item: e,
32
+ text: o,
33
+ value: n,
34
+ valueHash: X,
35
+ disabled: t,
36
+ selected: !1
37
+ };
38
+ }, T = (e) => (e.selected = q(b.value[e.valueHash]), e), V = r(() => {
39
+ const e = [].concat(
40
+ d.value.map((t) => T(O(t))),
41
+ S.value.map(T),
42
+ k.value.map(T)
43
+ );
44
+ return $(e, (t) => t.valueHash);
45
+ }), z = (e) => {
46
+ l.multiple ? (u(l.modelValue.value.concat(e.value)), l.stash && E(e), l.resetQueryOnOptionSelected && s()) : (l.stash && y(e), u(e.value), N(() => s()));
47
+ }, G = async (e) => {
48
+ if (J((t) => t.valueHash !== e.valueHash), P((t) => t.valueHash !== e.valueHash), l.multiple) {
49
+ const t = { ...b.value };
50
+ delete t[e.valueHash], u(Object.values(t));
51
+ } else
52
+ u(null), await N(), s();
53
+ }, b = r(() => {
54
+ const e = {}, t = [].concat(l.modelValue.value);
55
+ for (let o = 0; o < t.length; o++) {
56
+ const n = t[o];
57
+ e[v(n)] = n;
58
+ }
59
+ return e;
60
+ }), g = async ({ prefill: e = !1 }) => {
61
+ let t = [];
62
+ if (Array.isArray(l.items.value))
63
+ t = l.items.value;
64
+ else if (typeof l.items.value == "function") {
65
+ const o = ++c.value;
66
+ try {
67
+ t = await l.items.value(
68
+ i.value,
69
+ e,
70
+ l.modelValue.value
71
+ ), o < c.value && (await le(() => o === c.value), t = d.value);
72
+ } catch (n) {
73
+ console.error(n);
74
+ }
75
+ c.value--;
76
+ }
77
+ d.value = t;
78
+ }, B = r(() => {
79
+ const e = {};
80
+ for (let t = 0; t < V.value.length; t++) {
81
+ const o = V.value[t], { valueHash: n } = o;
82
+ e[n] = o;
83
+ }
84
+ return {
85
+ get: (t) => e[v(t)]
86
+ };
87
+ }), f = r(() => [].concat(l.modelValue.value).reduce((e, t) => {
88
+ const o = B.value.get(t);
89
+ return o && e.push(o), e;
90
+ }, [])), C = (e) => q(B.value.get(e)), s = () => {
91
+ if (l.multiple) {
92
+ i.value = "";
93
+ return;
94
+ }
95
+ let e;
96
+ f.value && (e = _(f.value)), i.value = (e == null ? void 0 : e.text) || "";
97
+ }, K = () => {
98
+ const e = i.value.trim(), t = O(e);
99
+ j(t), s();
100
+ }, c = a(0), M = r(() => [].concat(l.modelValue.value).reduce(
101
+ (e, t) => (C(t) ? e.coherent.push(t) : e.incoherent.push(t), e),
102
+ { coherent: [], incoherent: [] }
103
+ )), A = r(() => l.multiple && !l.modelValue.value.length || !l.multiple && oe(l.modelValue.value) ? !0 : !M.value.incoherent.length), R = () => {
104
+ l.enforceCoherence && !A.value && (l.multiple ? u(M.value.coherent) : u(null));
105
+ }, p = a(!1), I = a(!1), m = async () => {
106
+ I.value = !0, await g({ prefill: !0 }), R(), s(), p.value = !0, I.value = !1;
107
+ };
108
+ Y(async () => {
109
+ l.prefill && (await m(), l.stash && y(...f.value));
110
+ });
111
+ let h;
112
+ const W = () => {
113
+ h && clearTimeout(h), h = setTimeout(async () => {
114
+ try {
115
+ await g({ prefill: !1 });
116
+ } catch (e) {
117
+ console.error(e);
118
+ }
119
+ }, l.queryDebounceTime);
120
+ };
121
+ Z(() => clearTimeout(h));
122
+ let x;
123
+ H(
124
+ () => l.modelValue.value,
125
+ () => {
126
+ A.value || (x && clearTimeout(x), x = setTimeout(async () => {
127
+ m();
128
+ }, l.modelValueDebounceTime));
129
+ }
130
+ );
131
+ let w;
132
+ const D = async (e, t) => {
133
+ v(t) !== v(e) && p.value && (w && clearTimeout(w), w = setTimeout(async () => {
134
+ await m();
135
+ }, l.depsDebounceTime));
136
+ };
137
+ return H(() => l.items.value, D), H(() => l.dependencies.value, D), {
138
+ addCurrentQueryToManualItems: K,
139
+ alignQueryToState: s,
140
+ getOptions: g,
141
+ hasPrefilled: p,
142
+ innerLoading: c,
143
+ isPrefilling: I,
144
+ manualItems: S,
145
+ options: V,
146
+ prefillItems: m,
147
+ query: i,
148
+ searchByQuery: W,
149
+ selectedOptions: f,
150
+ selectOption: z,
151
+ setStash: y,
152
+ unselectOption: G,
153
+ updateModelValue: u,
154
+ valueIsSelected: C,
155
+ internalItems: d
156
+ };
157
+ };
2
158
  export {
3
- s as isCssColor
159
+ he as useOptions
4
160
  };
5
161
  //# sourceMappingURL=index200.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index200.js","sources":["../src/utilities/functions/isCssColor.ts"],"sourcesContent":["/**\n * Taken from vuetify colorable mixin\n * https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/mixins/colorable/index.ts\n */\nexport const isCssColor = (color: string): boolean => {\n\treturn !!color && !!color.match(/^(#|var\\(--|(rgb|hsl)a?\\()/);\n};\n"],"names":["isCssColor","color"],"mappings":"AAIa,MAAAA,IAAa,CAACC,MACnB,CAAC,CAACA,KAAS,CAAC,CAACA,EAAM,MAAM,4BAA4B;"}
1
+ {"version":3,"file":"index200.js","sources":["../src/composables/useOptions.ts"],"sourcesContent":["import {\n\tcomputed,\n\tnextTick,\n\tonBeforeMount,\n\tonBeforeUnmount,\n\tref,\n\twatch,\n\ttype Ref,\n} from 'vue';\nimport type { Option as BaseOption } from '@/types/Option';\nimport { last } from '@/utilities/functions/last';\nimport { useArray } from './useArray';\nimport { uniqBy } from '@/utilities/functions/uniqBy';\nimport { useItemValue } from './useItemValue';\nimport { useItemText } from './useItemText';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport { isNil } from '@/utilities/functions/isNil';\n\ntype Options = {\n\tmultiple: boolean;\n\tstash: boolean;\n\titemText: string | ((item: any) => string) | undefined;\n\titemValue: string | ((item: any) => string) | undefined;\n\tmodelValue: Ref<any>;\n\tresetQueryOnOptionSelected: boolean;\n\temit: any;\n\titems: Ref<any>;\n\tenforceCoherence: boolean;\n\tprefill: boolean;\n\tmodelValueDebounceTime: number;\n\tdepsDebounceTime: number;\n\tdependencies: Ref<any[]>;\n\tqueryDebounceTime: number;\n\tdisabled: Ref<boolean>;\n};\n\nexport const useOptions = (params: Options) => {\n\tconst query = ref<string>('');\n\n\tconst lastEmittedValue = ref();\n\tconst updateModelValue = (value: any) => {\n\t\tlastEmittedValue.value = value;\n\t\tparams.emit('update:modelValue', value);\n\t};\n\n\tconst internalItems = ref<any[]>([]);\n\tconst {\n\t\tarray: innerStash,\n\t\tadd: addToStash,\n\t\tremove: removeFromStash,\n\t\tset: setStash,\n\t} = useArray<BaseOption>();\n\n\tconst {\n\t\tarray: manualItems,\n\t\tadd: addToManualItems,\n\t\tremove: removeFromManualItems,\n\t} = useArray<BaseOption>();\n\n\tconst { getItemText } = useItemText();\n\tconst { getItemValue } = useItemValue();\n\tconst createOption = (item: any): BaseOption => {\n\t\tconst disabled = !!(params.disabled.value || item.disabled);\n\t\tconst text = getItemText(item, params.itemText);\n\t\tconst value = getItemValue(item, params.itemValue);\n\n\t\t// Undefined is not supported\n\t\tif (value === undefined)\n\t\t\tthrow new Error(\n\t\t\t\t'The result of extracting \"value\" from option was undefined. Affected item is ' +\n\t\t\t\t\tJSON.stringify(item) +\n\t\t\t\t\t' please check itemValue property is correct.'\n\t\t\t);\n\t\tconst valueHash = hash(value);\n\t\tconst selected = false;\n\t\treturn {\n\t\t\titem,\n\t\t\ttext,\n\t\t\tvalue,\n\t\t\tvalueHash,\n\t\t\tdisabled,\n\t\t\tselected,\n\t\t};\n\t};\n\n\tconst setSelected = (o: BaseOption) => {\n\t\to.selected = isNotNil(modelValueIndexedByHash.value[o.valueHash]);\n\t\treturn o;\n\t};\n\tconst options = computed<BaseOption[]>(() => {\n\t\tconst base = ([] as BaseOption[]).concat(\n\t\t\tinternalItems.value.map((item) => {\n\t\t\t\treturn setSelected(createOption(item));\n\t\t\t}),\n\t\t\tmanualItems.value.map(setSelected),\n\t\t\tinnerStash.value.map(setSelected)\n\t\t);\n\t\treturn uniqBy(base, (o) => o.valueHash);\n\t});\n\n\tconst selectOption = (option: BaseOption) => {\n\t\tif (params.multiple) {\n\t\t\tupdateModelValue(params.modelValue.value.concat(option.value));\n\t\t\tif (params.stash) {\n\t\t\t\taddToStash(option);\n\t\t\t}\n\n\t\t\tif (params.resetQueryOnOptionSelected) {\n\t\t\t\talignQueryToState();\n\t\t\t}\n\t\t} else {\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(option);\n\t\t\t}\n\t\t\tupdateModelValue(option.value);\n\t\t\tnextTick(() => alignQueryToState());\n\t\t}\n\t};\n\tconst unselectOption = async (option: BaseOption) => {\n\t\tremoveFromManualItems((o) => o.valueHash !== option.valueHash);\n\t\tremoveFromStash((o) => o.valueHash !== option.valueHash);\n\t\tif (params.multiple) {\n\t\t\tconst copy = { ...modelValueIndexedByHash.value };\n\t\t\tdelete copy[option.valueHash];\n\t\t\tupdateModelValue(Object.values(copy));\n\t\t} else {\n\t\t\tupdateModelValue(null);\n\t\t\tawait nextTick();\n\t\t\talignQueryToState();\n\t\t}\n\t};\n\n\t/**\n\t * Indexes modelValue to a map of hash - value pairs so we can easily track which values are selected\n\t */\n\tconst modelValueIndexedByHash = computed(() => {\n\t\tconst map: Record<string, any> = {};\n\t\tconst arr = [].concat(params.modelValue.value);\n\t\tfor (let index = 0; index < arr.length; index++) {\n\t\t\tconst element = arr[index];\n\t\t\tmap[hash(element)] = element;\n\t\t}\n\t\treturn map;\n\t});\n\n\tconst getOptions = async ({ prefill = false }) => {\n\t\tlet items: any[] = [];\n\t\tif (Array.isArray(params.items.value)) {\n\t\t\titems = params.items.value;\n\t\t} else {\n\t\t\tif (typeof params.items.value === 'function') {\n\t\t\t\tconst order = ++innerLoading.value;\n\t\t\t\ttry {\n\t\t\t\t\titems = await params.items.value(\n\t\t\t\t\t\tquery.value,\n\t\t\t\t\t\tprefill,\n\t\t\t\t\t\tparams.modelValue.value\n\t\t\t\t\t);\n\t\t\t\t\t// If by the time this resolves another call has already been made discard this result\n\t\t\t\t\tif (order < innerLoading.value) {\n\t\t\t\t\t\tawait waitFor(() => order === innerLoading.value);\n\t\t\t\t\t\titems = internalItems.value;\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\tinnerLoading.value--;\n\t\t\t}\n\t\t}\n\t\tinternalItems.value = items as any;\n\t};\n\n\t/**\n\t * Indexes options by their hash so they can be retrieved\n\t */\n\tconst optionsIndexedByHash = computed(() => {\n\t\tconst map: Record<string, BaseOption> = {};\n\t\tfor (let index = 0; index < options.value.length; index++) {\n\t\t\tconst element = options.value[index];\n\t\t\tconst { valueHash } = element;\n\t\t\tmap[valueHash] = element;\n\t\t}\n\t\treturn {\n\t\t\tget: (value: any) => {\n\t\t\t\treturn map[hash(value)];\n\t\t\t},\n\t\t};\n\t});\n\n\t/**\n\t * For every item in modelValue find the linked option if it exists.\n\t * This is used to display chips.\n\t */\n\tconst selectedOptions = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce((acc, h) => {\n\t\t\tconst found = optionsIndexedByHash.value.get(h);\n\t\t\tif (found) {\n\t\t\t\tacc.push(found);\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] as BaseOption[]);\n\t});\n\n\tconst valueIsSelected = (value: any) =>\n\t\tisNotNil(optionsIndexedByHash.value.get(value));\n\n\tconst alignQueryToState = () => {\n\t\tif (params.multiple) {\n\t\t\tquery.value = '';\n\t\t\treturn;\n\t\t}\n\t\tlet option: BaseOption | undefined;\n\t\tif (selectedOptions.value) {\n\t\t\toption = last(selectedOptions.value);\n\t\t}\n\t\tquery.value = option?.text || '';\n\t};\n\n\t/**\n\t * Add an option to the manual items and then reset the query\n\t */\n\tconst addCurrentQueryToManualItems = () => {\n\t\tconst text = query.value.trim();\n\t\tconst option = createOption(text);\n\t\taddToManualItems(option);\n\t\talignQueryToState();\n\t};\n\n\t/**\n\t * Use a number accumulator because if the fn takes 5 seconds\n\t * and after 2 seconds another search is run\n\t * When the first returns the second is still out for 2 seconds\n\t * and we want to track them both.\n\t * Debounce will not be enough.\n\t */\n\tconst innerLoading = ref(0);\n\n\t/**\n\t * Coherent values are values that have an option they can be linked to.\n\t * Divide coherent and incoherent values.\n\t */\n\n\tconst coherenceStatus = computed(() => {\n\t\treturn [].concat(params.modelValue.value).reduce(\n\t\t\t(acc, curr) => {\n\t\t\t\tif (valueIsSelected(curr)) {\n\t\t\t\t\tacc.coherent.push(curr);\n\t\t\t\t} else {\n\t\t\t\t\tacc.incoherent.push(curr);\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{ coherent: [], incoherent: [] }\n\t\t);\n\t});\n\n\t/**\n\t * Model value is considered coherent when:\n\t * - multiple mode is empty\n\t * - single mode is null\n\t */\n\tconst modelValueIsCoherent = computed(() => {\n\t\tif (params.multiple && !params.modelValue.value.length) return true;\n\t\telse if (!params.multiple && isNil(params.modelValue.value)) return true;\n\t\treturn !coherenceStatus.value.incoherent.length;\n\t});\n\n\t/**\n\t * Realign selection state to the passed settings.\n\t * If modelValue has any value that is not coherent while\n\t * coherence is enforced the value should be removed\n\t */\n\tconst alignToCoherenceSettings = () => {\n\t\tif (params.enforceCoherence && !modelValueIsCoherent.value) {\n\t\t\tif (!params.multiple) updateModelValue(null);\n\t\t\telse updateModelValue(coherenceStatus.value.coherent);\n\t\t}\n\t};\n\n\t/**\n\t * Prefilling is the phase where the component understands it needs\n\t * to update its inner items due to a change in state, whether dependencies have changed, items or modelValue have changed.\n\t * It can be intended as the component aligning itself to what state is passed to it.\n\t */\n\tconst hasPrefilled = ref(false);\n\tconst isPrefilling = ref(false);\n\tconst prefillItems = async () => {\n\t\tisPrefilling.value = true;\n\t\tawait getOptions({ prefill: true });\n\t\talignToCoherenceSettings();\n\t\talignQueryToState();\n\t\thasPrefilled.value = true;\n\t\tisPrefilling.value = false;\n\t};\n\n\tonBeforeMount(async () => {\n\t\tif (params.prefill) {\n\t\t\tawait prefillItems();\n\t\t\tif (params.stash) {\n\t\t\t\tsetStash(...selectedOptions.value);\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Triggered on input when items is a function.\n\t */\n\n\tlet timeout: ReturnType<typeof setTimeout>;\n\tconst searchByQuery = () => {\n\t\tif (timeout) clearTimeout(timeout);\n\t\ttimeout = setTimeout(async () => {\n\t\t\ttry {\n\t\t\t\tawait getOptions({ prefill: false });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}, params.queryDebounceTime);\n\t};\n\tonBeforeUnmount(() => clearTimeout(timeout));\n\n\t/**\n\t * When modelValue changes split behavior for single and multiple selection:\n\t */\n\tlet modelValueTimeout: ReturnType<typeof setTimeout>;\n\twatch(\n\t\t() => params.modelValue.value,\n\t\t() => {\n\t\t\tif (modelValueIsCoherent.value) return;\n\t\t\tif (modelValueTimeout) clearTimeout(modelValueTimeout);\n\t\t\tmodelValueTimeout = setTimeout(async () => {\n\t\t\t\tprefillItems();\n\t\t\t}, params.modelValueDebounceTime);\n\t\t}\n\t);\n\n\t/**\n\t * START DEPENDENCY HANDLING\n\t * Explicit dependencies (props.dependencies) and implicit dependencies (props.items)\n\t * need to trigger a pipeline of realignment whenever they change\n\t */\n\tlet depsTimeout: ReturnType<typeof setTimeout>;\n\n\tconst handleDependencyChange = async (current: any, previous: any) => {\n\t\t// Circumvent arrays defined in the template by the parent triggering the watcher\n\t\tif (hash(previous) === hash(current)) return;\n\t\t// Do not track until prefill completes\n\t\tif (!hasPrefilled.value) return;\n\t\tif (depsTimeout) clearTimeout(depsTimeout);\n\t\tdepsTimeout = setTimeout(async () => {\n\t\t\tawait prefillItems();\n\t\t}, params.depsDebounceTime);\n\t};\n\n\t/**\n\t * This is triggered to refresh static items whenever the passed array changes.\n\t * If the parent defines an array in the template this is triggered\n\t * at every render so we take counter measures\n\t * Even if the entire array changes all the previously selected values are still in the stash.\n\t */\n\twatch(() => params.items.value, handleDependencyChange);\n\n\t/**\n\t * When dependencies change\n\t * If the input has not been prefilled yet just return\n\t * Check dependencies are the same by value and not reference\n\t * Otherwise we search again for options as they might be different base on dependencies.\n\t * If coherence is enforced we set the state accordingly\n\t */\n\twatch(() => params.dependencies.value, handleDependencyChange);\n\n\t/**\n\t * END DEPENDENCIES HANDLING\n\t */\n\n\treturn {\n\t\taddCurrentQueryToManualItems,\n\t\talignQueryToState,\n\t\tgetOptions,\n\t\thasPrefilled,\n\t\tinnerLoading,\n\t\tisPrefilling,\n\t\tmanualItems,\n\t\toptions,\n\t\tprefillItems,\n\t\tquery,\n\t\tsearchByQuery,\n\t\tselectedOptions,\n\t\tselectOption,\n\t\tsetStash,\n\t\tunselectOption,\n\t\tupdateModelValue,\n\t\tvalueIsSelected,\n\t\tinternalItems,\n\t};\n};\n"],"names":["useOptions","params","query","ref","lastEmittedValue","updateModelValue","value","internalItems","innerStash","addToStash","removeFromStash","setStash","useArray","manualItems","addToManualItems","removeFromManualItems","getItemText","useItemText","getItemValue","useItemValue","createOption","item","disabled","text","valueHash","hash","setSelected","o","isNotNil","modelValueIndexedByHash","options","computed","base","uniqBy","selectOption","option","alignQueryToState","nextTick","unselectOption","copy","map","arr","index","element","getOptions","prefill","items","order","innerLoading","waitFor","error","optionsIndexedByHash","selectedOptions","acc","h","found","valueIsSelected","last","addCurrentQueryToManualItems","coherenceStatus","curr","modelValueIsCoherent","isNil","alignToCoherenceSettings","hasPrefilled","isPrefilling","prefillItems","onBeforeMount","timeout","searchByQuery","onBeforeUnmount","modelValueTimeout","watch","depsTimeout","handleDependencyChange","current","previous"],"mappings":"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"}