bitboss-ui 2.1.88 → 2.1.90

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 (187) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index107.js +8 -8
  3. package/dist/index114.js +1 -1
  4. package/dist/index120.js +1 -1
  5. package/dist/index122.js +80 -78
  6. package/dist/index13.js +2 -2
  7. package/dist/index130.js +1 -1
  8. package/dist/index132.js +4 -4
  9. package/dist/index134.js +1 -1
  10. package/dist/index136.js +2 -2
  11. package/dist/index139.js +1 -1
  12. package/dist/index141.js +2 -2
  13. package/dist/index142.js +1 -1
  14. package/dist/index15.js +5 -5
  15. package/dist/index17.js +3 -3
  16. package/dist/index19.js +7 -7
  17. package/dist/index21.js +14 -14
  18. package/dist/index214.js +2 -138
  19. package/dist/index215.js +2 -2
  20. package/dist/index216.js +138 -2
  21. package/dist/index217.js +1 -1
  22. package/dist/index218.js +1 -1
  23. package/dist/index219.js +5 -33
  24. package/dist/index220.js +5 -28
  25. package/dist/index221.js +7 -0
  26. package/dist/index222.js +5 -4
  27. package/dist/index223.js +3 -13
  28. package/dist/index224.js +2 -20
  29. package/dist/index225.js +6 -201
  30. package/dist/index226.js +10 -0
  31. package/dist/index227.js +261 -128
  32. package/dist/index228.js +54 -0
  33. package/dist/index229.js +52 -5
  34. package/dist/index23.js +11 -11
  35. package/dist/index230.js +32 -5
  36. package/dist/index231.js +60 -5
  37. package/dist/index232.js +13 -5
  38. package/dist/index233.js +4 -5
  39. package/dist/index234.js +20 -5
  40. package/dist/index235.js +201 -2
  41. package/dist/index237.js +135 -3
  42. package/dist/index239.js +9 -17
  43. package/dist/index240.js +2 -11
  44. package/dist/index241.js +4 -51
  45. package/dist/index242.js +3 -15
  46. package/dist/index243.js +86 -12
  47. package/dist/index245.js +1 -1
  48. package/dist/index246.js +15 -14
  49. package/dist/index247.js +51 -4
  50. package/dist/index248.js +15 -106
  51. package/dist/index249.js +14 -0
  52. package/dist/index25.js +2 -2
  53. package/dist/index250.js +16 -100
  54. package/dist/index251.js +36 -0
  55. package/dist/index252.js +9 -229
  56. package/dist/index254.js +22 -33
  57. package/dist/index255.js +8 -8
  58. package/dist/index256.js +23 -2
  59. package/dist/index257.js +2 -188
  60. package/dist/index258.js +2 -3
  61. package/dist/index259.js +4 -5
  62. package/dist/index260.js +9 -6
  63. package/dist/index261.js +52 -7
  64. package/dist/index262.js +2 -268
  65. package/dist/index263.js +2 -52
  66. package/dist/index264.js +9 -52
  67. package/dist/index265.js +33 -32
  68. package/dist/index266.js +25 -57
  69. package/dist/index268.js +11 -10
  70. package/dist/index269.js +5 -3
  71. package/dist/index27.js +1 -1
  72. package/dist/index270.js +3 -4
  73. package/dist/index271.js +6 -3
  74. package/dist/index272.js +16 -2
  75. package/dist/index273.js +101 -81
  76. package/dist/index275.js +100 -2
  77. package/dist/index277.js +3 -53
  78. package/dist/index278.js +11 -21
  79. package/dist/index279.js +5 -9
  80. package/dist/index280.js +5 -23
  81. package/dist/index281.js +5 -6
  82. package/dist/index282.js +3 -16
  83. package/dist/index283.js +8 -9
  84. package/dist/index284.js +7 -2
  85. package/dist/index285.js +187 -6
  86. package/dist/index286.js +3 -7
  87. package/dist/index287.js +2 -67
  88. package/dist/index288.js +7 -11
  89. package/dist/index289.js +7 -5
  90. package/dist/index29.js +3 -3
  91. package/dist/index290.js +67 -3
  92. package/dist/index291.js +18 -3
  93. package/dist/index292.js +11 -6
  94. package/dist/index293.js +229 -3
  95. package/dist/index295.js +3 -7
  96. package/dist/index296.js +3 -3
  97. package/dist/index297.js +19 -0
  98. package/dist/index298.js +28 -3
  99. package/dist/index299.js +3 -280
  100. package/dist/index300.js +3 -2
  101. package/dist/index301.js +7 -125
  102. package/dist/index302.js +280 -2
  103. package/dist/index303.js +2 -15
  104. package/dist/index304.js +16 -2
  105. package/dist/index305.js +2 -16
  106. package/dist/index306.js +16 -2
  107. package/dist/index307.js +2 -16
  108. package/dist/index308.js +27 -2
  109. package/dist/index309.js +2 -19
  110. package/dist/index31.js +2 -2
  111. package/dist/index310.js +2 -2
  112. package/dist/index311.js +1 -1
  113. package/dist/index312.js +2 -4
  114. package/dist/index313.js +2 -3
  115. package/dist/index314.js +2 -3
  116. package/dist/index315.js +1 -1
  117. package/dist/index316.js +4 -28
  118. package/dist/index317.js +5 -17
  119. package/dist/index318.js +719 -27
  120. package/dist/index319.js +366 -2
  121. package/dist/index320.js +57 -2
  122. package/dist/index321.js +3 -2
  123. package/dist/index322.js +3 -2
  124. package/dist/index323.js +4 -2
  125. package/dist/index324.js +6 -2
  126. package/dist/index325.js +5 -3
  127. package/dist/index326.js +125 -719
  128. package/dist/index327.js +2 -366
  129. package/dist/index328.js +14 -56
  130. package/dist/index329.js +2 -2
  131. package/dist/index33.js +7 -7
  132. package/dist/index330.js +18 -3
  133. package/dist/index331.js +2 -5
  134. package/dist/index332.js +2 -8
  135. package/dist/index333.js +7 -5
  136. package/dist/index334.js +6 -8
  137. package/dist/index335.js +7 -34
  138. package/dist/index336.js +5 -6
  139. package/dist/index337.js +6 -128
  140. package/dist/index338.js +30 -393
  141. package/dist/index339.js +6 -5
  142. package/dist/index340.js +128 -57
  143. package/dist/index341.js +396 -56
  144. package/dist/index342.js +6 -5
  145. package/dist/index343.js +17 -132
  146. package/dist/index344.js +8 -6
  147. package/dist/index345.js +13 -17
  148. package/dist/index346.js +58 -9
  149. package/dist/index347.js +57 -14
  150. package/dist/index348.js +22 -5
  151. package/dist/index35.js +4 -4
  152. package/dist/index350.js +2 -7
  153. package/dist/index351.js +227 -21
  154. package/dist/index352.js +136 -0
  155. package/dist/index353.js +85 -512
  156. package/dist/index354.js +435 -87
  157. package/dist/index355.js +126 -226
  158. package/dist/index356.js +43 -437
  159. package/dist/index357.js +516 -124
  160. package/dist/index37.js +16 -16
  161. package/dist/index39.js +7 -7
  162. package/dist/index41.js +2 -2
  163. package/dist/index43.js +7 -7
  164. package/dist/index45.js +6 -6
  165. package/dist/index49.js +2 -2
  166. package/dist/index53.js +1 -1
  167. package/dist/index55.js +1 -1
  168. package/dist/index57.js +2 -2
  169. package/dist/index61.js +5 -5
  170. package/dist/index67.js +1 -1
  171. package/dist/index80.js +5 -5
  172. package/dist/index82.js +1 -1
  173. package/dist/index84.js +2 -2
  174. package/dist/index86.js +3 -3
  175. package/dist/index88.js +1 -1
  176. package/dist/index91.js +2 -2
  177. package/dist/index93.js +2 -2
  178. package/dist/index95.js +4 -4
  179. package/dist/index97.js +1 -1
  180. package/package.json +1 -1
  181. package/dist/index236.js +0 -5
  182. package/dist/index238.js +0 -4
  183. package/dist/index244.js +0 -19
  184. package/dist/index267.js +0 -15
  185. package/dist/index276.js +0 -11
  186. package/dist/index294.js +0 -10
  187. package/dist/index349.js +0 -49
package/dist/index246.js CHANGED
@@ -1,18 +1,19 @@
1
- import { isNotNil as n } from "./index144.js";
2
- import { ref as t, onServerPrefetch as u, onBeforeMount as c } from "vue";
3
- const h = ({
4
- fn: i,
5
- onStart: s,
6
- multiple: f,
7
- currentValue: o
1
+ import { computed as u, unref as a } from "vue";
2
+ import { hash as d } from "./index223.js";
3
+ const p = ({
4
+ items: m,
5
+ key: e
8
6
  }) => {
9
- const a = s || !f && n(o) || f && !!o.length, e = t(!1), l = t(!1), r = async () => {
10
- e.value = !0, await i({ prefill: !0 }), e.value = !1, l.value = !0;
11
- };
12
- return a && (u(r), c(async () => {
13
- l.value || await r();
14
- })), { isPrefilling: e, hasPrefilled: l, prefill: r };
7
+ const n = (t) => e ? String(t[e]) : d(t), o = u(() => {
8
+ const t = {}, s = Array.from(a(m) ?? []);
9
+ for (let r = 0; r < s.length; r++) {
10
+ const c = s[r];
11
+ t[n(c)] = c;
12
+ }
13
+ return t;
14
+ });
15
+ return { data: o, get: (t) => o.value[n(t)] };
15
16
  };
16
17
  export {
17
- h as usePrefill
18
+ p as useIndexById
18
19
  };
package/dist/index247.js CHANGED
@@ -1,6 +1,53 @@
1
- import { curry as e } from "./index312.js";
2
- const t = (n, o, r) => n(r) ? o(r) : r, s = e(t);
1
+ import { computed as l, unref as o } from "vue";
2
+ import { useItemText as x } from "./index297.js";
3
+ import { useItemValue as w } from "./index260.js";
4
+ import { hash as y } from "./index223.js";
5
+ import { useLogger as D } from "./index226.js";
6
+ const { getItemText: O } = x(), { getItemValue: V } = w(), { warn: H } = D(), T = (u, c, m, a, d, r) => r ? !1 : !!(c || u.disabled || a && d >= a), q = ({
7
+ items: u,
8
+ disabled: c,
9
+ selectable: m,
10
+ itemText: a,
11
+ itemValue: d,
12
+ selectedIndexedByHash: r,
13
+ max: b = 1 / 0
14
+ }) => {
15
+ const v = l(() => o(c)), p = l(() => o(u)), h = l(
16
+ () => Object.keys(r.value).length
17
+ ), g = o(b), f = (e) => {
18
+ const n = V(e, o(d)), t = y(n), i = O(e, o(a)), s = r.value[t] !== void 0, I = T(
19
+ e,
20
+ v.value,
21
+ m,
22
+ g,
23
+ h.value,
24
+ s
25
+ );
26
+ return {
27
+ item: e,
28
+ text: i,
29
+ value: n,
30
+ valueHash: t,
31
+ selected: s,
32
+ disabled: o(I)
33
+ };
34
+ };
35
+ return {
36
+ options: l(() => {
37
+ const e = [], n = /* @__PURE__ */ new Set();
38
+ for (let t = 0; t < p.value.length; t++) {
39
+ const i = p.value[t];
40
+ i.disabled && H(
41
+ "Disabling an item by passing a disabled option to the item itself is deprecated and will be removed in a future version. Use the `disabled` prop or the `selectable` iteratee prop instead."
42
+ );
43
+ const s = f(i);
44
+ n.has(s.valueHash) || (n.add(s.valueHash), e.push(s));
45
+ }
46
+ return e;
47
+ }),
48
+ createOption: f
49
+ };
50
+ };
3
51
  export {
4
- t as baseWhen,
5
- s as when
52
+ q as useBaseOptions
6
53
  };
package/dist/index248.js CHANGED
@@ -1,108 +1,17 @@
1
- import { defineComponent as y, ref as F, computed as H, watch as N, createElementBlock as L, openBlock as p, Fragment as S, renderList as V, createBlock as A, withModifiers as O, normalizeClass as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
2
- import { hash as d } from "./index237.js";
3
- import { isNil as l } from "./index275.js";
4
- import E from "./index67.js";
5
- /* empty css */
6
- const K = /* @__PURE__ */ y({
7
- __name: "ChipsBox",
8
- props: {
9
- options: {}
10
- },
11
- emits: ["option:unselected"],
12
- setup(f, { expose: v, emit: h }) {
13
- const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
14
- const s = l(n.value) ? -1 : n.value;
15
- let o = (s + e) % t.options.length;
16
- for (; t.options[o].disabled && o !== s; )
17
- o = a(e + 1);
18
- return o;
19
- }, x = () => {
20
- if (!i.value) return;
21
- const e = a();
22
- n.value = e;
23
- }, c = (e = 1) => {
24
- const s = l(n.value) ? 0 : n.value;
25
- let o = (s - e + t.options.length) % t.options.length;
26
- for (; t.options[o].disabled && o !== s; )
27
- o = c(e + 1);
28
- return o;
29
- }, m = async () => {
30
- if (!i.value) return;
31
- const e = c();
32
- n.value = e;
33
- }, w = () => {
34
- if (!i.value) return;
35
- let e = 0;
36
- for (; t.options[e].disabled; )
37
- e++;
38
- n.value = e;
39
- }, b = () => {
40
- if (!i.value) return;
41
- let e = t.options.length - 1;
42
- for (; t.options[e].disabled && e !== 0; )
43
- e--;
44
- n.value = e;
45
- }, I = () => {
46
- if (!i.value) return;
47
- let e = 0;
48
- for (; !t.options[e].selected && t.options.length !== e; )
49
- e++;
50
- n.value = e;
51
- }, g = () => {
52
- if (!i.value) return;
53
- let e = t.options.length - 1;
54
- for (; t.options[e].selected && e !== 0; )
55
- e--;
56
- n.value = e;
57
- }, _ = (e) => {
58
- if (!i.value) return;
59
- const s = t.options.findIndex(
60
- (o) => o.valueHash === e
61
- );
62
- s >= 0 && (n.value = s);
63
- }, r = () => {
64
- n.value = null;
65
- }, k = () => {
66
- if (l(n.value)) return;
67
- const e = t.options[n.value];
68
- e.selected && u("option:unselected", e);
69
- }, C = () => l(n.value) ? void 0 : t.options[n.value];
70
- return N(
71
- () => t.options,
72
- (e, s) => {
73
- d(e) !== d(s) && r();
74
- },
75
- {
76
- flush: "post"
77
- }
78
- ), v({
79
- focusNext: x,
80
- focusPrevious: m,
81
- focusFirst: w,
82
- focusFirstSelected: I,
83
- focusLast: b,
84
- focusLastSelected: g,
85
- blur: r,
86
- confirmOption: k,
87
- focusByHash: _,
88
- getHighlighted: C
89
- }), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
90
- key: o.valueHash,
91
- class: P({
92
- "bb-chipsbox-item": !0,
93
- "bb-chipsbox-item--focused": B === n.value
94
- }),
95
- clearable: !0,
96
- text: o.text,
97
- "onClick:clear": O((M) => u("option:unselected", o), ["stop"])
98
- }, {
99
- default: $(() => [
100
- z(D(o.text), 1)
101
- ]),
102
- _: 2
103
- }, 1032, ["class", "text", "onClick:clear"]))), 128));
104
- }
105
- });
1
+ import { isNil as f } from "./index258.js";
2
+ import { computed as t, unref as o } from "vue";
3
+ const a = ({ modelValue: e, iteratee: h, multiple: u }) => {
4
+ const i = t(
5
+ () => new Array().concat(o(e))
6
+ ), s = t(() => i.value.reduce(
7
+ (r, n) => (h(n) ? r.coherent.push(n) : r.incoherent.push(n), r),
8
+ { coherent: [], incoherent: [] }
9
+ )), c = t(() => u && !o(e).length || !u && f(o(e)) ? !0 : !s.value.incoherent.length);
10
+ return {
11
+ status: s,
12
+ coherent: c
13
+ };
14
+ };
106
15
  export {
107
- K as default
16
+ a as useCoherence
108
17
  };
@@ -0,0 +1,14 @@
1
+ import { hash as e } from "./index223.js";
2
+ import { debouncedWatch as s } from "./index216.js";
3
+ const n = (o, c, h) => {
4
+ s(
5
+ o,
6
+ (r, t) => {
7
+ e(r) !== e(t) && c(r, t);
8
+ },
9
+ h
10
+ );
11
+ };
12
+ export {
13
+ n as useHashedWatcher
14
+ };
package/dist/index25.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as I, mergeModels as M, useModel as W, computed as h, ref as g, watch as N, onMounted as P, createElementBlock as n, openBlock as r, withModifiers as F, normalizeStyle as O, normalizeClass as q, unref as y, createCommentVNode as f, Fragment as A, createElementVNode as a, renderSlot as s, createTextVNode as K, toDisplayString as T, nextTick as R } from "vue";
2
- import { parseSize as U } from "./index267.js";
2
+ import { parseSize as U } from "./index278.js";
3
3
  import { useId as D } from "./index8.js";
4
- import { useLocale as j } from "./index223.js";
4
+ import { useLocale as j } from "./index232.js";
5
5
  import { useMobile as G } from "./index9.js";
6
6
  import { useUntil as J } from "./index253.js";
7
7
  import { wait as w } from "./index140.js";
package/dist/index250.js CHANGED
@@ -1,102 +1,18 @@
1
- import { defineComponent as F, ref as H, computed as L, watch as N, createElementBlock as d, openBlock as v, Fragment as S, renderList as A, withModifiers as O, normalizeClass as P, toDisplayString as V } from "vue";
2
- import { hash as f } from "./index237.js";
3
- import { isNil as i } from "./index275.js";
4
- const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
5
- __name: "CommaBox",
6
- props: {
7
- options: {}
8
- },
9
- emits: ["option:unselected"],
10
- setup(m, { expose: h, emit: x }) {
11
- const t = m, a = x, n = H(null), l = L(() => t.options.some((e) => !e.disabled)), u = (e = 1) => {
12
- const s = i(n.value) ? -1 : n.value;
13
- let o = (s + e) % t.options.length;
14
- for (; t.options[o].disabled && o !== s; )
15
- o = u(e + 1);
16
- return o;
17
- }, b = () => {
18
- if (!l.value) return;
19
- const e = u();
20
- n.value = e;
21
- }, c = (e = 1) => {
22
- const s = i(n.value) ? 0 : n.value;
23
- let o = (s - e + t.options.length) % t.options.length;
24
- for (; t.options[o].disabled && o !== s; )
25
- o = c(e + 1);
26
- return o;
27
- }, w = async () => {
28
- if (!l.value) return;
29
- const e = c();
30
- n.value = e;
31
- }, I = () => {
32
- if (!l.value) return;
33
- let e = 0;
34
- for (; t.options[e].disabled; )
35
- e++;
36
- n.value = e;
37
- }, g = () => {
38
- if (!l.value) return;
39
- let e = t.options.length - 1;
40
- for (; t.options[e].disabled && e !== 0; )
41
- e--;
42
- n.value = e;
43
- }, k = () => {
44
- if (!l.value) return;
45
- let e = 0;
46
- for (; !t.options[e].selected && t.options.length !== e; )
47
- e++;
48
- n.value = e;
49
- }, _ = () => {
50
- if (!l.value) return;
51
- let e = t.options.length - 1;
52
- for (; t.options[e].selected && e !== 0; )
53
- e--;
54
- n.value = e;
55
- }, C = (e) => {
56
- if (!l.value) return;
57
- const s = t.options.findIndex(
58
- (o) => o.valueHash === e
59
- );
60
- s >= 0 && (n.value = s);
61
- }, r = () => {
62
- n.value = null;
63
- }, y = () => {
64
- if (i(n.value)) return;
65
- const e = t.options[n.value];
66
- e.selected && a("option:unselected", e);
67
- }, B = () => i(n.value) ? void 0 : t.options[n.value];
68
- return N(
69
- () => t.options,
70
- (e, s) => {
71
- f(e) !== f(s) && r();
72
- },
73
- {
74
- flush: "post"
75
- }
76
- ), h({
77
- focusNext: b,
78
- focusPrevious: w,
79
- focusFirst: I,
80
- focusFirstSelected: k,
81
- focusLast: g,
82
- focusLastSelected: _,
83
- blur: r,
84
- confirmOption: y,
85
- focusByHash: C,
86
- getHighlighted: B
87
- }), (e, s) => (v(!0), d(S, null, A(e.options, (o, p) => (v(), d("span", {
88
- key: o.valueHash,
89
- class: P({
90
- "bb-commabox-item": !0,
91
- "bb-commabox-item--focused": p === n.value,
92
- "bb-commabox-item--has-comma": p !== e.options.length - 1
93
- }),
94
- clearable: !0,
95
- text: o.text,
96
- "onClick:clear": O((D) => a("option:unselected", o), ["stop"])
97
- }, V(o.text), 43, z))), 128));
98
- }
99
- });
1
+ import { isNotNil as n } from "./index144.js";
2
+ import { ref as t, onServerPrefetch as u, onBeforeMount as c } from "vue";
3
+ const h = ({
4
+ fn: i,
5
+ onStart: s,
6
+ multiple: f,
7
+ currentValue: o
8
+ }) => {
9
+ const a = s || !f && n(o) || f && !!o.length, e = t(!1), l = t(!1), r = async () => {
10
+ e.value = !0, await i({ prefill: !0 }), e.value = !1, l.value = !0;
11
+ };
12
+ return a && (u(r), c(async () => {
13
+ l.value || await r();
14
+ })), { isPrefilling: e, hasPrefilled: l, prefill: r };
15
+ };
100
16
  export {
101
- j as default
17
+ h as usePrefill
102
18
  };
@@ -0,0 +1,36 @@
1
+ import { defineComponent as a, resolveComponent as o, createBlock as u, openBlock as l, resolveDynamicComponent as m, unref as c, withCtx as p, renderSlot as f } from "vue";
2
+ import { _config as e } from "./index4.js";
3
+ import { useLogger as i } from "./index226.js";
4
+ import { useFrameworkDetection as k } from "./index252.js";
5
+ const y = /* @__PURE__ */ a({
6
+ __name: "RouterComponent",
7
+ setup(g) {
8
+ const { isInertia: r, isNuxt: s } = k();
9
+ let t;
10
+ if (r) {
11
+ if (t = o(e.inertiaLinkName), typeof t == "string") {
12
+ const { warn: n } = i();
13
+ n(
14
+ `Inertia link component "${e.inertiaLinkName}" could not be resolved. Ensure you app registers a link component with the name "${e.inertiaLinkName}" or set bitboss-ui config key "inertiaLinkName" to the correct value globally. Please visit ${e.documentationURL}/getting-started to resolve setup issues in bitboss-ui.`
15
+ );
16
+ }
17
+ } else if (s) {
18
+ if (t = o(e.nuxtLinkName), typeof t == "string") {
19
+ const { warn: n } = i();
20
+ n(
21
+ `Nuxt link component "${e.nuxtLinkName}" could not be resolved. Ensure you app registers a link component with the name "${e.nuxtLinkName}" or set bitboss-ui config key "nuxtLinkName" to the correct value globally. Please visit ${e.documentationURL}/getting-started to resolve setup issues in bitboss-ui.`
22
+ );
23
+ }
24
+ } else
25
+ t = "router-link";
26
+ return (n, d) => (l(), u(m(c(t)), null, {
27
+ default: p(() => [
28
+ f(n.$slots, "default")
29
+ ]),
30
+ _: 3
31
+ }));
32
+ }
33
+ });
34
+ export {
35
+ y as default
36
+ };
package/dist/index252.js CHANGED
@@ -1,231 +1,11 @@
1
- import { defineComponent as Z, useTemplateRef as $, computed as c, ref as w, watch as E, createElementBlock as r, openBlock as p, withModifiers as ee, normalizeStyle as h, normalizeClass as z, createElementVNode as v, renderSlot as m, createTextVNode as D, toDisplayString as g, unref as L, Fragment as te, renderList as oe } from "vue";
2
- import { isNil as b } from "./index275.js";
3
- import { useVirtualizer as ne } from "./index349.js";
4
- import { isNotNil as le } from "./index144.js";
5
- import { hash as N } from "./index237.js";
6
- import { useLocale as ie } from "./index223.js";
7
- const se = { class: "bb-listbox__outer-container scrollbar-border" }, ae = {
8
- ref: "inner",
9
- class: "bb-listbox__inner-container",
10
- tabindex: "-1"
11
- }, ue = {
12
- key: 0,
13
- class: "bb-listbox__loading"
14
- }, re = {
15
- key: 1,
16
- class: "bb-listbox__no-data"
17
- }, pe = ["aria-selected", "data-index"], de = { class: "autocomplete-option__label" }, he = /* @__PURE__ */ Z({
18
- __name: "ListBox",
19
- props: {
20
- compact: { type: Boolean },
21
- options: {},
22
- open: { type: Boolean },
23
- loading: { type: Boolean },
24
- multiple: { type: Boolean },
25
- transitionDuration: { default: 250 },
26
- loadingText: {},
27
- noDataText: {},
28
- optionHeight: {}
29
- },
30
- emits: ["option:selected", "option:unselected"],
31
- setup(V, { expose: R, emit: F }) {
32
- const o = V, _ = F, { t: y } = ie(), u = $("inner"), O = $("listbox"), C = (e) => "option_" + JSON.stringify(e).replace(/\W/g, "_"), i = c(
33
- () => o.options.map((e) => ({ ...e, id: C(e.value) }))
34
- ), x = c(() => o.optionHeight ? o.optionHeight : o.compact ? 32 : 40), d = ne({
35
- get count() {
36
- return o.options.length;
37
- },
38
- getScrollElement: () => u.value ? u.value : null,
39
- estimateSize: () => x.value,
40
- overscan: 5,
41
- measureElement: () => x.value,
42
- useAnimationFrameWithResizeObserver: !0
43
- }), A = (e) => {
44
- e && d.value.measureElement(e);
45
- }, M = c(() => d.value.getVirtualItems()), P = c(() => d.value.getTotalSize()), n = w(null), s = c(
46
- () => o.open && o.options.some((e) => !e.disabled)
47
- ), I = (e = 1) => {
48
- const l = b(n.value) ? -1 : n.value;
49
- let t = (l + e) % o.options.length;
50
- for (; o.options[t].disabled && t !== l; )
51
- t = I(e + 1);
52
- return t;
53
- }, W = () => {
54
- if (!s.value) return;
55
- const e = I();
56
- n.value = e, a();
57
- }, S = (e = 1) => {
58
- const l = b(n.value) ? 0 : n.value;
59
- let t = (l - e + o.options.length) % o.options.length;
60
- for (; o.options[t].disabled && t !== l; )
61
- t = S(e + 1);
62
- return t;
63
- }, J = async () => {
64
- if (!s.value) return;
65
- const e = S();
66
- n.value = e, a();
67
- }, Y = () => {
68
- if (!s.value) return;
69
- let e = 0;
70
- for (; o.options[e].disabled; )
71
- e++;
72
- n.value = e, a();
73
- }, j = () => {
74
- if (!s.value) return;
75
- let e = o.options.length - 1;
76
- for (; o.options[e].disabled && e !== 0; )
77
- e--;
78
- n.value = e, a();
79
- }, q = () => {
80
- if (!s.value) return;
81
- let e = 0;
82
- for (; o.options[e] && !o.options[e].selected && o.options.length !== e; )
83
- e++;
84
- n.value = e % o.options.length, a();
85
- }, G = () => {
86
- if (!s.value) return;
87
- let e = o.options.length - 1;
88
- for (; o.options[e].selected && e > 0; )
89
- e--;
90
- n.value = e === -1 ? o.options.length - 1 : e, a();
91
- }, K = (e) => {
92
- if (!s.value) return;
93
- const l = o.options.findIndex(
94
- (t) => t.valueHash === e
95
- );
96
- l >= 0 && (n.value = l), a();
97
- }, k = () => {
98
- n.value = null;
99
- }, a = () => {
100
- u.value && le(n.value) && d.value.scrollToIndex(n.value, {
101
- align: "center",
102
- behavior: "smooth"
103
- });
104
- }, H = () => {
105
- if (b(n.value) || !o.open) return;
106
- const e = o.options[n.value];
107
- e.selected ? _("option:unselected", e) : _("option:selected", e);
108
- }, T = w(0), B = () => {
109
- u.value && (T.value = u.value.scrollHeight);
110
- }, Q = (e) => !e.disabled, U = (e) => {
111
- if (e.preventDefault(), u.value && e.target && e.target instanceof HTMLElement && O.value) {
112
- let l = e.target, t = l.dataset.index;
113
- for (; b(t) && l.parentElement; )
114
- l = l.parentElement, t = l.dataset.index;
115
- if (t) {
116
- const f = o.options[+t];
117
- f && Q(f) && (n.value = +t, H());
118
- }
119
- }
120
- }, X = () => b(n.value) ? void 0 : o.options[n.value];
121
- return E(
122
- () => o.open,
123
- () => {
124
- B();
125
- },
126
- { flush: "post" }
127
- ), E(
128
- () => o.options,
129
- (e, l) => {
130
- N(e.map((t) => t.valueHash)) !== N(l.map((t) => t.valueHash)) && (d.value.calculateRange(), B(), k());
131
- },
132
- {
133
- flush: "post"
134
- }
135
- ), R({
136
- focusNext: W,
137
- focusPrevious: J,
138
- focusFirst: Y,
139
- focusFirstSelected: q,
140
- focusLast: j,
141
- focusLastSelected: G,
142
- blur: k,
143
- confirmOption: H,
144
- focusByHash: K,
145
- getHighlighted: X
146
- }), (e, l) => (p(), r("span", {
147
- class: z(["bb-listbox", {
148
- "bb-listbox--compact": e.compact,
149
- "bb-listbox--loading": e.loading,
150
- "bb-listbox--multiple": e.multiple,
151
- "bb-listbox--no-data": !i.value.length,
152
- "bb-listbox--open": e.open
153
- }]),
154
- style: h({
155
- "--transition-duration": `${e.transitionDuration}ms`,
156
- "--overlay-min-height": `${T.value}px`,
157
- "--option-height": `${x.value}px`
158
- }),
159
- onClick: ee(U, ["stop"])
160
- }, [
161
- v("span", se, [
162
- v("span", ae, [
163
- m(e.$slots, "options:prepend"),
164
- e.loading && !e.options.length ? (p(), r("span", ue, [
165
- m(e.$slots, "loading", {}, () => [
166
- D(g(e.loadingText || L(y)("common.loadingText").value), 1)
167
- ])
168
- ])) : e.options.length ? (p(), r("span", {
169
- key: 2,
170
- role: "listbox",
171
- ref: "listbox",
172
- style: h({
173
- height: `${P.value}px`
174
- }),
175
- tabindex: "-1"
176
- }, [
177
- (p(!0), r(te, null, oe(M.value, (t, f) => (p(), r("span", {
178
- key: i.value[t.index].value,
179
- ref_for: !0,
180
- ref: A,
181
- "aria-selected": n.value === f ? !0 : void 0,
182
- class: z({
183
- "bb-listbox__option autocomplete-option": !0,
184
- "autocomplete-option--focused": n.value === t.index,
185
- "autocomplete-option--selected": i.value[t.index].selected,
186
- "autocomplete-option--disabled": i.value[t.index].disabled
187
- }),
188
- "data-index": t.index,
189
- role: "option",
190
- style: h({
191
- transform: `translateY(${t.start}px)`
192
- })
193
- }, [
194
- m(e.$slots, "option", {
195
- disabled: !!i.value[t.index].disabled,
196
- focused: n.value === t.index,
197
- index: t.index,
198
- item: i.value[t.index].item,
199
- selected: !!i.value[t.index].selected,
200
- text: i.value[t.index].text,
201
- value: i.value[t.index].value
202
- }, () => [
203
- l[0] || (l[0] = v("svg", {
204
- class: "autocomplete-option__checkbox",
205
- role: "presentation",
206
- viewBox: "276.411 158.834 114.971 114.97"
207
- }, [
208
- v("path", {
209
- d: "M 297.574 224.786 L 318.309 243.134 L 371.568 189.232",
210
- fill: "none",
211
- "stroke-linecap": "round",
212
- "stroke-width": "14px"
213
- })
214
- ], -1)),
215
- v("span", de, g(i.value[t.index].text), 1)
216
- ])
217
- ], 14, pe))), 128))
218
- ], 4)) : (p(), r("span", re, [
219
- m(e.$slots, "no-data", {}, () => [
220
- D(g(e.noDataText || L(y)("common.noDataText").value), 1)
221
- ])
222
- ])),
223
- m(e.$slots, "options:append")
224
- ], 512)
225
- ])
226
- ], 6));
227
- }
228
- });
1
+ import { getCurrentInstance as e } from "vue";
2
+ const s = () => {
3
+ const t = e(), n = !!t?.proxy?.$inertia, r = !!t?.proxy?.$nuxt;
4
+ return {
5
+ isInertia: n,
6
+ isNuxt: r
7
+ };
8
+ };
229
9
  export {
230
- he as default
10
+ s as useFrameworkDetection
231
11
  };