bitboss-ui 2.1.83 → 2.1.84

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 (182) hide show
  1. package/dist/index107.js +9 -9
  2. package/dist/index112.js +1 -1
  3. package/dist/index114.js +1 -1
  4. package/dist/index120.js +1 -1
  5. package/dist/index122.js +23 -23
  6. package/dist/index13.js +2 -2
  7. package/dist/index130.js +1 -1
  8. package/dist/index132.js +5 -5
  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 +8 -8
  17. package/dist/index21.js +14 -14
  18. package/dist/index214.js +138 -2
  19. package/dist/index215.js +2 -138
  20. package/dist/index216.js +2 -2
  21. package/dist/index217.js +1 -1
  22. package/dist/index218.js +1 -1
  23. package/dist/index219.js +2 -13
  24. package/dist/index220.js +2 -13
  25. package/dist/index221.js +3 -13
  26. package/dist/index222.js +5 -4
  27. package/dist/index223.js +5 -20
  28. package/dist/index224.js +5 -201
  29. package/dist/index225.js +7 -0
  30. package/dist/index226.js +5 -135
  31. package/dist/index227.js +7 -0
  32. package/dist/index228.js +2 -3
  33. package/dist/index229.js +3 -6
  34. package/dist/index23.js +11 -11
  35. package/dist/index230.js +13 -16
  36. package/dist/index231.js +20 -2
  37. package/dist/index232.js +135 -11
  38. package/dist/index234.js +34 -9
  39. package/dist/index235.js +8 -8
  40. package/dist/index236.js +13 -23
  41. package/dist/index237.js +13 -4
  42. package/dist/index238.js +31 -21
  43. package/dist/index239.js +28 -188
  44. package/dist/index241.js +7 -4
  45. package/dist/index242.js +2 -67
  46. package/dist/index243.js +86 -5
  47. package/dist/index245.js +29 -5
  48. package/dist/index246.js +17 -5
  49. package/dist/index247.js +51 -5
  50. package/dist/index248.js +15 -5
  51. package/dist/index249.js +3 -2
  52. package/dist/index25.js +3 -3
  53. package/dist/index250.js +12 -3
  54. package/dist/index251.js +16 -34
  55. package/dist/index252.js +5 -5
  56. package/dist/index253.js +2 -3
  57. package/dist/index254.js +5 -8
  58. package/dist/index255.js +8 -10
  59. package/dist/index256.js +268 -3
  60. package/dist/index257.js +52 -3
  61. package/dist/index258.js +52 -33
  62. package/dist/index259.js +30 -26
  63. package/dist/index260.js +62 -0
  64. package/dist/index261.js +5 -7
  65. package/dist/index262.js +188 -2
  66. package/dist/index263.js +3 -3
  67. package/dist/index264.js +65 -7
  68. package/dist/index265.js +3 -29
  69. package/dist/index266.js +4 -16
  70. package/dist/index267.js +9 -17
  71. package/dist/index268.js +40 -50
  72. package/dist/index269.js +4 -12
  73. package/dist/index27.js +1 -1
  74. package/dist/index270.js +200 -40
  75. package/dist/index272.js +3 -2
  76. package/dist/index273.js +10 -5
  77. package/dist/index274.js +101 -263
  78. package/dist/index276.js +96 -48
  79. package/dist/index278.js +4 -60
  80. package/dist/index279.js +22 -85
  81. package/dist/index280.js +10 -0
  82. package/dist/index281.js +8 -14
  83. package/dist/index282.js +23 -8
  84. package/dist/index286.js +9 -2
  85. package/dist/index287.js +6 -18
  86. package/dist/index288.js +16 -12
  87. package/dist/index289.js +17 -105
  88. package/dist/index29.js +3 -3
  89. package/dist/index290.js +14 -0
  90. package/dist/index291.js +212 -83
  91. package/dist/index292.js +12 -0
  92. package/dist/index293.js +3 -229
  93. package/dist/index295.js +5 -0
  94. package/dist/index296.js +280 -3
  95. package/dist/index297.js +2 -2
  96. package/dist/index298.js +125 -4
  97. package/dist/index299.js +2 -3
  98. package/dist/index300.js +14 -3
  99. package/dist/index301.js +2 -2
  100. package/dist/index302.js +16 -3
  101. package/dist/index303.js +2 -719
  102. package/dist/index304.js +16 -366
  103. package/dist/index305.js +2 -57
  104. package/dist/index306.js +19 -5
  105. package/dist/index307.js +2 -280
  106. package/dist/index308.js +3 -2
  107. package/dist/index309.js +7 -125
  108. package/dist/index31.js +2 -2
  109. package/dist/index310.js +2 -2
  110. package/dist/index311.js +2 -15
  111. package/dist/index312.js +27 -2
  112. package/dist/index313.js +2 -16
  113. package/dist/index314.js +2 -2
  114. package/dist/index315.js +2 -16
  115. package/dist/index316.js +2 -2
  116. package/dist/index317.js +2 -19
  117. package/dist/index318.js +28 -2
  118. package/dist/index319.js +2 -5
  119. package/dist/index320.js +1 -1
  120. package/dist/index321.js +1 -1
  121. package/dist/index322.js +4 -28
  122. package/dist/index323.js +5 -27
  123. package/dist/index324.js +3 -2
  124. package/dist/index325.js +4 -2
  125. package/dist/index326.js +5 -2
  126. package/dist/index327.js +6 -2
  127. package/dist/index328.js +3 -2
  128. package/dist/index329.js +3 -2
  129. package/dist/index33.js +8 -8
  130. package/dist/index330.js +718 -57
  131. package/dist/index331.js +365 -57
  132. package/dist/index332.js +57 -3
  133. package/dist/index333.js +2 -3
  134. package/dist/index334.js +35 -2
  135. package/dist/index335.js +6 -35
  136. package/dist/index336.js +129 -6
  137. package/dist/index337.js +382 -113
  138. package/dist/index338.js +6 -397
  139. package/dist/index339.js +18 -5
  140. package/dist/index340.js +8 -7
  141. package/dist/index341.js +14 -5
  142. package/dist/index342.js +5 -8
  143. package/dist/index343.js +6 -227
  144. package/dist/index344.js +57 -92
  145. package/dist/index345.js +57 -133
  146. package/dist/index346.js +228 -5
  147. package/dist/index347.js +133 -6
  148. package/dist/index348.js +21 -18
  149. package/dist/index35.js +4 -4
  150. package/dist/index350.js +7 -14
  151. package/dist/index351.js +5 -6
  152. package/dist/index352.js +8 -22
  153. package/dist/index353.js +95 -0
  154. package/dist/index37.js +18 -18
  155. package/dist/index39.js +4 -4
  156. package/dist/index41.js +2 -2
  157. package/dist/index43.js +8 -8
  158. package/dist/index45.js +6 -6
  159. package/dist/index49.js +2 -2
  160. package/dist/index53.js +1 -1
  161. package/dist/index55.js +1 -1
  162. package/dist/index57.js +2 -2
  163. package/dist/index61.js +5 -5
  164. package/dist/index67.js +1 -1
  165. package/dist/index80.js +6 -6
  166. package/dist/index82.js +1 -1
  167. package/dist/index84.js +2 -2
  168. package/dist/index86.js +3 -3
  169. package/dist/index88.js +1 -1
  170. package/dist/index91.js +3 -3
  171. package/dist/index93.js +2 -2
  172. package/dist/index95.js +5 -5
  173. package/dist/index97.js +1 -1
  174. package/package.json +1 -1
  175. package/dist/index233.js +0 -10
  176. package/dist/index240.js +0 -5
  177. package/dist/index244.js +0 -7
  178. package/dist/index271.js +0 -7
  179. package/dist/index275.js +0 -54
  180. package/dist/index277.js +0 -34
  181. package/dist/index294.js +0 -9
  182. package/dist/index349.js +0 -11
package/dist/index243.js CHANGED
@@ -1,7 +1,88 @@
1
- import { getDefaultExportFromCjs as r } from "./index339.js";
2
- import { __require as o } from "./index307.js";
3
- var t = o();
4
- const s = /* @__PURE__ */ r(t);
1
+ import { defineComponent as p, createElementBlock as n, openBlock as s, normalizeClass as r, createElementVNode as o, renderSlot as t, createCommentVNode as h, createTextVNode as l, toDisplayString as i, unref as b, Fragment as m, renderList as u } from "vue";
2
+ import { useLocale as g } from "./index230.js";
3
+ const k = { class: "bb-cr-container__container" }, y = {
4
+ key: 0,
5
+ class: "bb-cr-container__loading-container"
6
+ }, $ = {
7
+ key: 1,
8
+ class: "bb-cr-container__no-data-container"
9
+ }, C = /* @__PURE__ */ p({
10
+ __name: "OptionsContainer",
11
+ props: {
12
+ direction: {},
13
+ hasErrors: { type: Boolean },
14
+ hideLabel: { type: Boolean },
15
+ loadingText: {},
16
+ loading: { type: Boolean },
17
+ noDataText: {},
18
+ options: {}
19
+ },
20
+ setup(f) {
21
+ const { t: d } = g();
22
+ return (e, T) => (s(), n("span", {
23
+ ref: "container",
24
+ class: r(["bb-cr-container", {
25
+ "bb-cr-container--errors": e.hasErrors,
26
+ "bb-cr-container--horizontal": e.direction === "horizontal",
27
+ "bb-cr-container--vertical": e.direction === "vertical"
28
+ }])
29
+ }, [
30
+ o("span", k, [
31
+ t(e.$slots, "prepend"),
32
+ !e.options.length && e.loading ? (s(), n("span", y, [
33
+ t(e.$slots, "loading", {}, () => [
34
+ l(i(e.loadingText || b(d)("common.loadingText")), 1)
35
+ ])
36
+ ])) : e.options.length ? h("", !0) : (s(), n("span", $, [
37
+ t(e.$slots, "no-data", {}, () => [
38
+ l(i(e.noDataText || b(d)("common.noDataText")), 1)
39
+ ])
40
+ ])),
41
+ (s(!0), n(m, null, u(e.options, (a, c) => (s(), n(m, {
42
+ key: a?.valueHash || c
43
+ }, [
44
+ t(e.$slots, "option:prepend", {
45
+ id: a.valueHash,
46
+ checked: !!a.selected,
47
+ disabled: !!a.disabled,
48
+ item: a.item,
49
+ text: a.text
50
+ }),
51
+ o("label", {
52
+ class: r(["bb-cr-container-option", { "bb-base-radio-selected": a.selected }])
53
+ }, [
54
+ t(e.$slots, "input", {
55
+ index: c,
56
+ option: a
57
+ }),
58
+ o("span", {
59
+ class: r({
60
+ "bb-cr-container-option__text": !0,
61
+ "sr-only": e.hideLabel
62
+ })
63
+ }, [
64
+ t(e.$slots, "label", {
65
+ checked: !!a.selected,
66
+ item: a.item,
67
+ text: a.text
68
+ }, () => [
69
+ l(i(a.text), 1)
70
+ ])
71
+ ], 2)
72
+ ], 2),
73
+ t(e.$slots, "option:append", {
74
+ id: a.valueHash,
75
+ checked: !!a.selected,
76
+ disabled: !!a.disabled,
77
+ item: a.item,
78
+ text: a.text
79
+ })
80
+ ], 64))), 128)),
81
+ t(e.$slots, "append")
82
+ ])
83
+ ], 2));
84
+ }
85
+ });
5
86
  export {
6
- s as default
87
+ C as default
7
88
  };
package/dist/index245.js CHANGED
@@ -1,7 +1,31 @@
1
- import { getDefaultExportFromCjs as r } from "./index339.js";
2
- import { __require as e } from "./index311.js";
3
- var o = e();
4
- const m = /* @__PURE__ */ r(o);
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
+ };
5
29
  export {
6
- m as default
30
+ p as useItemsGetter
7
31
  };
package/dist/index246.js CHANGED
@@ -1,7 +1,19 @@
1
- import { getDefaultExportFromCjs as r } from "./index339.js";
2
- import { __require as e } from "./index313.js";
3
- var t = e();
4
- const m = /* @__PURE__ */ r(t);
1
+ import { computed as u, unref as a } from "vue";
2
+ import { hash as d } from "./index249.js";
3
+ const p = ({
4
+ items: m,
5
+ key: e
6
+ }) => {
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)] };
16
+ };
5
17
  export {
6
- m as default
18
+ p as useIndexById
7
19
  };
package/dist/index247.js CHANGED
@@ -1,7 +1,53 @@
1
- import { getDefaultExportFromCjs as r } from "./index339.js";
2
- import { __require as e } from "./index315.js";
3
- var o = e();
4
- const m = /* @__PURE__ */ r(o);
1
+ import { computed as l, unref as o } from "vue";
2
+ import { useItemText as x } from "./index321.js";
3
+ import { useItemValue as w } from "./index267.js";
4
+ import { hash as y } from "./index249.js";
5
+ import { useLogger as D } from "./index255.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
+ };
5
51
  export {
6
- m as default
52
+ q as useBaseOptions
7
53
  };
package/dist/index248.js CHANGED
@@ -1,7 +1,17 @@
1
- import { getDefaultExportFromCjs as r } from "./index339.js";
2
- import { __require as t } from "./index317.js";
3
- var o = t();
4
- const a = /* @__PURE__ */ r(o);
1
+ import { isNil as f } from "./index242.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
+ };
5
15
  export {
6
- a as default
16
+ a as useCoherence
7
17
  };
package/dist/index249.js CHANGED
@@ -1,4 +1,5 @@
1
- const e = (t) => t;
1
+ import { hash as o } from "./index318.js";
2
+ const t = (r, h = "bb") => `${h}${o(r)}`;
2
3
  export {
3
- e as identity
4
+ t as hash
4
5
  };
package/dist/index25.js CHANGED
@@ -1,9 +1,9 @@
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 "./index219.js";
2
+ import { parseSize as U } from "./index236.js";
3
3
  import { useId as D } from "./index8.js";
4
- import { useLocale as j } from "./index220.js";
4
+ import { useLocale as j } from "./index230.js";
5
5
  import { useMobile as G } from "./index9.js";
6
- import { useUntil as J } from "./index221.js";
6
+ import { useUntil as J } from "./index237.js";
7
7
  import { wait as w } 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,5 +1,14 @@
1
- import { isNil as r } from "./index262.js";
2
- const e = (t) => r(t) ? !0 : Array.isArray(t) || typeof t == "string" ? t.length === 0 : t instanceof Map || t instanceof Set ? t.size === 0 : typeof t == "number" ? Number.isNaN(t) : typeof t == "boolean" || typeof t == "function" ? !1 : typeof t == "object" ? "length" in t && typeof t.length == "number" ? t.length === 0 : Object.keys(t).length === 0 : !1;
1
+ import { hash as e } from "./index249.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
+ };
3
12
  export {
4
- e as isEmpty
13
+ n as useHashedWatcher
5
14
  };
package/dist/index251.js CHANGED
@@ -1,36 +1,18 @@
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 "./index233.js";
4
- import { useFrameworkDetection as k } from "./index234.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 { 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
+ };
34
16
  export {
35
- y as default
17
+ h as usePrefill
36
18
  };
package/dist/index252.js CHANGED
@@ -1,7 +1,7 @@
1
- const o = (l, n, f = (r) => r, u) => l.map((r) => Array.isArray(r[n]) ? [
2
- f(r, u),
3
- ...o(r[n], n, f, f(r, u))
4
- ] : [f(r, u)]).flat();
1
+ import { getDefaultExportFromCjs as e } from "./index327.js";
2
+ import { __require as r } from "./index312.js";
3
+ var o = r();
4
+ const f = /* @__PURE__ */ e(o);
5
5
  export {
6
- o as flattenTree
6
+ f as default
7
7
  };
package/dist/index253.js CHANGED
@@ -1,5 +1,4 @@
1
- import t from "./index319.js";
2
- const r = t;
1
+ const e = (t) => t[t.length - 1];
3
2
  export {
4
- r as throttle
3
+ e as last
5
4
  };
package/dist/index254.js CHANGED
@@ -1,11 +1,8 @@
1
- function u(e, i) {
2
- let t;
3
- return function(...o) {
4
- t !== void 0 && clearTimeout(t), t = setTimeout(() => {
5
- e.apply(this, o);
6
- }, i);
7
- };
1
+ function e(t, r) {
2
+ if (!/\d{4}-\d{2}-\d{2}/.test(t))
3
+ throw new Error(`${r} must be in the format YYYY-MM-DD`);
4
+ return t;
8
5
  }
9
6
  export {
10
- u as debounce
7
+ e as validateDateFormat
11
8
  };
package/dist/index255.js CHANGED
@@ -1,12 +1,10 @@
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
+ const o = "bitboss-ui | ", e = () => ({
2
+ warn: (r) => console.warn(`${o}${r}`),
3
+ error: (r) => console.error(`${o}${r}`),
4
+ throw: (r) => {
5
+ throw new Error(`${o}${r}`);
6
+ }
7
+ });
10
8
  export {
11
- o as pickBy
9
+ e as useLogger
12
10
  };
package/dist/index256.js CHANGED
@@ -1,5 +1,270 @@
1
- const o = () => {
2
- };
1
+ import { defineComponent as pe, ref as T, computed as v, watch as be, createElementBlock as c, openBlock as u, withKeys as f, normalizeClass as O, withModifiers as m, createVNode as ge, withCtx as he, createElementVNode as E, Fragment as w, renderList as S, toDisplayString as x, renderSlot as C, nextTick as ye } from "vue";
2
+ import { chunk as _e } from "./index338.js";
3
+ import { identity as L } from "./index228.js";
4
+ import { isNotNil as ke } from "./index144.js";
5
+ import { last as ve } from "./index253.js";
6
+ import { sort as N } from "./index339.js";
7
+ import { validateDateFormat as R } from "./index254.js";
8
+ import { toInnerValue as Oe, toOuterValue as p } from "./index340.js";
9
+ import { isDateDisabled as we } from "./index341.js";
10
+ import g from "./index222.js";
11
+ import Se from "./index342.js";
12
+ const Ve = ["onKeydown"], De = { class: "bb-base-date-picker__header-container" }, Me = ["abbr"], Be = ["id", "aria-current", "aria-label", "aria-selected", "disabled", "tabindex"], Pe = /* @__PURE__ */ pe({
13
+ __name: "BaseDatePickerInputDaySelector",
14
+ props: {
15
+ cursor: {},
16
+ current: { type: Boolean },
17
+ disabled: { type: Boolean },
18
+ firstDayOfWeek: {},
19
+ id: {},
20
+ floating: { type: Boolean },
21
+ modelValue: {},
22
+ max: {},
23
+ min: {},
24
+ selectable: { type: Function },
25
+ range: { type: Boolean },
26
+ multiple: { type: Boolean },
27
+ readonly: { type: Boolean }
28
+ },
29
+ emits: ["update:modelValue", "update:cursor"],
30
+ setup(F, { emit: K }) {
31
+ const a = F, n = K, h = T(null), H = g().startOf("day");
32
+ a.min && R(a.min, "Min"), a.max && R(a.max, "Max");
33
+ const P = v(() => {
34
+ let e = 1 / 0, r = -1 / 0, s = {};
35
+ return a.modelValue && [].concat(a.modelValue).filter(L).map((i) => Oe(i, a.floating)).map((i) => i.valueOf()).forEach((i, y) => {
36
+ i < e && (e = i), i > r && (r = i), s[i] = y;
37
+ }), {
38
+ min: e,
39
+ max: r,
40
+ index: (t) => s[t.valueOf()],
41
+ selected: (t) => ke(s[t.valueOf()]),
42
+ isFirstOfRange: (t) => t.valueOf() === e,
43
+ isLastOfRange: (t) => t.valueOf() === r,
44
+ isBetween: (t) => t.valueOf() > e && t.valueOf() < r
45
+ };
46
+ }), Y = v(() => new Array(7).fill("").map((e, r) => g().day((r + a.firstDayOfWeek) % 7)).map((e) => ({
47
+ accessibleLabel: e.format("dddd"),
48
+ label: e.format("dd").slice(0, 1).toUpperCase(),
49
+ id: e.toISOString(),
50
+ original: e
51
+ }))), V = v(() => {
52
+ const e = a.cursor.year().toString(), r = a.cursor.month().toString(), t = a.cursor.clone().startOf("month").clone().startOf("week"), y = a.cursor.clone().endOf("month").clone().endOf("week"), re = g(a.cursor).startOf("day"), b = P.value, _ = a.range, oe = a.id, B = [];
53
+ for (let o = t; o.isBefore(y); o = o.add(1, "day"))
54
+ B.push(o.clone());
55
+ const ne = B.map((o) => {
56
+ const k = o.toISOString(), se = o.week().toString(), ie = b.selected(o), A = _ && b.isFirstOfRange(o), I = _ && b.isLastOfRange(o), de = _ && !A && !I && b.isBetween(o), le = o.month().toString() === r && o.year().toString() === e, ce = o.isSame(H), ue = o.isSame(re), fe = d(o), me = o.get("D").toString();
57
+ return {
58
+ buttonId: [oe, k].filter(L).join("_"),
59
+ current: ue,
60
+ disabled: fe,
61
+ first: A,
62
+ highlighted: le,
63
+ id: k,
64
+ label: me,
65
+ last: I,
66
+ middle: de,
67
+ original: o,
68
+ selected: ie,
69
+ slotName: k,
70
+ today: ce,
71
+ week: se
72
+ };
73
+ });
74
+ return _e(ne, 7);
75
+ }), d = (e) => we(e, {
76
+ min: a.min,
77
+ max: a.max,
78
+ selectable: a.selectable,
79
+ floating: a.floating
80
+ }), D = T("left"), $ = (e, r) => {
81
+ e && r && (D.value = e.isBefore(r) ? "left" : "right");
82
+ };
83
+ be(
84
+ () => a.cursor,
85
+ (e, r) => {
86
+ $(e, r);
87
+ }
88
+ );
89
+ const M = (e) => n("update:cursor", e), l = async () => {
90
+ if (!h.value) return;
91
+ await ye();
92
+ const e = ve([
93
+ ...h.value.querySelectorAll(
94
+ ".bb-base-date-picker__date--current button"
95
+ )
96
+ ]);
97
+ e instanceof HTMLElement && e.focus();
98
+ }, U = (e) => {
99
+ if (!a.readonly && e.target instanceof HTMLButtonElement) {
100
+ const [, r] = e.target.id.split("_"), s = g(r);
101
+ if (a.cursor.month() !== s.month()) {
102
+ M(s);
103
+ return;
104
+ }
105
+ const t = V.value.flat().find((i) => i.id === r);
106
+ if (!t || t.disabled) return;
107
+ M(s), j(t);
108
+ }
109
+ }, j = (e) => {
110
+ a.range ? W(e) : a.multiple ? q(e) : z(e);
111
+ }, W = (e) => {
112
+ if (Array.isArray(a.modelValue))
113
+ if (a.modelValue.length !== 1) {
114
+ const r = [p(e.original, a.floating)];
115
+ n("update:modelValue", r);
116
+ } else {
117
+ const r = N([
118
+ a.modelValue[0],
119
+ p(e.original, a.floating)
120
+ ]);
121
+ n("update:modelValue", r);
122
+ }
123
+ }, q = (e) => {
124
+ if (Array.isArray(a.modelValue))
125
+ if (e.selected) {
126
+ const r = p(e.original, a.floating), s = a.modelValue.filter((t) => t !== r);
127
+ n("update:modelValue", s);
128
+ } else {
129
+ const r = N([
130
+ ...a.modelValue,
131
+ p(e.original, a.floating)
132
+ ]);
133
+ n("update:modelValue", r);
134
+ }
135
+ }, z = (e) => {
136
+ e.selected ? n("update:modelValue", null) : n("update:modelValue", p(e.original, a.floating));
137
+ }, G = () => {
138
+ const e = a.cursor.clone().add(1, "day");
139
+ d(e) || (n("update:cursor", e), l());
140
+ }, J = () => {
141
+ const e = a.cursor.clone().subtract(1, "day");
142
+ d(e) || (n("update:cursor", e), l());
143
+ }, Q = () => {
144
+ const e = a.cursor.clone().subtract(1, "week");
145
+ d(e) || (n("update:cursor", e), l());
146
+ }, X = () => {
147
+ const e = a.cursor.clone().add(1, "week");
148
+ d(e) || (n("update:cursor", e), l());
149
+ }, Z = () => {
150
+ const e = a.cursor.clone().endOf("week");
151
+ d(e) || (n("update:cursor", e), l());
152
+ }, ee = () => {
153
+ const e = a.cursor.clone().startOf("week");
154
+ d(e) || (n("update:cursor", e), l());
155
+ }, te = (e) => {
156
+ if (e.shiftKey) {
157
+ const r = a.cursor.clone().subtract(1, "year");
158
+ if (d(r)) return;
159
+ n("update:cursor", r);
160
+ } else {
161
+ const r = a.cursor.clone().subtract(1, "month");
162
+ if (d(r)) return;
163
+ n("update:cursor", r);
164
+ }
165
+ l();
166
+ }, ae = (e) => {
167
+ if (e.shiftKey) {
168
+ const r = a.cursor.clone().add(1, "year");
169
+ if (d(r)) return;
170
+ n("update:cursor", r);
171
+ } else {
172
+ const r = a.cursor.clone().add(1, "month");
173
+ if (d(r)) return;
174
+ n("update:cursor", r);
175
+ }
176
+ l();
177
+ };
178
+ return (e, r) => (u(), c("div", {
179
+ ref_key: "calendar",
180
+ ref: h,
181
+ "aria-label": "Calendar dates",
182
+ class: O(["bb-base-date-picker__days-selector", { "bb-base-date-picker__days-selector--hidden": !e.current }]),
183
+ role: "grid",
184
+ onKeydown: [
185
+ f(m(X, ["prevent"]), ["down"]),
186
+ f(m(Z, ["prevent"]), ["end"]),
187
+ f(m(ee, ["prevent"]), ["home"]),
188
+ f(m(J, ["prevent"]), ["left"]),
189
+ f(m(ae, ["prevent"]), ["page-down"]),
190
+ f(m(te, ["prevent"]), ["page-up"]),
191
+ f(m(G, ["prevent"]), ["right"]),
192
+ f(m(Q, ["prevent"]), ["up"])
193
+ ]
194
+ }, [
195
+ ge(Se, {
196
+ direction: D.value,
197
+ gap: 30
198
+ }, {
199
+ default: he(() => [
200
+ (u(), c("div", {
201
+ key: e.cursor.month().toString(),
202
+ class: "bb-base-date-picker__month"
203
+ }, [
204
+ E("div", De, [
205
+ (u(!0), c(w, null, S(Y.value, (s) => (u(), c("div", {
206
+ key: s.id,
207
+ abbr: s.accessibleLabel,
208
+ class: "bb-base-date-picker__header-cell"
209
+ }, x(s.label), 9, Me))), 128))
210
+ ]),
211
+ (u(!0), c(w, null, S(V.value, (s) => (u(), c("div", {
212
+ key: s[0].id,
213
+ class: "bb-base-date-picker__week"
214
+ }, [
215
+ (u(!0), c(w, null, S(s, (t) => (u(), c("div", {
216
+ key: t.id,
217
+ class: O({
218
+ "bb-base-date-picker__date--current": t.current,
219
+ "bb-base-date-picker__date--disabled": e.disabled || t.disabled,
220
+ "bb-base-date-picker__date--first": t.first,
221
+ "bb-base-date-picker__date--highlighted": t.highlighted,
222
+ "bb-base-date-picker__date--last": t.last,
223
+ "bb-base-date-picker__date--middle": t.middle,
224
+ "bb-base-date-picker__date--selected": t.selected,
225
+ "bb-base-date-picker__date--today": t.today,
226
+ "bb-base-date-picker__date": !0
227
+ })
228
+ }, [
229
+ E("button", {
230
+ id: t.buttonId,
231
+ "aria-current": t.today ? "date" : void 0,
232
+ "aria-label": `${t.original.format("dddd, MMMM D, YYYY")}${t.selected ? ", selected" : ""}`,
233
+ "aria-selected": t.selected,
234
+ class: O("bb-base-date-picker__date-button"),
235
+ disabled: e.disabled || t.disabled,
236
+ tabindex: Number(t.current) - 1,
237
+ type: "button",
238
+ role: "gridcell",
239
+ onClick: U
240
+ }, x(t.label), 9, Be),
241
+ C(e.$slots, "day", {
242
+ first: t.first,
243
+ highlighted: t.highlighted,
244
+ item: t.original,
245
+ label: t.label,
246
+ last: t.last,
247
+ middle: t.middle,
248
+ selected: t.selected
249
+ }),
250
+ C(e.$slots, t.slotName, {
251
+ first: t.first,
252
+ highlighted: t.highlighted,
253
+ item: t.original,
254
+ label: t.label,
255
+ last: t.last,
256
+ middle: t.middle,
257
+ selected: t.selected
258
+ })
259
+ ], 2))), 128))
260
+ ]))), 128))
261
+ ]))
262
+ ]),
263
+ _: 3
264
+ }, 8, ["direction"])
265
+ ], 42, Ve));
266
+ }
267
+ });
3
268
  export {
4
- o as noop
269
+ Pe as default
5
270
  };