bitboss-ui 2.0.22 → 2.0.23
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.
- package/dist/index107.js +5 -5
- package/dist/index115.js +1 -1
- package/dist/index117.js +5 -5
- package/dist/index119.js +1 -1
- package/dist/index123.js +1 -1
- package/dist/index124.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index129.js +2 -2
- package/dist/index130.js +1 -1
- package/dist/index14.js +1 -1
- package/dist/index16.js +3 -3
- package/dist/index18.js +2 -2
- package/dist/index199.js +2 -81
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +12 -12
- package/dist/index200.js +80 -7
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +44 -3
- package/dist/index201.js.map +1 -1
- package/dist/index203.js +12 -43
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +6 -0
- package/dist/index204.js.map +1 -0
- package/dist/index205.js +3 -13
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +33 -156
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +5 -83
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +10 -0
- package/dist/index208.js.map +1 -0
- package/dist/index209.js +8 -3
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +123 -32
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +5 -6
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +123 -7
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +18 -280
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +2 -2
- package/dist/index215.js +2 -2
- package/dist/index216.js +2 -19
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +2 -19
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +172 -25
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +5 -3
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +13 -13
- package/dist/index220.js +369 -2
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +17 -247
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +26 -51
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +3 -44
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +249 -5
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +43 -40
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +44 -2
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +5 -4
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +49 -2
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +151 -119
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +84 -123
- package/dist/index230.js.map +1 -1
- package/dist/index232.js +2 -174
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +4 -5
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +2 -369
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +2 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +18 -2
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +105 -17
- package/dist/index237.js.map +1 -1
- package/dist/{index240.js → index239.js} +2 -2
- package/dist/{index240.js.map → index239.js.map} +1 -1
- package/dist/index24.js +5 -5
- package/dist/index241.js +5 -0
- package/dist/index241.js.map +1 -0
- package/dist/index244.js +3 -6
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +8 -15
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +23 -9
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +9 -3
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +6 -9
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +16 -23
- package/dist/index249.js.map +1 -1
- package/dist/index250.js +1 -1
- package/dist/index251.js +1 -1
- package/dist/index254.js +431 -3
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +88 -11
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +280 -8
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +6 -9
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +2 -17
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +2 -2
- package/dist/index259.js.map +1 -1
- package/dist/index26.js +1 -1
- package/dist/index260.js +2 -66
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +2 -5
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +2 -431
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +119 -82
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +22 -6
- package/dist/index264.js.map +1 -1
- package/dist/index266.js +200 -2
- package/dist/index266.js.map +1 -1
- package/dist/index269.js +2 -2
- package/dist/index270.js +2 -2
- package/dist/index271.js +1 -1
- package/dist/index272.js +1 -1
- package/dist/index273.js +28 -2
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +21 -1
- package/dist/index274.js.map +1 -1
- package/dist/index276.js +435 -21
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +130 -0
- package/dist/index277.js.map +1 -0
- package/dist/index278.js +2 -200
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +9 -4
- package/dist/index279.js.map +1 -1
- package/dist/index28.js +3 -3
- package/dist/index280.js +3 -2
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +12 -126
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +8 -21
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +20 -0
- package/dist/index283.js.map +1 -0
- package/dist/index284.js +64 -434
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +5 -127
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +4 -3
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +1 -1
- package/dist/index288.js +3 -211
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +211 -15
- package/dist/index289.js.map +1 -1
- package/dist/index290.js +15 -4
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +79 -4
- package/dist/index291.js.map +1 -1
- package/dist/index293.js +4 -79
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +7 -0
- package/dist/index294.js.map +1 -0
- package/dist/index295.js +59 -2
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +34 -10
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +2 -35
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +10 -6
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +5 -17
- package/dist/index299.js.map +1 -1
- package/dist/index30.js +2 -2
- package/dist/index300.js +6 -46
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +17 -5
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +47 -480
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +483 -0
- package/dist/index303.js.map +1 -0
- package/dist/index305.js +416 -42
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +47 -2
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +5 -0
- package/dist/index307.js.map +1 -0
- package/dist/index32.js +2 -2
- package/dist/index34.js +3 -3
- package/dist/index36.js +13 -13
- package/dist/index38.js +4 -4
- package/dist/index40.js +2 -2
- package/dist/index42.js +2 -2
- package/dist/index44.js +6 -6
- package/dist/index46.js +2 -2
- package/dist/index48.js +2 -2
- package/dist/index54.js +1 -1
- package/dist/index56.js +1 -1
- package/dist/index72.js +3 -3
- package/dist/index76.js +2 -2
- package/dist/index78.js +1 -1
- package/dist/index81.js +2 -2
- package/dist/index83.js +1 -1
- package/dist/index85.js +3 -3
- package/dist/index87.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/dist/index202.js +0 -5
- package/dist/index202.js.map +0 -1
- package/dist/index231.js +0 -5
- package/dist/index231.js.map +0 -1
- package/dist/index238.js +0 -109
- package/dist/index238.js.map +0 -1
- package/dist/index265.js +0 -5
- package/dist/index265.js.map +0 -1
- package/dist/index275.js +0 -31
- package/dist/index275.js.map +0 -1
- package/dist/index292.js +0 -62
- package/dist/index292.js.map +0 -1
- package/dist/index304.js +0 -424
- package/dist/index304.js.map +0 -1
package/dist/index224.js
CHANGED
@@ -1,8 +1,252 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
import
|
4
|
-
|
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 "./index300.js";
|
3
|
+
import { identity as be } from "./index216.js";
|
4
|
+
import { isNotNil as me } from "./index131.js";
|
5
|
+
import { last as ge } from "./index217.js";
|
6
|
+
import { sort as T } from "./index301.js";
|
7
|
+
import b from "./index211.js";
|
8
|
+
import he from "./index227.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
|
+
});
|
5
249
|
export {
|
6
|
-
|
250
|
+
Ce as default
|
7
251
|
};
|
8
252
|
//# sourceMappingURL=index224.js.map
|
package/dist/index224.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index224.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
1
|
+
{"version":3,"file":"index224.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\"></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/index225.js
CHANGED
@@ -1,52 +1,55 @@
|
|
1
|
-
import { defineComponent as p, ref as
|
2
|
-
import
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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 "./index227.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",
|
7
8
|
props: {
|
8
9
|
cursor: {},
|
9
|
-
disabled: { type: Boolean }
|
10
|
+
disabled: { type: Boolean },
|
11
|
+
hidden: { type: Boolean }
|
10
12
|
},
|
11
|
-
emits: ["
|
12
|
-
setup(
|
13
|
-
const
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
}), (e, T) => (n(), o("div", {
|
26
|
-
ref_key: "container",
|
27
|
-
ref: r,
|
28
|
-
class: "bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border"
|
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);
|
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 }])
|
29
27
|
}, [
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
"content__btn--selected": t.selected
|
36
|
-
}),
|
37
|
-
disabled: e.disabled,
|
38
|
-
onClick: t.handler
|
28
|
+
t("div", y, [
|
29
|
+
h(k, {
|
30
|
+
direction: r.value,
|
31
|
+
duration: 500,
|
32
|
+
gap: 30
|
39
33
|
}, {
|
40
|
-
default:
|
41
|
-
|
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))
|
42
40
|
]),
|
43
|
-
_:
|
44
|
-
},
|
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)
|
45
48
|
])
|
46
|
-
],
|
49
|
+
], 2));
|
47
50
|
}
|
48
51
|
});
|
49
52
|
export {
|
50
|
-
|
53
|
+
C as default
|
51
54
|
};
|
52
55
|
//# sourceMappingURL=index225.js.map
|
package/dist/index225.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index225.js","sources":["../src/components/BaseDatePicker/
|
1
|
+
{"version":3,"file":"index225.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index226.js
CHANGED
@@ -1,5 +1,47 @@
|
|
1
|
-
|
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 "./index14.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
|
+
});
|
2
44
|
export {
|
3
|
-
|
45
|
+
E as default
|
4
46
|
};
|
5
47
|
//# sourceMappingURL=index226.js.map
|
package/dist/index226.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index226.js","sources":["../src/
|
1
|
+
{"version":3,"file":"index226.js","sources":["../src/components/BaseDatePicker/BaseDatePickerMonthSelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tclass=\"bb-base-date-picker__button-menu bb-base-date-picker__month-selector\"\n\t>\n\t\t<div class=\"content\">\n\t\t\t<BaseButton\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\tcontent__btn: true,\n\t\t\t\t\t'content__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</BaseButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { computed } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.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":";;;;;;;;;;;AA+BA,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/index227.js
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
import
|
2
|
-
|
1
|
+
import o from "./index274.js";
|
2
|
+
/* empty css */
|
3
|
+
import t from "./index253.js";
|
4
|
+
const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-8c6b13bd"]]);
|
3
5
|
export {
|
4
|
-
|
5
|
-
s as when
|
6
|
+
m as default
|
6
7
|
};
|
7
8
|
//# sourceMappingURL=index227.js.map
|
package/dist/index227.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index227.js","sources":[
|
1
|
+
{"version":3,"file":"index227.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/dist/index228.js
CHANGED
@@ -1,5 +1,52 @@
|
|
1
|
-
|
1
|
+
import { defineComponent as p, ref as _, computed as b, onMounted as f, openBlock as n, createElementBlock as o, createElementVNode as k, Fragment as y, renderList as h, unref as g, createBlock as v, normalizeClass as x, withCtx as B, createTextVNode as C, toDisplayString as E } from "vue";
|
2
|
+
import { range as w } from "./index299.js";
|
3
|
+
import D from "./index14.js";
|
4
|
+
/* empty css */
|
5
|
+
const S = { class: "content" }, c = 100, V = /* @__PURE__ */ p({
|
6
|
+
__name: "BaseDatePickerYearSelector",
|
7
|
+
props: {
|
8
|
+
cursor: {},
|
9
|
+
disabled: { type: Boolean }
|
10
|
+
},
|
11
|
+
emits: ["update:year"],
|
12
|
+
setup(s, { emit: l }) {
|
13
|
+
const i = s, d = l, r = _(), u = b(() => i.cursor.year()), a = (/* @__PURE__ */ new Date()).getFullYear() - c / 2, m = w(a, a + c).map((e) => ({
|
14
|
+
text: e,
|
15
|
+
key: e,
|
16
|
+
selected: e === u.value,
|
17
|
+
handler: () => d("update:year", e)
|
18
|
+
}));
|
19
|
+
return f(() => {
|
20
|
+
if (!r.value) return;
|
21
|
+
const e = r.value.querySelector(
|
22
|
+
".content__btn--selected"
|
23
|
+
);
|
24
|
+
e && (e.parentElement.scrollTop = e.offsetTop - e.parentElement.clientHeight / 2 + 16);
|
25
|
+
}), (e, T) => (n(), o("div", {
|
26
|
+
ref_key: "container",
|
27
|
+
ref: r,
|
28
|
+
class: "bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border"
|
29
|
+
}, [
|
30
|
+
k("div", S, [
|
31
|
+
(n(!0), o(y, null, h(g(m), (t) => (n(), v(D, {
|
32
|
+
key: t.key,
|
33
|
+
class: x({
|
34
|
+
content__btn: !0,
|
35
|
+
"content__btn--selected": t.selected
|
36
|
+
}),
|
37
|
+
disabled: e.disabled,
|
38
|
+
onClick: t.handler
|
39
|
+
}, {
|
40
|
+
default: B(() => [
|
41
|
+
C(E(t.text), 1)
|
42
|
+
]),
|
43
|
+
_: 2
|
44
|
+
}, 1032, ["class", "disabled", "onClick"]))), 128))
|
45
|
+
])
|
46
|
+
], 512));
|
47
|
+
}
|
48
|
+
});
|
2
49
|
export {
|
3
|
-
|
50
|
+
V as default
|
4
51
|
};
|
5
52
|
//# sourceMappingURL=index228.js.map
|
package/dist/index228.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index228.js","sources":["../src/
|
1
|
+
{"version":3,"file":"index228.js","sources":["../src/components/BaseDatePicker/BaseDatePickerYearSelector.vue"],"sourcesContent":["<template>\n\t<div\n\t\tref=\"container\"\n\t\tclass=\"bb-base-date-picker__button-menu bb-base-date-picker__year-selector scrollbar-border\"\n\t>\n\t\t<div class=\"content\">\n\t\t\t<BaseButton\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\tcontent__btn: true,\n\t\t\t\t\t'content__btn--selected': option.selected,\n\t\t\t\t}\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@click=\"option.handler\"\n\t\t\t>\n\t\t\t\t{{ option.text }}\n\t\t\t</BaseButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Dayjs } from 'dayjs';\nimport { computed, onMounted } from 'vue';\nimport { range } from '@/utilities/functions/range';\nimport { ref } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.vue';\n\ntype Props = {\n\tcursor: Dayjs;\n\tdisabled: boolean;\n};\nconst props = defineProps<Props>();\nconst emit = defineEmits<{\n\t(event: 'update:year', value: number): void;\n}>();\n\nconst container = ref<HTMLElement>();\n\nconst year = computed(() => props.cursor.year());\n\nconst howMany = 100;\nconst startingYear = new Date().getFullYear() - howMany / 2;\n\nconst options = range(startingYear, startingYear + howMany).map((y) => {\n\treturn {\n\t\ttext: y,\n\t\tkey: y,\n\t\tselected: y === year.value,\n\t\thandler: () => emit('update:year', y),\n\t};\n});\nonMounted(() => {\n\tif (!container.value) return;\n\tconst el = container.value.querySelector<HTMLElement>(\n\t\t'.content__btn--selected'\n\t);\n\tif (!el) return;\n\tel.parentElement!.scrollTop =\n\t\tel.offsetTop - el.parentElement!.clientHeight / 2 + 16;\n});\n</script>\n"],"names":["howMany","props","__props","emit","__emit","container","ref","year","computed","startingYear","options","range","y","onMounted","el"],"mappings":";;;;gCA0CMA,IAAU;;;;;;;;AAThB,UAAMC,IAAQC,GACRC,IAAOC,GAIPC,IAAYC,KAEZC,IAAOC,EAAS,MAAMP,EAAM,OAAO,MAAM,GAGzCQ,KAAmB,oBAAA,KAAA,GAAO,gBAAgBT,IAAU,GAEpDU,IAAUC,EAAMF,GAAcA,IAAeT,CAAO,EAAE,IAAI,CAACY,OACzD;AAAA,MACN,MAAMA;AAAA,MACN,KAAKA;AAAA,MACL,UAAUA,MAAML,EAAK;AAAA,MACrB,SAAS,MAAMJ,EAAK,eAAeS,CAAC;AAAA,IAAA,EAErC;AACD,WAAAC,EAAU,MAAM;AACX,UAAA,CAACR,EAAU,MAAO;AAChB,YAAAS,IAAKT,EAAU,MAAM;AAAA,QAC1B;AAAA,MAAA;AAED,MAAKS,MACLA,EAAG,cAAe,YACjBA,EAAG,YAAYA,EAAG,cAAe,eAAe,IAAI;AAAA,IAAA,CACrD;;;;;;;;;;;;;;;;;;;;;;;;"}
|