bitboss-ui 2.0.84 → 2.0.86

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 (140) hide show
  1. package/dist/index110.js +4 -4
  2. package/dist/index118.js +2 -2
  3. package/dist/index120.js +5 -5
  4. package/dist/index122.js +1 -1
  5. package/dist/index126.js +28 -26
  6. package/dist/index127.js +1 -1
  7. package/dist/index128.js +1 -1
  8. package/dist/index13.js +1 -1
  9. package/dist/index130.js +1 -1
  10. package/dist/index133.js +2 -2
  11. package/dist/index15.js +4 -4
  12. package/dist/index17.js +3 -3
  13. package/dist/index19.js +2 -2
  14. package/dist/index205.js +5 -2
  15. package/dist/index206.js +16 -8
  16. package/dist/index207.js +15 -52
  17. package/dist/index208.js +21 -0
  18. package/dist/index209.js +19 -13
  19. package/dist/index21.js +14 -14
  20. package/dist/index210.js +27 -2
  21. package/dist/index211.js +3 -4
  22. package/dist/index212.js +2 -2
  23. package/dist/index213.js +8 -5
  24. package/dist/index214.js +247 -14
  25. package/dist/index215.js +51 -15
  26. package/dist/index216.js +44 -19
  27. package/dist/index217.js +5 -19
  28. package/dist/index218.js +59 -26
  29. package/dist/index219.js +53 -3
  30. package/dist/index221.js +13 -249
  31. package/dist/index222.js +18 -50
  32. package/dist/index223.js +4 -44
  33. package/dist/index224.js +2 -5
  34. package/dist/index225.js +163 -59
  35. package/dist/index226.js +84 -3
  36. package/dist/index228.js +2 -6
  37. package/dist/index229.js +4 -7
  38. package/dist/index23.js +16 -16
  39. package/dist/index230.js +2 -12
  40. package/dist/index231.js +3 -20
  41. package/dist/index232.js +40 -3
  42. package/dist/index233.js +6 -126
  43. package/dist/index234.js +7 -125
  44. package/dist/index235.js +12 -2
  45. package/dist/index236.js +126 -5
  46. package/dist/index237.js +122 -366
  47. package/dist/index238.js +2 -3
  48. package/dist/index239.js +5 -164
  49. package/dist/index240.js +368 -83
  50. package/dist/index241.js +5 -0
  51. package/dist/index242.js +2 -2
  52. package/dist/index243.js +17 -105
  53. package/dist/index244.js +108 -0
  54. package/dist/{index245.js → index246.js} +1 -1
  55. package/dist/index248.js +2 -18
  56. package/dist/index25.js +6 -6
  57. package/dist/index251.js +281 -9
  58. package/dist/index252.js +6 -23
  59. package/dist/index253.js +2 -89
  60. package/dist/index255.js +2 -6
  61. package/dist/index256.js +2 -16
  62. package/dist/index257.js +2 -9
  63. package/dist/index258.js +2 -3
  64. package/dist/index259.js +4 -0
  65. package/dist/index260.js +2 -7
  66. package/dist/index261.js +2 -4
  67. package/dist/index262.js +2 -281
  68. package/dist/index263.js +27 -5
  69. package/dist/index264.js +22 -2
  70. package/dist/index266.js +7 -2
  71. package/dist/index267.js +9 -2
  72. package/dist/index268.js +23 -2
  73. package/dist/index269.js +89 -2
  74. package/dist/index27.js +1 -1
  75. package/dist/index271.js +5 -1
  76. package/dist/index272.js +16 -2
  77. package/dist/index273.js +3 -2
  78. package/dist/index275.js +176 -22
  79. package/dist/index276.js +11 -0
  80. package/dist/index277.js +3 -431
  81. package/dist/index278.js +12 -2
  82. package/dist/index279.js +7 -87
  83. package/dist/index280.js +9 -176
  84. package/dist/index281.js +14 -197
  85. package/dist/index282.js +4 -2
  86. package/dist/index283.js +4 -126
  87. package/dist/index284.js +429 -20
  88. package/dist/index285.js +4 -0
  89. package/dist/index286.js +83 -218
  90. package/dist/index287.js +2 -3
  91. package/dist/index288.js +126 -12
  92. package/dist/index289.js +21 -8
  93. package/dist/index29.js +3 -3
  94. package/dist/index291.js +197 -14
  95. package/dist/index292.js +223 -3
  96. package/dist/index295.js +1 -1
  97. package/dist/index296.js +1 -1
  98. package/dist/index297.js +1 -1
  99. package/dist/index299.js +5 -66
  100. package/dist/index300.js +66 -5
  101. package/dist/index301.js +5 -4
  102. package/dist/index302.js +8 -4
  103. package/dist/index303.js +3 -59
  104. package/dist/index304.js +4 -3
  105. package/dist/index305.js +4 -33
  106. package/dist/index306.js +4 -7
  107. package/dist/index307.js +58 -4
  108. package/dist/index308.js +6 -7
  109. package/dist/index309.js +18 -6
  110. package/dist/index31.js +2 -2
  111. package/dist/index310.js +32 -18
  112. package/dist/index311.js +6 -3
  113. package/dist/index314.js +1 -1
  114. package/dist/index315.js +1 -1
  115. package/dist/index33.js +2 -2
  116. package/dist/index35.js +3 -3
  117. package/dist/index37.js +14 -14
  118. package/dist/index39.js +4 -4
  119. package/dist/index41.js +2 -2
  120. package/dist/index43.js +2 -2
  121. package/dist/index45.js +6 -6
  122. package/dist/index47.js +2 -2
  123. package/dist/index49.js +2 -2
  124. package/dist/index55.js +1 -1
  125. package/dist/index57.js +1 -1
  126. package/dist/index75.js +3 -3
  127. package/dist/index79.js +2 -2
  128. package/dist/index81.js +1 -1
  129. package/dist/index84.js +3 -3
  130. package/dist/index86.js +1 -1
  131. package/dist/index88.js +3 -3
  132. package/dist/index90.js +1 -1
  133. package/package.json +1 -1
  134. package/dist/index220.js +0 -4
  135. package/dist/index227.js +0 -43
  136. package/dist/index247.js +0 -4
  137. package/dist/index270.js +0 -4
  138. package/dist/index274.js +0 -30
  139. package/dist/index290.js +0 -11
  140. /package/dist/{index265.js → index254.js} +0 -0
package/dist/index221.js CHANGED
@@ -1,251 +1,15 @@
1
- import { defineComponent as de, ref as A, computed as _, watch as le, openBlock as c, createElementBlock as u, normalizeClass as k, withKeys as f, withModifiers as p, createVNode as ce, withCtx as ue, createElementVNode as M, Fragment as O, renderList as S, toDisplayString as C, renderSlot as L, nextTick as fe } from "vue";
2
- import { chunk as pe } from "./index309.js";
3
- import { identity as be } from "./index235.js";
4
- import { isNotNil as me } from "./index134.js";
5
- import { last as ge } from "./index220.js";
6
- import { sort as T } from "./index310.js";
7
- import b from "./index213.js";
8
- import he from "./index224.js";
9
- const ye = ["onKeydown"], _e = { class: "bb-base-date-picker__header-container" }, ke = ["abbr"], Oe = ["id", "disabled", "tabindex"], Ce = /* @__PURE__ */ de({
10
- __name: "BaseDatePickerInputDaySelector",
11
- props: {
12
- cursor: {},
13
- current: { type: Boolean },
14
- disabled: { type: Boolean },
15
- firstDayOfWeek: {},
16
- modelValue: {},
17
- max: {},
18
- min: {},
19
- selectable: { type: Function },
20
- range: { type: Boolean },
21
- multiple: { type: Boolean },
22
- readonly: { type: Boolean }
23
- },
24
- emits: ["update:modelValue", "update:cursor"],
25
- setup(E, { emit: N }) {
26
- const a = E, s = N, g = A(null), x = b().startOf("day"), m = _(() => {
27
- let e = 1 / 0, r = -1 / 0, o = {};
28
- return a.modelValue && [].concat(a.modelValue).filter(be).map((i) => b(i).startOf("day")).map((i) => i.valueOf()).forEach((i, h) => {
29
- i < e && (e = i), i > r && (r = i), o[i] = h;
30
- }), {
31
- min: e,
32
- max: r,
33
- index: (t) => o[t.valueOf()],
34
- selected: (t) => me(o[t.valueOf()]),
35
- isFirstOfRange: (t) => t.valueOf() === e,
36
- isLastOfRange: (t) => t.valueOf() === r,
37
- isBetween: (t) => t.valueOf() > e && t.valueOf() < r
38
- };
39
- }), R = _(() => new Array(7).fill("").map((e, r) => b().day((r + a.firstDayOfWeek) % 7)).map((e) => ({
40
- accessibleLabel: e.format("dddd"),
41
- label: e.format("dd").slice(0, 1).toUpperCase(),
42
- id: e.toISOString(),
43
- original: e
44
- }))), v = _(() => {
45
- const e = a.cursor.year().toString(), r = a.cursor.month().toString();
46
- let t = a.cursor.clone().startOf("month").clone().startOf("week"), h = a.cursor.clone().endOf("month").clone().endOf("week"), Y = b(a.cursor).startOf("day"), D = [];
47
- for (let n = t; n.isBefore(h); n = n.add(1, "day"))
48
- D.push(n.clone());
49
- const Z = D.map((n) => {
50
- const y = n.toISOString(), ee = n.week().toString();
51
- let te = m.value.selected(n);
52
- const B = a.range && m.value.isFirstOfRange(n), I = a.range && m.value.isLastOfRange(n), re = a.range && !B && !I && m.value.isBetween(n), ae = n.month().toString() === r && n.year().toString() === e, oe = n.isSame(x), ne = n.isSame(Y), se = d(n), ie = n.get("D").toString();
53
- return {
54
- buttonId: "date_" + y,
55
- current: ne,
56
- disabled: se,
57
- first: B,
58
- highlighted: ae,
59
- id: y,
60
- label: ie,
61
- last: I,
62
- middle: re,
63
- original: n,
64
- selected: te,
65
- slotName: y,
66
- today: oe,
67
- week: ee
68
- };
69
- });
70
- return pe(Z, 7);
71
- }), d = (e) => {
72
- let r = !0;
73
- return a.min && r && (r = e.isSameOrAfter(b(a.min).startOf("day"))), a.max && r && (r = e.isSameOrBefore(b(a.max).startOf("day"))), typeof a.selectable == "function" && r && (r = a.selectable(e.toDate())), !r;
74
- }, w = A("left"), K = (e, r) => {
75
- e && r && (w.value = e.isBefore(r) ? "left" : "right");
76
- };
77
- le(
78
- () => a.cursor,
79
- (e, r) => {
80
- K(e, r);
81
- }
82
- );
83
- const V = (e) => s("update:cursor", e), l = async () => {
84
- if (!g.value) return;
85
- await fe();
86
- const e = ge([
87
- ...g.value.querySelectorAll(
88
- ".bb-base-date-picker__date--current button"
89
- )
90
- ]);
91
- e instanceof HTMLElement && e.focus();
92
- }, F = (e) => {
93
- if (!a.readonly && e.target instanceof HTMLButtonElement) {
94
- const [, r] = e.target.id.split("_"), o = b(r);
95
- if (a.cursor.month() !== o.month()) {
96
- V(o);
97
- return;
98
- }
99
- const t = v.value.flat().find((i) => i.id === r);
100
- if (t.disabled) return;
101
- V(o), H(t);
102
- }
103
- }, H = (e) => {
104
- a.range ? P(e) : a.multiple ? U(e) : W(e);
105
- }, P = (e) => {
106
- if (!Array.isArray(a.modelValue)) return;
107
- const r = e.original.toISOString();
108
- if (a.modelValue.length !== 1) s("update:modelValue", [r]);
109
- else {
110
- const o = T([a.modelValue[0], e.original.toISOString()]);
111
- s("update:modelValue", o);
112
- }
113
- }, U = (e) => {
114
- if (Array.isArray(a.modelValue))
115
- if (e.selected) {
116
- const r = e.original.toISOString(), o = a.modelValue.filter((t) => t !== r);
117
- s("update:modelValue", o);
118
- } else {
119
- const r = T([...a.modelValue, e.original.toISOString()]);
120
- s("update:modelValue", r);
121
- }
122
- }, W = (e) => {
123
- e.selected ? s("update:modelValue", null) : s("update:modelValue", e.original.toISOString());
124
- }, $ = () => {
125
- const e = a.cursor.clone().add(1, "day");
126
- d(e) || (s("update:cursor", e), l());
127
- }, j = () => {
128
- const e = a.cursor.clone().subtract(1, "day");
129
- d(e) || (s("update:cursor", e), l());
130
- }, q = () => {
131
- const e = a.cursor.clone().subtract(1, "week");
132
- d(e) || (s("update:cursor", e), l());
133
- }, z = () => {
134
- const e = a.cursor.clone().add(1, "week");
135
- d(e) || (s("update:cursor", e), l());
136
- }, G = () => {
137
- const e = a.cursor.clone().endOf("week");
138
- d(e) || (s("update:cursor", e), l());
139
- }, J = () => {
140
- const e = a.cursor.clone().startOf("week");
141
- d(e) || (s("update:cursor", e), l());
142
- }, Q = (e) => {
143
- if (e.shiftKey) {
144
- const r = a.cursor.clone().subtract(1, "year");
145
- if (d(r)) return;
146
- s("update:cursor", r);
147
- } else {
148
- const r = a.cursor.clone().subtract(1, "month");
149
- if (d(r)) return;
150
- s("update:cursor", r);
151
- }
152
- l();
153
- }, X = (e) => {
154
- if (e.shiftKey) {
155
- const r = a.cursor.clone().add(1, "year");
156
- if (d(r)) return;
157
- s("update:cursor", r);
158
- } else {
159
- const r = a.cursor.clone().add(1, "month");
160
- if (d(r)) return;
161
- s("update:cursor", r);
162
- }
163
- l();
164
- };
165
- return (e, r) => (c(), u("div", {
166
- ref_key: "calendar",
167
- ref: g,
168
- class: k(["bb-base-date-picker__days-selector", { "bb-base-date-picker__days-selector--hidden": !e.current }]),
169
- onKeydown: [
170
- f(p(z, ["prevent"]), ["down"]),
171
- f(p(G, ["prevent"]), ["end"]),
172
- f(p(J, ["prevent"]), ["home"]),
173
- f(p(j, ["prevent"]), ["left"]),
174
- f(p(X, ["prevent"]), ["page-down"]),
175
- f(p(Q, ["prevent"]), ["page-up"]),
176
- f(p($, ["prevent"]), ["right"]),
177
- f(p(q, ["prevent"]), ["up"])
178
- ]
179
- }, [
180
- ce(he, {
181
- direction: w.value,
182
- gap: 30
183
- }, {
184
- default: ue(() => [
185
- (c(), u("div", {
186
- key: e.cursor.month().toString(),
187
- class: "bb-base-date-picker__month"
188
- }, [
189
- M("div", _e, [
190
- (c(!0), u(O, null, S(R.value, (o) => (c(), u("div", {
191
- key: o.id,
192
- abbr: o.accessibleLabel,
193
- class: "bb-base-date-picker__header-cell"
194
- }, C(o.label), 9, ke))), 128))
195
- ]),
196
- (c(!0), u(O, null, S(v.value, (o) => (c(), u("div", {
197
- key: o[0].id,
198
- class: "bb-base-date-picker__week"
199
- }, [
200
- (c(!0), u(O, null, S(o, (t) => (c(), u("div", {
201
- key: t.id,
202
- class: k({
203
- "bb-base-date-picker__date--current": t.current,
204
- "bb-base-date-picker__date--disabled": e.disabled || t.disabled,
205
- "bb-base-date-picker__date--first": t.first,
206
- "bb-base-date-picker__date--highlighted": t.highlighted,
207
- "bb-base-date-picker__date--last": t.last,
208
- "bb-base-date-picker__date--middle": t.middle,
209
- "bb-base-date-picker__date--selected": t.selected,
210
- "bb-base-date-picker__date--today": t.today,
211
- "bb-base-date-picker__date": !0
212
- })
213
- }, [
214
- M("button", {
215
- id: t.buttonId,
216
- class: k("bb-base-date-picker__date-button"),
217
- disabled: e.disabled || t.disabled,
218
- tabindex: Number(t.current) - 1,
219
- type: "button",
220
- onClick: F
221
- }, C(t.label), 9, Oe),
222
- L(e.$slots, "day", {
223
- first: t.first,
224
- highlighted: t.highlighted,
225
- item: t.original,
226
- label: t.label,
227
- last: t.last,
228
- middle: t.middle,
229
- selected: t.selected
230
- }),
231
- L(e.$slots, t.slotName, {
232
- first: t.first,
233
- highlighted: t.highlighted,
234
- item: t.original,
235
- label: t.label,
236
- last: t.last,
237
- middle: t.middle,
238
- selected: t.selected
239
- })
240
- ], 2))), 128))
241
- ]))), 128))
242
- ]))
243
- ]),
244
- _: 3
245
- }, 8, ["direction"])
246
- ], 42, ye));
247
- }
248
- });
1
+ import { openBlock as t, createElementBlock as n, renderSlot as e } from "vue";
2
+ /* empty css */
3
+ import r from "./index266.js";
4
+ const s = {}, c = { class: "bb-common-input-outer-container" };
5
+ function p(o, a) {
6
+ return t(), n("span", c, [
7
+ e(o.$slots, "prepend-outer"),
8
+ e(o.$slots, "default"),
9
+ e(o.$slots, "append-outer")
10
+ ]);
11
+ }
12
+ const i = /* @__PURE__ */ r(s, [["render", p]]);
249
13
  export {
250
- Ce as default
14
+ i as default
251
15
  };
package/dist/index222.js CHANGED
@@ -1,54 +1,22 @@
1
- import { defineComponent as p, ref as b, watch as _, computed as m, openBlock as d, createElementBlock as c, normalizeClass as u, createElementVNode as t, createVNode as h, withCtx as f, toDisplayString as o } from "vue";
2
- import k from "./index224.js";
3
- const y = { class: "bb-base-date-picker__year-container" }, v = {
4
- "aria-live": "polite",
5
- class: "bb-base-date-picker__selected-day-label"
6
- }, B = { class: "bb-base-date-picker__weekday" }, D = { class: "bb-base-date-picker__monthday" }, M = { class: "bb-base-date-picker__month-button" }, C = /* @__PURE__ */ p({
7
- __name: "BaseDatePickerHeader",
8
- props: {
9
- cursor: {},
10
- disabled: { type: Boolean },
11
- hidden: { type: Boolean }
12
- },
13
- emits: ["mode:year", "mode:month"],
14
- setup(n) {
15
- const s = n, r = b("top"), l = (e, a) => {
16
- e && a && (r.value = e.isBefore(a) ? "top" : "bottom");
1
+ import { MaskInput as r } from "./index275.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 == null ? void 0 : 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);
17
15
  };
18
- _(
19
- () => s.cursor,
20
- (e, a) => {
21
- l(e, a);
22
- }
23
- );
24
- const i = m(() => s.cursor.format("YYYY"));
25
- return (e, a) => (d(), c("div", {
26
- class: u(["bb-base-date-picker__header", { "bb-base-date-picker__header--hidden": e.hidden }])
27
- }, [
28
- t("div", y, [
29
- h(k, {
30
- direction: r.value,
31
- duration: 500,
32
- gap: 30
33
- }, {
34
- default: f(() => [
35
- (d(), c("span", {
36
- key: i.value,
37
- "aria-live": "polite",
38
- class: "bb-base-date-picker__year-button"
39
- }, o(i.value), 1))
40
- ]),
41
- _: 1
42
- }, 8, ["direction"])
43
- ]),
44
- t("div", v, [
45
- t("span", B, o(e.cursor.format("ddd")) + ", ", 1),
46
- t("span", D, o(e.cursor.format("DD")), 1),
47
- t("span", M, o(e.cursor.format("MMMM")), 1)
48
- ])
49
- ], 2));
16
+ e.onMaska = e.onMaska == null ? l : Array.isArray(e.onMaska) ? [...e.onMaska, l] : [e.onMaska, l];
50
17
  }
51
- });
18
+ u.has(t) ? (s = u.get(t)) == null || s.update(e) : u.set(t, new r(t, e));
19
+ };
52
20
  export {
53
- C as default
21
+ k as vMaska
54
22
  };
package/dist/index223.js CHANGED
@@ -1,46 +1,6 @@
1
- import { defineComponent as _, computed as a, openBlock as o, createElementBlock as c, createElementVNode as p, Fragment as b, renderList as h, createBlock as k, normalizeClass as f, withCtx as y, createTextVNode as x, toDisplayString as B } from "vue";
2
- import C from "./index13.js";
3
- /* empty css */
4
- const M = { class: "bb-base-date-picker__button-menu bb-base-date-picker__month-selector" }, v = { class: "content" }, E = /* @__PURE__ */ _({
5
- __name: "BaseDatePickerMonthSelector",
6
- props: {
7
- cursor: {},
8
- disabled: { type: Boolean }
9
- },
10
- emits: ["update:month"],
11
- setup(l, { emit: d }) {
12
- const s = l, m = d, i = a(() => s.cursor.month()), u = a(
13
- () => new Array(12).fill(0).map((r, t) => {
14
- const n = s.cursor.clone().startOf("year").add(t, "month");
15
- return {
16
- text: n.format("MMMM"),
17
- key: n.unix(),
18
- selected: n.month() === i.value,
19
- handler: () => m("update:month", t)
20
- };
21
- })
22
- );
23
- return (r, t) => (o(), c("div", M, [
24
- p("div", v, [
25
- (o(!0), c(b, null, h(u.value, (e) => (o(), k(C, {
26
- key: e.key,
27
- class: f({
28
- content__btn: !0,
29
- "content__btn--selected": e.selected
30
- }),
31
- disabled: r.disabled,
32
- type: "button",
33
- onClick: e.handler
34
- }, {
35
- default: y(() => [
36
- x(B(e.text), 1)
37
- ]),
38
- _: 2
39
- }, 1032, ["class", "disabled", "onClick"]))), 128))
40
- ])
41
- ]));
42
- }
43
- });
1
+ function x(e) {
2
+ return /^#([A-Fa-f0-9]{6})$/.test(e);
3
+ }
44
4
  export {
45
- E as default
5
+ x as isHex
46
6
  };
package/dist/index224.js CHANGED
@@ -1,7 +1,4 @@
1
- import o from "./index275.js";
2
- /* empty css */
3
- import t from "./index260.js";
4
- const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-8c6b13bd"]]);
1
+ const n = (t, a, m) => Math.min(Math.max(t, a), m);
5
2
  export {
6
- m as default
3
+ n as clamp
7
4
  };
package/dist/index225.js CHANGED
@@ -1,62 +1,166 @@
1
- import { defineComponent as g, ref as i, computed as d, onMounted as h, openBlock as u, createElementBlock as m, createElementVNode as y, Fragment as x, renderList as B, createBlock as C, normalizeClass as S, withCtx as T, createTextVNode as E, toDisplayString as w } from "vue";
2
- import { range as H } from "./index306.js";
3
- import M from "./index13.js";
4
- /* empty css */
5
- const n = 10, l = 3, V = /* @__PURE__ */ g({
6
- __name: "BaseDatePickerYearSelector",
7
- props: {
8
- cursor: {},
9
- disabled: { type: Boolean }
10
- },
11
- emits: ["update:year"],
12
- setup(p, { emit: _ }) {
13
- const f = p, b = _, o = i(), r = d(() => f.cursor.year()), c = i(r.value - n * l), s = i(r.value + n * l), v = d(
14
- () => H(c.value, s.value).map((e) => ({
15
- text: e,
16
- key: e,
17
- selected: e === r.value,
18
- handler: () => b("update:year", e)
19
- }))
20
- ), k = (e) => {
21
- const t = e.target;
22
- t.scrollTop <= 100 ? c.value = Math.max(
23
- c.value - n * l,
24
- r.value - 200
25
- ) : t.scrollHeight - t.scrollTop === t.clientHeight && (s.value = Math.min(s.value + n * l, 2101));
26
- };
27
- return h(() => {
28
- if (!o.value) return;
29
- const e = o.value.querySelector(
30
- ".content__btn--selected"
1
+ import { ref as s, computed as a, onServerPrefetch as $, onBeforeMount as ee, onBeforeUnmount as te, watch as b, nextTick as Q } from "vue";
2
+ import { last as le } from "./index212.js";
3
+ import { useArray as E } from "./index278.js";
4
+ import { uniqBy as ne } from "./index279.js";
5
+ import { useItemValue as ue } from "./index280.js";
6
+ import { useItemText as oe } from "./index281.js";
7
+ import { hash as f } from "./index211.js";
8
+ import { isNotNil as F } from "./index134.js";
9
+ import { waitFor as ie } from "./index233.js";
10
+ import { isNil as se } from "./index129.js";
11
+ import { pipe as H } from "./index282.js";
12
+ const xe = (t) => {
13
+ const r = s(""), P = s(), o = (e) => {
14
+ P.value = e, t.emit("update:modelValue", e);
15
+ }, m = s([]), {
16
+ array: k,
17
+ add: j,
18
+ remove: J,
19
+ set: h
20
+ } = E(), {
21
+ array: O,
22
+ add: L,
23
+ remove: U
24
+ } = E(), { getItemText: z } = oe(), { getItemValue: G } = ue();
25
+ if (t.max && t.max < 1)
26
+ throw new Error("Invalid value for `max` property");
27
+ const B = (e) => {
28
+ const l = !!(t.disabled.value || e.disabled), n = z(e, t.itemText), u = G(e, t.itemValue);
29
+ if (u === void 0)
30
+ throw new Error(
31
+ 'The result of extracting "value" from option was undefined. Affected item is ' + JSON.stringify(e) + " please check itemValue property is correct."
31
32
  );
32
- e && (e.parentElement.scrollTop = e.offsetTop - e.parentElement.clientHeight / 2 + 16);
33
- }), (e, t) => (u(), m("div", {
34
- ref_key: "container",
35
- ref: o,
36
- class: "bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border"
37
- }, [
38
- y("div", {
39
- class: "content",
40
- onScrollPassive: k
41
- }, [
42
- (u(!0), m(x, null, B(v.value, (a) => (u(), C(M, {
43
- key: a.key,
44
- class: S({
45
- content__btn: !0,
46
- "content__btn--selected": a.selected
47
- }),
48
- disabled: e.disabled,
49
- onClick: a.handler
50
- }, {
51
- default: T(() => [
52
- E(w(a.text), 1)
53
- ]),
54
- _: 2
55
- }, 1032, ["class", "disabled", "onClick"]))), 128))
56
- ], 32)
57
- ], 512));
58
- }
59
- });
33
+ const _ = f(u);
34
+ return {
35
+ item: e,
36
+ text: n,
37
+ value: u,
38
+ valueHash: _,
39
+ disabled: l,
40
+ selected: !1
41
+ };
42
+ }, V = (e) => (e.selected = F(q.value[e.valueHash]), e), K = t.max || 1 / 0, g = (e) => (e.disabled = e.disabled || t.multiple && t.modelValue.value.length >= K && !e.selected, e), x = a(() => {
43
+ const e = [].concat(
44
+ m.value.map(H(B, V, g)),
45
+ O.value.map(H(V, g)),
46
+ k.value.map(H(V, g))
47
+ );
48
+ return ne(e, (n) => n.valueHash);
49
+ }), R = (e) => {
50
+ t.multiple ? (o(t.modelValue.value.concat(e.value)), t.stash && j(e), t.resetQueryOnOptionSelected && i()) : (t.stash && h(e), o(e.value), Q(() => i()));
51
+ }, W = async (e) => {
52
+ if (U((l) => l.valueHash !== e.valueHash), J((l) => l.valueHash !== e.valueHash), t.multiple) {
53
+ const l = { ...q.value };
54
+ delete l[e.valueHash], o(Object.values(l));
55
+ } else
56
+ o(null), await Q(), i();
57
+ }, q = a(() => {
58
+ const e = {}, l = [].concat(t.modelValue.value);
59
+ for (let n = 0; n < l.length; n++) {
60
+ const u = l[n];
61
+ e[f(u)] = u;
62
+ }
63
+ return e;
64
+ }), I = async ({ prefill: e = !1 }) => {
65
+ let l = [];
66
+ if (Array.isArray(t.items.value))
67
+ l = t.items.value;
68
+ else if (typeof t.items.value == "function") {
69
+ const n = ++d.value;
70
+ try {
71
+ l = await t.items.value(
72
+ r.value,
73
+ e,
74
+ t.modelValue.value
75
+ ), n < d.value && (await ie(() => n === d.value), l = m.value);
76
+ } catch (u) {
77
+ console.error(u);
78
+ }
79
+ d.value--;
80
+ }
81
+ m.value = l;
82
+ }, C = a(() => {
83
+ const e = {};
84
+ for (let l = 0; l < x.value.length; l++) {
85
+ const n = x.value[l], { valueHash: u } = n;
86
+ e[u] = n;
87
+ }
88
+ return {
89
+ get: (l) => e[f(l)]
90
+ };
91
+ }), c = a(() => [].concat(t.modelValue.value).reduce((e, l) => {
92
+ const n = C.value.get(l);
93
+ return n && e.push(n), e;
94
+ }, [])), M = (e) => F(C.value.get(e)), i = () => {
95
+ if (t.multiple) {
96
+ r.value = "";
97
+ return;
98
+ }
99
+ let e;
100
+ c.value && (e = le(c.value)), r.value = (e == null ? void 0 : e.text) || "";
101
+ }, X = () => {
102
+ const e = r.value.trim(), l = B(e);
103
+ L(l), i();
104
+ }, d = s(0), A = a(() => [].concat(t.modelValue.value).reduce(
105
+ (e, l) => (M(l) ? e.coherent.push(l) : e.incoherent.push(l), e),
106
+ { coherent: [], incoherent: [] }
107
+ )), D = a(() => t.multiple && !t.modelValue.value.length || !t.multiple && se(t.modelValue.value) ? !0 : !A.value.incoherent.length), Y = () => {
108
+ t.enforceCoherence && !D.value && (t.multiple ? o(A.value.coherent) : o(null));
109
+ }, y = s(!1), w = s(!1), v = async () => {
110
+ w.value = !0, await I({ prefill: !0 }), Y(), i(), y.value = !0, w.value = !1;
111
+ };
112
+ $(async () => {
113
+ t.prefill && (await v(), t.stash && h(...c.value));
114
+ }), ee(async () => {
115
+ t.prefill && !y.value && (await v(), t.stash && h(...c.value));
116
+ });
117
+ let T;
118
+ const Z = () => {
119
+ T && clearTimeout(T), T = setTimeout(async () => {
120
+ try {
121
+ await I({ prefill: !1 });
122
+ } catch (e) {
123
+ console.error(e);
124
+ }
125
+ }, t.queryDebounceTime);
126
+ };
127
+ te(() => clearTimeout(T));
128
+ let p;
129
+ b(
130
+ () => t.modelValue.value,
131
+ () => {
132
+ D.value || (p && clearTimeout(p), p = setTimeout(async () => {
133
+ v();
134
+ }, t.modelValueDebounceTime));
135
+ }
136
+ );
137
+ let S;
138
+ const N = async (e, l) => {
139
+ f(l) !== f(e) && y.value && (S && clearTimeout(S), S = setTimeout(async () => {
140
+ await v();
141
+ }, t.depsDebounceTime));
142
+ };
143
+ return b(() => t.items.value, N), b(() => t.dependencies.value, N), {
144
+ addCurrentQueryToManualItems: X,
145
+ alignQueryToState: i,
146
+ getOptions: I,
147
+ hasPrefilled: y,
148
+ innerLoading: d,
149
+ isPrefilling: w,
150
+ manualItems: O,
151
+ options: x,
152
+ prefillItems: v,
153
+ query: r,
154
+ searchByQuery: Z,
155
+ selectedOptions: c,
156
+ selectOption: R,
157
+ setStash: h,
158
+ unselectOption: W,
159
+ updateModelValue: o,
160
+ valueIsSelected: M,
161
+ internalItems: m
162
+ };
163
+ };
60
164
  export {
61
- V as default
165
+ xe as useOptions
62
166
  };