@devslab/dds-solid 0.22.1 → 0.24.0
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/README.ko.md +49 -3
- package/README.md +47 -3
- package/dist/assets/{calendar-view-1RO2mtf1.js → calendar-view-BBQGmkJ7.js} +181 -145
- package/dist/assets/calendar-view-BBQGmkJ7.js.map +1 -0
- package/dist/assets/{choice-DoXiK8nc.js → choice-DPmk9AHn.js} +41 -29
- package/dist/assets/choice-DPmk9AHn.js.map +1 -0
- package/dist/assets/choice-types-h4YVL8xH.js +24 -0
- package/dist/assets/choice-types-h4YVL8xH.js.map +1 -0
- package/dist/assets/date-only-0Ldsjp43.js +174 -0
- package/dist/assets/date-only-0Ldsjp43.js.map +1 -0
- package/dist/assets/direction-BpTqmXs-.js +24 -0
- package/dist/assets/direction-BpTqmXs-.js.map +1 -0
- package/dist/calendar-view-CZLsC57_.js +481 -0
- package/dist/calendar-view-CZLsC57_.js.map +1 -0
- package/dist/calendar-view.d.ts +10 -0
- package/dist/calendar-view.d.ts.map +1 -1
- package/dist/calendar.js +7 -6
- package/dist/calendar.js.map +1 -1
- package/dist/calendar.server.js +2 -1
- package/dist/calendar.server.js.map +1 -1
- package/dist/choice-CTNeFOVo.js +403 -0
- package/dist/choice-CTNeFOVo.js.map +1 -0
- package/dist/choice-types-kSaEnZPr.js +23 -0
- package/dist/choice-types-kSaEnZPr.js.map +1 -0
- package/dist/combobox.js +1 -1
- package/dist/combobox.server.js +1 -1
- package/dist/date-only-Bu4UmsTP.js +151 -0
- package/dist/date-only-Bu4UmsTP.js.map +1 -0
- package/dist/date-only.d.ts +92 -0
- package/dist/date-only.d.ts.map +1 -1
- package/dist/date-picker.js +51 -50
- package/dist/date-picker.js.map +1 -1
- package/dist/date-picker.server.js +2 -1
- package/dist/date-picker.server.js.map +1 -1
- package/dist/date-range-picker.d.ts +41 -0
- package/dist/date-range-picker.d.ts.map +1 -0
- package/dist/date-range-picker.js +368 -0
- package/dist/date-range-picker.js.map +1 -0
- package/dist/date-range-picker.server.js +347 -0
- package/dist/date-range-picker.server.js.map +1 -0
- package/dist/direction-CS85IDNU.js +21 -0
- package/dist/direction-CS85IDNU.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +193 -176
- package/dist/index.js.map +1 -1
- package/dist/internal/choice.d.ts +25 -3
- package/dist/internal/choice.d.ts.map +1 -1
- package/dist/month-picker.d.ts +33 -0
- package/dist/month-picker.d.ts.map +1 -0
- package/dist/month-picker.js +287 -0
- package/dist/month-picker.js.map +1 -0
- package/dist/month-picker.server.js +282 -0
- package/dist/month-picker.server.js.map +1 -0
- package/dist/number-input.d.ts +53 -0
- package/dist/number-input.d.ts.map +1 -0
- package/dist/number-input.js +267 -0
- package/dist/number-input.js.map +1 -0
- package/dist/number-input.server.js +237 -0
- package/dist/number-input.server.js.map +1 -0
- package/dist/pending-action.d.ts +36 -0
- package/dist/pending-action.d.ts.map +1 -0
- package/dist/segmented-control.d.ts +40 -0
- package/dist/segmented-control.d.ts.map +1 -0
- package/dist/segmented-control.js +133 -0
- package/dist/segmented-control.js.map +1 -0
- package/dist/segmented-control.server.js +138 -0
- package/dist/segmented-control.server.js.map +1 -0
- package/dist/select-picker.js +1 -1
- package/dist/select-picker.server.js +1 -1
- package/dist/server.js +49 -23
- package/dist/server.js.map +1 -1
- package/dist/time-only.d.ts +32 -0
- package/dist/time-only.d.ts.map +1 -0
- package/dist/time-picker-BlMWCQwk.js +113 -0
- package/dist/time-picker-BlMWCQwk.js.map +1 -0
- package/dist/time-picker.d.ts +34 -0
- package/dist/time-picker.d.ts.map +1 -0
- package/dist/time-picker.js +2 -0
- package/dist/time-picker.server.js +152 -0
- package/dist/time-picker.server.js.map +1 -0
- package/package.json +44 -4
- package/styles.css +31 -1
- package/dist/assets/calendar-view-1RO2mtf1.js.map +0 -1
- package/dist/assets/choice-DoXiK8nc.js.map +0 -1
- package/dist/calendar-view-CTBTPB4T.js +0 -444
- package/dist/calendar-view-CTBTPB4T.js.map +0 -1
- package/dist/choice-BPMiJlPJ.js +0 -395
- package/dist/choice-BPMiJlPJ.js.map +0 -1
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import { l as e, t } from "./calendar-view-CZLsC57_.js";
|
|
2
|
+
import { n } from "./utils-oKxhg9RG.js";
|
|
3
|
+
import { c as r, d as i, h as a, i as o, o as s, t as c } from "./date-only-Bu4UmsTP.js";
|
|
4
|
+
import { Show as l, createEffect as u, createMemo as d, createSignal as f, createUniqueId as p, on as m, onCleanup as h, onMount as g } from "solid-js";
|
|
5
|
+
import { Portal as _, addEventListener as v, className as ee, createComponent as y, delegateEvents as b, effect as x, getNextElement as S, getNextMarker as C, insert as w, memo as T, runHydrationEvents as te, setAttribute as E, setProperty as D, template as O, use as ne } from "solid-js/web";
|
|
6
|
+
import { DatePicker as k, parseDate as A } from "@ark-ui/solid/date-picker";
|
|
7
|
+
//#region src/date-range-picker.tsx
|
|
8
|
+
var j = /*#__PURE__*/ O("<svg width=20 height=20 viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=1.5 aria-hidden=true><rect x=3.5 y=5.5 width=17 height=15 rx=2></rect><path d=\"M7.5 3v5M16.5 3v5M3.5 10.5h17\">"), re = /*#__PURE__*/ O("<span aria-hidden=true> *"), ie = /*#__PURE__*/ O("<label class=dds-field__label><!$><!/><!$><!/>"), ae = /*#__PURE__*/ O("<div class=dds-date-range-box><input type=text class=dds-date-range-input autocomplete=off autocorrect=off><span class=dds-date-range-separator aria-hidden=true>~</span><input type=text class=dds-date-range-input autocomplete=off autocorrect=off>"), oe = /*#__PURE__*/ O("<input type=hidden>"), se = /*#__PURE__*/ O("<span class=dds-field__error role=alert>"), ce = /*#__PURE__*/ O("<div role=group><!$><!/><!$><!/><!$><!/><!$><!/><!$><!/>"), M = {
|
|
9
|
+
start: "",
|
|
10
|
+
end: ""
|
|
11
|
+
}, le = (e, t) => e.start === t.start && e.end === t.end;
|
|
12
|
+
function N(e) {
|
|
13
|
+
if (!s(e.start)) return [];
|
|
14
|
+
let t = A(e.start);
|
|
15
|
+
return s(e.end) && e.start <= e.end ? [t, A(e.end)] : [t];
|
|
16
|
+
}
|
|
17
|
+
function ue() {
|
|
18
|
+
return S(j);
|
|
19
|
+
}
|
|
20
|
+
function de(b) {
|
|
21
|
+
let O = () => b.locale ?? "ko-KR", j = b.id ?? `dds-date-range-${p()}`, de = `${j}-end`, fe = `${j}-label`, P = `${j}-error`, F = () => i(O(), b.messages), [I, L] = e({
|
|
22
|
+
value: () => b.value,
|
|
23
|
+
defaultValue: b.defaultValue ?? M,
|
|
24
|
+
onChange: void 0
|
|
25
|
+
}), R = (e) => ({
|
|
26
|
+
start: o(e.start, O()),
|
|
27
|
+
end: o(e.end, O())
|
|
28
|
+
}), [pe, me] = f({
|
|
29
|
+
...R(I()),
|
|
30
|
+
locale: O()
|
|
31
|
+
}), z = (e, t) => {
|
|
32
|
+
let n = c(e, t);
|
|
33
|
+
return t !== O() && s(n) ? o(n, O()) : e;
|
|
34
|
+
}, B = d(() => {
|
|
35
|
+
let e = pe();
|
|
36
|
+
return {
|
|
37
|
+
start: z(e.start, e.locale),
|
|
38
|
+
end: z(e.end, e.locale)
|
|
39
|
+
};
|
|
40
|
+
}), V = (e) => me({
|
|
41
|
+
...e,
|
|
42
|
+
locale: O()
|
|
43
|
+
}), [he, H] = f(N(I())), [ge, U] = f(!1), W, G, K, q = I(), J, [Y, _e] = f();
|
|
44
|
+
g(() => {
|
|
45
|
+
W && _e(W.closest("[role=\"dialog\"], [role=\"alertdialog\"]") ?? W.ownerDocument.body);
|
|
46
|
+
});
|
|
47
|
+
let X = () => b.disabled || b.readOnly, Z = d(() => a(B().start, B().end, b.required ?? !1, b.min, b.max, O())), Q = (e) => e === "required" ? F().required : e === "order" ? F().order : F().invalid, $ = () => Z().valid ? void 0 : Q(Z().reason), ve = () => b.invalid || !Z().start.valid, ye = () => b.invalid || !Z().end.valid || Z().reason === "order", be = () => b.label ?? b["aria-label"] ?? "";
|
|
48
|
+
u(m(() => [I().start, I().end], ([e, t]) => {
|
|
49
|
+
le({
|
|
50
|
+
start: e,
|
|
51
|
+
end: t
|
|
52
|
+
}, q) || (q = {
|
|
53
|
+
start: e,
|
|
54
|
+
end: t
|
|
55
|
+
}, V(R(q)), H(N(q)));
|
|
56
|
+
}, { defer: !0 })), u(() => {
|
|
57
|
+
let e = Z();
|
|
58
|
+
W?.setCustomValidity(e.start.valid ? "" : Q(e.start.reason)), G?.setCustomValidity(e.end.valid ? e.reason === "order" ? F().order : "" : Q(e.end.reason));
|
|
59
|
+
}), u(() => {
|
|
60
|
+
X() && (U(!1), J !== void 0 && cancelAnimationFrame(J));
|
|
61
|
+
}), g(() => {
|
|
62
|
+
let e = W?.ownerDocument;
|
|
63
|
+
if (!e) return;
|
|
64
|
+
let t = (t) => {
|
|
65
|
+
let n = b.form ? e.getElementById(b.form) : W?.form;
|
|
66
|
+
!n || t.target !== n || setTimeout(() => {
|
|
67
|
+
if (t.defaultPrevented) return;
|
|
68
|
+
let e = b.value ?? b.defaultValue ?? M;
|
|
69
|
+
q = e, L(e);
|
|
70
|
+
let n = R(e);
|
|
71
|
+
V(n), H(N(e)), W && (W.value = n.start), G && (G.value = n.end);
|
|
72
|
+
}, 0);
|
|
73
|
+
};
|
|
74
|
+
e.addEventListener("reset", t, !0), h(() => e.removeEventListener("reset", t, !0));
|
|
75
|
+
}), h(() => {
|
|
76
|
+
J !== void 0 && cancelAnimationFrame(J);
|
|
77
|
+
});
|
|
78
|
+
function xe(e, t = 1) {
|
|
79
|
+
J !== void 0 && cancelAnimationFrame(J);
|
|
80
|
+
let n = (t) => {
|
|
81
|
+
J = requestAnimationFrame(() => {
|
|
82
|
+
if (t > 1) return n(t - 1);
|
|
83
|
+
X() || e()?.focus({ preventScroll: !0 });
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
n(t);
|
|
87
|
+
}
|
|
88
|
+
function Se(e) {
|
|
89
|
+
X() || (H(N(e)), !le(e, q) && (q = e, L(e), b.onValueChange?.(e)));
|
|
90
|
+
}
|
|
91
|
+
function Ce(e, t) {
|
|
92
|
+
if (X()) return;
|
|
93
|
+
let n = {
|
|
94
|
+
...B(),
|
|
95
|
+
[e]: t
|
|
96
|
+
}, r = a(n.start, n.end, !1, b.min, b.max, O()), i = r[e];
|
|
97
|
+
i.valid && (n[e] = o(i.value ?? "", O())), V(n), r.valid && Se(r.value);
|
|
98
|
+
}
|
|
99
|
+
function we(e) {
|
|
100
|
+
V(R(e)), Se(e);
|
|
101
|
+
}
|
|
102
|
+
let Te = () => (b.presets ?? []).map((e) => {
|
|
103
|
+
let t = () => a(e.value.start, e.value.end, !1, b.min, b.max, "en-US");
|
|
104
|
+
return {
|
|
105
|
+
label: e.label,
|
|
106
|
+
disabled: !t().valid,
|
|
107
|
+
onSelect: () => {
|
|
108
|
+
let e = t();
|
|
109
|
+
X() || !e.valid || (we(e.value), U(!1), xe(() => G, 2));
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
return (() => {
|
|
114
|
+
var e = S(ce), i = e.firstChild, [o, c] = C(i.nextSibling), u = o.nextSibling, [d, f] = C(u.nextSibling), p = d.nextSibling, [m, g] = C(p.nextSibling), le = m.nextSibling, [L, R] = C(le.nextSibling), pe = L.nextSibling, [me, z] = C(pe.nextSibling);
|
|
115
|
+
return w(e, y(l, {
|
|
116
|
+
get when() {
|
|
117
|
+
return b.label;
|
|
118
|
+
},
|
|
119
|
+
get children() {
|
|
120
|
+
var e = S(ie), t = e.firstChild, [n, r] = C(t.nextSibling), i = n.nextSibling, [a, o] = C(i.nextSibling);
|
|
121
|
+
return E(e, "id", fe), E(e, "for", j), w(e, () => b.label, n, r), w(e, y(l, {
|
|
122
|
+
get when() {
|
|
123
|
+
return b.required;
|
|
124
|
+
},
|
|
125
|
+
get children() {
|
|
126
|
+
return S(re);
|
|
127
|
+
}
|
|
128
|
+
}), a, o), e;
|
|
129
|
+
}
|
|
130
|
+
}), o, c), w(e, y(k.Root, {
|
|
131
|
+
get locale() {
|
|
132
|
+
return O();
|
|
133
|
+
},
|
|
134
|
+
get timeZone() {
|
|
135
|
+
return b.timeZone ?? "Asia/Seoul";
|
|
136
|
+
},
|
|
137
|
+
selectionMode: "range",
|
|
138
|
+
get disabled() {
|
|
139
|
+
return b.disabled;
|
|
140
|
+
},
|
|
141
|
+
get readOnly() {
|
|
142
|
+
return b.readOnly;
|
|
143
|
+
},
|
|
144
|
+
get required() {
|
|
145
|
+
return b.required;
|
|
146
|
+
},
|
|
147
|
+
get invalid() {
|
|
148
|
+
return b.invalid || !Z().valid;
|
|
149
|
+
},
|
|
150
|
+
get open() {
|
|
151
|
+
return T(() => !!ge())() && !X();
|
|
152
|
+
},
|
|
153
|
+
onOpenChange: (e) => {
|
|
154
|
+
U(e.open && !X()), e.open || H(N(q));
|
|
155
|
+
},
|
|
156
|
+
get min() {
|
|
157
|
+
return T(() => !!(b.min && s(b.min)))() ? A(b.min) : void 0;
|
|
158
|
+
},
|
|
159
|
+
get max() {
|
|
160
|
+
return T(() => !!(b.max && s(b.max)))() ? A(b.max) : void 0;
|
|
161
|
+
},
|
|
162
|
+
get startOfWeek() {
|
|
163
|
+
return b.startOfWeek ?? 0;
|
|
164
|
+
},
|
|
165
|
+
minView: "day",
|
|
166
|
+
maxView: "day",
|
|
167
|
+
fixedWeeks: !0,
|
|
168
|
+
get translations() {
|
|
169
|
+
return {
|
|
170
|
+
dayCell: (e) => F().selectDate(e.valueText),
|
|
171
|
+
clearTrigger: F().clear
|
|
172
|
+
};
|
|
173
|
+
},
|
|
174
|
+
get value() {
|
|
175
|
+
return he();
|
|
176
|
+
},
|
|
177
|
+
onValueChange: (e) => {
|
|
178
|
+
if (X() || (H(e.value), e.value.length < 2)) return;
|
|
179
|
+
let [t, n] = e.value.map((e) => e.toString()).sort(), r = a(t, n, !1, b.min, b.max, "en-US");
|
|
180
|
+
r.valid && (we(r.value), xe(() => G, 2));
|
|
181
|
+
},
|
|
182
|
+
get positioning() {
|
|
183
|
+
return {
|
|
184
|
+
placement: "bottom-start",
|
|
185
|
+
gutter: 8,
|
|
186
|
+
strategy: Y()?.matches("[role=\"dialog\"], [role=\"alertdialog\"]") ? "fixed" : "absolute",
|
|
187
|
+
hideWhenDetached: !!Y()?.matches("[role=\"dialog\"], [role=\"alertdialog\"]")
|
|
188
|
+
};
|
|
189
|
+
},
|
|
190
|
+
get children() {
|
|
191
|
+
return [y(k.Control, {
|
|
192
|
+
class: "dds-date-picker-control",
|
|
193
|
+
get children() {
|
|
194
|
+
return [(() => {
|
|
195
|
+
var e = S(ae), t = e.firstChild, i = t.nextSibling.nextSibling;
|
|
196
|
+
t.$$keydown = (e) => {
|
|
197
|
+
e.key === "Enter" && !e.isComposing && (e.preventDefault(), e.stopPropagation());
|
|
198
|
+
}, v(t, "input", (e) => {
|
|
199
|
+
e.stopPropagation(), Ce("start", e.currentTarget.value);
|
|
200
|
+
});
|
|
201
|
+
var a = W;
|
|
202
|
+
typeof a == "function" ? ne(a, t) : W = t, E(t, "spellcheck", !1), E(t, "id", j), i.$$keydown = (e) => {
|
|
203
|
+
e.key === "Enter" && !e.isComposing && (e.preventDefault(), e.stopPropagation());
|
|
204
|
+
}, v(i, "input", (e) => {
|
|
205
|
+
e.stopPropagation(), Ce("end", e.currentTarget.value);
|
|
206
|
+
});
|
|
207
|
+
var o = G;
|
|
208
|
+
return typeof o == "function" ? ne(o, i) : G = i, E(i, "spellcheck", !1), E(i, "id", de), x((a) => {
|
|
209
|
+
var o = ve() || ye() ? "" : void 0, s = b.disabled ? "" : void 0, c = r(O()) ? "YYYY/MM/DD" : "YYYY-MM-DD", l = b.form, u = F().startLabel, d = ve() ? "true" : void 0, f = b.required ? "true" : void 0, p = n(b["aria-describedby"], $() && P), m = b.required, h = b.readOnly, g = b.disabled, _ = r(O()) ? "YYYY/MM/DD" : "YYYY-MM-DD", v = b.form, ee = F().endLabel, y = ye() ? "true" : void 0, x = b.required ? "true" : void 0, S = n(b["aria-describedby"], $() && P), C = b.required, w = b.readOnly, T = b.disabled;
|
|
210
|
+
return o !== a.e && E(e, "data-invalid", a.e = o), s !== a.t && E(e, "data-disabled", a.t = s), c !== a.a && E(t, "placeholder", a.a = c), l !== a.o && E(t, "form", a.o = l), u !== a.i && E(t, "aria-label", a.i = u), d !== a.n && E(t, "aria-invalid", a.n = d), f !== a.s && E(t, "aria-required", a.s = f), p !== a.h && E(t, "aria-describedby", a.h = p), m !== a.r && D(t, "required", a.r = m), h !== a.d && D(t, "readOnly", a.d = h), g !== a.l && D(t, "disabled", a.l = g), _ !== a.u && E(i, "placeholder", a.u = _), v !== a.c && E(i, "form", a.c = v), ee !== a.w && E(i, "aria-label", a.w = ee), y !== a.m && E(i, "aria-invalid", a.m = y), x !== a.f && E(i, "aria-required", a.f = x), S !== a.y && E(i, "aria-describedby", a.y = S), C !== a.g && D(i, "required", a.g = C), w !== a.p && D(i, "readOnly", a.p = w), T !== a.b && D(i, "disabled", a.b = T), a;
|
|
211
|
+
}, {
|
|
212
|
+
e: void 0,
|
|
213
|
+
t: void 0,
|
|
214
|
+
a: void 0,
|
|
215
|
+
o: void 0,
|
|
216
|
+
i: void 0,
|
|
217
|
+
n: void 0,
|
|
218
|
+
s: void 0,
|
|
219
|
+
h: void 0,
|
|
220
|
+
r: void 0,
|
|
221
|
+
d: void 0,
|
|
222
|
+
l: void 0,
|
|
223
|
+
u: void 0,
|
|
224
|
+
c: void 0,
|
|
225
|
+
w: void 0,
|
|
226
|
+
m: void 0,
|
|
227
|
+
f: void 0,
|
|
228
|
+
y: void 0,
|
|
229
|
+
g: void 0,
|
|
230
|
+
p: void 0,
|
|
231
|
+
b: void 0
|
|
232
|
+
}), x(() => D(t, "value", B().start)), x(() => D(i, "value", B().end)), te(), e;
|
|
233
|
+
})(), y(k.Trigger, {
|
|
234
|
+
ref(e) {
|
|
235
|
+
var t = K;
|
|
236
|
+
typeof t == "function" ? t(e) : K = e;
|
|
237
|
+
},
|
|
238
|
+
class: "dds-btn dds-btn--secondary",
|
|
239
|
+
get "aria-label"() {
|
|
240
|
+
return `${be()} ${F().openCalendar}`.trim();
|
|
241
|
+
},
|
|
242
|
+
get children() {
|
|
243
|
+
return y(ue, {});
|
|
244
|
+
}
|
|
245
|
+
})];
|
|
246
|
+
}
|
|
247
|
+
}), y(l, {
|
|
248
|
+
get when() {
|
|
249
|
+
return Y();
|
|
250
|
+
},
|
|
251
|
+
children: (e) => y(_, {
|
|
252
|
+
get mount() {
|
|
253
|
+
return e();
|
|
254
|
+
},
|
|
255
|
+
get children() {
|
|
256
|
+
return y(k.Positioner, {
|
|
257
|
+
class: "dds-date-picker-positioner",
|
|
258
|
+
get children() {
|
|
259
|
+
return y(k.Content, {
|
|
260
|
+
ref: (e) => {
|
|
261
|
+
let t = (e) => {
|
|
262
|
+
e.key === "Escape" && xe(() => K, 2);
|
|
263
|
+
};
|
|
264
|
+
e.addEventListener("keydown", t, !0), h(() => e.removeEventListener("keydown", t, !0));
|
|
265
|
+
},
|
|
266
|
+
class: "dds-date-picker-content dds-date-range-content",
|
|
267
|
+
get "aria-label"() {
|
|
268
|
+
return `${be()} ${F().chooseRange}`.trim();
|
|
269
|
+
},
|
|
270
|
+
get children() {
|
|
271
|
+
return y(t, {
|
|
272
|
+
get timeZone() {
|
|
273
|
+
return b.timeZone;
|
|
274
|
+
},
|
|
275
|
+
get min() {
|
|
276
|
+
return b.min;
|
|
277
|
+
},
|
|
278
|
+
get max() {
|
|
279
|
+
return b.max;
|
|
280
|
+
},
|
|
281
|
+
get locale() {
|
|
282
|
+
return O();
|
|
283
|
+
},
|
|
284
|
+
get messages() {
|
|
285
|
+
return F();
|
|
286
|
+
},
|
|
287
|
+
get disabled() {
|
|
288
|
+
return b.disabled;
|
|
289
|
+
},
|
|
290
|
+
get readOnly() {
|
|
291
|
+
return b.readOnly;
|
|
292
|
+
},
|
|
293
|
+
showToday: !1,
|
|
294
|
+
get showClear() {
|
|
295
|
+
return b.clearable;
|
|
296
|
+
},
|
|
297
|
+
get presets() {
|
|
298
|
+
return Te();
|
|
299
|
+
},
|
|
300
|
+
get presetsLabel() {
|
|
301
|
+
return F().presets;
|
|
302
|
+
},
|
|
303
|
+
onClear: () => we(M)
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
})
|
|
311
|
+
})];
|
|
312
|
+
}
|
|
313
|
+
}), d, f), w(e, y(l, {
|
|
314
|
+
get when() {
|
|
315
|
+
return b.startName;
|
|
316
|
+
},
|
|
317
|
+
get children() {
|
|
318
|
+
var e = S(oe);
|
|
319
|
+
return x((t) => {
|
|
320
|
+
var n = b.startName, r = b.form, i = b.disabled;
|
|
321
|
+
return n !== t.e && E(e, "name", t.e = n), r !== t.t && E(e, "form", t.t = r), i !== t.a && D(e, "disabled", t.a = i), t;
|
|
322
|
+
}, {
|
|
323
|
+
e: void 0,
|
|
324
|
+
t: void 0,
|
|
325
|
+
a: void 0
|
|
326
|
+
}), x(() => D(e, "value", I().start)), e;
|
|
327
|
+
}
|
|
328
|
+
}), m, g), w(e, y(l, {
|
|
329
|
+
get when() {
|
|
330
|
+
return b.endName;
|
|
331
|
+
},
|
|
332
|
+
get children() {
|
|
333
|
+
var e = S(oe);
|
|
334
|
+
return x((t) => {
|
|
335
|
+
var n = b.endName, r = b.form, i = b.disabled;
|
|
336
|
+
return n !== t.e && E(e, "name", t.e = n), r !== t.t && E(e, "form", t.t = r), i !== t.a && D(e, "disabled", t.a = i), t;
|
|
337
|
+
}, {
|
|
338
|
+
e: void 0,
|
|
339
|
+
t: void 0,
|
|
340
|
+
a: void 0
|
|
341
|
+
}), x(() => D(e, "value", I().end)), e;
|
|
342
|
+
}
|
|
343
|
+
}), L, R), w(e, y(l, {
|
|
344
|
+
get when() {
|
|
345
|
+
return $();
|
|
346
|
+
},
|
|
347
|
+
get children() {
|
|
348
|
+
var e = S(se);
|
|
349
|
+
return E(e, "id", P), w(e, $), e;
|
|
350
|
+
}
|
|
351
|
+
}), me, z), x((t) => {
|
|
352
|
+
var n = `dds-field dds-date-picker dds-date-range-picker dds-date-picker--${b.labelPlacement ?? "outside"}${$() ? " dds-field--error" : ""}`, r = b["aria-labelledby"] ?? (b.label ? fe : void 0), i = b.label || b["aria-labelledby"] ? void 0 : b["aria-label"], a = B().start !== "" || B().end !== "" ? "true" : void 0, o = ve() || ye() ? "" : void 0, s = b.disabled ? "" : void 0;
|
|
353
|
+
return n !== t.e && ee(e, t.e = n), r !== t.t && E(e, "aria-labelledby", t.t = r), i !== t.a && E(e, "aria-label", t.a = i), a !== t.o && E(e, "data-filled", t.o = a), o !== t.i && E(e, "data-invalid", t.i = o), s !== t.n && E(e, "data-disabled", t.n = s), t;
|
|
354
|
+
}, {
|
|
355
|
+
e: void 0,
|
|
356
|
+
t: void 0,
|
|
357
|
+
a: void 0,
|
|
358
|
+
o: void 0,
|
|
359
|
+
i: void 0,
|
|
360
|
+
n: void 0
|
|
361
|
+
}), e;
|
|
362
|
+
})();
|
|
363
|
+
}
|
|
364
|
+
b(["keydown"]);
|
|
365
|
+
//#endregion
|
|
366
|
+
export { de as DateRangePicker };
|
|
367
|
+
|
|
368
|
+
//# sourceMappingURL=date-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-range-picker.js","names":["DatePicker","ArkDatePicker","parseDate","DateValue","Portal","createEffect","createMemo","createSignal","createUniqueId","on","onCleanup","onMount","Show","CalendarView","createControllableSignal","canonicalInput","displayDate","isCalendarDate","isKorean","rangeMessages","validateRange","DateRange","DateRangeMessages","describedBy","DateRangeValidity","DateRangePreset","label","value","DateRangePickerProps","labelPlacement","id","defaultValue","onValueChange","next","locale","timeZone","min","max","startOfWeek","messages","clearable","presets","required","disabled","readOnly","invalid","startName","endName","form","EMPTY","start","end","same","a","b","selectionOf","range","CalendarIcon","_$getNextElement","_tmpl$","DateRangePicker","props","endId","labelId","errorId","text","setValue","onChange","undefined","display","draftState","setDraftState","relocalize","draft","from","canonical","drafts","state","setDrafts","selection","setSelection","open","setOpen","startInput","HTMLInputElement","endInput","trigger","HTMLButtonElement","emitted","focusFrame","portalMount","setPortalMount","HTMLElement","closest","ownerDocument","body","blocked","validity","messageFor","reason","order","error","valid","startInvalid","endInvalid","fieldName","const","defer","setCustomValidity","cancelAnimationFrame","doc","reset","event","Event","getElementById","target","setTimeout","defaultPrevented","shown","addEventListener","removeEventListener","focusSoon","frames","run","left","requestAnimationFrame","focus","preventScroll","commit","changeDraft","side","typed","loose","part","choose","map","preset","onSelect","checked","_el$2","_tmpl$7","_el$14","firstChild","_el$15","_co$3","_$getNextMarker","nextSibling","_el$16","_el$17","_co$4","_el$18","_el$19","_co$5","_el$20","_el$21","_co$6","_el$22","_el$23","_co$7","_$insert","_$createComponent","when","children","_el$3","_tmpl$3","_el$5","_el$6","_co$","_el$7","_el$8","_co$2","_$setAttribute","_tmpl$2","Root","selectionMode","_$memo","onOpenChange","details","minView","maxView","fixedWeeks","translations","dayCell","selectDate","valueText","clearTrigger","clear","length","day","toString","sort","positioning","placement","gutter","strategy","matches","hideWhenDetached","Control","_el$9","_tmpl$4","_el$0","_el$1","_el$10","$$keydown","key","isComposing","preventDefault","stopPropagation","_$addEventListener","currentTarget","_ref$","_$use","_ref$2","_$effect","_p$","_v$","_v$2","_v$3","_v$4","_v$5","startLabel","_v$6","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","endLabel","_v$13","_v$14","_v$15","_v$16","_v$17","_v$18","e","t","o","i","n","s","h","r","_$setProperty","d","l","u","c","w","m","f","y","g","p","_$runHydrationEvents","Trigger","ref","r$","_ref$3","aria-label","openCalendar","trim","mount","Positioner","Content","node","restoreTrigger","KeyboardEvent","chooseRange","showToday","showClear","presetsLabel","onClear","_el$11","_tmpl$5","_v$19","_v$20","_v$21","_el$12","_v$22","_v$23","_v$24","_el$13","_tmpl$6","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_$className","_$delegateEvents"],"sources":["../src/date-range-picker.tsx"],"sourcesContent":["import {\n DatePicker as ArkDatePicker,\n parseDate,\n type DateValue,\n} from \"@ark-ui/solid/date-picker\";\nimport { Portal } from \"solid-js/web\";\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n on,\n onCleanup,\n onMount,\n Show,\n} from \"solid-js\";\nimport { CalendarView } from \"./calendar-view\";\nimport { createControllableSignal } from \"./controllable\";\nimport {\n canonicalInput,\n displayDate,\n isCalendarDate,\n isKorean,\n rangeMessages,\n validateRange,\n type DateRange,\n type DateRangeMessages,\n} from \"./date-only\";\nimport { describedBy } from \"./utils\";\nexport type {\n DateRange,\n DateRangeMessages,\n DateRangeValidity,\n} from \"./date-only\";\n\n/** A consumer-supplied shortcut shown in the calendar footer. DDS ships no built-in list. */\nexport interface DateRangePreset {\n label: string;\n value: DateRange;\n}\n\nexport interface DateRangePickerProps {\n label?: string;\n /** Two inputs share one field label; \"inside\" is not offered. */\n labelPlacement?: \"outside\" | \"hidden\";\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n /** Id of the start input; the end input receives `${id}-end`. */\n id?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n /** Called on user changes only, with YYYY-MM-DD or \"\" on each side; never with start after end. */\n onValueChange?: (next: DateRange) => void;\n locale?: string;\n timeZone?: string;\n min?: string;\n max?: string;\n startOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n messages?: DateRangeMessages;\n clearable?: boolean;\n presets?: DateRangePreset[];\n /** Both dates are required. */\n required?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n invalid?: boolean;\n /** Form field name submitting the start date (YYYY-MM-DD or \"\"). */\n startName?: string;\n /** Form field name submitting the end date (YYYY-MM-DD or \"\"). */\n endName?: string;\n form?: string;\n}\n\nconst EMPTY: DateRange = { start: \"\", end: \"\" };\nconst same = (a: DateRange, b: DateRange) =>\n a.start === b.start && a.end === b.end;\n\nfunction selectionOf(range: DateRange): DateValue[] {\n if (!isCalendarDate(range.start)) return [];\n const start = parseDate(range.start);\n return isCalendarDate(range.end) && range.start <= range.end\n ? [start, parseDate(range.end)]\n : [start];\n}\n\nfunction CalendarIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n aria-hidden=\"true\"\n >\n <rect x=\"3.5\" y=\"5.5\" width=\"17\" height=\"15\" rx=\"2\" />\n <path d=\"M7.5 3v5M16.5 3v5M3.5 10.5h17\" />\n </svg>\n );\n}\n\nexport function DateRangePicker(props: DateRangePickerProps) {\n const locale = () => props.locale ?? \"ko-KR\",\n id = props.id ?? `dds-date-range-${createUniqueId()}`,\n endId = `${id}-end`,\n labelId = `${id}-label`,\n errorId = `${id}-error`;\n const text = () => rangeMessages(locale(), props.messages);\n const [value, setValue] = createControllableSignal<DateRange>({\n value: () => props.value,\n defaultValue: props.defaultValue ?? EMPTY,\n onChange: undefined,\n });\n const display = (range: DateRange) => ({\n start: displayDate(range.start, locale()),\n end: displayDate(range.end, locale()),\n });\n // Drafts keep their formatting locale so a locale change re-displays complete dates only.\n const [draftState, setDraftState] = createSignal({\n ...display(value()),\n locale: locale(),\n });\n const relocalize = (draft: string, from: string) => {\n const canonical = canonicalInput(draft, from);\n return from !== locale() && isCalendarDate(canonical)\n ? displayDate(canonical, locale())\n : draft;\n };\n const drafts = createMemo(() => {\n const state = draftState();\n return {\n start: relocalize(state.start, state.locale),\n end: relocalize(state.end, state.locale),\n };\n });\n const setDrafts = (next: DateRange) =>\n setDraftState({ ...next, locale: locale() });\n const [selection, setSelection] = createSignal(selectionOf(value()));\n const [open, setOpen] = createSignal(false);\n let startInput: HTMLInputElement | undefined,\n endInput: HTMLInputElement | undefined,\n trigger: HTMLButtonElement | undefined,\n emitted = value(),\n focusFrame: number | undefined;\n const [portalMount, setPortalMount] = createSignal<HTMLElement>();\n onMount(() => {\n if (startInput)\n setPortalMount(\n startInput.closest<HTMLElement>('[role=\"dialog\"], [role=\"alertdialog\"]') ??\n startInput.ownerDocument.body,\n );\n });\n const blocked = () => props.disabled || props.readOnly;\n const validity = createMemo(() =>\n validateRange(\n drafts().start,\n drafts().end,\n props.required ?? false,\n props.min,\n props.max,\n locale(),\n ),\n );\n const messageFor = (reason: string) =>\n reason === \"required\"\n ? text().required\n : reason === \"order\"\n ? text().order\n : text().invalid;\n const error = () =>\n validity().valid ? undefined : messageFor(validity().reason);\n const startInvalid = () => props.invalid || !validity().start.valid;\n const endInvalid = () =>\n props.invalid || !validity().end.valid || validity().reason === \"order\";\n const fieldName = () => props.label ?? props[\"aria-label\"] ?? \"\";\n\n createEffect(\n on(\n () => [value().start, value().end] as const,\n ([start, end]) => {\n if (same({ start, end }, emitted)) return;\n emitted = { start, end };\n setDrafts(display(emitted));\n setSelection(selectionOf(emitted));\n },\n { defer: true },\n ),\n );\n createEffect(() => {\n const state = validity();\n startInput?.setCustomValidity(\n state.start.valid ? \"\" : messageFor(state.start.reason),\n );\n endInput?.setCustomValidity(\n !state.end.valid\n ? messageFor(state.end.reason)\n : state.reason === \"order\"\n ? text().order\n : \"\",\n );\n });\n createEffect(() => {\n if (blocked()) {\n setOpen(false);\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n }\n });\n // Resolve the owning form when a reset happens: the field may mount before it joins its form.\n onMount(() => {\n const doc = startInput?.ownerDocument;\n if (!doc) return;\n const reset = (event: Event) => {\n const form = props.form ? doc.getElementById(props.form) : startInput?.form;\n if (!form || event.target !== form) return;\n // A task, not a microtask: a user-triggered reset runs its listeners before rewriting the controls.\n setTimeout(() => {\n if (event.defaultPrevented) return;\n const next = props.value ?? props.defaultValue ?? EMPTY;\n emitted = next;\n setValue(next);\n const shown = display(next);\n setDrafts(shown);\n setSelection(selectionOf(next));\n // Native reset rewrote the visible inputs; the drafts may not have changed.\n if (startInput) startInput.value = shown.start;\n if (endInput) endInput.value = shown.end;\n }, 0);\n };\n doc.addEventListener(\"reset\", reset, true);\n onCleanup(() => doc.removeEventListener(\"reset\", reset, true));\n });\n onCleanup(() => {\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n });\n\n function focusSoon(target: () => HTMLElement | undefined, frames = 1) {\n if (focusFrame !== undefined) cancelAnimationFrame(focusFrame);\n const run = (left: number) => {\n focusFrame = requestAnimationFrame(() => {\n if (left > 1) return run(left - 1);\n if (!blocked()) target()?.focus({ preventScroll: true });\n });\n };\n run(frames);\n }\n function commit(next: DateRange) {\n if (blocked()) return;\n setSelection(selectionOf(next));\n if (same(next, emitted)) return;\n emitted = next;\n setValue(next);\n props.onValueChange?.(next);\n }\n /** Committing ignores `required` like DatePicker: an emptied side is still reported. */\n function changeDraft(side: \"start\" | \"end\", typed: string) {\n if (blocked()) return;\n const next = { ...drafts(), [side]: typed };\n const loose = validateRange(\n next.start,\n next.end,\n false,\n props.min,\n props.max,\n locale(),\n );\n const part = loose[side];\n if (part.valid) next[side] = displayDate(part.value ?? \"\", locale());\n setDrafts(next);\n if (loose.valid) commit(loose.value!);\n }\n function choose(range: DateRange) {\n setDrafts(display(range));\n commit(range);\n }\n const presets = () =>\n (props.presets ?? []).map((preset) => {\n const state = () =>\n validateRange(\n preset.value.start,\n preset.value.end,\n false,\n props.min,\n props.max,\n \"en-US\",\n );\n return {\n label: preset.label,\n disabled: !state().valid,\n onSelect: () => {\n const checked = state();\n if (blocked() || !checked.valid) return;\n choose(checked.value!);\n setOpen(false);\n focusSoon(() => endInput, 2);\n },\n };\n });\n\n\n return (\n <div\n class={`dds-field dds-date-picker dds-date-range-picker dds-date-picker--${props.labelPlacement ?? \"outside\"}${error() ? \" dds-field--error\" : \"\"}`}\n role=\"group\"\n aria-labelledby={\n props[\"aria-labelledby\"] ?? (props.label ? labelId : undefined)\n }\n aria-label={\n props.label || props[\"aria-labelledby\"] ? undefined : props[\"aria-label\"]\n }\n data-filled={drafts().start !== \"\" || drafts().end !== \"\" ? \"true\" : undefined}\n data-invalid={startInvalid() || endInvalid() ? \"\" : undefined}\n data-disabled={props.disabled ? \"\" : undefined}\n >\n <Show when={props.label}>\n <label id={labelId} class=\"dds-field__label\" for={id}>\n {props.label}\n <Show when={props.required}>\n <span aria-hidden=\"true\"> *</span>\n </Show>\n </label>\n </Show>\n <ArkDatePicker.Root\n locale={locale()}\n timeZone={props.timeZone ?? \"Asia/Seoul\"}\n selectionMode=\"range\"\n disabled={props.disabled}\n readOnly={props.readOnly}\n required={props.required}\n invalid={props.invalid || !validity().valid}\n open={open() && !blocked()}\n onOpenChange={(details) => {\n setOpen(details.open && !blocked());\n // A half-chosen period is not a value: closing restores the committed one.\n if (!details.open) setSelection(selectionOf(emitted));\n }}\n min={\n props.min && isCalendarDate(props.min)\n ? parseDate(props.min)\n : undefined\n }\n max={\n props.max && isCalendarDate(props.max)\n ? parseDate(props.max)\n : undefined\n }\n startOfWeek={props.startOfWeek ?? 0}\n minView=\"day\"\n maxView=\"day\"\n fixedWeeks\n translations={{\n dayCell: (state) => text().selectDate(state.valueText),\n clearTrigger: text().clear,\n }}\n value={selection()}\n onValueChange={(details) => {\n if (blocked()) return;\n setSelection(details.value);\n if (details.value.length < 2) return;\n const [start, end] = details.value.map((day) => day.toString()).sort();\n const checked = validateRange(\n start!,\n end!,\n false,\n props.min,\n props.max,\n \"en-US\",\n );\n if (!checked.valid) return;\n choose(checked.value!);\n focusSoon(() => endInput, 2);\n }}\n positioning={{\n placement: \"bottom-start\",\n gutter: 8,\n strategy: portalMount()?.matches(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n )\n ? \"fixed\"\n : \"absolute\",\n hideWhenDetached: !!portalMount()?.matches(\n '[role=\"dialog\"], [role=\"alertdialog\"]',\n ),\n }}\n >\n <ArkDatePicker.Control class=\"dds-date-picker-control\">\n <div\n class=\"dds-date-range-box\"\n data-invalid={startInvalid() || endInvalid() ? \"\" : undefined}\n data-disabled={props.disabled ? \"\" : undefined}\n >\n <input\n type=\"text\"\n class=\"dds-date-range-input\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck={false}\n placeholder={isKorean(locale()) ? \"YYYY/MM/DD\" : \"YYYY-MM-DD\"}\n id={id}\n ref={startInput}\n form={props.form}\n aria-label={text().startLabel}\n aria-invalid={startInvalid() ? \"true\" : undefined}\n aria-required={props.required ? \"true\" : undefined}\n aria-describedby={describedBy(\n props[\"aria-describedby\"],\n error() && errorId,\n )}\n value={drafts().start}\n required={props.required}\n readOnly={props.readOnly}\n disabled={props.disabled}\n on:input={(event) => {\n event.stopPropagation();\n changeDraft(\"start\", event.currentTarget.value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" && !event.isComposing) {\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n />\n <span class=\"dds-date-range-separator\" aria-hidden=\"true\">\n ~\n </span>\n <input\n type=\"text\"\n class=\"dds-date-range-input\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n spellcheck={false}\n placeholder={isKorean(locale()) ? \"YYYY/MM/DD\" : \"YYYY-MM-DD\"}\n id={endId}\n ref={endInput}\n form={props.form}\n aria-label={text().endLabel}\n aria-invalid={endInvalid() ? \"true\" : undefined}\n aria-required={props.required ? \"true\" : undefined}\n aria-describedby={describedBy(\n props[\"aria-describedby\"],\n error() && errorId,\n )}\n value={drafts().end}\n required={props.required}\n readOnly={props.readOnly}\n disabled={props.disabled}\n on:input={(event) => {\n event.stopPropagation();\n changeDraft(\"end\", event.currentTarget.value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" && !event.isComposing) {\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n />\n </div>\n <ArkDatePicker.Trigger\n ref={trigger}\n class=\"dds-btn dds-btn--secondary\"\n aria-label={`${fieldName()} ${text().openCalendar}`.trim()}\n >\n <CalendarIcon />\n </ArkDatePicker.Trigger>\n </ArkDatePicker.Control>\n <Show when={portalMount()}>\n {(mount) => (\n <Portal mount={mount()}>\n <ArkDatePicker.Positioner class=\"dds-date-picker-positioner\">\n <ArkDatePicker.Content\n ref={(node) => {\n const restoreTrigger = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") focusSoon(() => trigger, 2);\n };\n node.addEventListener(\"keydown\", restoreTrigger, true);\n onCleanup(() =>\n node.removeEventListener(\"keydown\", restoreTrigger, true),\n );\n }}\n class=\"dds-date-picker-content dds-date-range-content\"\n aria-label={`${fieldName()} ${text().chooseRange}`.trim()}\n >\n <CalendarView\n timeZone={props.timeZone}\n min={props.min}\n max={props.max}\n locale={locale()}\n messages={text()}\n disabled={props.disabled}\n readOnly={props.readOnly}\n showToday={false}\n showClear={props.clearable}\n presets={presets()}\n presetsLabel={text().presets}\n onClear={() => choose(EMPTY)}\n />\n </ArkDatePicker.Content>\n </ArkDatePicker.Positioner>\n </Portal>\n )}\n </Show>\n </ArkDatePicker.Root>\n <Show when={props.startName}>\n <input\n type=\"hidden\"\n name={props.startName}\n form={props.form}\n value={value().start}\n disabled={props.disabled}\n />\n </Show>\n <Show when={props.endName}>\n <input\n type=\"hidden\"\n name={props.endName}\n form={props.form}\n value={value().end}\n disabled={props.disabled}\n />\n </Show>\n <Show when={error()}>\n <span id={errorId} class=\"dds-field__error\" role=\"alert\">\n {error()}\n </span>\n </Show>\n </div>\n );\n}\n"],"mappings":"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"}
|