@mpen/react-basic-inputs 0.2.10 → 0.3.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.
|
@@ -14,15 +14,24 @@ export declare function ActionButton({ onClick, ...props }: ActionButtonProps):
|
|
|
14
14
|
|
|
15
15
|
export declare type ActionButtonProps = RequiredKeys<ComponentPropsWithoutRef<'button'>, 'onClick'>;
|
|
16
16
|
|
|
17
|
-
export declare function DatetimeLocalInput({ value, defaultValue, min, max, ...props }: DatetimeLocalInputProps): JSX_2.Element;
|
|
17
|
+
export declare function DatetimeLocalInput({ value, defaultValue, min, max, onChange, ...props }: DatetimeLocalInputProps): JSX_2.Element;
|
|
18
|
+
|
|
19
|
+
export declare type DatetimeLocalInputChangeEvent = {
|
|
20
|
+
isoString: string | null;
|
|
21
|
+
value: number | null;
|
|
22
|
+
date: Date | null;
|
|
23
|
+
};
|
|
18
24
|
|
|
19
25
|
export declare type DatetimeLocalInputProps = OverrideProps<'input', {
|
|
20
|
-
min?:
|
|
21
|
-
max?:
|
|
22
|
-
value?:
|
|
23
|
-
defaultValue?:
|
|
26
|
+
min?: DateValue;
|
|
27
|
+
max?: DateValue;
|
|
28
|
+
value?: DateValue | null;
|
|
29
|
+
defaultValue?: DateValue;
|
|
30
|
+
onChange?: (ev: DatetimeLocalInputChangeEvent) => void;
|
|
24
31
|
}, 'type'>;
|
|
25
32
|
|
|
33
|
+
export declare type DateValue = number | string | Date;
|
|
34
|
+
|
|
26
35
|
export declare const DebouncedInput: FC<DebouncedInputProps>;
|
|
27
36
|
|
|
28
37
|
export declare type DebouncedInputChangeEvent = {
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
1
|
+
var k = Object.defineProperty;
|
|
2
|
+
var H = (e, t, r) => t in e ? k(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
|
|
3
|
+
var K = (e, t, r) => (H(e, typeof t != "symbol" ? t + "" : t, r), r);
|
|
4
4
|
import { jsx as N, jsxs as L } from "react/jsx-runtime";
|
|
5
|
-
import { useDebugValue as Y, useRef as
|
|
6
|
-
const
|
|
5
|
+
import { useDebugValue as Y, useRef as x, useInsertionEffect as j, useEffect as q, useMemo as E, useCallback as D, createElement as z, forwardRef as M, useState as F, useImperativeHandle as P, useLayoutEffect as U, useId as G } from "react";
|
|
6
|
+
const W = Object.freeze(() => {
|
|
7
7
|
});
|
|
8
|
-
function
|
|
8
|
+
function B(e) {
|
|
9
9
|
return e;
|
|
10
10
|
}
|
|
11
|
-
let
|
|
12
|
-
typeof window < "u" ?
|
|
11
|
+
let v;
|
|
12
|
+
typeof window < "u" ? v = (e) => {
|
|
13
13
|
Y(e);
|
|
14
|
-
const t =
|
|
15
|
-
|
|
14
|
+
const t = x(Q);
|
|
15
|
+
j(() => {
|
|
16
16
|
t.current = e;
|
|
17
17
|
}, [e]);
|
|
18
|
-
const r =
|
|
18
|
+
const r = x(null);
|
|
19
19
|
return r.current || (r.current = function() {
|
|
20
20
|
return t.current.apply(this, arguments);
|
|
21
21
|
}), r.current;
|
|
22
|
-
} :
|
|
23
|
-
function
|
|
24
|
-
return
|
|
22
|
+
} : v = W;
|
|
23
|
+
function J(e) {
|
|
24
|
+
return v(e);
|
|
25
25
|
}
|
|
26
|
-
function
|
|
26
|
+
function Q() {
|
|
27
27
|
throw new Error("INVALID_USE_EVENT_INVOCATION: the callback from useEvent cannot be invoked before the component has mounted.");
|
|
28
28
|
}
|
|
29
|
-
function
|
|
30
|
-
var e =
|
|
29
|
+
function X() {
|
|
30
|
+
var e = x(!0);
|
|
31
31
|
return e.current ? (e.current = !1, !0) : e.current;
|
|
32
32
|
}
|
|
33
|
-
var
|
|
34
|
-
var r =
|
|
35
|
-
|
|
33
|
+
var w = function(e, t) {
|
|
34
|
+
var r = X();
|
|
35
|
+
q(function() {
|
|
36
36
|
if (!r)
|
|
37
37
|
return e();
|
|
38
38
|
}, t);
|
|
39
39
|
};
|
|
40
|
-
function
|
|
40
|
+
function Z(e, ...t) {
|
|
41
41
|
return typeof e == "function" ? e(...t) : e;
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function C(e, t) {
|
|
44
44
|
if (e.uniqueKey != null)
|
|
45
|
-
return
|
|
45
|
+
return Z(e.uniqueKey, e, t);
|
|
46
46
|
if (typeof e.value == "string")
|
|
47
47
|
return e.value;
|
|
48
48
|
if (typeof e.value == "number")
|
|
@@ -55,46 +55,46 @@ function X(e, t) {
|
|
|
55
55
|
}
|
|
56
56
|
return String(t);
|
|
57
57
|
}
|
|
58
|
-
class
|
|
58
|
+
class A {
|
|
59
59
|
constructor() {
|
|
60
|
-
|
|
60
|
+
K(this, "usedKeys", /* @__PURE__ */ new Map());
|
|
61
61
|
}
|
|
62
62
|
fix(t, r) {
|
|
63
|
-
let
|
|
63
|
+
let n = C(t, r);
|
|
64
64
|
for (; ; ) {
|
|
65
|
-
let
|
|
66
|
-
if (
|
|
67
|
-
this.usedKeys.set(
|
|
65
|
+
let u = this.usedKeys.get(n);
|
|
66
|
+
if (u === void 0) {
|
|
67
|
+
this.usedKeys.set(n, 1);
|
|
68
68
|
break;
|
|
69
69
|
}
|
|
70
|
-
this.usedKeys.set(
|
|
70
|
+
this.usedKeys.set(n, ++u), n = `${n}(${u})`;
|
|
71
71
|
}
|
|
72
|
-
return
|
|
72
|
+
return n;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
const
|
|
75
|
+
const ee = (e) => ({
|
|
76
76
|
value: e,
|
|
77
77
|
text: String(e),
|
|
78
78
|
disabled: !0,
|
|
79
|
-
key:
|
|
80
|
-
}),
|
|
81
|
-
function
|
|
79
|
+
key: re
|
|
80
|
+
}), te = "3c9369b7-0a5e-46ea-93c2-e8b9fec67fdb", re = "1a53f789-77f5-4ce6-a829-b00e563f1ee8";
|
|
81
|
+
function de({
|
|
82
82
|
options: e,
|
|
83
83
|
value: t,
|
|
84
|
-
invalidValueOption: r =
|
|
85
|
-
onChange:
|
|
86
|
-
placeholder:
|
|
87
|
-
...
|
|
84
|
+
invalidValueOption: r = ee,
|
|
85
|
+
onChange: n,
|
|
86
|
+
placeholder: u,
|
|
87
|
+
...c
|
|
88
88
|
}) {
|
|
89
|
-
const
|
|
89
|
+
const i = t == null, l = E(() => t != null && e.some((s) => s.value == t), [e, t]), o = E(() => t == null || !r ? null : r(t), [r, t]), a = E(() => {
|
|
90
90
|
if (l)
|
|
91
91
|
return e;
|
|
92
92
|
const s = [...e];
|
|
93
|
-
return
|
|
94
|
-
}, [l, e,
|
|
95
|
-
const I = s.target.selectedIndex,
|
|
96
|
-
|
|
97
|
-
value:
|
|
93
|
+
return i ? u != null && s.unshift({ text: u, hidden: !0, value: null, key: te }) : o && s.push(o), s;
|
|
94
|
+
}, [l, e, i, o, u]), g = J((s) => {
|
|
95
|
+
const I = s.target.selectedIndex, S = a[I];
|
|
96
|
+
n == null || n({
|
|
97
|
+
value: S.value,
|
|
98
98
|
// option: opt,
|
|
99
99
|
// event: ev,
|
|
100
100
|
index: I,
|
|
@@ -102,59 +102,54 @@ function oe({
|
|
|
102
102
|
timeStamp: s.timeStamp,
|
|
103
103
|
target: s.target
|
|
104
104
|
});
|
|
105
|
-
}),
|
|
106
|
-
|
|
107
|
-
}, [
|
|
108
|
-
|
|
105
|
+
}), f = x(null), d = D(() => {
|
|
106
|
+
f.current && (f.current.selectedIndex < 0 || a[f.current.selectedIndex].value != t) && (f.current.selectedIndex = a.findIndex((s) => s.value == t));
|
|
107
|
+
}, [a, t]), y = (s) => {
|
|
108
|
+
f.current = s, d();
|
|
109
109
|
};
|
|
110
|
-
|
|
110
|
+
w(() => {
|
|
111
111
|
d();
|
|
112
112
|
}, [d]);
|
|
113
|
-
const m = new
|
|
114
|
-
return /* @__PURE__ */ N("select", { ...
|
|
115
|
-
const { value:
|
|
116
|
-
return /* @__PURE__ */
|
|
113
|
+
const m = new A();
|
|
114
|
+
return /* @__PURE__ */ N("select", { ...c, onChange: g, ref: y, children: a.map((s, I) => {
|
|
115
|
+
const { value: S, text: le, uniqueKey: ie, ...R } = s, _ = m.fix(s, I);
|
|
116
|
+
return /* @__PURE__ */ z("option", { ...R, key: _, value: _ }, s.text);
|
|
117
117
|
}) });
|
|
118
118
|
}
|
|
119
|
-
function
|
|
119
|
+
function ne(e) {
|
|
120
120
|
return e ? String(e).replace(/\s+/gu, " ").trim() : "";
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function ue(e) {
|
|
123
123
|
try {
|
|
124
124
|
return e.toLocaleString("en-US", { useGrouping: !1, maximumFractionDigits: 20 });
|
|
125
125
|
} catch {
|
|
126
126
|
return e.toFixed(14).replace(/\.?0+$/, "");
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
function
|
|
129
|
+
function se(e) {
|
|
130
130
|
return e ? e === "∞" || e === "+∞" ? Number.POSITIVE_INFINITY : e === "-∞" ? Number.NEGATIVE_INFINITY : Number.parseFloat(e) : Number.NaN;
|
|
131
131
|
}
|
|
132
|
-
function
|
|
133
|
-
return Number.isNaN(e) ? "" : e === Number.POSITIVE_INFINITY ? "∞" : e === Number.NEGATIVE_INFINITY ? "-∞" :
|
|
132
|
+
function V(e) {
|
|
133
|
+
return Number.isNaN(e) ? "" : e === Number.POSITIVE_INFINITY ? "∞" : e === Number.NEGATIVE_INFINITY ? "-∞" : ue(e);
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
return e ?
|
|
135
|
+
function ce(e) {
|
|
136
|
+
return e ? V(Number.parseFloat(e)) : "";
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function b(e, t = 2) {
|
|
139
139
|
return String(e).padStart(t, "0");
|
|
140
140
|
}
|
|
141
|
-
function
|
|
142
|
-
const t =
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
const A = T(function({ value: t = "", onPaste: r, onChange: u, onInput: n, onBlur: a, formatOnChange: f = W, ...l }, o) {
|
|
147
|
-
const [c, x] = w(t), i = g(t), d = g(!1);
|
|
148
|
-
O(() => {
|
|
149
|
-
x(t), d.current = !1, i.current = t;
|
|
141
|
+
const p = M(function({ value: t = "", onPaste: r, onChange: n, onInput: u, onBlur: c, formatOnChange: i = B, ...l }, o) {
|
|
142
|
+
const [a, g] = F(t), f = x(t), d = x(!1);
|
|
143
|
+
w(() => {
|
|
144
|
+
g(t), d.current = !1, f.current = t;
|
|
150
145
|
}, [t]);
|
|
151
|
-
const
|
|
146
|
+
const y = {
|
|
152
147
|
type: "text",
|
|
153
148
|
...l,
|
|
154
149
|
ref: o,
|
|
155
|
-
value:
|
|
150
|
+
value: a,
|
|
156
151
|
onChange: (m) => {
|
|
157
|
-
|
|
152
|
+
g(m.target.value);
|
|
158
153
|
},
|
|
159
154
|
// TODO: fire a change event onPaste ?
|
|
160
155
|
// formatOnPaste?
|
|
@@ -173,137 +168,164 @@ const A = T(function({ value: t = "", onPaste: r, onChange: u, onInput: n, onBlu
|
|
|
173
168
|
// // setCurrentValue(formatOnChange(ev.clipboardData.getData('text/plain')))
|
|
174
169
|
// },
|
|
175
170
|
onInput: (m) => {
|
|
176
|
-
d.current = !0,
|
|
171
|
+
d.current = !0, u == null || u(m);
|
|
177
172
|
},
|
|
178
173
|
onBlur: (m) => {
|
|
179
|
-
const s =
|
|
180
|
-
d.current && (s !==
|
|
174
|
+
const s = i(a);
|
|
175
|
+
d.current && (s !== f.current && (n == null || n({
|
|
181
176
|
type: "change",
|
|
182
177
|
value: s,
|
|
183
178
|
timeStamp: m.timeStamp,
|
|
184
179
|
target: m.target
|
|
185
|
-
}),
|
|
180
|
+
}), f.current = s), s !== m.target.value && g(s)), c == null || c(m);
|
|
186
181
|
}
|
|
187
182
|
};
|
|
188
|
-
return /* @__PURE__ */ N("input", { ...
|
|
183
|
+
return /* @__PURE__ */ N("input", { ...y });
|
|
189
184
|
});
|
|
190
|
-
function
|
|
191
|
-
return /* @__PURE__ */ N(
|
|
185
|
+
function me({ formatOnChange: e = ne, ...t }) {
|
|
186
|
+
return /* @__PURE__ */ N(p, { formatOnChange: e, ...t, type: "text" });
|
|
192
187
|
}
|
|
193
|
-
const
|
|
188
|
+
const Ne = M(function({
|
|
194
189
|
onInput: t,
|
|
195
190
|
style: r,
|
|
196
|
-
initialHeight:
|
|
197
|
-
...
|
|
198
|
-
},
|
|
199
|
-
const
|
|
200
|
-
const
|
|
201
|
-
if (!
|
|
191
|
+
initialHeight: n = "auto",
|
|
192
|
+
...u
|
|
193
|
+
}, c) {
|
|
194
|
+
const i = x(null), [l, o] = F(n), a = D(() => {
|
|
195
|
+
const f = i.current;
|
|
196
|
+
if (!f)
|
|
202
197
|
return;
|
|
203
|
-
|
|
204
|
-
const d = `${
|
|
205
|
-
o(d),
|
|
206
|
-
}, [
|
|
207
|
-
|
|
208
|
-
element:
|
|
209
|
-
adjustHeight:
|
|
210
|
-
}), [
|
|
211
|
-
const
|
|
212
|
-
|
|
198
|
+
f.style.height = n;
|
|
199
|
+
const d = `${f.scrollHeight}px`;
|
|
200
|
+
o(d), f.style.height = d;
|
|
201
|
+
}, [n]);
|
|
202
|
+
P(c, () => ({
|
|
203
|
+
element: i.current,
|
|
204
|
+
adjustHeight: a
|
|
205
|
+
}), [a]);
|
|
206
|
+
const g = v((f) => {
|
|
207
|
+
a(), t == null || t(f);
|
|
213
208
|
});
|
|
214
|
-
return
|
|
215
|
-
|
|
216
|
-
const
|
|
217
|
-
if (!
|
|
209
|
+
return U(() => {
|
|
210
|
+
a();
|
|
211
|
+
const f = i.current;
|
|
212
|
+
if (!f)
|
|
218
213
|
return;
|
|
219
|
-
const d = new ResizeObserver((
|
|
220
|
-
|
|
214
|
+
const d = new ResizeObserver((y) => {
|
|
215
|
+
a();
|
|
221
216
|
});
|
|
222
|
-
return d.observe(
|
|
223
|
-
d.unobserve(
|
|
217
|
+
return d.observe(f), () => {
|
|
218
|
+
d.unobserve(f);
|
|
224
219
|
};
|
|
225
|
-
}, [
|
|
220
|
+
}, [a]), /* @__PURE__ */ N("textarea", { ...u, style: {
|
|
226
221
|
overflow: "hidden",
|
|
227
222
|
// these 2 styles aren't needed if the caller sets them in CSS.
|
|
228
223
|
resize: "none",
|
|
229
224
|
...r,
|
|
230
225
|
height: l
|
|
231
|
-
}, onInput:
|
|
226
|
+
}, onInput: g, ref: i });
|
|
232
227
|
});
|
|
233
|
-
function
|
|
234
|
-
const t =
|
|
235
|
-
const o = Number(l.target.value),
|
|
236
|
-
|
|
237
|
-
value:
|
|
228
|
+
function ge(e) {
|
|
229
|
+
const t = G(), r = e.name ?? t, n = e.valueEquals ?? Object.is, u = e.options ?? [], c = new A(), i = v((l) => {
|
|
230
|
+
const o = Number(l.target.value), a = u[o];
|
|
231
|
+
a != null && e.onChange != null && e.onChange({
|
|
232
|
+
value: a.value,
|
|
238
233
|
index: o,
|
|
239
234
|
type: "change",
|
|
240
235
|
timeStamp: l.timeStamp,
|
|
241
236
|
target: l.target
|
|
242
237
|
});
|
|
243
238
|
});
|
|
244
|
-
return /* @__PURE__ */ N("ul", { className: e.className, children:
|
|
245
|
-
const { value:
|
|
246
|
-
return e.value !== void 0 && (I.checked =
|
|
247
|
-
/* @__PURE__ */ N("input", { ...I, className: m, value: o, onChange:
|
|
248
|
-
/* @__PURE__ */ N("span", { className: s, children:
|
|
249
|
-
] }) },
|
|
239
|
+
return /* @__PURE__ */ N("ul", { className: e.className, children: u.map((l, o) => {
|
|
240
|
+
const { value: a, text: g, key: f, itemClassName: d, labelClassName: y, inputClassName: m, textClassName: s, ...I } = l, S = c.fix(l, o);
|
|
241
|
+
return e.value !== void 0 && (I.checked = n(a, e.value)), /* @__PURE__ */ N("li", { className: d, "aria-disabled": I.disabled, children: /* @__PURE__ */ L("label", { className: y, children: [
|
|
242
|
+
/* @__PURE__ */ N("input", { ...I, className: m, value: o, onChange: i, name: r, type: "radio" }),
|
|
243
|
+
/* @__PURE__ */ N("span", { className: s, children: g })
|
|
244
|
+
] }) }, S);
|
|
250
245
|
}) });
|
|
251
246
|
}
|
|
252
|
-
function
|
|
253
|
-
return
|
|
247
|
+
function $() {
|
|
248
|
+
return x(null);
|
|
254
249
|
}
|
|
255
|
-
function
|
|
250
|
+
function O(e) {
|
|
256
251
|
e.current != null && (clearTimeout(e.current), e.current = null);
|
|
257
252
|
}
|
|
258
|
-
const
|
|
253
|
+
const Ie = ({
|
|
259
254
|
value: e,
|
|
260
255
|
onChange: t,
|
|
261
256
|
debounce: r = 500,
|
|
262
|
-
...
|
|
257
|
+
...n
|
|
263
258
|
}) => {
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
259
|
+
const u = $(), c = $();
|
|
260
|
+
w(() => {
|
|
261
|
+
O(c), u.current != null && (u.current.value = e);
|
|
267
262
|
}, [e]);
|
|
268
|
-
const
|
|
269
|
-
|
|
263
|
+
const i = () => {
|
|
264
|
+
u.current != null && u.current.value !== e && (t == null || t({ value: u.current.value }));
|
|
270
265
|
};
|
|
271
|
-
return /* @__PURE__ */ N("input", { ...
|
|
272
|
-
|
|
266
|
+
return /* @__PURE__ */ N("input", { ...n, ref: u, defaultValue: e, onInput: () => {
|
|
267
|
+
O(c), c.current = setTimeout(i, r);
|
|
273
268
|
}, onBlur: () => {
|
|
274
|
-
|
|
269
|
+
O(c), i();
|
|
275
270
|
} });
|
|
276
271
|
};
|
|
277
|
-
function
|
|
272
|
+
function be({ onClick: e, ...t }) {
|
|
278
273
|
return t.onClick = (r) => {
|
|
279
274
|
r.preventDefault(), e == null || e(r);
|
|
280
275
|
}, /* @__PURE__ */ N("button", { type: "button", ...t });
|
|
281
276
|
}
|
|
282
|
-
function
|
|
283
|
-
|
|
277
|
+
function h(e, t) {
|
|
278
|
+
const r = new Date(e);
|
|
279
|
+
let n = `${r.getFullYear()}-${b(r.getMonth() + 1)}-${b(r.getDate())}T${b(r.getHours())}:${b(r.getMinutes())}`;
|
|
280
|
+
const u = (t == null ? void 0 : t.milliseconds) || (t == null ? void 0 : t.milliseconds) == null && r.getMilliseconds() !== 0;
|
|
281
|
+
if (((t == null ? void 0 : t.seconds) || (t == null ? void 0 : t.seconds) == null && (r.getSeconds() !== 0 || u)) && (n += `:${b(r.getSeconds())}`, u && (n += `.${b(r.getMilliseconds(), 3)}`)), t != null && t.offset) {
|
|
282
|
+
const i = -r.getTimezoneOffset(), l = i >= 0 ? "+" : "-", o = Math.floor(Math.abs(i) / 60), a = Math.abs(i) % 60;
|
|
283
|
+
n += `${l}${b(o)}:${b(a)}`;
|
|
284
|
+
}
|
|
285
|
+
return n;
|
|
286
|
+
}
|
|
287
|
+
const T = { offset: !1 };
|
|
288
|
+
function xe({ value: e, defaultValue: t, min: r, max: n, onChange: u, ...c }) {
|
|
289
|
+
return e !== void 0 && (c.value = e === null ? "" : h(e, T)), t != null && (c.defaultValue = h(t, T)), r != null && (c.min = h(r, T)), n != null && (c.max = h(n, T)), u != null && (c.onChange = (i) => {
|
|
290
|
+
if (i.currentTarget.value.length) {
|
|
291
|
+
const l = new Date(i.currentTarget.valueAsNumber);
|
|
292
|
+
u({
|
|
293
|
+
isoString: h(l, { offset: !0 }),
|
|
294
|
+
// isoString: date.toISOString(),
|
|
295
|
+
value: l.valueOf(),
|
|
296
|
+
date: l
|
|
297
|
+
});
|
|
298
|
+
} else
|
|
299
|
+
u({
|
|
300
|
+
// isoStringWithOffset: null,
|
|
301
|
+
isoString: null,
|
|
302
|
+
value: null,
|
|
303
|
+
date: null
|
|
304
|
+
});
|
|
305
|
+
}), /* @__PURE__ */ N("input", { type: "datetime-local", ...c });
|
|
284
306
|
}
|
|
285
|
-
const
|
|
307
|
+
const ye = M(function({ placeholder: t, formatOnChange: r = ce, onChange: n, value: u, ...c }, i) {
|
|
286
308
|
const l = {
|
|
287
309
|
inputMode: "decimal",
|
|
288
|
-
...
|
|
310
|
+
...c,
|
|
289
311
|
formatOnChange: r,
|
|
290
312
|
type: "number"
|
|
291
313
|
};
|
|
292
|
-
return
|
|
293
|
-
|
|
314
|
+
return u !== void 0 && (l.value = V(u)), t != null && (l.placeholder = String(t)), n != null && (l.onChange = (o) => {
|
|
315
|
+
n({
|
|
294
316
|
...o,
|
|
295
|
-
value:
|
|
317
|
+
value: se(o.value)
|
|
296
318
|
});
|
|
297
|
-
}), /* @__PURE__ */ N(
|
|
319
|
+
}), /* @__PURE__ */ N(p, { ...l, ref: i });
|
|
298
320
|
});
|
|
299
321
|
export {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
322
|
+
be as ActionButton,
|
|
323
|
+
xe as DatetimeLocalInput,
|
|
324
|
+
Ie as DebouncedInput,
|
|
325
|
+
p as Input,
|
|
326
|
+
ye as NumberInput,
|
|
327
|
+
ge as RadioMenu,
|
|
328
|
+
de as Select,
|
|
329
|
+
Ne as TextArea,
|
|
330
|
+
me as TextInput
|
|
309
331
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(o,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],c):(o=typeof globalThis<"u"?globalThis:o||self,c(o["@mpen/react-basic-inputs"]={},o.jsxRuntime,o.React))})(this,function(o,c,s){"use strict";var re=Object.defineProperty;var ne=(o,c,s)=>c in o?re(o,c,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[c]=s;var $=(o,c,s)=>(ne(o,typeof c!="symbol"?c+"":c,s),s);const p=Object.freeze(()=>{});function F(e){return e}let S;typeof window<"u"?S=e=>{s.useDebugValue(e);const t=s.useRef(j);s.useInsertionEffect(()=>{t.current=e},[e]);const r=s.useRef(null);return r.current||(r.current=function(){return t.current.apply(this,arguments)}),r.current}:S=p;function V(e){return S(e)}function j(){throw new Error("INVALID_USE_EVENT_INVOCATION: the callback from useEvent cannot be invoked before the component has mounted.")}function k(){var e=s.useRef(!0);return e.current?(e.current=!1,!0):e.current}var O=function(e,t){var r=k();s.useEffect(function(){if(!r)return e()},t)};function L(e,...t){return typeof e=="function"?e(...t):e}function q(e,t){if(e.uniqueKey!=null)return L(e.uniqueKey,e,t);if(typeof e.value=="string")return e.value;if(typeof e.value=="number")return String(e.value);try{const r=JSON.stringify(e.value);if(r!==void 0)return r}catch{}return String(t)}class D{constructor(){$(this,"usedKeys",new Map)}fix(t,r){let n=q(t,r);for(;;){let u=this.usedKeys.get(n);if(u===void 0){this.usedKeys.set(n,1);break}this.usedKeys.set(n,++u),n=`${n}(${u})`}return n}}const H=e=>({value:e,text:String(e),disabled:!0,key:P}),Y="3c9369b7-0a5e-46ea-93c2-e8b9fec67fdb",P="1a53f789-77f5-4ce6-a829-b00e563f1ee8";function z({options:e,value:t,invalidValueOption:r=H,onChange:n,placeholder:u,...l}){const a=t==null,i=s.useMemo(()=>t!=null&&e.some(f=>f.value==t),[e,t]),N=s.useMemo(()=>t==null||!r?null:r(t),[r,t]),d=s.useMemo(()=>{if(i)return e;const f=[...e];return a?u!=null&&f.unshift({text:u,hidden:!0,value:null,key:Y}):N&&f.push(N),f},[i,e,a,N,u]),g=V(f=>{const x=f.target.selectedIndex,E=d[x];n==null||n({value:E.value,index:x,type:"change",timeStamp:f.timeStamp,target:f.target})}),m=s.useRef(null),I=s.useCallback(()=>{m.current&&(m.current.selectedIndex<0||d[m.current.selectedIndex].value!=t)&&(m.current.selectedIndex=d.findIndex(f=>f.value==t))},[d,t]),h=f=>{m.current=f,I()};O(()=>{I()},[I]);const b=new D;return c.jsx("select",{...l,onChange:g,ref:h,children:d.map((f,x)=>{const{value:E,text:ue,uniqueKey:se,...te}=f,K=b.fix(f,x);return s.createElement("option",{...te,key:K,value:K},f.text)})})}function U(e){return e?String(e).replace(/\s+/gu," ").trim():""}function G(e){try{return e.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})}catch{return e.toFixed(14).replace(/\.?0+$/,"")}}function B(e){return e?e==="∞"||e==="+∞"?Number.POSITIVE_INFINITY:e==="-∞"?Number.NEGATIVE_INFINITY:Number.parseFloat(e):Number.NaN}function _(e){return Number.isNaN(e)?"":e===Number.POSITIVE_INFINITY?"∞":e===Number.NEGATIVE_INFINITY?"-∞":G(e)}function W(e){return e?_(Number.parseFloat(e)):""}function y(e,t=2){return String(e).padStart(t,"0")}const M=s.forwardRef(function({value:t="",onPaste:r,onChange:n,onInput:u,onBlur:l,formatOnChange:a=F,...i},N){const[d,g]=s.useState(t),m=s.useRef(t),I=s.useRef(!1);O(()=>{g(t),I.current=!1,m.current=t},[t]);const h={type:"text",...i,ref:N,value:d,onChange:b=>{g(b.target.value)},onInput:b=>{I.current=!0,u==null||u(b)},onBlur:b=>{const f=a(d);I.current&&(f!==m.current&&(n==null||n({type:"change",value:f,timeStamp:b.timeStamp,target:b.target}),m.current=f),f!==b.target.value&&g(f)),l==null||l(b)}};return c.jsx("input",{...h})});function J({formatOnChange:e=U,...t}){return c.jsx(M,{formatOnChange:e,...t,type:"text"})}const C=s.forwardRef(function({onInput:t,style:r,initialHeight:n="auto",...u},l){const a=s.useRef(null),[i,N]=s.useState(n),d=s.useCallback(()=>{const m=a.current;if(!m)return;m.style.height=n;const I=`${m.scrollHeight}px`;N(I),m.style.height=I},[n]);s.useImperativeHandle(l,()=>({element:a.current,adjustHeight:d}),[d]);const g=S(m=>{d(),t==null||t(m)});return s.useLayoutEffect(()=>{d();const m=a.current;if(!m)return;const I=new ResizeObserver(h=>{d()});return I.observe(m),()=>{I.unobserve(m)}},[d]),c.jsx("textarea",{...u,style:{overflow:"hidden",resize:"none",...r,height:i},onInput:g,ref:a})});function Q(e){const t=s.useId(),r=e.name??t,n=e.valueEquals??Object.is,u=e.options??[],l=new D,a=S(i=>{const N=Number(i.target.value),d=u[N];d!=null&&e.onChange!=null&&e.onChange({value:d.value,index:N,type:"change",timeStamp:i.timeStamp,target:i.target})});return c.jsx("ul",{className:e.className,children:u.map((i,N)=>{const{value:d,text:g,key:m,itemClassName:I,labelClassName:h,inputClassName:b,textClassName:f,...x}=i,E=l.fix(i,N);return e.value!==void 0&&(x.checked=n(d,e.value)),c.jsx("li",{className:I,"aria-disabled":x.disabled,children:c.jsxs("label",{className:h,children:[c.jsx("input",{...x,className:b,value:N,onChange:a,name:r,type:"radio"}),c.jsx("span",{className:f,children:g})]})},E)})})}function A(){return s.useRef(null)}function w(e){e.current!=null&&(clearTimeout(e.current),e.current=null)}const X=({value:e,onChange:t,debounce:r=500,...n})=>{const u=A(),l=A();O(()=>{w(l),u.current!=null&&(u.current.value=e)},[e]);const a=()=>{u.current!=null&&u.current.value!==e&&(t==null||t({value:u.current.value}))};return c.jsx("input",{...n,ref:u,defaultValue:e,onInput:()=>{w(l),l.current=setTimeout(a,r)},onBlur:()=>{w(l),a()}})};function Z({onClick:e,...t}){return t.onClick=r=>{r.preventDefault(),e==null||e(r)},c.jsx("button",{type:"button",...t})}function v(e,t){const r=new Date(e);let n=`${r.getFullYear()}-${y(r.getMonth()+1)}-${y(r.getDate())}T${y(r.getHours())}:${y(r.getMinutes())}`;const u=(t==null?void 0:t.milliseconds)||(t==null?void 0:t.milliseconds)==null&&r.getMilliseconds()!==0;if(((t==null?void 0:t.seconds)||(t==null?void 0:t.seconds)==null&&(r.getSeconds()!==0||u))&&(n+=`:${y(r.getSeconds())}`,u&&(n+=`.${y(r.getMilliseconds(),3)}`)),t!=null&&t.offset){const a=-r.getTimezoneOffset(),i=a>=0?"+":"-",N=Math.floor(Math.abs(a)/60),d=Math.abs(a)%60;n+=`${i}${y(N)}:${y(d)}`}return n}const T={offset:!1};function R({value:e,defaultValue:t,min:r,max:n,onChange:u,...l}){return e!==void 0&&(l.value=e===null?"":v(e,T)),t!=null&&(l.defaultValue=v(t,T)),r!=null&&(l.min=v(r,T)),n!=null&&(l.max=v(n,T)),u!=null&&(l.onChange=a=>{if(a.currentTarget.value.length){const i=new Date(a.currentTarget.valueAsNumber);u({isoString:v(i,{offset:!0}),value:i.valueOf(),date:i})}else u({isoString:null,value:null,date:null})}),c.jsx("input",{type:"datetime-local",...l})}const ee=s.forwardRef(function({placeholder:t,formatOnChange:r=W,onChange:n,value:u,...l},a){const i={inputMode:"decimal",...l,formatOnChange:r,type:"number"};return u!==void 0&&(i.value=_(u)),t!=null&&(i.placeholder=String(t)),n!=null&&(i.onChange=N=>{n({...N,value:B(N.value)})}),c.jsx(M,{...i,ref:a})});o.ActionButton=Z,o.DatetimeLocalInput=R,o.DebouncedInput=X,o.Input=M,o.NumberInput=ee,o.RadioMenu=Q,o.Select=z,o.TextArea=C,o.TextInput=J,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
|