bitboss-ui 2.1.83 → 2.1.85

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 (190) hide show
  1. package/dist/components/BbTable/utils.d.ts +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index107.js +9 -9
  4. package/dist/index112.js +1 -1
  5. package/dist/index114.js +1 -1
  6. package/dist/index120.js +1 -1
  7. package/dist/index122.js +61 -61
  8. package/dist/index13.js +2 -2
  9. package/dist/index130.js +1 -1
  10. package/dist/index132.js +5 -5
  11. package/dist/index134.js +1 -1
  12. package/dist/index136.js +2 -2
  13. package/dist/index139.js +1 -1
  14. package/dist/index141.js +2 -2
  15. package/dist/index142.js +1 -1
  16. package/dist/index143.js +2 -2
  17. package/dist/index15.js +5 -5
  18. package/dist/index17.js +3 -3
  19. package/dist/index19.js +8 -8
  20. package/dist/index21.js +14 -14
  21. package/dist/index214.js +138 -2
  22. package/dist/index215.js +2 -138
  23. package/dist/index216.js +2 -2
  24. package/dist/index217.js +32 -4
  25. package/dist/index218.js +28 -8
  26. package/dist/index220.js +5 -13
  27. package/dist/index221.js +5 -13
  28. package/dist/index222.js +5 -4
  29. package/dist/index223.js +5 -20
  30. package/dist/index224.js +3 -201
  31. package/dist/index225.js +4 -0
  32. package/dist/index226.js +6 -135
  33. package/dist/index227.js +10 -0
  34. package/dist/index228.js +268 -3
  35. package/dist/index229.js +52 -6
  36. package/dist/index23.js +11 -11
  37. package/dist/index230.js +51 -15
  38. package/dist/index231.js +32 -2
  39. package/dist/index232.js +60 -11
  40. package/dist/index233.js +12 -7
  41. package/dist/index234.js +5 -9
  42. package/dist/index235.js +8 -9
  43. package/dist/index236.js +5 -23
  44. package/dist/index237.js +3 -3
  45. package/dist/index238.js +18 -21
  46. package/dist/index239.js +198 -185
  47. package/dist/index241.js +135 -4
  48. package/dist/index243.js +86 -5
  49. package/dist/index245.js +29 -5
  50. package/dist/index246.js +16 -5
  51. package/dist/index247.js +17 -5
  52. package/dist/index248.js +51 -5
  53. package/dist/index249.js +15 -2
  54. package/dist/index25.js +3 -3
  55. package/dist/index250.js +12 -3
  56. package/dist/index251.js +2 -34
  57. package/dist/index252.js +2 -5
  58. package/dist/index253.js +2 -3
  59. package/dist/index254.js +7 -9
  60. package/dist/index255.js +7 -10
  61. package/dist/index256.js +4 -3
  62. package/dist/index257.js +9 -3
  63. package/dist/index258.js +52 -32
  64. package/dist/index259.js +188 -28
  65. package/dist/{index240.js → index260.js} +1 -1
  66. package/dist/index261.js +3 -7
  67. package/dist/index262.js +34 -2
  68. package/dist/index263.js +9 -3
  69. package/dist/index264.js +3 -9
  70. package/dist/index265.js +8 -28
  71. package/dist/index266.js +12 -15
  72. package/dist/index267.js +23 -17
  73. package/dist/index268.js +4 -51
  74. package/dist/index269.js +22 -11
  75. package/dist/index27.js +1 -1
  76. package/dist/index270.js +11 -39
  77. package/dist/index271.js +10 -5
  78. package/dist/index272.js +3 -2
  79. package/dist/index273.js +3 -6
  80. package/dist/index274.js +7 -268
  81. package/dist/index275.js +3 -52
  82. package/dist/index276.js +17 -51
  83. package/dist/index277.js +12 -32
  84. package/dist/index278.js +100 -54
  85. package/dist/index280.js +102 -0
  86. package/dist/index282.js +228 -7
  87. package/dist/index283.js +6 -2
  88. package/dist/index284.js +16 -7
  89. package/dist/index285.js +8 -6
  90. package/dist/index286.js +11 -2
  91. package/dist/index287.js +5 -18
  92. package/dist/index288.js +5 -12
  93. package/dist/index289.js +5 -106
  94. package/dist/index29.js +3 -3
  95. package/dist/index290.js +4 -0
  96. package/dist/index291.js +2 -100
  97. package/dist/{index242.js → index292.js} +1 -1
  98. package/dist/index293.js +7 -228
  99. package/dist/index295.js +5 -0
  100. package/dist/index296.js +280 -3
  101. package/dist/index297.js +2 -2
  102. package/dist/index298.js +16 -4
  103. package/dist/index299.js +2 -3
  104. package/dist/index300.js +15 -3
  105. package/dist/index301.js +2 -2
  106. package/dist/index302.js +27 -3
  107. package/dist/index303.js +2 -719
  108. package/dist/index304.js +2 -366
  109. package/dist/index305.js +2 -57
  110. package/dist/index306.js +2 -5
  111. package/dist/index307.js +2 -280
  112. package/dist/index308.js +28 -2
  113. package/dist/index309.js +2 -125
  114. package/dist/index31.js +2 -2
  115. package/dist/index310.js +7 -2
  116. package/dist/index311.js +2 -15
  117. package/dist/index312.js +3 -2
  118. package/dist/index313.js +3 -16
  119. package/dist/index314.js +3 -2
  120. package/dist/index315.js +17 -16
  121. package/dist/index316.js +5 -2
  122. package/dist/index317.js +5 -19
  123. package/dist/index318.js +4 -2
  124. package/dist/index319.js +6 -5
  125. package/dist/index320.js +4 -3
  126. package/dist/index321.js +3 -17
  127. package/dist/index322.js +3 -28
  128. package/dist/index323.js +2 -27
  129. package/dist/index324.js +719 -2
  130. package/dist/index325.js +366 -2
  131. package/dist/index326.js +57 -2
  132. package/dist/index327.js +5 -2
  133. package/dist/index328.js +7 -2
  134. package/dist/index329.js +7 -2
  135. package/dist/index33.js +8 -8
  136. package/dist/index330.js +18 -57
  137. package/dist/index331.js +9 -58
  138. package/dist/index332.js +15 -3
  139. package/dist/index333.js +93 -3
  140. package/dist/index334.js +1 -1
  141. package/dist/index335.js +226 -33
  142. package/dist/index336.js +125 -6
  143. package/dist/index337.js +2 -129
  144. package/dist/index338.js +14 -397
  145. package/dist/index339.js +2 -6
  146. package/dist/index340.js +18 -7
  147. package/dist/index341.js +2 -6
  148. package/dist/index342.js +34 -7
  149. package/dist/index343.js +6 -228
  150. package/dist/index344.js +121 -85
  151. package/dist/index345.js +378 -114
  152. package/dist/index346.js +8 -5
  153. package/dist/index347.js +5 -6
  154. package/dist/index348.js +8 -19
  155. package/dist/index349.js +58 -9
  156. package/dist/index35.js +4 -4
  157. package/dist/index350.js +57 -14
  158. package/dist/index351.js +22 -7
  159. package/dist/index353.js +136 -0
  160. package/dist/index354.js +2 -2
  161. package/dist/index355.js +503 -424
  162. package/dist/index356.js +427 -114
  163. package/dist/index357.js +124 -516
  164. package/dist/index37.js +18 -18
  165. package/dist/index39.js +7 -7
  166. package/dist/index41.js +2 -2
  167. package/dist/index43.js +8 -8
  168. package/dist/index45.js +6 -6
  169. package/dist/index49.js +2 -2
  170. package/dist/index53.js +1 -1
  171. package/dist/index55.js +1 -1
  172. package/dist/index57.js +2 -2
  173. package/dist/index61.js +5 -5
  174. package/dist/index67.js +1 -1
  175. package/dist/index80.js +6 -6
  176. package/dist/index82.js +1 -1
  177. package/dist/index84.js +2 -2
  178. package/dist/index86.js +3 -3
  179. package/dist/index88.js +1 -1
  180. package/dist/index91.js +3 -3
  181. package/dist/index93.js +2 -2
  182. package/dist/index95.js +5 -5
  183. package/dist/index97.js +1 -1
  184. package/package.json +1 -1
  185. package/dist/index219.js +0 -15
  186. package/dist/index244.js +0 -7
  187. package/dist/index279.js +0 -88
  188. package/dist/index281.js +0 -17
  189. package/dist/index294.js +0 -9
  190. package/dist/index352.js +0 -24
package/dist/index262.js CHANGED
@@ -1,4 +1,36 @@
1
- const r = (e) => typeof e > "u" || e === null;
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 "./index227.js";
4
+ import { useFrameworkDetection as k } from "./index263.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
+ });
2
34
  export {
3
- r as isNil
35
+ y as default
4
36
  };
package/dist/index263.js CHANGED
@@ -1,5 +1,11 @@
1
- import { hash as o } from "./index322.js";
2
- const t = (r, h = "bb") => `${h}${o(r)}`;
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
+ };
3
9
  export {
4
- t as hash
10
+ s as useFrameworkDetection
5
11
  };
package/dist/index264.js CHANGED
@@ -1,11 +1,5 @@
1
- import { get as o } from "./index232.js";
2
- const e = () => ({
3
- getItemValue(n, f) {
4
- if (typeof f > "u") return n;
5
- if (typeof f == "function") return f(n);
6
- if (typeof f == "string") return o(n, f);
7
- }
8
- });
1
+ import r from "./index317.js";
2
+ const t = r;
9
3
  export {
10
- e as useItemValue
4
+ t as deburr
11
5
  };
package/dist/index265.js CHANGED
@@ -1,31 +1,11 @@
1
- import { ref as a, computed as s, unref as v } from "vue";
2
- import { useDebounceFn as f } from "./index215.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
- };
1
+ const o = (n, t) => {
2
+ for (let e = n.length - 1; e >= 0; e--) {
3
+ const i = n[e];
4
+ if (t(i, e, n))
5
+ return e;
6
+ }
7
+ return -1;
28
8
  };
29
9
  export {
30
- p as useItemsGetter
10
+ o as findRightIndex
31
11
  };
package/dist/index266.js CHANGED
@@ -1,18 +1,15 @@
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 };
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;
15
12
  };
16
13
  export {
17
- h as usePrefill
14
+ p as useUntil
18
15
  };
package/dist/index267.js CHANGED
@@ -1,19 +1,25 @@
1
- import { computed as u, unref as a } from "vue";
2
- import { hash as d } from "./index263.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
- };
1
+ const e = {
2
+ inert: ":not([inert]):not([inert] *)",
3
+ negTabIndex: ':not([tabindex^="-"])',
4
+ disabled: ":not(:disabled)"
5
+ }, n = [
6
+ `a[href]${e.inert}${e.negTabIndex}`,
7
+ `area[href]${e.inert}${e.negTabIndex}`,
8
+ `input:not([type="hidden"]):not([type="radio"])${e.inert}${e.negTabIndex}${e.disabled}`,
9
+ `input[type="radio"]${e.inert}${e.negTabIndex}${e.disabled}`,
10
+ `select${e.inert}${e.negTabIndex}${e.disabled}`,
11
+ `textarea${e.inert}${e.negTabIndex}${e.disabled}`,
12
+ `button${e.inert}${e.negTabIndex}${e.disabled}`,
13
+ `details${e.inert} > summary:first-of-type${e.negTabIndex}`,
14
+ // Discard until Firefox supports `:has()`
15
+ // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12
16
+ // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,
17
+ `iframe${e.inert}${e.negTabIndex}`,
18
+ `audio[controls]${e.inert}${e.negTabIndex}`,
19
+ `video[controls]${e.inert}${e.negTabIndex}`,
20
+ `[contenteditable]${e.inert}${e.negTabIndex}`,
21
+ `[tabindex]${e.inert}${e.negTabIndex}`
22
+ ];
17
23
  export {
18
- p as useIndexById
24
+ n as default
19
25
  };
package/dist/index268.js CHANGED
@@ -1,53 +1,6 @@
1
- import { computed as l, unref as o } from "vue";
2
- import { useItemText as x } from "./index321.js";
3
- import { useItemValue as w } from "./index264.js";
4
- import { hash as y } from "./index263.js";
5
- import { useLogger as D } from "./index233.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
- };
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
+ }
51
4
  export {
52
- q as useBaseOptions
5
+ e as extractDomContainer
53
6
  };
package/dist/index269.js CHANGED
@@ -1,14 +1,25 @@
1
- import { hash as e } from "./index263.js";
2
- import { debouncedWatch as s } from "./index215.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
- );
1
+ const i = (t) => {
2
+ const n = t.toString().replace(/\.0+$/, "").replace(/\.$/, "");
3
+ return parseFloat(n) || 0;
11
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
+ }
12
23
  export {
13
- n as useHashedWatcher
24
+ s as parseWidthString
14
25
  };
package/dist/index27.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as S, computed as r, ref as V, watchPostEffect as N, nextTick as D, createElementBlock as u, openBlock as i, normalizeClass as I, createBlock as B, createVNode as E, createElementVNode as d, resolveDynamicComponent as P, normalizeProps as o, guardReactiveProps as s, withCtx as b, renderSlot as C, createTextVNode as q, toDisplayString as h, unref as f, Transition as F, createCommentVNode as G, TransitionGroup as M, Fragment as R, renderList as j } from "vue";
2
- import { deburr as x } from "./index228.js";
2
+ import { deburr as x } from "./index264.js";
3
3
  import { getAsPercentage as k } from "./index139.js";
4
4
  import { useId as J } from "./index8.js";
5
5
  const K = ["id"], O = { class: "bb-base-input-container__hint" }, Y = /* @__PURE__ */ S({
package/dist/index270.js CHANGED
@@ -1,43 +1,15 @@
1
- import { useLogger as g } from "./index233.js";
2
- const A = (t, s) => {
3
- if (!s.length) return;
4
- const o = Array.from(
5
- t.querySelectorAll("thead th")
6
- );
7
- if (!o.length) return;
8
- const { error: n } = g(), u = o.length, a = s.reduce((e, r) => {
9
- const i = typeof r == "number" ? r : r.index, d = typeof r == "number" ? "left" : r.position, l = o[i];
10
- if (!l)
11
- return n(
12
- `BbTable fixedColumns: Cannot affix column at index ${i}. Table has ${u} columns (valid indices: 0–${u - 1}).`
13
- ), e;
14
- const { width: m } = l.getBoundingClientRect(), y = e.filter((h) => h.position === d).reduce((h, C) => h + C.width, 0);
15
- return e.push({ index: i, position: d, width: Math.floor(m), offset: y }), e;
16
- }, []), c = Array.from(t.querySelectorAll("tr")), p = a.map((e) => `:scope > :nth-child(${e.index + 1})`).join(", ");
17
- c.forEach((e) => {
18
- Array.from(e.querySelectorAll(p)).forEach((i, d) => {
19
- const l = a[d];
20
- l && (i.style.position = "sticky", i.style[l.position] = `${l.offset}px`);
21
- });
22
- });
23
- }, f = (t) => Array.isArray(t) ? t : [t], w = (t) => t.split(/\W+/g).join("_").toLowerCase(), $ = (t, s, o) => {
24
- const n = [...f(t)];
25
- return s && n.push(...f(s)), o && n.push(...f(o)), n;
26
- }, b = (t, s, o, n, u, a) => {
27
- const c = [...f(t)], p = (e) => typeof e == "function" ? e(n, u, a) : e;
28
- if (s) {
29
- const e = p(s);
30
- e && c.push(...f(e));
1
+ const c = (t, r) => {
2
+ if (typeof t == "string") {
3
+ const e = /^(\d+)([a-zA-Z%]+)?$/, n = t.match(e);
4
+ if (n) {
5
+ const [, o, a] = n;
6
+ return a ? t : o + "px";
7
+ } else if (t in r)
8
+ return r[t] + "px";
9
+ throw new Error(`Invalid size: ${t}`);
31
10
  }
32
- if (o) {
33
- const e = p(o);
34
- e && c.push(...f(e));
35
- }
36
- return c;
11
+ return t + "px";
37
12
  };
38
13
  export {
39
- A as applyFixedTableColumns,
40
- w as columnKeyToSlotName,
41
- b as mergeCellClasses,
42
- $ as mergeHeaderClasses
14
+ c as parseSize
43
15
  };
package/dist/index271.js CHANGED
@@ -1,7 +1,12 @@
1
- import { getDefaultExportFromCjs as e } from "./index339.js";
2
- import { __require as r } from "./index323.js";
3
- var o = r();
4
- const f = /* @__PURE__ */ e(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;
9
+ };
5
10
  export {
6
- f as default
11
+ o as pickBy
7
12
  };
package/dist/index272.js CHANGED
@@ -1,4 +1,5 @@
1
- const e = (t) => t[t.length - 1];
1
+ const o = () => {
2
+ };
2
3
  export {
3
- e as last
4
+ o as noop
4
5
  };
package/dist/index273.js CHANGED
@@ -1,8 +1,5 @@
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;
5
- }
1
+ import { hash as r } from "./index224.js";
2
+ const a = (o, t) => r(o) === r(t);
6
3
  export {
7
- e as validateDateFormat
4
+ a as isEqual
8
5
  };
package/dist/index274.js CHANGED
@@ -1,270 +1,9 @@
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 "./index347.js";
3
- import { identity as L } from "./index249.js";
4
- import { isNotNil as ke } from "./index144.js";
5
- import { last as ve } from "./index272.js";
6
- import { sort as N } from "./index348.js";
7
- import { validateDateFormat as R } from "./index273.js";
8
- import { toInnerValue as Oe, toOuterValue as p } from "./index349.js";
9
- import { isDateDisabled as we } from "./index350.js";
10
- import g from "./index243.js";
11
- import Se from "./index346.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
- });
1
+ const s = (r, t) => {
2
+ if (r.endsWith("."))
3
+ return t === 0 ? r.slice(0, -1) : r;
4
+ const [n, i] = r.split(".");
5
+ return i ? `${n}.${i.slice(0, t)}` : r;
6
+ };
268
7
  export {
269
- Pe as default
8
+ s as clampPrecision
270
9
  };