bitboss-ui 2.1.76 → 2.1.78

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/components/BbDropdown/BbDropdown.vue.d.ts +23 -2
  2. package/dist/components/BbPopover/BbPopover.vue.d.ts +34 -9
  3. package/dist/components/BbTooltip/BbTooltip.vue.d.ts +6 -0
  4. package/dist/components/CommonPopover.vue.d.ts +5 -0
  5. package/dist/index.css +1 -1
  6. package/dist/index107.js +9 -9
  7. package/dist/index112.js +1 -1
  8. package/dist/index114.js +1 -1
  9. package/dist/index120.js +1 -1
  10. package/dist/index122.js +13 -13
  11. package/dist/index13.js +2 -2
  12. package/dist/index130.js +1 -1
  13. package/dist/index132.js +5 -5
  14. package/dist/index134.js +1 -1
  15. package/dist/index136.js +2 -2
  16. package/dist/index139.js +1 -1
  17. package/dist/index142.js +1 -1
  18. package/dist/index143.js +2 -2
  19. package/dist/index15.js +5 -5
  20. package/dist/index17.js +3 -3
  21. package/dist/index19.js +8 -8
  22. package/dist/index21.js +13 -13
  23. package/dist/index215.js +2 -2
  24. package/dist/index216.js +2 -2
  25. package/dist/index217.js +5 -7
  26. package/dist/index218.js +8 -2
  27. package/dist/index219.js +32 -4
  28. package/dist/index220.js +28 -8
  29. package/dist/index222.js +4 -2
  30. package/dist/index223.js +13 -2
  31. package/dist/index224.js +20 -2
  32. package/dist/index225.js +200 -12
  33. package/dist/index227.js +135 -3
  34. package/dist/index23.js +11 -11
  35. package/dist/index230.js +49 -16
  36. package/dist/index231.js +16 -11
  37. package/dist/index232.js +105 -50
  38. package/dist/index234.js +100 -12
  39. package/dist/index236.js +3 -29
  40. package/dist/index237.js +5 -16
  41. package/dist/index238.js +5 -4
  42. package/dist/index239.js +5 -106
  43. package/dist/index240.js +7 -0
  44. package/dist/index241.js +5 -100
  45. package/dist/index242.js +7 -0
  46. package/dist/index243.js +2 -127
  47. package/dist/index245.js +3 -229
  48. package/dist/index246.js +2 -13
  49. package/dist/index247.js +11 -3
  50. package/dist/index248.js +8 -5
  51. package/dist/index249.js +13 -5
  52. package/dist/index25.js +3 -3
  53. package/dist/index250.js +13 -5
  54. package/dist/index251.js +4 -5
  55. package/dist/index252.js +23 -5
  56. package/dist/index253.js +3 -5
  57. package/dist/index254.js +3 -20
  58. package/dist/index255.js +17 -32
  59. package/dist/index256.js +12 -28
  60. package/dist/{index233.js → index257.js} +1 -1
  61. package/dist/index258.js +12 -34
  62. package/dist/index259.js +29 -2
  63. package/dist/index260.js +15 -6
  64. package/dist/index261.js +4 -7
  65. package/dist/index262.js +229 -10
  66. package/dist/index263.js +9 -2
  67. package/dist/index264.js +3 -4
  68. package/dist/index265.js +67 -3
  69. package/dist/index266.js +2 -4
  70. package/dist/index267.js +3 -201
  71. package/dist/index268.js +11 -0
  72. package/dist/index269.js +8 -85
  73. package/dist/index27.js +1 -1
  74. package/dist/index270.js +25 -0
  75. package/dist/index271.js +5 -5
  76. package/dist/index272.js +6 -6
  77. package/dist/index273.js +15 -7
  78. package/dist/index274.js +3 -268
  79. package/dist/index275.js +30 -48
  80. package/dist/index276.js +9 -52
  81. package/dist/index277.js +5 -32
  82. package/dist/index278.js +6 -60
  83. package/dist/index279.js +268 -9
  84. package/dist/index280.js +50 -21
  85. package/dist/index281.js +50 -7
  86. package/dist/index282.js +31 -7
  87. package/dist/index283.js +59 -8
  88. package/dist/index284.js +2 -23
  89. package/dist/index285.js +85 -12
  90. package/dist/index287.js +7 -65
  91. package/dist/index288.js +8 -6
  92. package/dist/index289.js +7 -16
  93. package/dist/index29.js +3 -3
  94. package/dist/index290.js +2 -41
  95. package/dist/index291.js +7 -11
  96. package/dist/index292.js +7 -3
  97. package/dist/index293.js +43 -0
  98. package/dist/index295.js +3 -5
  99. package/dist/index296.js +4 -7
  100. package/dist/index297.js +7 -3
  101. package/dist/index298.js +1 -1
  102. package/dist/index299.js +1 -1
  103. package/dist/index300.js +17 -2
  104. package/dist/index301.js +2 -28
  105. package/dist/index302.js +3 -17
  106. package/dist/index303.js +2 -4
  107. package/dist/index304.js +27 -279
  108. package/dist/index305.js +4 -2
  109. package/dist/index306.js +3 -125
  110. package/dist/index307.js +5 -2
  111. package/dist/index308.js +278 -13
  112. package/dist/index309.js +2 -2
  113. package/dist/index31.js +2 -2
  114. package/dist/index310.js +121 -12
  115. package/dist/index311.js +2 -2
  116. package/dist/index312.js +10 -11
  117. package/dist/index314.js +12 -15
  118. package/dist/index316.js +16 -2
  119. package/dist/index317.js +2 -3
  120. package/dist/index318.js +19 -5
  121. package/dist/index319.js +2 -3
  122. package/dist/index320.js +5 -2
  123. package/dist/index323.js +1 -1
  124. package/dist/index324.js +1 -1
  125. package/dist/index325.js +1 -1
  126. package/dist/index326.js +1 -1
  127. package/dist/index327.js +1 -1
  128. package/dist/index328.js +719 -6
  129. package/dist/index329.js +366 -4
  130. package/dist/index33.js +8 -8
  131. package/dist/index330.js +57 -719
  132. package/dist/index331.js +2 -366
  133. package/dist/index332.js +3 -57
  134. package/dist/index333.js +6 -58
  135. package/dist/index334.js +35 -58
  136. package/dist/index335.js +6 -47
  137. package/dist/index336.js +125 -31
  138. package/dist/index337.js +398 -6
  139. package/dist/index338.js +44 -126
  140. package/dist/index339.js +7 -397
  141. package/dist/index340.js +5 -7
  142. package/dist/index341.js +8 -6
  143. package/dist/index342.js +57 -7
  144. package/dist/index343.js +57 -92
  145. package/dist/index344.js +1 -1
  146. package/dist/index345.js +85 -512
  147. package/dist/index346.js +5 -134
  148. package/dist/index347.js +7 -5
  149. package/dist/index348.js +18 -6
  150. package/dist/index349.js +8 -18
  151. package/dist/index35.js +4 -4
  152. package/dist/index350.js +14 -8
  153. package/dist/index351.js +6 -14
  154. package/dist/index352.js +133 -6
  155. package/dist/index353.js +515 -45
  156. package/dist/index356.js +44 -435
  157. package/dist/index357.js +427 -114
  158. package/dist/index358.js +130 -0
  159. package/dist/index37.js +17 -17
  160. package/dist/index39.js +6 -6
  161. package/dist/index41.js +2 -2
  162. package/dist/index43.js +8 -8
  163. package/dist/index45.js +5 -5
  164. package/dist/index49.js +20 -20
  165. package/dist/index53.js +1 -1
  166. package/dist/index55.js +1 -1
  167. package/dist/index57.js +2 -2
  168. package/dist/index61.js +4 -4
  169. package/dist/index67.js +1 -1
  170. package/dist/index80.js +209 -156
  171. package/dist/index82.js +1 -1
  172. package/dist/index84.js +2 -2
  173. package/dist/index86.js +3 -3
  174. package/dist/index88.js +1 -1
  175. package/dist/index91.js +3 -3
  176. package/dist/index93.js +2 -2
  177. package/dist/index95.js +160 -100
  178. package/dist/index97.js +1 -1
  179. package/dist/types/CommonProps.d.ts +1 -1
  180. package/dist/utilities/functions/isNotEmpty.d.ts +1 -0
  181. package/package.json +1 -1
  182. package/dist/index221.js +0 -7
  183. package/dist/index226.js +0 -11
  184. package/dist/index228.js +0 -5
  185. package/dist/index235.js +0 -19
  186. package/dist/index294.js +0 -5
  187. /package/dist/{index286.js → index244.js} +0 -0
package/dist/index25.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as I, mergeModels as M, useModel as W, computed as v, 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 h, createCommentVNode as b, 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 "./index285.js";
2
+ import { parseSize as U } from "./index249.js";
3
3
  import { useId as D } from "./index8.js";
4
- import { useLocale as j } from "./index225.js";
4
+ import { useLocale as j } from "./index223.js";
5
5
  import { useMobile as G } from "./index9.js";
6
- import { useUntil as J } from "./index246.js";
6
+ import { useUntil as J } from "./index250.js";
7
7
  import { wait as y } from "./index140.js";
8
8
  import { _config as Q } from "./index4.js";
9
9
  const X = ["aria-describedby", "aria-labelledby", "aria-live", "inert"], Y = {
package/dist/index250.js CHANGED
@@ -1,7 +1,15 @@
1
- import { getDefaultExportFromCjs as r } from "./index328.js";
2
- import { __require as e } from "./index308.js";
3
- var o = e();
4
- const m = /* @__PURE__ */ r(o);
1
+ import { ref as c, watch as f, toValue as u } from "vue";
2
+ const p = (e, { initialValue: r = !1, nextValue: o = !0 } = {}) => {
3
+ const t = c(r);
4
+ if (r) return t;
5
+ const n = f(
6
+ () => u(e),
7
+ (s) => {
8
+ s && (t.value = o, n());
9
+ }
10
+ );
11
+ return t;
12
+ };
5
13
  export {
6
- m as default
14
+ p as useUntil
7
15
  };
package/dist/index251.js CHANGED
@@ -1,7 +1,6 @@
1
- import { getDefaultExportFromCjs as r } from "./index328.js";
2
- import { __require as e } from "./index310.js";
3
- var t = e();
4
- const m = /* @__PURE__ */ r(t);
1
+ function e(n) {
2
+ return n ? n instanceof HTMLElement ? n : typeof n == "object" && "$el" in n && n.$el instanceof HTMLElement ? n.$el : typeof n == "object" && "el" in n && n.el instanceof HTMLElement ? n.el : null : null;
3
+ }
5
4
  export {
6
- m as default
5
+ e as extractDomContainer
7
6
  };
package/dist/index252.js CHANGED
@@ -1,7 +1,25 @@
1
- import { getDefaultExportFromCjs as r } from "./index328.js";
2
- import { __require as e } from "./index312.js";
3
- var o = e();
4
- const m = /* @__PURE__ */ r(o);
1
+ const i = (t) => {
2
+ const n = t.toString().replace(/\.0+$/, "").replace(/\.$/, "");
3
+ return parseFloat(n) || 0;
4
+ };
5
+ function s(t) {
6
+ if (typeof t == "number")
7
+ return {
8
+ value: i(t),
9
+ unit: "px"
10
+ };
11
+ if (typeof t == "string") {
12
+ const r = /^(-?\d*\.?\d+)([a-zA-Z%]*)?$/, e = t.match(r);
13
+ if (e) {
14
+ const [, n, o = "px"] = e, a = parseFloat(n);
15
+ return {
16
+ value: i(a),
17
+ unit: o
18
+ };
19
+ }
20
+ }
21
+ throw new Error(`Invalid width: ${t}`);
22
+ }
5
23
  export {
6
- m as default
24
+ s as parseWidthString
7
25
  };
package/dist/index253.js CHANGED
@@ -1,7 +1,5 @@
1
- import { getDefaultExportFromCjs as r } from "./index328.js";
2
- import { __require as t } from "./index314.js";
3
- var o = t();
4
- const a = /* @__PURE__ */ r(o);
1
+ import r from "./index307.js";
2
+ const t = r;
5
3
  export {
6
- a as default
4
+ t as deburr
7
5
  };
package/dist/index254.js CHANGED
@@ -1,22 +1,5 @@
1
- import { MaskInput as r } from "./index286.js";
2
- const u = /* @__PURE__ */ new WeakMap(), p = (a, n) => {
3
- if (a.arg == null || a.instance == null) return;
4
- const s = "setup" in a.instance.$.type;
5
- a.arg in a.instance ? a.instance[a.arg] = n : s && console.warn("Maska: please expose `%s` using defineExpose", a.arg);
6
- }, k = (a, n) => {
7
- var s;
8
- const t = a instanceof HTMLInputElement ? a : a.querySelector("input");
9
- if (t == null || t?.type === "file") return;
10
- let e = {};
11
- if (n.value != null && (e = typeof n.value == "string" ? { mask: n.value } : { ...n.value }), n.arg != null) {
12
- const l = (o) => {
13
- const i = n.modifiers.unmasked ? o.unmasked : n.modifiers.completed ? o.completed : o.masked;
14
- p(n, i);
15
- };
16
- e.onMaska = e.onMaska == null ? l : Array.isArray(e.onMaska) ? [...e.onMaska, l] : [e.onMaska, l];
17
- }
18
- u.has(t) ? (s = u.get(t)) == null || s.update(e) : u.set(t, new r(t, e));
19
- };
1
+ import { hash as o } from "./index304.js";
2
+ const t = (r, h = "bb") => `${h}${o(r)}`;
20
3
  export {
21
- k as vMaska
4
+ t as hash
22
5
  };
package/dist/index255.js CHANGED
@@ -1,35 +1,20 @@
1
- import { createElementBlock as e, openBlock as t, createElementVNode as o } from "vue";
2
- /* empty css */
3
- import n from "./index213.js";
4
- const l = {}, s = {
5
- class: "bb-error-icon",
6
- fill: "none",
7
- viewBox: "0 0 20 20",
8
- xmlns: "http://www.w3.org/2000/svg"
1
+ import { isNil as c } from "./index284.js";
2
+ const a = (t, r) => {
3
+ if (!Object.prototype.hasOwnProperty.call(t, r))
4
+ throw new Error(
5
+ `Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
6
+ );
7
+ }, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
8
+ const i = s.toLocaleLowerCase();
9
+ for (let e = 0; e < r.length; e++) {
10
+ const n = r[e];
11
+ a(t, n);
12
+ const o = t[n];
13
+ if (c(o)) continue;
14
+ if (l(o).includes(i)) return !0;
15
+ }
16
+ return !1;
9
17
  };
10
- function i(c, r) {
11
- return t(), e("svg", s, r[0] || (r[0] = [
12
- o("path", {
13
- d: "M9.99422 18.3333C14.5966 18.3333 18.3276 14.6024 18.3276 9.99999C18.3276 5.39762 14.5966 1.66666 9.99422 1.66666C5.39185 1.66666 1.66089 5.39762 1.66089 9.99999C1.66089 14.6024 5.39185 18.3333 9.99422 18.3333Z",
14
- fill: "currentColor"
15
- }, null, -1),
16
- o("path", {
17
- d: "M9.99414 6.66666V9.99999",
18
- stroke: "white",
19
- "stroke-linecap": "round",
20
- "stroke-linejoin": "round",
21
- "stroke-width": "2"
22
- }, null, -1),
23
- o("path", {
24
- d: "M9.99414 13.3333H10.0025",
25
- stroke: "white",
26
- "stroke-linecap": "round",
27
- "stroke-linejoin": "round",
28
- "stroke-width": "2"
29
- }, null, -1)
30
- ]));
31
- }
32
- const a = /* @__PURE__ */ n(l, [["render", i]]);
33
18
  export {
34
- a as default
19
+ y as matchAnyKey
35
20
  };
package/dist/index256.js CHANGED
@@ -1,30 +1,14 @@
1
- import { defineComponent as l, createElementBlock as n, openBlock as r, unref as a, createElementVNode as t } from "vue";
2
- import { useLocale as s } from "./index225.js";
3
- const c = ["aria-label"], b = /* @__PURE__ */ l({
4
- __name: "ClearableButton",
5
- setup(u) {
6
- const { t: o } = s();
7
- return (i, e) => (r(), n("button", {
8
- "aria-label": a(o)("common.clearLabel").value,
9
- class: "bb-clearable-button",
10
- type: "button"
11
- }, e[0] || (e[0] = [
12
- t("svg", {
13
- viewBox: "0 0 24 24",
14
- xmlns: "http://www.w3.org/2000/svg"
15
- }, [
16
- t("path", {
17
- d: "M12 12l7 7M12 12l-7 -7M12 12l-7 7M12 12l7 -7",
18
- fill: "none",
19
- stroke: "currentColor",
20
- "stroke-linecap": "round",
21
- "stroke-linejoin": "round",
22
- "stroke-width": "2"
23
- })
24
- ], -1)
25
- ]), 8, c));
26
- }
27
- });
1
+ import { ref as t } from "vue";
2
+ const n = () => {
3
+ const e = t([]);
4
+ return { array: e, set: (...r) => {
5
+ e.value = r;
6
+ }, add: (...r) => {
7
+ e.value.push(...r);
8
+ }, remove: (r) => {
9
+ e.value = e.value.filter(r);
10
+ } };
11
+ };
28
12
  export {
29
- b as default
13
+ n as useArray
30
14
  };
@@ -1,4 +1,4 @@
1
- import { isNil as f } from "./index218.js";
1
+ import { isNil as f } from "./index284.js";
2
2
  import { computed as t, unref as o } from "vue";
3
3
  const a = ({ modelValue: e, iteratee: h, multiple: u }) => {
4
4
  const i = t(
package/dist/index258.js CHANGED
@@ -1,36 +1,14 @@
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 "./index273.js";
4
- import { useFrameworkDetection as k } from "./index226.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
- });
1
+ import { hash as e } from "./index254.js";
2
+ import { debouncedWatch as s } from "./index214.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
+ };
34
12
  export {
35
- y as default
13
+ n as useHashedWatcher
36
14
  };
package/dist/index259.js CHANGED
@@ -1,4 +1,31 @@
1
- const o = (e) => e[0];
1
+ import { ref as a, computed as s, unref as v } from "vue";
2
+ import { useDebounceFn as f } from "./index214.js";
3
+ const p = (u) => {
4
+ const e = a(0), r = s(() => v(u.items)), t = a([]), n = async (...l) => {
5
+ if (Array.isArray(r.value))
6
+ t.value = r.value;
7
+ else if (typeof r.value == "function") {
8
+ const i = ++e.value;
9
+ try {
10
+ const o = await r.value(...l);
11
+ if (i < e.value) {
12
+ e.value--;
13
+ return;
14
+ } else
15
+ t.value = o;
16
+ } catch (o) {
17
+ console.error(o);
18
+ }
19
+ e.value--;
20
+ }
21
+ }, c = f(n, u.debounce || 0);
22
+ return {
23
+ getter: n,
24
+ debouncedGetter: c,
25
+ items: t,
26
+ loading: s(() => !!e.value)
27
+ };
28
+ };
2
29
  export {
3
- o as head
30
+ p as useItemsGetter
4
31
  };
package/dist/index260.js CHANGED
@@ -1,9 +1,18 @@
1
- const s = (e, t, o, r) => {
2
- if (r <= 0) throw new Error("Step must be a positive number");
3
- if (t > o) throw new Error("Min must be less than or equal to Max");
4
- const n = Math.max(t, Math.min(o, e)), a = Math.round((n - t) / r);
5
- return t + a * r;
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 };
6
15
  };
7
16
  export {
8
- s as snapToStep
17
+ h as usePrefill
9
18
  };
package/dist/index261.js CHANGED
@@ -1,9 +1,6 @@
1
- function o(t, e, n, r, a) {
2
- if (n === e)
3
- throw new Error("Original boundaries cannot be equal.");
4
- const c = (t - e) / (n - e);
5
- return r + c * (a - r);
6
- }
1
+ import { curry as e } from "./index305.js";
2
+ const t = (n, o, r) => n(r) ? o(r) : r, s = e(t);
7
3
  export {
8
- o as transpose
4
+ t as baseWhen,
5
+ s as when
9
6
  };
package/dist/index262.js CHANGED
@@ -1,12 +1,231 @@
1
- const o = (t, r) => {
2
- const e = {};
3
- for (const c in t)
4
- if (Object.prototype.hasOwnProperty.call(t, c)) {
5
- const n = t[c];
6
- r(n, c, t) && (e[c] = n);
7
- }
8
- return e;
9
- };
1
+ import { defineComponent as U, ref as f, computed as x, watch as D, createElementBlock as d, openBlock as p, withModifiers as X, normalizeStyle as h, normalizeClass as $, createElementVNode as v, renderSlot as m, createTextVNode as z, toDisplayString as g, unref as H, Fragment as Z, renderList as ee } from "vue";
2
+ import { isNil as b } from "./index284.js";
3
+ import { useVirtualizer as te } from "./index338.js";
4
+ import { isNotNil as oe } from "./index144.js";
5
+ import { hash as L } from "./index254.js";
6
+ import { useLocale as ne } from "./index223.js";
7
+ const le = { class: "bb-listbox__outer-container scrollbar-border" }, ie = {
8
+ key: 0,
9
+ class: "bb-listbox__loading"
10
+ }, se = {
11
+ key: 1,
12
+ class: "bb-listbox__no-data"
13
+ }, ae = ["aria-selected", "data-index"], ue = { class: "autocomplete-option__label" }, be = /* @__PURE__ */ U({
14
+ __name: "ListBox",
15
+ props: {
16
+ compact: { type: Boolean },
17
+ options: {},
18
+ open: { type: Boolean },
19
+ loading: { type: Boolean },
20
+ multiple: { type: Boolean },
21
+ transitionDuration: { default: 250 },
22
+ loadingText: {},
23
+ noDataText: {}
24
+ },
25
+ emits: ["option:selected", "option:unselected"],
26
+ setup(N, { expose: V, emit: O }) {
27
+ const o = N, y = O, { t: I } = ne(), s = f(null), C = (e) => "option_" + JSON.stringify(e).replace(/\W/g, "_"), i = x(
28
+ () => o.options.map((e) => ({ ...e, id: C(e.value) }))
29
+ ), c = te({
30
+ get count() {
31
+ return o.options.length;
32
+ },
33
+ getScrollElement: () => s.value ? s.value : null,
34
+ estimateSize: () => o.compact ? 32 : 40,
35
+ overscan: 5,
36
+ measureElement: () => o.compact ? 32 : 40,
37
+ useAnimationFrameWithResizeObserver: !0
38
+ }), F = (e) => {
39
+ e && c.value.measureElement(e);
40
+ }, M = x(() => c.value.getVirtualItems()), A = x(() => c.value.getTotalSize()), n = f(null), a = x(
41
+ () => o.open && o.options.some((e) => !e.disabled)
42
+ ), _ = (e = 1) => {
43
+ const l = b(n.value) ? -1 : n.value;
44
+ let t = (l + e) % o.options.length;
45
+ for (; o.options[t].disabled && t !== l; )
46
+ t = _(e + 1);
47
+ return t;
48
+ }, R = () => {
49
+ if (!a.value) return;
50
+ const e = _();
51
+ n.value = e, u();
52
+ }, S = (e = 1) => {
53
+ const l = b(n.value) ? 0 : n.value;
54
+ let t = (l - e + o.options.length) % o.options.length;
55
+ for (; o.options[t].disabled && t !== l; )
56
+ t = S(e + 1);
57
+ return t;
58
+ }, P = async () => {
59
+ if (!a.value) return;
60
+ const e = S();
61
+ n.value = e, u();
62
+ }, W = () => {
63
+ if (!a.value) return;
64
+ let e = 0;
65
+ for (; o.options[e].disabled; )
66
+ e++;
67
+ n.value = e, u();
68
+ }, q = () => {
69
+ if (!a.value) return;
70
+ let e = o.options.length - 1;
71
+ for (; o.options[e].disabled && e !== 0; )
72
+ e--;
73
+ n.value = e, u();
74
+ }, J = () => {
75
+ if (!a.value) return;
76
+ let e = 0;
77
+ for (; o.options[e] && !o.options[e].selected && o.options.length !== e; )
78
+ e++;
79
+ n.value = e % o.options.length, u();
80
+ }, Y = () => {
81
+ if (!a.value) return;
82
+ let e = o.options.length - 1;
83
+ for (; o.options[e].selected && e > 0; )
84
+ e--;
85
+ n.value = e === -1 ? o.options.length - 1 : e, u();
86
+ }, j = (e) => {
87
+ if (!a.value) return;
88
+ const l = o.options.findIndex(
89
+ (t) => t.valueHash === e
90
+ );
91
+ l >= 0 && (n.value = l), u();
92
+ }, k = () => {
93
+ n.value = null;
94
+ }, u = () => {
95
+ s.value && oe(n.value) && c.value.scrollToIndex(n.value, {
96
+ align: "center",
97
+ behavior: "smooth"
98
+ });
99
+ }, w = () => {
100
+ if (b(n.value) || !o.open) return;
101
+ const e = o.options[n.value];
102
+ e.selected ? y("option:unselected", e) : y("option:selected", e);
103
+ }, B = f(0), E = () => {
104
+ s.value && (B.value = s.value.scrollHeight);
105
+ }, G = (e) => !e.disabled, K = (e) => {
106
+ if (e.preventDefault(), s.value && e.target && e.target instanceof HTMLElement) {
107
+ if (!s.value.querySelector('[role="listbox"]'))
108
+ throw new Error("Could not find listbox in DOM tree.");
109
+ let t = e.target, r = t.dataset.index;
110
+ for (; b(r) && t.parentElement; )
111
+ t = t.parentElement, r = t.dataset.index;
112
+ if (r) {
113
+ const T = o.options[+r];
114
+ T && G(T) && (n.value = +r, w());
115
+ }
116
+ }
117
+ }, Q = () => b(n.value) ? void 0 : o.options[n.value];
118
+ return D(
119
+ () => o.open,
120
+ () => {
121
+ E();
122
+ },
123
+ { flush: "post" }
124
+ ), D(
125
+ () => o.options,
126
+ (e, l) => {
127
+ L(e.map((t) => t.valueHash)) !== L(l.map((t) => t.valueHash)) && (c.value.calculateRange(), E(), k());
128
+ },
129
+ {
130
+ flush: "post"
131
+ }
132
+ ), V({
133
+ focusNext: R,
134
+ focusPrevious: P,
135
+ focusFirst: W,
136
+ focusFirstSelected: J,
137
+ focusLast: q,
138
+ focusLastSelected: Y,
139
+ blur: k,
140
+ confirmOption: w,
141
+ focusByHash: j,
142
+ getHighlighted: Q
143
+ }), (e, l) => (p(), d("span", {
144
+ class: $(["bb-listbox", {
145
+ "bb-listbox--compact": e.compact,
146
+ "bb-listbox--loading": e.loading,
147
+ "bb-listbox--multiple": e.multiple,
148
+ "bb-listbox--no-data": !i.value.length,
149
+ "bb-listbox--open": e.open
150
+ }]),
151
+ style: h({
152
+ "--transition-duration": `${e.transitionDuration}ms`,
153
+ "--overlay-min-height": `${B.value}px`
154
+ }),
155
+ onClick: X(K, ["stop"])
156
+ }, [
157
+ v("span", le, [
158
+ v("span", {
159
+ ref_key: "inner",
160
+ ref: s,
161
+ class: "bb-listbox__inner-container",
162
+ tabindex: "-1"
163
+ }, [
164
+ m(e.$slots, "options:prepend"),
165
+ e.loading && !e.options.length ? (p(), d("span", ie, [
166
+ m(e.$slots, "loading", {}, () => [
167
+ z(g(e.loadingText || H(I)("common.loadingText").value), 1)
168
+ ])
169
+ ])) : e.options.length ? (p(), d("span", {
170
+ key: 2,
171
+ role: "listbox",
172
+ style: h({
173
+ height: `${A.value}px`
174
+ }),
175
+ tabindex: "-1"
176
+ }, [
177
+ (p(!0), d(Z, null, ee(M.value, (t, r) => (p(), d("span", {
178
+ key: i.value[t.index].value,
179
+ ref_for: !0,
180
+ ref: F,
181
+ "aria-selected": n.value === r ? !0 : void 0,
182
+ class: $({
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", ue, g(i.value[t.index].text), 1)
216
+ ])
217
+ ], 14, ae))), 128))
218
+ ], 4)) : (p(), d("span", se, [
219
+ m(e.$slots, "no-data", {}, () => [
220
+ z(g(e.noDataText || H(I)("common.noDataText").value), 1)
221
+ ])
222
+ ])),
223
+ m(e.$slots, "options:append")
224
+ ], 512)
225
+ ])
226
+ ], 6));
227
+ }
228
+ });
10
229
  export {
11
- o as pickBy
230
+ be as default
12
231
  };
package/dist/index263.js CHANGED
@@ -1,5 +1,12 @@
1
- const o = () => {
1
+ const o = (t, r) => {
2
+ const e = {};
3
+ for (const c in t)
4
+ if (Object.prototype.hasOwnProperty.call(t, c)) {
5
+ const n = t[c];
6
+ r(n, c, t) && (e[c] = n);
7
+ }
8
+ return e;
2
9
  };
3
10
  export {
4
- o as noop
11
+ o as pickBy
5
12
  };
package/dist/index264.js CHANGED
@@ -1,6 +1,5 @@
1
- function e(n) {
2
- return n ? n instanceof HTMLElement ? n : typeof n == "object" && "$el" in n && n.$el instanceof HTMLElement ? n.$el : typeof n == "object" && "el" in n && n.el instanceof HTMLElement ? n.el : null : null;
3
- }
1
+ const o = () => {
2
+ };
4
3
  export {
5
- e as extractDomContainer
4
+ o as noop
6
5
  };