bitboss-ui 2.0.2 → 2.0.4

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 (266) hide show
  1. package/dist/components/BaseDatePicker/BaseDatePicker.vue.d.ts +10 -99
  2. package/dist/components/BaseDatePicker/BaseDatePickerHeader.vue.d.ts +24 -0
  3. package/dist/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue.d.ts +56 -0
  4. package/dist/components/BaseDatePicker/BaseDatePickerMonthSelector.vue.d.ts +21 -0
  5. package/dist/components/BaseDatePicker/BaseDatePickerYearSelector.vue.d.ts +21 -0
  6. package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +1 -46
  7. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -47
  8. package/dist/components/BbTab/BbTab.vue.d.ts +9 -0
  9. package/dist/components/Transitions/Slide.vue.d.ts +43 -0
  10. package/dist/components/Transitions/SlideBack.vue.d.ts +43 -0
  11. package/dist/composables/useLogger.d.ts +1 -0
  12. package/dist/index103.js +150 -126
  13. package/dist/index103.js.map +1 -1
  14. package/dist/index105.js +5 -5
  15. package/dist/index113.js +1 -1
  16. package/dist/index115.js +5 -5
  17. package/dist/index115.js.map +1 -1
  18. package/dist/index117.js +1 -1
  19. package/dist/index12.js +1 -1
  20. package/dist/index121.js +1 -1
  21. package/dist/index122.js +1 -1
  22. package/dist/index123.js +1 -1
  23. package/dist/index125.js +1 -1
  24. package/dist/index127.js +2 -2
  25. package/dist/index128.js +1 -1
  26. package/dist/index14.js +3 -3
  27. package/dist/index16.js +2 -2
  28. package/dist/index18.js +176 -482
  29. package/dist/index18.js.map +1 -1
  30. package/dist/index197.js +2 -81
  31. package/dist/index197.js.map +1 -1
  32. package/dist/index198.js +158 -2
  33. package/dist/index198.js.map +1 -1
  34. package/dist/index199.js +84 -158
  35. package/dist/index199.js.map +1 -1
  36. package/dist/index20.js +199 -190
  37. package/dist/index20.js.map +1 -1
  38. package/dist/index201.js +5 -0
  39. package/dist/index201.js.map +1 -0
  40. package/dist/index202.js +4 -3
  41. package/dist/index202.js.map +1 -1
  42. package/dist/index203.js +2 -35
  43. package/dist/index203.js.map +1 -1
  44. package/dist/index204.js +81 -6
  45. package/dist/index204.js.map +1 -1
  46. package/dist/index205.js +126 -7
  47. package/dist/index205.js.map +1 -1
  48. package/dist/index206.js +5 -5
  49. package/dist/index206.js.map +1 -1
  50. package/dist/index207.js +123 -5
  51. package/dist/index207.js.map +1 -1
  52. package/dist/index208.js +18 -15
  53. package/dist/index208.js.map +1 -1
  54. package/dist/index209.js +10 -10
  55. package/dist/index209.js.map +1 -1
  56. package/dist/index210.js +15 -18
  57. package/dist/index210.js.map +1 -1
  58. package/dist/index211.js +2 -19
  59. package/dist/index211.js.map +1 -1
  60. package/dist/index212.js +2 -27
  61. package/dist/index212.js.map +1 -1
  62. package/dist/index213.js +35 -8
  63. package/dist/index213.js.map +1 -1
  64. package/dist/index214.js +174 -2
  65. package/dist/index214.js.map +1 -1
  66. package/dist/index215.js +6 -2
  67. package/dist/index215.js.map +1 -1
  68. package/dist/index216.js +42 -4
  69. package/dist/index216.js.map +1 -1
  70. package/dist/index218.js +13 -3
  71. package/dist/index218.js.map +1 -1
  72. package/dist/index219.js +5 -126
  73. package/dist/index219.js.map +1 -1
  74. package/dist/index22.js +5 -5
  75. package/dist/index220.js +366 -120
  76. package/dist/index220.js.map +1 -1
  77. package/dist/index221.js +8 -2
  78. package/dist/index221.js.map +1 -1
  79. package/dist/index222.js +3 -174
  80. package/dist/index222.js.map +1 -1
  81. package/dist/index223.js +7 -42
  82. package/dist/index223.js.map +1 -1
  83. package/dist/index224.js +22 -0
  84. package/dist/index224.js.map +1 -0
  85. package/dist/index225.js +27 -13
  86. package/dist/index225.js.map +1 -1
  87. package/dist/index226.js +3 -369
  88. package/dist/index226.js.map +1 -1
  89. package/dist/index227.js +249 -3
  90. package/dist/index227.js.map +1 -1
  91. package/dist/index229.js +46 -100
  92. package/dist/index229.js.map +1 -1
  93. package/dist/index230.js +40 -0
  94. package/dist/index230.js.map +1 -0
  95. package/dist/index231.js +5 -100
  96. package/dist/index231.js.map +1 -1
  97. package/dist/index232.js +44 -0
  98. package/dist/index232.js.map +1 -0
  99. package/dist/index233.js +3 -2
  100. package/dist/index233.js.map +1 -1
  101. package/dist/index234.js +2 -3
  102. package/dist/index234.js.map +1 -1
  103. package/dist/index235.js +3 -10
  104. package/dist/index235.js.map +1 -1
  105. package/dist/index236.js +17 -2
  106. package/dist/index236.js.map +1 -1
  107. package/dist/index237.js +105 -2
  108. package/dist/index237.js.map +1 -1
  109. package/dist/index239.js +99 -8
  110. package/dist/index239.js.map +1 -1
  111. package/dist/index24.js +1 -1
  112. package/dist/index241.js +9 -16
  113. package/dist/index241.js.map +1 -1
  114. package/dist/index242.js +2 -430
  115. package/dist/index242.js.map +1 -1
  116. package/dist/index243.js +3 -88
  117. package/dist/index243.js.map +1 -1
  118. package/dist/index244.js +6 -200
  119. package/dist/index244.js.map +1 -1
  120. package/dist/index245.js +15 -8
  121. package/dist/index245.js.map +1 -1
  122. package/dist/index246.js +9 -23
  123. package/dist/index246.js.map +1 -1
  124. package/dist/index247.js +23 -6
  125. package/dist/index247.js.map +1 -1
  126. package/dist/index248.js +3 -16
  127. package/dist/index248.js.map +1 -1
  128. package/dist/index249.js +12 -9
  129. package/dist/index249.js.map +1 -1
  130. package/dist/index250.js +8 -280
  131. package/dist/index250.js.map +1 -1
  132. package/dist/index251.js +9 -6
  133. package/dist/index251.js.map +1 -1
  134. package/dist/index252.js +17 -2
  135. package/dist/index252.js.map +1 -1
  136. package/dist/index253.js +281 -2
  137. package/dist/index253.js.map +1 -1
  138. package/dist/index254.js +6 -2
  139. package/dist/index254.js.map +1 -1
  140. package/dist/index255.js +2 -2
  141. package/dist/index256.js +2 -2
  142. package/dist/index258.js +2 -4
  143. package/dist/index258.js.map +1 -1
  144. package/dist/index259.js +2 -224
  145. package/dist/index259.js.map +1 -1
  146. package/dist/index26.js +3 -3
  147. package/dist/index260.js +126 -3
  148. package/dist/index260.js.map +1 -1
  149. package/dist/index261.js +434 -0
  150. package/dist/index261.js.map +1 -0
  151. package/dist/index262.js +3 -7
  152. package/dist/index262.js.map +1 -1
  153. package/dist/index264.js +7 -69
  154. package/dist/index264.js.map +1 -1
  155. package/dist/index265.js +22 -5
  156. package/dist/index265.js.map +1 -1
  157. package/dist/index267.js +7 -124
  158. package/dist/index267.js.map +1 -1
  159. package/dist/index268.js +200 -3
  160. package/dist/index268.js.map +1 -1
  161. package/dist/index269.js +436 -3
  162. package/dist/index269.js.map +1 -1
  163. package/dist/index270.js +126 -210
  164. package/dist/index270.js.map +1 -1
  165. package/dist/index271.js +92 -0
  166. package/dist/index271.js.map +1 -0
  167. package/dist/index272.js +2 -436
  168. package/dist/index272.js.map +1 -1
  169. package/dist/index273.js +2 -127
  170. package/dist/index273.js.map +1 -1
  171. package/dist/index274.js +3 -28
  172. package/dist/index274.js.map +1 -1
  173. package/dist/index275.js +2 -15
  174. package/dist/index275.js.map +1 -1
  175. package/dist/index276.js +2 -11
  176. package/dist/index276.js.map +1 -1
  177. package/dist/index277.js +2 -4
  178. package/dist/index277.js.map +1 -1
  179. package/dist/index278.js +28 -4
  180. package/dist/index278.js.map +1 -1
  181. package/dist/index279.js +21 -58
  182. package/dist/index279.js.map +1 -1
  183. package/dist/index28.js +2 -2
  184. package/dist/index281.js +2 -2
  185. package/dist/index281.js.map +1 -1
  186. package/dist/index282.js +5 -47
  187. package/dist/index282.js.map +1 -1
  188. package/dist/index283.js +72 -0
  189. package/dist/index283.js.map +1 -0
  190. package/dist/index284.js +221 -418
  191. package/dist/index284.js.map +1 -1
  192. package/dist/index285.js +3 -47
  193. package/dist/index285.js.map +1 -1
  194. package/dist/index286.js +6 -0
  195. package/dist/index286.js.map +1 -0
  196. package/dist/index287.js +214 -0
  197. package/dist/index287.js.map +1 -0
  198. package/dist/index289.js +18 -0
  199. package/dist/index289.js.map +1 -0
  200. package/dist/index290.js +7 -0
  201. package/dist/index290.js.map +1 -0
  202. package/dist/index291.js +7 -0
  203. package/dist/index291.js.map +1 -0
  204. package/dist/index292.js +62 -0
  205. package/dist/index292.js.map +1 -0
  206. package/dist/index293.js +14 -0
  207. package/dist/index293.js.map +1 -0
  208. package/dist/{index280.js → index294.js} +2 -2
  209. package/dist/{index280.js.map → index294.js.map} +1 -1
  210. package/dist/index295.js +10 -0
  211. package/dist/index295.js.map +1 -0
  212. package/dist/index296.js +22 -0
  213. package/dist/index296.js.map +1 -0
  214. package/dist/index297.js +10 -0
  215. package/dist/index297.js.map +1 -0
  216. package/dist/index298.js +5 -0
  217. package/dist/index298.js.map +1 -0
  218. package/dist/index299.js +50 -0
  219. package/dist/index299.js.map +1 -0
  220. package/dist/index30.js +2 -2
  221. package/dist/index301.js +424 -0
  222. package/dist/index301.js.map +1 -0
  223. package/dist/index302.js +50 -0
  224. package/dist/index302.js.map +1 -0
  225. package/dist/index32.js +3 -3
  226. package/dist/index34.js +44 -42
  227. package/dist/index34.js.map +1 -1
  228. package/dist/index36.js +4 -4
  229. package/dist/index38.js +2 -2
  230. package/dist/index40.js +2 -2
  231. package/dist/index42.js +6 -6
  232. package/dist/index44.js +2 -2
  233. package/dist/index46.js +2 -2
  234. package/dist/index52.js +1 -1
  235. package/dist/index54.js +1 -1
  236. package/dist/index58.js +2 -2
  237. package/dist/index66.js +16 -23
  238. package/dist/index66.js.map +1 -1
  239. package/dist/index70.js +4 -4
  240. package/dist/index74.js +2 -2
  241. package/dist/index76.js +1 -1
  242. package/dist/index79.js +2 -2
  243. package/dist/index81.js +1 -1
  244. package/dist/index83.js +3 -3
  245. package/dist/index85.js +1 -1
  246. package/dist/style.css +1 -1
  247. package/dist/utilities/functions/chunk.d.ts +1 -0
  248. package/dist/utilities/functions/negative.d.ts +1 -0
  249. package/dist/utilities/functions/pipe.d.ts +3 -0
  250. package/dist/utilities/functions/range.d.ts +1 -0
  251. package/dist/utilities/functions/sort.d.ts +6 -0
  252. package/package.json +2 -2
  253. package/dist/index200.js +0 -87
  254. package/dist/index200.js.map +0 -1
  255. package/dist/index217.js +0 -5
  256. package/dist/index217.js.map +0 -1
  257. package/dist/index228.js +0 -21
  258. package/dist/index228.js.map +0 -1
  259. package/dist/index238.js +0 -15
  260. package/dist/index238.js.map +0 -1
  261. package/dist/index240.js +0 -12
  262. package/dist/index240.js.map +0 -1
  263. package/dist/index263.js +0 -5
  264. package/dist/index263.js.map +0 -1
  265. package/dist/index266.js +0 -5
  266. package/dist/index266.js.map +0 -1
package/dist/index227.js CHANGED
@@ -1,6 +1,252 @@
1
- import o from "./index270.js";
2
- /* empty css */
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 "./index295.js";
3
+ import { identity as be } from "./index211.js";
4
+ import { isNotNil as me } from "./index129.js";
5
+ import { last as ge } from "./index212.js";
6
+ import { sort as T } from "./index296.js";
7
+ import b from "./index206.js";
8
+ import he from "./index231.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
+ });
3
249
  export {
4
- o as default
250
+ Ce as default
5
251
  };
6
252
  //# sourceMappingURL=index227.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index227.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index227.js","sources":["../src/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tref=\"calendar\"\n\t\tclass=\"bb-base-date-picker__days-selector\"\n\t\t:class=\"{ 'bb-base-date-picker__days-selector--hidden': !current }\"\n\t\t@keydown.prevent.down=\"onArrowDown\"\n\t\t@keydown.prevent.end=\"onEnd\"\n\t\t@keydown.prevent.home=\"onHome\"\n\t\t@keydown.prevent.left=\"onArrowLeft\"\n\t\t@keydown.prevent.page-down=\"onPageDown\"\n\t\t@keydown.prevent.page-up=\"onPageUp\"\n\t\t@keydown.prevent.right=\"onArrowRight\"\n\t\t@keydown.prevent.up=\"onArrowUp\"\n\t>\n\t\t<SlideTransition :direction=\"direction\" :gap=\"30\">\n\t\t\t<div :key=\"cursor.month().toString()\" class=\"bb-base-date-picker__month\">\n\t\t\t\t<div class=\"bb-base-date-picker__header-container\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"header in mappedHeaders\"\n\t\t\t\t\t\t:key=\"header.id\"\n\t\t\t\t\t\t:abbr=\"header.accessibleLabel\"\n\t\t\t\t\t\tclass=\"bb-base-date-picker__header-cell\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ header.label }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"week in dates\"\n\t\t\t\t\t:key=\"week[0].id\"\n\t\t\t\t\tclass=\"bb-base-date-picker__week\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"cell in week\"\n\t\t\t\t\t\t:key=\"cell.id\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-date-picker__date--current': cell.current,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--disabled': disabled || cell.disabled,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--first': cell.first,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--highlighted': cell.highlighted,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--last': cell.last,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--middle': cell.middle,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--selected': cell.selected,\n\t\t\t\t\t\t\t'bb-base-date-picker__date--today': cell.today,\n\t\t\t\t\t\t\t'bb-base-date-picker__date': true,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t:id=\"cell.buttonId\"\n\t\t\t\t\t\t\t:class=\"'bb-base-date-picker__date-button'\"\n\t\t\t\t\t\t\t:disabled=\"disabled || cell.disabled\"\n\t\t\t\t\t\t\t:tabindex=\"Number(cell.current) - 1\"\n\t\t\t\t\t\t\t:type=\"'button'\"\n\t\t\t\t\t\t\t@click=\"onButtonClick\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ cell.label }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:first=\"cell.first\"\n\t\t\t\t\t\t\t:highlighted=\"cell.highlighted\"\n\t\t\t\t\t\t\t:item=\"cell.original\"\n\t\t\t\t\t\t\t:label=\"cell.label\"\n\t\t\t\t\t\t\t:last=\"cell.last\"\n\t\t\t\t\t\t\t:middle=\"cell.middle\"\n\t\t\t\t\t\t\t:name=\"'day'\"\n\t\t\t\t\t\t\t:selected=\"cell.selected\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:first=\"cell.first\"\n\t\t\t\t\t\t\t:highlighted=\"cell.highlighted\"\n\t\t\t\t\t\t\t:item=\"cell.original\"\n\t\t\t\t\t\t\t:label=\"cell.label\"\n\t\t\t\t\t\t\t:last=\"cell.last\"\n\t\t\t\t\t\t\t:middle=\"cell.middle\"\n\t\t\t\t\t\t\t:name=\"cell.slotName\"\n\t\t\t\t\t\t\t:selected=\"cell.selected\"\n\t\t\t\t\t\t></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SlideTransition>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { chunk } from '@/utilities/functions/chunk';\nimport { identity } from '@/utilities/functions/identity';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { last } from '@/utilities/functions/last';\nimport { nextTick } from 'vue';\nimport { ref } from 'vue';\nimport { sort } from '@/utilities/functions/sort';\nimport { watch } from 'vue';\nimport dayjs from 'dayjs';\nimport SlideTransition from '../Transitions/Slide.vue';\nimport type { Dayjs } from 'dayjs';\n\ntype Props = {\n\tcursor: Dayjs;\n\tcurrent: boolean;\n\tdisabled: boolean;\n\tfirstDayOfWeek: number;\n\t/**\n\t * Used by v-model. Can be null, a single string, or an array of strings based on whether a range or single date is needed\n\t */\n\tmodelValue: string | string[] | null;\n\tmax?: Date | string | number;\n\tmin?: Date | string | number;\n\tselectable?: (date: Date) => boolean;\n\trange?: boolean;\n\tmultiple?: boolean;\n\treadonly?: boolean;\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(event: 'update:modelValue', value: any): void;\n\t(event: 'update:cursor', value: Dayjs): void;\n}>();\n\nconst calendar = ref<HTMLElement | null>(null);\n\nconst today = dayjs().startOf('day');\n\nconst modelValueMetadata = computed(() => {\n\tlet min = Infinity;\n\tlet max = -Infinity;\n\tlet selected: { [key: number]: number } = {};\n\n\tif (props.modelValue) {\n\t\tconst arr = ([] as (string | Date)[])\n\t\t\t.concat(props.modelValue)\n\t\t\t.filter(identity)\n\t\t\t.map((value) => dayjs(value).startOf('day'))\n\t\t\t.map((date) => date.valueOf());\n\t\tarr.forEach((item, index) => {\n\t\t\tif (item < min) min = item;\n\t\t\tif (item > max) max = item;\n\t\t\tselected[item] = index;\n\t\t});\n\t}\n\treturn {\n\t\tmin,\n\t\tmax,\n\t\tindex: (date: Dayjs) => selected[date.valueOf()],\n\t\tselected: (date: Dayjs) => isNotNil(selected[date.valueOf()]),\n\t\tisFirstOfRange: (date: Dayjs) => date.valueOf() === min,\n\t\tisLastOfRange: (date: Dayjs) => date.valueOf() === max,\n\t\tisBetween: (date: Dayjs) => date.valueOf() > min && date.valueOf() < max,\n\t};\n});\n\nconst mappedHeaders = computed(() => {\n\treturn (\n\t\tnew Array(7)\n\t\t\t.fill('')\n\t\t\t// Sort days based on first day of the week\n\t\t\t.map((_, index) => dayjs().day((index + props.firstDayOfWeek) % 7))\n\t\t\t.map((day) => {\n\t\t\t\treturn {\n\t\t\t\t\taccessibleLabel: day.format('dddd'),\n\t\t\t\t\tlabel: day.format('dd').slice(0, 1).toUpperCase(),\n\t\t\t\t\tid: day.toISOString(),\n\t\t\t\t\toriginal: day,\n\t\t\t\t};\n\t\t\t})\n\t);\n});\n\ntype Cell = {\n\tbuttonId: string;\n\tcurrent: boolean;\n\tdisabled: boolean;\n\tfirst: boolean;\n\thighlighted: boolean;\n\tid: string;\n\tlabel: string;\n\tlast: boolean;\n\tmiddle: boolean;\n\toriginal: Dayjs;\n\tselected: boolean;\n\tslotName: string;\n\tweek: string;\n\ttoday: boolean;\n};\n\nconst dates = computed<Cell[][]>(() => {\n\tconst year = props.cursor.year().toString();\n\tconst month = props.cursor.month().toString();\n\tlet startOfMonth = props.cursor.clone().startOf('month');\n\tlet firstValueToDisplay = startOfMonth.clone().startOf('week');\n\tlet endOfMonth = props.cursor.clone().endOf('month');\n\tlet lastValueToDisplay = endOfMonth.clone().endOf('week');\n\tlet currentAtMidnight = dayjs(props.cursor).startOf('day');\n\tlet datesInPage: Dayjs[] = [];\n\tfor (\n\t\tlet index = firstValueToDisplay;\n\t\tindex.isBefore(lastValueToDisplay);\n\t\tindex = index.add(1, 'day')\n\t) {\n\t\tdatesInPage.push(index.clone());\n\t}\n\tconst mapped = datesInPage.map<Cell>((date) => {\n\t\tconst id = date.toISOString();\n\t\tconst week = date.week().toString();\n\t\tlet selected = modelValueMetadata.value.selected(date);\n\n\t\tconst first = props.range && modelValueMetadata.value.isFirstOfRange(date);\n\t\tconst last = props.range && modelValueMetadata.value.isLastOfRange(date);\n\t\tconst middle =\n\t\t\tprops.range &&\n\t\t\t!first &&\n\t\t\t!last &&\n\t\t\tmodelValueMetadata.value.isBetween(date);\n\t\tconst highlighted =\n\t\t\tdate.month().toString() === month && date.year().toString() === year;\n\t\tconst isToday = date.isSame(today);\n\t\tconst current = date.isSame(currentAtMidnight);\n\t\tconst disabled = isDateDisabled(date);\n\t\tconst label = date.get('D').toString();\n\t\tconst buttonId = 'date_' + id;\n\n\t\treturn {\n\t\t\tbuttonId,\n\t\t\tcurrent,\n\t\t\tdisabled,\n\t\t\tfirst,\n\t\t\thighlighted,\n\t\t\tid,\n\t\t\tlabel,\n\t\t\tlast,\n\t\t\tmiddle,\n\t\t\toriginal: date,\n\t\t\tselected,\n\t\t\tslotName: id,\n\t\t\ttoday: isToday,\n\t\t\tweek,\n\t\t};\n\t});\n\treturn chunk(mapped, 7);\n});\n\nconst isDateDisabled = (date: Dayjs) => {\n\tlet passing = true;\n\tif (props.min) {\n\t\tpassing &&= date.isSameOrAfter(dayjs(props.min).startOf('day'));\n\t}\n\tif (props.max) {\n\t\tpassing &&= date.isSameOrBefore(dayjs(props.max).startOf('day'));\n\t}\n\tif (typeof props.selectable === 'function') {\n\t\tpassing &&= props.selectable(date.toDate());\n\t}\n\treturn !passing;\n};\n\nconst direction = ref<'left' | 'right'>('left');\nconst setSlideDirection = (\n\tcurrent: Dayjs | undefined,\n\tprevious: Dayjs | undefined\n) => {\n\tif (current && previous) {\n\t\tdirection.value = current.isBefore(previous) ? 'left' : 'right';\n\t}\n};\n\nwatch(\n\t() => props.cursor,\n\t(current, previous) => {\n\t\tsetSlideDirection(current, previous);\n\t}\n);\n\nconst updateCursor = (date: Dayjs) => emit('update:cursor', date);\n\nconst focusOnCursor = async () => {\n\tif (!calendar.value) return;\n\tawait nextTick();\n\tconst el = last([\n\t\t...calendar.value.querySelectorAll(\n\t\t\t'.bb-base-date-picker__date--current button'\n\t\t),\n\t]);\n\tif (el instanceof HTMLElement) {\n\t\tel.focus();\n\t}\n};\n\nconst onButtonClick = (event: MouseEvent) => {\n\tif (props.readonly) return;\n\tif (event.target instanceof HTMLButtonElement) {\n\t\tconst [, id] = event.target.id.split('_');\n\t\tconst d = dayjs(id);\n\t\tif (props.cursor.month() !== d.month()) {\n\t\t\tupdateCursor(d);\n\t\t\treturn;\n\t\t}\n\t\tconst date = dates.value.flat().find((el) => el.id === id)!;\n\t\tif (date.disabled) return;\n\t\tupdateCursor(d);\n\t\tonDateSelected(date);\n\t}\n};\n\nconst onDateSelected = (date: Cell) => {\n\tif (props.range) onDateSelectedRange(date);\n\telse if (props.multiple) onDateSelectedMultiple(date);\n\telse onDateSelectedSingle(date);\n};\n\nconst onDateSelectedRange = (date: Cell) => {\n\tif (!Array.isArray(props.modelValue)) return;\n\tconst value = date.original.toISOString();\n\tif (props.modelValue.length !== 1) emit('update:modelValue', [value]);\n\telse {\n\t\tconst arr = sort([props.modelValue[0], date.original.toISOString()]);\n\t\temit('update:modelValue', arr);\n\t}\n};\nconst onDateSelectedMultiple = (date: Cell) => {\n\tif (!Array.isArray(props.modelValue)) return;\n\tif (date.selected) {\n\t\tconst asString = date.original.toISOString();\n\t\tconst valueToEmit = props.modelValue.filter((el) => el !== asString);\n\t\temit('update:modelValue', valueToEmit);\n\t} else {\n\t\tconst arr = sort([...props.modelValue, date.original.toISOString()]);\n\t\temit('update:modelValue', arr);\n\t}\n};\nconst onDateSelectedSingle = (date: Cell) => {\n\tif (date.selected) emit('update:modelValue', null);\n\telse emit('update:modelValue', date.original.toISOString());\n};\n\nconst onArrowRight = () => {\n\tconst date = props.cursor.clone().add(1, 'day');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowLeft = () => {\n\tconst date = props.cursor.clone().subtract(1, 'day');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowUp = () => {\n\tconst date = props.cursor.clone().subtract(1, 'week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onArrowDown = () => {\n\tconst date = props.cursor.clone().add(1, 'week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onEnd = () => {\n\tconst date = props.cursor.clone().endOf('week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onHome = () => {\n\tconst date = props.cursor.clone().startOf('week');\n\tif (isDateDisabled(date)) return;\n\temit('update:cursor', date);\n\tfocusOnCursor();\n};\nconst onPageUp = (event: KeyboardEvent) => {\n\tif (event.shiftKey) {\n\t\tconst date = props.cursor.clone().subtract(1, 'year');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t} else {\n\t\tconst date = props.cursor.clone().subtract(1, 'month');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t}\n\tfocusOnCursor();\n};\nconst onPageDown = (event: KeyboardEvent) => {\n\tif (event.shiftKey) {\n\t\tconst date = props.cursor.clone().add(1, 'year');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t} else {\n\t\tconst date = props.cursor.clone().add(1, 'month');\n\t\tif (isDateDisabled(date)) return;\n\t\temit('update:cursor', date);\n\t}\n\tfocusOnCursor();\n};\n</script>\n\n<style lang=\"postcss\">\n.bb-base-date-picker {\n\t--cell-height: 32px;\n\n\t&__days-selector {\n\t\t@apply opacity-100;\n\t\ttransition: opacity 500ms 150ms;\n\t\tposition: relative;\n\t\tmin-height: calc(var(--cell-height) * 7);\n\n\t\t&--hidden {\n\t\t\t@apply opacity-0;\n\t\t\ttransition: opacity 500ms 0ms;\n\t\t}\n\t}\n\t&__month {\n\t\t@apply absolute top-0 inline-block w-full;\n\t}\n\t&__header-container {\n\t\t@apply flex;\n\t}\n\t&__header-cell {\n\t\t@apply flex h-[--cell-height] flex-auto items-center justify-center text-xs font-semibold text-gray-700;\n\t}\n\t&__week {\n\t\t@apply flex;\n\t}\n\t&__date {\n\t\t@apply h-[--cell-height] flex-1 text-center text-xs text-[--bb-date-picker-other-day-btn-text] transition-colors;\n\n\t\t&.bb-base-date-picker__date--first:not([class*='--last']) {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--middle {\n\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.1);\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--last:not([class*='--first']) {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--highlighted {\n\t\t\t@apply text-[--bb-date-picker-day-btn-text];\n\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply ring-[rgba(var(--bb-ui-primary-color),0.3)] focus-visible:outline-none focus-visible:ring;\n\t\t\t\t&:hover:not(:disabled) {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.15);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--disabled {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply opacity-40;\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--today {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\tcolor: rgba(var(--bb-ui-primary-color), 1);\n\t\t\t\tborder: 1px solid rgba(var(--bb-ui-primary-color), 0.2);\n\t\t\t}\n\t\t\t&.bb-base-date-picker__date--middle {\n\t\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--current {\n\t\t\t.bb-base-date-picker__date-button:not(:disabled) {\n\t\t\t\t@apply text-black;\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.25);\n\t\t\t}\n\t\t}\n\t\t&.bb-base-date-picker__date--selected {\n\t\t\t.bb-base-date-picker__date-button {\n\t\t\t\t@apply text-[--bb-ui-primary-contrasting];\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color));\n\t\t\t\t&:hover:not(:disabled) {\n\t\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&-button {\n\t\t\t@apply inline-block h-full w-[--cell-height] rounded-[--bb-date-picker-day-btn-radius] transition-all;\n\t\t\tbox-shadow: 0px 0px 0px black;\n\t\t\t&:hover:not(:disabled) {\n\t\t\t\tbackground-color: rgba(var(--bb-ui-primary-color), 0.05);\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n"],"names":["props","__props","emit","__emit","calendar","ref","today","dayjs","modelValueMetadata","computed","min","max","selected","identity","value","date","item","index","isNotNil","mappedHeaders","_","day","dates","year","month","firstValueToDisplay","lastValueToDisplay","currentAtMidnight","datesInPage","mapped","id","week","first","last","middle","highlighted","isToday","current","disabled","isDateDisabled","label","chunk","passing","direction","setSlideDirection","previous","watch","updateCursor","focusOnCursor","nextTick","el","onButtonClick","event","d","onDateSelected","onDateSelectedRange","onDateSelectedMultiple","arr","sort","asString","valueToEmit","onDateSelectedSingle","onArrowRight","onArrowLeft","onArrowUp","onArrowDown","onEnd","onHome","onPageUp","onPageDown"],"mappings":"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"}
package/dist/index229.js CHANGED
@@ -1,109 +1,55 @@
1
- import { defineComponent as y, ref as F, computed as H, watch as N, openBlock as p, createElementBlock as L, Fragment as S, renderList as V, createBlock as A, normalizeClass as O, withModifiers as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
2
- import { hash as d } from "./index234.js";
3
- import { isNil as l } from "./index124.js";
4
- import E from "./index119.js";
5
- /* empty css */
6
- const K = /* @__PURE__ */ y({
7
- __name: "ChipsBox",
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 "./index231.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
8
  props: {
9
- options: {}
9
+ cursor: {},
10
+ disabled: { type: Boolean },
11
+ hidden: { type: Boolean }
10
12
  },
11
- emits: ["option:unselected"],
12
- setup(f, { expose: v, emit: h }) {
13
- const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
14
- const s = l(n.value) ? -1 : n.value;
15
- let o = (s + e) % t.options.length;
16
- for (; t.options[o].disabled && o !== s; )
17
- o = a(e + 1);
18
- return o;
19
- }, x = () => {
20
- if (!i.value) return;
21
- const e = a();
22
- n.value = e;
23
- }, c = (e = 1) => {
24
- const s = l(n.value) ? 0 : n.value;
25
- let o = (s - e + t.options.length) % t.options.length;
26
- for (; t.options[o].disabled && o !== s; )
27
- o = c(e + 1);
28
- return o;
29
- }, m = async () => {
30
- if (!i.value) return;
31
- const e = c();
32
- n.value = e;
33
- }, w = () => {
34
- if (!i.value) return;
35
- let e = 0;
36
- for (; t.options[e].disabled; )
37
- e++;
38
- n.value = e;
39
- }, b = () => {
40
- if (!i.value) return;
41
- let e = t.options.length - 1;
42
- for (; t.options[e].disabled && e !== 0; )
43
- e--;
44
- n.value = e;
45
- }, I = () => {
46
- if (!i.value) return;
47
- let e = 0;
48
- for (; !t.options[e].selected && t.options.length !== e; )
49
- e++;
50
- n.value = e;
51
- }, g = () => {
52
- if (!i.value) return;
53
- let e = t.options.length - 1;
54
- for (; t.options[e].selected && e !== 0; )
55
- e--;
56
- n.value = e;
57
- }, _ = (e) => {
58
- if (!i.value) return;
59
- const s = t.options.findIndex(
60
- (o) => o.valueHash === e
61
- );
62
- s >= 0 && (n.value = s);
63
- }, r = () => {
64
- n.value = null;
65
- }, k = () => {
66
- if (l(n.value)) return;
67
- const e = t.options[n.value];
68
- e.selected && u("option:unselected", e);
69
- }, C = () => l(n.value) ? void 0 : t.options[n.value];
70
- return N(
71
- () => t.options,
72
- (e, s) => {
73
- d(e) !== d(s) && r();
74
- },
75
- {
76
- flush: "post"
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");
17
+ };
18
+ _(
19
+ () => s.cursor,
20
+ (e, a) => {
21
+ l(e, a);
77
22
  }
78
- ), v({
79
- focusNext: x,
80
- focusPrevious: m,
81
- focusFirst: w,
82
- focusFirstSelected: I,
83
- focusLast: b,
84
- focusLastSelected: g,
85
- blur: r,
86
- confirmOption: k,
87
- focusByHash: _,
88
- getHighlighted: C
89
- }), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
90
- key: o.valueHash,
91
- class: O({
92
- "bb-chipsbox-item": !0,
93
- "bb-chipsbox-item--focused": B === n.value
94
- }),
95
- clearable: !0,
96
- text: o.text,
97
- "onClick:clear": P((M) => u("option:unselected", o), ["stop"])
98
- }, {
99
- default: $(() => [
100
- z(D(o.text), 1)
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"])
101
43
  ]),
102
- _: 2
103
- }, 1032, ["class", "text", "onClick:clear"]))), 128));
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));
104
50
  }
105
51
  });
106
52
  export {
107
- K as default
53
+ C as default
108
54
  };
109
55
  //# sourceMappingURL=index229.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index229.js","sources":["../src/components/ChipsBox.vue"],"sourcesContent":["<template>\n\t<BbChip\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-chipsbox-item': true,\n\t\t\t'bb-chipsbox-item--focused': index === focusedIndex,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</BbChip\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport BbChip from './BbChip/BbChip.vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/ChipsBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
1
+ {"version":3,"file":"index229.js","sources":["../src/components/BaseDatePicker/BaseDatePickerHeader.vue"],"sourcesContent":["<template>\n\t<div\n\t\tclass=\"bb-base-date-picker__header\"\n\t\t:class=\"{ 'bb-base-date-picker__header--hidden': hidden }\"\n\t>\n\t\t<div class=\"bb-base-date-picker__year-container\">\n\t\t\t<SlideTransition :direction=\"direction\" :duration=\"500\" :gap=\"30\">\n\t\t\t\t<span\n\t\t\t\t\t:key=\"year\"\n\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\tclass=\"bb-base-date-picker__year-button\"\n\t\t\t\t>\n\t\t\t\t\t{{ year }}\n\t\t\t\t</span>\n\t\t\t</SlideTransition>\n\t\t</div>\n\t\t<div aria-live=\"polite\" class=\"bb-base-date-picker__selected-day-label\">\n\t\t\t<span class=\"bb-base-date-picker__weekday\"\n\t\t\t\t>{{ cursor.format('ddd') }},\n\t\t\t</span>\n\t\t\t<span class=\"bb-base-date-picker__monthday\">{{\n\t\t\t\tcursor.format('DD')\n\t\t\t}}</span>\n\t\t\t<span class=\"bb-base-date-picker__month-button\">\n\t\t\t\t{{ cursor.format('MMMM') }}\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport SlideTransition from '../Transitions/Slide.vue';\nimport { computed } from 'vue';\n\ntype Props = {\n\tcursor: Dayjs;\n\tdisabled: boolean;\n\thidden: boolean;\n};\nconst props = defineProps<Props>();\n\ndefineEmits<{\n\t(event: 'mode:year'): void;\n\t(event: 'mode:month'): void;\n}>();\n\nconst direction = ref<'top' | 'bottom'>('top');\nconst setSlideDirection = (\n\tcurrent: Dayjs | undefined,\n\tprevious: Dayjs | undefined\n) => {\n\tif (current && previous) {\n\t\tdirection.value = current.isBefore(previous) ? 'top' : 'bottom';\n\t}\n};\n\nwatch(\n\t() => props.cursor,\n\t(current, previous) => {\n\t\tsetSlideDirection(current, previous);\n\t}\n);\n\nconst year = computed(() => props.cursor.format('YYYY'));\n</script>\n"],"names":["props","__props","direction","ref","setSlideDirection","current","previous","watch","year","computed"],"mappings":";;;;;;;;;;;;;;AA0CA,UAAMA,IAAQC,GAORC,IAAYC,EAAsB,KAAK,GACvCC,IAAoB,CACzBC,GACAC,MACI;AACJ,MAAID,KAAWC,MACdJ,EAAU,QAAQG,EAAQ,SAASC,CAAQ,IAAI,QAAQ;AAAA,IACxD;AAGD,IAAAC;AAAA,MACC,MAAMP,EAAM;AAAA,MACZ,CAACK,GAASC,MAAa;AACtB,QAAAF,EAAkBC,GAASC,CAAQ;AAAA,MACpC;AAAA,IAAA;AAGD,UAAME,IAAOC,EAAS,MAAMT,EAAM,OAAO,OAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ import { defineComponent as _, computed as c, openBlock as n, createElementBlock as s, createElementVNode as h, Fragment as p, renderList as b, normalizeClass as k, toDisplayString as y } from "vue";
2
+ const f = { class: "bb-base-date-picker__month-selector" }, M = { class: "month-selector__content" }, v = ["disabled", "onClick"], C = /* @__PURE__ */ _({
3
+ __name: "BaseDatePickerMonthSelector",
4
+ props: {
5
+ cursor: {},
6
+ disabled: { type: Boolean }
7
+ },
8
+ emits: ["update:month"],
9
+ setup(l, { emit: d }) {
10
+ const r = l, m = d, i = c(() => r.cursor.month()), u = c(
11
+ () => new Array(12).fill(0).map((a, t) => {
12
+ const o = r.cursor.clone().startOf("year").add(t, "month");
13
+ return {
14
+ text: o.format("MMMM"),
15
+ key: o.unix(),
16
+ selected: o.month() === i.value,
17
+ handler: () => m("update:month", t)
18
+ };
19
+ })
20
+ );
21
+ return (a, t) => (n(), s("div", f, [
22
+ h("div", M, [
23
+ (n(!0), s(p, null, b(u.value, (e) => (n(), s("button", {
24
+ key: e.key,
25
+ class: k({
26
+ "month-selector__btn": !0,
27
+ "month-selector__btn--selected": e.selected
28
+ }),
29
+ disabled: a.disabled,
30
+ type: "button",
31
+ onClick: e.handler
32
+ }, y(e.text), 11, v))), 128))
33
+ ])
34
+ ]));
35
+ }
36
+ });
37
+ export {
38
+ C as default
39
+ };
40
+ //# sourceMappingURL=index230.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index230.js","sources":["../src/components/BaseDatePicker/BaseDatePickerMonthSelector.vue"],"sourcesContent":["<template>\n\t<div class=\"bb-base-date-picker__month-selector\">\n\t\t<div class=\"month-selector__content\">\n\t\t\t<button\n\t\t\t\tv-for=\"option in options\"\n\t\t\t\t:key=\"option.key\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'month-selector__btn': true,\n\t\t\t\t\t'month-selector__btn--selected': option.selected,\n\t\t\t\t}\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@click=\"option.handler\"\n\t\t\t>\n\t\t\t\t{{ option.text }}\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { computed } from 'vue';\n\ntype Props = {\n\tcursor: Dayjs;\n\tdisabled: boolean;\n};\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n\t(event: 'update:month', value: number): void;\n}>();\n\nconst month = computed(() => props.cursor.month());\n\nconst options = computed(() =>\n\tnew Array(12).fill(0).map((_: unknown, index) => {\n\t\tlet base = props.cursor.clone().startOf('year');\n\t\tconst d = base.add(index, 'month');\n\t\treturn {\n\t\t\ttext: d.format('MMMM'),\n\t\t\tkey: d.unix(),\n\t\t\tselected: d.month() === month.value,\n\t\t\thandler: () => emit('update:month', index),\n\t\t};\n\t})\n);\n</script>\n"],"names":["props","__props","emit","__emit","month","computed","options","_","index","d"],"mappings":";;;;;;;;;AA4BA,UAAMA,IAAQC,GACRC,IAAOC,GAIPC,IAAQC,EAAS,MAAML,EAAM,OAAO,OAAO,GAE3CM,IAAUD;AAAA,MAAS,MACxB,IAAI,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAACE,GAAYC,MAAU;AAEhD,cAAMC,IADKT,EAAM,OAAO,MAAM,EAAE,QAAQ,MAAM,EAC/B,IAAIQ,GAAO,OAAO;AAC1B,eAAA;AAAA,UACN,MAAMC,EAAE,OAAO,MAAM;AAAA,UACrB,KAAKA,EAAE,KAAK;AAAA,UACZ,UAAUA,EAAE,MAAM,MAAML,EAAM;AAAA,UAC9B,SAAS,MAAMF,EAAK,gBAAgBM,CAAK;AAAA,QAAA;AAAA,MAC1C,CACA;AAAA,IAAA;;;;;;;;;;;;;;;;;"}
package/dist/index231.js CHANGED
@@ -1,103 +1,8 @@
1
- import { defineComponent as F, ref as H, computed as L, watch as N, openBlock as d, createElementBlock as v, Fragment as S, renderList as A, normalizeClass as O, withModifiers as P, toDisplayString as V } from "vue";
2
- import { hash as f } from "./index234.js";
3
- import { isNil as i } from "./index124.js";
4
- const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
5
- __name: "CommaBox",
6
- props: {
7
- options: {}
8
- },
9
- emits: ["option:unselected"],
10
- setup(m, { expose: h, emit: x }) {
11
- const t = m, a = x, n = H(null), l = L(() => t.options.some((e) => !e.disabled)), u = (e = 1) => {
12
- const s = i(n.value) ? -1 : n.value;
13
- let o = (s + e) % t.options.length;
14
- for (; t.options[o].disabled && o !== s; )
15
- o = u(e + 1);
16
- return o;
17
- }, b = () => {
18
- if (!l.value) return;
19
- const e = u();
20
- n.value = e;
21
- }, c = (e = 1) => {
22
- const s = i(n.value) ? 0 : n.value;
23
- let o = (s - e + t.options.length) % t.options.length;
24
- for (; t.options[o].disabled && o !== s; )
25
- o = c(e + 1);
26
- return o;
27
- }, w = async () => {
28
- if (!l.value) return;
29
- const e = c();
30
- n.value = e;
31
- }, I = () => {
32
- if (!l.value) return;
33
- let e = 0;
34
- for (; t.options[e].disabled; )
35
- e++;
36
- n.value = e;
37
- }, g = () => {
38
- if (!l.value) return;
39
- let e = t.options.length - 1;
40
- for (; t.options[e].disabled && e !== 0; )
41
- e--;
42
- n.value = e;
43
- }, k = () => {
44
- if (!l.value) return;
45
- let e = 0;
46
- for (; !t.options[e].selected && t.options.length !== e; )
47
- e++;
48
- n.value = e;
49
- }, _ = () => {
50
- if (!l.value) return;
51
- let e = t.options.length - 1;
52
- for (; t.options[e].selected && e !== 0; )
53
- e--;
54
- n.value = e;
55
- }, C = (e) => {
56
- if (!l.value) return;
57
- const s = t.options.findIndex(
58
- (o) => o.valueHash === e
59
- );
60
- s >= 0 && (n.value = s);
61
- }, r = () => {
62
- n.value = null;
63
- }, y = () => {
64
- if (!n.value) return;
65
- const e = t.options[n.value];
66
- e.selected && a("option:unselected", e);
67
- }, B = () => i(n.value) ? void 0 : t.options[n.value];
68
- return N(
69
- () => t.options,
70
- (e, s) => {
71
- f(e) !== f(s) && r();
72
- },
73
- {
74
- flush: "post"
75
- }
76
- ), h({
77
- focusNext: b,
78
- focusPrevious: w,
79
- focusFirst: I,
80
- focusFirstSelected: k,
81
- focusLast: g,
82
- focusLastSelected: _,
83
- blur: r,
84
- confirmOption: y,
85
- focusByHash: C,
86
- getHighlighted: B
87
- }), (e, s) => (d(!0), v(S, null, A(e.options, (o, p) => (d(), v("span", {
88
- key: o.valueHash,
89
- class: O({
90
- "bb-commabox-item": !0,
91
- "bb-commabox-item--focused": p === n.value,
92
- "bb-commabox-item--has-comma": p !== e.options.length - 1
93
- }),
94
- clearable: !0,
95
- text: o.text,
96
- "onClick:clear": P((D) => a("option:unselected", o), ["stop"])
97
- }, V(o.text), 43, z))), 128));
98
- }
99
- });
1
+ import o from "./index279.js";
2
+ /* empty css */
3
+ import t from "./index264.js";
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-8c6b13bd"]]);
100
5
  export {
101
- j as default
6
+ m as default
102
7
  };
103
8
  //# sourceMappingURL=index231.js.map