reactaform 1.1.5 → 1.2.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.md +4 -3
- package/dist/{common-BnnwzTl2.js → common-CTK4jqc5.js} +35 -24
- package/dist/{common-BQcVe8MY.js → common-ClNcU_yE.js} +39 -28
- package/dist/{common-Bzz0clAC.js → common-DRxsgpaH.js} +29 -18
- package/dist/{common-DLqVHgfX.js → common-DXEjsP3o.js} +43 -32
- package/dist/index.d.ts +1 -1
- package/dist/reactaform.cjs.js +5 -5
- package/dist/reactaform.es.js +1259 -1115
- package/package.json +1 -1
package/dist/reactaform.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import N, { createContext as yr, useContext as xr, useRef as k, useEffect as C, useCallback as Z, useState as D, useMemo as G, memo as ve } from "react";
|
|
2
2
|
import Me from "react-dom";
|
|
3
|
-
const
|
|
3
|
+
const vr = `/* ReactaForm CSS Custom Properties (CSS Variables) */\r
|
|
4
4
|
\r
|
|
5
5
|
/* Default Light Theme */\r
|
|
6
6
|
:root {\r
|
|
@@ -289,21 +289,21 @@ const xr = `/* ReactaForm CSS Custom Properties (CSS Variables) */\r
|
|
|
289
289
|
`;
|
|
290
290
|
var be = { exports: {} }, de = {};
|
|
291
291
|
var qe;
|
|
292
|
-
function
|
|
292
|
+
function wr() {
|
|
293
293
|
if (qe) return de;
|
|
294
294
|
qe = 1;
|
|
295
295
|
var e = Symbol.for("react.transitional.element"), r = Symbol.for("react.fragment");
|
|
296
296
|
function n(o, t, a) {
|
|
297
|
-
var
|
|
298
|
-
if (a !== void 0 && (
|
|
297
|
+
var s = null;
|
|
298
|
+
if (a !== void 0 && (s = "" + a), t.key !== void 0 && (s = "" + t.key), "key" in t) {
|
|
299
299
|
a = {};
|
|
300
|
-
for (var
|
|
301
|
-
|
|
300
|
+
for (var i in t)
|
|
301
|
+
i !== "key" && (a[i] = t[i]);
|
|
302
302
|
} else a = t;
|
|
303
303
|
return t = a.ref, {
|
|
304
304
|
$$typeof: e,
|
|
305
305
|
type: o,
|
|
306
|
-
key:
|
|
306
|
+
key: s,
|
|
307
307
|
ref: t !== void 0 ? t : null,
|
|
308
308
|
props: a
|
|
309
309
|
};
|
|
@@ -312,7 +312,7 @@ function vr() {
|
|
|
312
312
|
}
|
|
313
313
|
var pe = {};
|
|
314
314
|
var Be;
|
|
315
|
-
function
|
|
315
|
+
function Sr() {
|
|
316
316
|
return Be || (Be = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
317
317
|
function e(h) {
|
|
318
318
|
if (h == null) return null;
|
|
@@ -322,13 +322,13 @@ function wr() {
|
|
|
322
322
|
switch (h) {
|
|
323
323
|
case y:
|
|
324
324
|
return "Fragment";
|
|
325
|
-
case
|
|
325
|
+
case v:
|
|
326
326
|
return "Profiler";
|
|
327
327
|
case x:
|
|
328
328
|
return "StrictMode";
|
|
329
329
|
case j:
|
|
330
330
|
return "Suspense";
|
|
331
|
-
case
|
|
331
|
+
case I:
|
|
332
332
|
return "SuspenseList";
|
|
333
333
|
case M:
|
|
334
334
|
return "Activity";
|
|
@@ -337,21 +337,21 @@ function wr() {
|
|
|
337
337
|
switch (typeof h.tag == "number" && console.error(
|
|
338
338
|
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
339
339
|
), h.$$typeof) {
|
|
340
|
-
case
|
|
340
|
+
case f:
|
|
341
341
|
return "Portal";
|
|
342
|
-
case
|
|
342
|
+
case R:
|
|
343
343
|
return h.displayName || "Context";
|
|
344
344
|
case F:
|
|
345
345
|
return (h._context.displayName || "Context") + ".Consumer";
|
|
346
346
|
case w:
|
|
347
|
-
var
|
|
348
|
-
return h = h.displayName, h || (h =
|
|
349
|
-
case
|
|
350
|
-
return
|
|
351
|
-
case
|
|
352
|
-
|
|
347
|
+
var E = h.render;
|
|
348
|
+
return h = h.displayName, h || (h = E.displayName || E.name || "", h = h !== "" ? "ForwardRef(" + h + ")" : "ForwardRef"), h;
|
|
349
|
+
case S:
|
|
350
|
+
return E = h.displayName || null, E !== null ? E : e(h.type) || "Memo";
|
|
351
|
+
case A:
|
|
352
|
+
E = h._payload, h = h._init;
|
|
353
353
|
try {
|
|
354
|
-
return e(h(
|
|
354
|
+
return e(h(E));
|
|
355
355
|
} catch {
|
|
356
356
|
}
|
|
357
357
|
}
|
|
@@ -363,15 +363,15 @@ function wr() {
|
|
|
363
363
|
function n(h) {
|
|
364
364
|
try {
|
|
365
365
|
r(h);
|
|
366
|
-
var
|
|
366
|
+
var E = !1;
|
|
367
367
|
} catch {
|
|
368
|
-
|
|
368
|
+
E = !0;
|
|
369
369
|
}
|
|
370
|
-
if (
|
|
371
|
-
|
|
372
|
-
var B =
|
|
370
|
+
if (E) {
|
|
371
|
+
E = console;
|
|
372
|
+
var B = E.error, U = typeof Symbol == "function" && Symbol.toStringTag && h[Symbol.toStringTag] || h.constructor.name || "Object";
|
|
373
373
|
return B.call(
|
|
374
|
-
|
|
374
|
+
E,
|
|
375
375
|
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
376
376
|
U
|
|
377
377
|
), r(h);
|
|
@@ -379,11 +379,11 @@ function wr() {
|
|
|
379
379
|
}
|
|
380
380
|
function o(h) {
|
|
381
381
|
if (h === y) return "<>";
|
|
382
|
-
if (typeof h == "object" && h !== null && h.$$typeof ===
|
|
382
|
+
if (typeof h == "object" && h !== null && h.$$typeof === A)
|
|
383
383
|
return "<...>";
|
|
384
384
|
try {
|
|
385
|
-
var
|
|
386
|
-
return
|
|
385
|
+
var E = e(h);
|
|
386
|
+
return E ? "<" + E + ">" : "<...>";
|
|
387
387
|
} catch {
|
|
388
388
|
return "<...>";
|
|
389
389
|
}
|
|
@@ -395,18 +395,18 @@ function wr() {
|
|
|
395
395
|
function a() {
|
|
396
396
|
return Error("react-stack-top-frame");
|
|
397
397
|
}
|
|
398
|
-
function
|
|
398
|
+
function s(h) {
|
|
399
399
|
if (J.call(h, "key")) {
|
|
400
|
-
var
|
|
401
|
-
if (
|
|
400
|
+
var E = Object.getOwnPropertyDescriptor(h, "key").get;
|
|
401
|
+
if (E && E.isReactWarning) return !1;
|
|
402
402
|
}
|
|
403
403
|
return h.key !== void 0;
|
|
404
404
|
}
|
|
405
|
-
function
|
|
405
|
+
function i(h, E) {
|
|
406
406
|
function B() {
|
|
407
407
|
ue || (ue = !0, console.error(
|
|
408
408
|
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
409
|
-
|
|
409
|
+
E
|
|
410
410
|
));
|
|
411
411
|
}
|
|
412
412
|
B.isReactWarning = !0, Object.defineProperty(h, "key", {
|
|
@@ -420,12 +420,12 @@ function wr() {
|
|
|
420
420
|
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
421
421
|
)), h = this.props.ref, h !== void 0 ? h : null;
|
|
422
422
|
}
|
|
423
|
-
function m(h,
|
|
423
|
+
function m(h, E, B, U, ne, ae) {
|
|
424
424
|
var _ = B.ref;
|
|
425
425
|
return h = {
|
|
426
426
|
$$typeof: b,
|
|
427
427
|
type: h,
|
|
428
|
-
key:
|
|
428
|
+
key: E,
|
|
429
429
|
props: B,
|
|
430
430
|
_owner: U
|
|
431
431
|
}, (_ !== void 0 ? _ : null) !== null ? Object.defineProperty(h, "ref", {
|
|
@@ -453,23 +453,23 @@ function wr() {
|
|
|
453
453
|
value: ae
|
|
454
454
|
}), Object.freeze && (Object.freeze(h.props), Object.freeze(h)), h;
|
|
455
455
|
}
|
|
456
|
-
function l(h,
|
|
457
|
-
var _ =
|
|
456
|
+
function l(h, E, B, U, ne, ae) {
|
|
457
|
+
var _ = E.children;
|
|
458
458
|
if (_ !== void 0)
|
|
459
459
|
if (U)
|
|
460
460
|
if (ce(_)) {
|
|
461
461
|
for (U = 0; U < _.length; U++)
|
|
462
|
-
|
|
462
|
+
p(_[U]);
|
|
463
463
|
Object.freeze && Object.freeze(_);
|
|
464
464
|
} else
|
|
465
465
|
console.error(
|
|
466
466
|
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
467
467
|
);
|
|
468
|
-
else
|
|
469
|
-
if (J.call(
|
|
468
|
+
else p(_);
|
|
469
|
+
if (J.call(E, "key")) {
|
|
470
470
|
_ = e(h);
|
|
471
|
-
var V = Object.keys(
|
|
472
|
-
return
|
|
471
|
+
var V = Object.keys(E).filter(function(X) {
|
|
472
|
+
return X !== "key";
|
|
473
473
|
});
|
|
474
474
|
U = 0 < V.length ? "{key: someKey, " + V.join(": ..., ") + ": ...}" : "{key: someKey}", O[_ + U] || (V = 0 < V.length ? "{" + V.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
475
475
|
`A props object containing a "key" prop is being spread into JSX:
|
|
@@ -484,12 +484,12 @@ React keys must be passed directly to JSX without using spread:
|
|
|
484
484
|
_
|
|
485
485
|
), O[_ + U] = !0);
|
|
486
486
|
}
|
|
487
|
-
if (_ = null, B !== void 0 && (n(B), _ = "" + B),
|
|
487
|
+
if (_ = null, B !== void 0 && (n(B), _ = "" + B), s(E) && (n(E.key), _ = "" + E.key), "key" in E) {
|
|
488
488
|
B = {};
|
|
489
|
-
for (var q in
|
|
490
|
-
q !== "key" && (B[q] =
|
|
491
|
-
} else B =
|
|
492
|
-
return _ &&
|
|
489
|
+
for (var q in E)
|
|
490
|
+
q !== "key" && (B[q] = E[q]);
|
|
491
|
+
} else B = E;
|
|
492
|
+
return _ && i(
|
|
493
493
|
B,
|
|
494
494
|
typeof h == "function" ? h.displayName || h.name || "Unknown" : h
|
|
495
495
|
), m(
|
|
@@ -501,39 +501,39 @@ React keys must be passed directly to JSX without using spread:
|
|
|
501
501
|
ae
|
|
502
502
|
);
|
|
503
503
|
}
|
|
504
|
-
function
|
|
505
|
-
c(h) ? h._store && (h._store.validated = 1) : typeof h == "object" && h !== null && h.$$typeof ===
|
|
504
|
+
function p(h) {
|
|
505
|
+
c(h) ? h._store && (h._store.validated = 1) : typeof h == "object" && h !== null && h.$$typeof === A && (h._payload.status === "fulfilled" ? c(h._payload.value) && h._payload.value._store && (h._payload.value._store.validated = 1) : h._store && (h._store.validated = 1));
|
|
506
506
|
}
|
|
507
507
|
function c(h) {
|
|
508
508
|
return typeof h == "object" && h !== null && h.$$typeof === b;
|
|
509
509
|
}
|
|
510
|
-
var
|
|
510
|
+
var d = N, b = Symbol.for("react.transitional.element"), f = Symbol.for("react.portal"), y = Symbol.for("react.fragment"), x = Symbol.for("react.strict_mode"), v = Symbol.for("react.profiler"), F = Symbol.for("react.consumer"), R = Symbol.for("react.context"), w = Symbol.for("react.forward_ref"), j = Symbol.for("react.suspense"), I = Symbol.for("react.suspense_list"), S = Symbol.for("react.memo"), A = Symbol.for("react.lazy"), M = Symbol.for("react.activity"), z = Symbol.for("react.client.reference"), L = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, J = Object.prototype.hasOwnProperty, ce = Array.isArray, re = console.createTask ? console.createTask : function() {
|
|
511
511
|
return null;
|
|
512
512
|
};
|
|
513
|
-
|
|
513
|
+
d = {
|
|
514
514
|
react_stack_bottom_frame: function(h) {
|
|
515
515
|
return h();
|
|
516
516
|
}
|
|
517
517
|
};
|
|
518
|
-
var ue, Q = {}, oe =
|
|
519
|
-
|
|
518
|
+
var ue, Q = {}, oe = d.react_stack_bottom_frame.bind(
|
|
519
|
+
d,
|
|
520
520
|
a
|
|
521
521
|
)(), P = re(o(a)), O = {};
|
|
522
|
-
pe.Fragment = y, pe.jsx = function(h,
|
|
522
|
+
pe.Fragment = y, pe.jsx = function(h, E, B) {
|
|
523
523
|
var U = 1e4 > L.recentlyCreatedOwnerStacks++;
|
|
524
524
|
return l(
|
|
525
525
|
h,
|
|
526
|
-
|
|
526
|
+
E,
|
|
527
527
|
B,
|
|
528
528
|
!1,
|
|
529
529
|
U ? Error("react-stack-top-frame") : oe,
|
|
530
530
|
U ? re(o(h)) : P
|
|
531
531
|
);
|
|
532
|
-
}, pe.jsxs = function(h,
|
|
532
|
+
}, pe.jsxs = function(h, E, B) {
|
|
533
533
|
var U = 1e4 > L.recentlyCreatedOwnerStacks++;
|
|
534
534
|
return l(
|
|
535
535
|
h,
|
|
536
|
-
|
|
536
|
+
E,
|
|
537
537
|
B,
|
|
538
538
|
!0,
|
|
539
539
|
U ? Error("react-stack-top-frame") : oe,
|
|
@@ -543,12 +543,12 @@ React keys must be passed directly to JSX without using spread:
|
|
|
543
543
|
})()), pe;
|
|
544
544
|
}
|
|
545
545
|
var He;
|
|
546
|
-
function
|
|
547
|
-
return He || (He = 1, process.env.NODE_ENV === "production" ? be.exports =
|
|
546
|
+
function Cr() {
|
|
547
|
+
return He || (He = 1, process.env.NODE_ENV === "production" ? be.exports = wr() : be.exports = Sr()), be.exports;
|
|
548
548
|
}
|
|
549
|
-
var g =
|
|
550
|
-
const Oe =
|
|
551
|
-
const e =
|
|
549
|
+
var g = Cr();
|
|
550
|
+
const Oe = yr(void 0), T = () => {
|
|
551
|
+
const e = xr(Oe);
|
|
552
552
|
if (!e)
|
|
553
553
|
throw new Error("❌ useReactaFormContext must be used within a <ReactaFormProvider>");
|
|
554
554
|
return e;
|
|
@@ -591,8 +591,8 @@ class we {
|
|
|
591
591
|
return this.get(r) ?? n;
|
|
592
592
|
}
|
|
593
593
|
}
|
|
594
|
-
function
|
|
595
|
-
const o = k(void 0), t = k(e), a = k(null),
|
|
594
|
+
function jr(e, r = 300, n) {
|
|
595
|
+
const o = k(void 0), t = k(e), a = k(null), s = k(!1);
|
|
596
596
|
C(() => {
|
|
597
597
|
t.current = e;
|
|
598
598
|
}, [e]), C(
|
|
@@ -601,30 +601,30 @@ function Cr(e, r = 300, n) {
|
|
|
601
601
|
},
|
|
602
602
|
[]
|
|
603
603
|
);
|
|
604
|
-
const
|
|
605
|
-
o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current = null,
|
|
604
|
+
const i = Z(() => {
|
|
605
|
+
o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current = null, s.current = !1;
|
|
606
606
|
}, []), u = Z(() => {
|
|
607
607
|
if (o.current !== void 0 && (window.clearTimeout(o.current), o.current = void 0), a.current)
|
|
608
608
|
try {
|
|
609
609
|
t.current(...a.current);
|
|
610
610
|
} finally {
|
|
611
|
-
a.current = null,
|
|
611
|
+
a.current = null, s.current = !1;
|
|
612
612
|
}
|
|
613
613
|
}, []);
|
|
614
614
|
return { callback: Z(
|
|
615
615
|
(...l) => {
|
|
616
|
-
if (n?.leading === !0 && !
|
|
617
|
-
|
|
618
|
-
|
|
616
|
+
if (n?.leading === !0 && !s.current) {
|
|
617
|
+
s.current = !0, t.current(...l), window.clearTimeout(o.current), o.current = window.setTimeout(() => {
|
|
618
|
+
s.current = !1, o.current = void 0;
|
|
619
619
|
}, r);
|
|
620
620
|
return;
|
|
621
621
|
}
|
|
622
622
|
a.current = l, window.clearTimeout(o.current), o.current = window.setTimeout(() => {
|
|
623
|
-
o.current = void 0, a.current && (t.current(...a.current), a.current = null,
|
|
623
|
+
o.current = void 0, a.current && (t.current(...a.current), a.current = null, s.current = !1);
|
|
624
624
|
}, r);
|
|
625
625
|
},
|
|
626
626
|
[r, n?.leading]
|
|
627
|
-
), cancel:
|
|
627
|
+
), cancel: i, flush: u };
|
|
628
628
|
}
|
|
629
629
|
const $ = {
|
|
630
630
|
field: "reactaform-field",
|
|
@@ -635,16 +635,16 @@ const $ = {
|
|
|
635
635
|
inputSelect: "reactaform-select",
|
|
636
636
|
rangeInput: "reactaform-input--range",
|
|
637
637
|
button: "reactaform-button"
|
|
638
|
-
},
|
|
638
|
+
}, K = (...e) => {
|
|
639
639
|
const r = [];
|
|
640
640
|
for (const n of e)
|
|
641
641
|
n && (typeof n == "string" ? r.push(n) : typeof n == "object" && Object.entries(n).forEach(([o, t]) => {
|
|
642
642
|
t && r.push(o);
|
|
643
643
|
}));
|
|
644
644
|
return r.join(" ");
|
|
645
|
-
},
|
|
646
|
-
const { t: o, darkMode: t, formStyle: a, fieldStyle:
|
|
647
|
-
const
|
|
645
|
+
}, er = ({ content: e, size: r = "medium", animation: n = !0 }) => {
|
|
646
|
+
const { t: o, darkMode: t, formStyle: a, fieldStyle: s } = T(), [i, u] = D(!1), [m, l] = D({ x: 0, y: 0 }), [p, c] = D(!1), d = k(null), b = k(null), f = k(null), y = G(() => {
|
|
647
|
+
const R = {
|
|
648
648
|
icon: {
|
|
649
649
|
display: "inline-flex",
|
|
650
650
|
alignItems: "center",
|
|
@@ -686,53 +686,53 @@ const $ = {
|
|
|
686
686
|
opacity: 1,
|
|
687
687
|
visibility: "visible"
|
|
688
688
|
}
|
|
689
|
-
}, w = (
|
|
690
|
-
const z =
|
|
691
|
-
return (
|
|
689
|
+
}, w = (I, S, A) => {
|
|
690
|
+
const z = I?.[S];
|
|
691
|
+
return (A && z ? z[A] : void 0) ?? {};
|
|
692
692
|
};
|
|
693
693
|
return {
|
|
694
|
-
icon: { ...
|
|
695
|
-
text: { ...
|
|
696
|
-
textVisible:
|
|
694
|
+
icon: { ...R.icon, ...w(a, "tooltip", "icon"), ...w(s, "tooltip", "icon") },
|
|
695
|
+
text: { ...R.text, ...w(a, "tooltip", "text"), ...w(s, "tooltip", "text") },
|
|
696
|
+
textVisible: R.textVisible
|
|
697
697
|
};
|
|
698
|
-
}, [t, r, n, a,
|
|
698
|
+
}, [t, r, n, a, s]);
|
|
699
699
|
C(() => {
|
|
700
|
-
if (
|
|
701
|
-
const F = requestAnimationFrame(() => c(!1)),
|
|
702
|
-
if (
|
|
703
|
-
const w =
|
|
704
|
-
|
|
705
|
-
const
|
|
706
|
-
l({ x:
|
|
700
|
+
if (i) {
|
|
701
|
+
const F = requestAnimationFrame(() => c(!1)), R = requestAnimationFrame(() => {
|
|
702
|
+
if (d.current) {
|
|
703
|
+
const w = d.current.getBoundingClientRect(), j = 8;
|
|
704
|
+
f.current = w;
|
|
705
|
+
const I = w.right + j, S = w.top;
|
|
706
|
+
l({ x: I, y: S }), c(!0);
|
|
707
707
|
}
|
|
708
708
|
});
|
|
709
709
|
return () => {
|
|
710
|
-
cancelAnimationFrame(
|
|
710
|
+
cancelAnimationFrame(R), cancelAnimationFrame(F);
|
|
711
711
|
};
|
|
712
712
|
} else
|
|
713
713
|
requestAnimationFrame(() => c(!1));
|
|
714
|
-
}, [
|
|
715
|
-
if (!
|
|
714
|
+
}, [i]), C(() => {
|
|
715
|
+
if (!p) return;
|
|
716
716
|
const F = requestAnimationFrame(() => {
|
|
717
717
|
if (!b.current) return;
|
|
718
|
-
const
|
|
719
|
-
let
|
|
720
|
-
const M =
|
|
721
|
-
M && (
|
|
718
|
+
const R = b.current.getBoundingClientRect(), w = 8, j = typeof window < "u" ? window.innerWidth : 1024, I = typeof window < "u" ? window.innerHeight : 768;
|
|
719
|
+
let S = m.x, A = m.y;
|
|
720
|
+
const M = f.current;
|
|
721
|
+
M && (S = M.right + w, A = M.top + M.height / 2 - R.height / 2 + -4, S + R.width > j - w && (S = M.left - w - R.width)), S + R.width > j - w && (S = Math.max(w, j - R.width - w)), S < w && (S = w), A + R.height > I - w && (A = Math.max(w, I - R.height - w)), A < w && (A = w), (S !== m.x || A !== m.y) && l({ x: S, y: A });
|
|
722
722
|
});
|
|
723
723
|
return () => cancelAnimationFrame(F);
|
|
724
|
-
}, [
|
|
725
|
-
const x = typeof document < "u" ? document.getElementById("popup-root") : null,
|
|
724
|
+
}, [p, m.x, m.y]);
|
|
725
|
+
const x = typeof document < "u" ? document.getElementById("popup-root") : null, v = /* @__PURE__ */ g.jsx(
|
|
726
726
|
"div",
|
|
727
727
|
{
|
|
728
728
|
ref: b,
|
|
729
729
|
style: {
|
|
730
730
|
...y.text,
|
|
731
|
-
transform:
|
|
731
|
+
transform: p ? "translateY(0) scale(1)" : "translateY(-4px) scale(0.98)",
|
|
732
732
|
transition: "opacity 120ms ease, transform 120ms ease, visibility 120ms ease",
|
|
733
733
|
width: 240,
|
|
734
734
|
// When positioned is true, apply the visible styles
|
|
735
|
-
...
|
|
735
|
+
...p ? y.textVisible : {},
|
|
736
736
|
top: m.y,
|
|
737
737
|
left: m.x
|
|
738
738
|
},
|
|
@@ -745,7 +745,7 @@ const $ = {
|
|
|
745
745
|
"span",
|
|
746
746
|
{
|
|
747
747
|
"data-testid": "tooltip-icon",
|
|
748
|
-
ref:
|
|
748
|
+
ref: d,
|
|
749
749
|
onMouseEnter: () => u(!0),
|
|
750
750
|
onMouseLeave: () => u(!1),
|
|
751
751
|
style: {
|
|
@@ -754,7 +754,7 @@ const $ = {
|
|
|
754
754
|
children: "?"
|
|
755
755
|
}
|
|
756
756
|
),
|
|
757
|
-
|
|
757
|
+
i && (x ? Me.createPortal(v, x) : v)
|
|
758
758
|
] });
|
|
759
759
|
}, Re = ve(({
|
|
760
760
|
field: e,
|
|
@@ -762,7 +762,7 @@ const $ = {
|
|
|
762
762
|
children: n,
|
|
763
763
|
showLabel: o = !0
|
|
764
764
|
}) => {
|
|
765
|
-
const { t } =
|
|
765
|
+
const { t } = T(), a = e?.labelLayout === "column-center" ? "center" : "left";
|
|
766
766
|
return /* @__PURE__ */ g.jsxs(
|
|
767
767
|
"div",
|
|
768
768
|
{
|
|
@@ -799,7 +799,7 @@ const $ = {
|
|
|
799
799
|
},
|
|
800
800
|
children: [
|
|
801
801
|
/* @__PURE__ */ g.jsx("div", { style: { flex: 1, minWidth: 0, maxWidth: "100%" }, children: /* @__PURE__ */ g.jsx("div", { style: { width: "100%" }, children: n }) }),
|
|
802
|
-
e.tooltip && /* @__PURE__ */ g.jsx(
|
|
802
|
+
e.tooltip && /* @__PURE__ */ g.jsx(er, { content: e.tooltip })
|
|
803
803
|
]
|
|
804
804
|
}
|
|
805
805
|
),
|
|
@@ -809,17 +809,17 @@ const $ = {
|
|
|
809
809
|
);
|
|
810
810
|
});
|
|
811
811
|
Re.displayName = "ColumnFieldLayout";
|
|
812
|
-
const
|
|
812
|
+
const rr = ve(({
|
|
813
813
|
field: e,
|
|
814
814
|
error: r,
|
|
815
815
|
children: n,
|
|
816
816
|
rightAlign: o = !1
|
|
817
817
|
}) => {
|
|
818
|
-
const { t } =
|
|
818
|
+
const { t } = T(), a = G(() => ({
|
|
819
819
|
display: "flex",
|
|
820
820
|
flexDirection: "column",
|
|
821
821
|
gap: 0
|
|
822
|
-
}), []),
|
|
822
|
+
}), []), s = G(() => ({
|
|
823
823
|
display: "flex",
|
|
824
824
|
flexDirection: "row",
|
|
825
825
|
alignItems: "center",
|
|
@@ -836,7 +836,7 @@ const Qe = ve(({
|
|
|
836
836
|
}
|
|
837
837
|
),
|
|
838
838
|
/* @__PURE__ */ g.jsxs("div", { style: a, children: [
|
|
839
|
-
/* @__PURE__ */ g.jsxs("div", { style:
|
|
839
|
+
/* @__PURE__ */ g.jsxs("div", { style: s, children: [
|
|
840
840
|
o ? /* @__PURE__ */ g.jsx(
|
|
841
841
|
"div",
|
|
842
842
|
{
|
|
@@ -850,19 +850,19 @@ const Qe = ve(({
|
|
|
850
850
|
children: n
|
|
851
851
|
}
|
|
852
852
|
) : n,
|
|
853
|
-
e.tooltip && /* @__PURE__ */ g.jsx(
|
|
853
|
+
e.tooltip && /* @__PURE__ */ g.jsx(er, { content: e.tooltip })
|
|
854
854
|
] }),
|
|
855
855
|
r && /* @__PURE__ */ g.jsx($e, { children: r })
|
|
856
856
|
] })
|
|
857
857
|
] });
|
|
858
858
|
});
|
|
859
|
-
|
|
859
|
+
rr.displayName = "RowFieldLayout";
|
|
860
860
|
const W = ({
|
|
861
861
|
field: e,
|
|
862
862
|
error: r,
|
|
863
863
|
children: n,
|
|
864
864
|
rightAlign: o = !1
|
|
865
|
-
}) => e?.labelLayout === "column-left" || e?.labelLayout === "column-center" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !0, children: n }) : e?.type === "checkbox" || e?.type === "switch" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !1, children: n }) : /* @__PURE__ */ g.jsx(
|
|
865
|
+
}) => e?.labelLayout === "column-left" || e?.labelLayout === "column-center" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !0, children: n }) : e?.type === "checkbox" || e?.type === "switch" ? /* @__PURE__ */ g.jsx(Re, { field: e, error: r, showLabel: !1, children: n }) : /* @__PURE__ */ g.jsx(rr, { field: e, error: r, rightAlign: o, children: n }), $e = ve(({ children: e }) => {
|
|
866
866
|
const r = G(() => ({
|
|
867
867
|
color: "var(--reactaform-error-color)",
|
|
868
868
|
fontSize: "13px",
|
|
@@ -876,8 +876,8 @@ const W = ({
|
|
|
876
876
|
return /* @__PURE__ */ g.jsx("div", { style: r, children: e });
|
|
877
877
|
});
|
|
878
878
|
$e.displayName = "ErrorDiv";
|
|
879
|
-
const
|
|
880
|
-
const { t: n } =
|
|
879
|
+
const tr = ve(({ name: e, onChange: r }) => {
|
|
880
|
+
const { t: n } = T();
|
|
881
881
|
return /* @__PURE__ */ g.jsxs("div", { style: { marginBottom: 16 }, children: [
|
|
882
882
|
/* @__PURE__ */ g.jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 2fr", gap: 12, alignItems: "center" }, children: [
|
|
883
883
|
/* @__PURE__ */ g.jsx(
|
|
@@ -917,8 +917,8 @@ const er = ve(({ name: e, onChange: r }) => {
|
|
|
917
917
|
/* @__PURE__ */ g.jsx("div", { style: { height: "1px", backgroundColor: "var(--reactaform-separator, #e6e6e6)", marginTop: 12, marginBottom: 12 } })
|
|
918
918
|
] });
|
|
919
919
|
});
|
|
920
|
-
|
|
921
|
-
class
|
|
920
|
+
tr.displayName = "InstanceName";
|
|
921
|
+
class kr extends we {
|
|
922
922
|
registerInCategory(r, n, o) {
|
|
923
923
|
this.get(r) || this.register(r, {});
|
|
924
924
|
const t = this.get(r);
|
|
@@ -934,26 +934,26 @@ class jr extends we {
|
|
|
934
934
|
return this.list();
|
|
935
935
|
}
|
|
936
936
|
}
|
|
937
|
-
const
|
|
938
|
-
function
|
|
939
|
-
|
|
937
|
+
const nr = new we(), or = new kr();
|
|
938
|
+
function Zt(e, r) {
|
|
939
|
+
nr.register(e, r);
|
|
940
940
|
}
|
|
941
|
-
function
|
|
942
|
-
|
|
941
|
+
function Qt(e, r, n) {
|
|
942
|
+
or.registerInCategory(e, r, n);
|
|
943
943
|
}
|
|
944
|
-
function
|
|
945
|
-
return
|
|
944
|
+
function Rr(e, r) {
|
|
945
|
+
return or.getFromCategory(e, r) || null;
|
|
946
946
|
}
|
|
947
|
-
function
|
|
948
|
-
return
|
|
947
|
+
function Er(e) {
|
|
948
|
+
return nr.get(e) || null;
|
|
949
949
|
}
|
|
950
950
|
const Ce = /* @__PURE__ */ new Map(), je = /* @__PURE__ */ new Map();
|
|
951
951
|
function Y(e, r, n, o) {
|
|
952
952
|
if (r && typeof r.validationHandlerName == "string") {
|
|
953
953
|
const t = `${e}:${r.validationHandlerName}`;
|
|
954
954
|
if (!Ce.has(t)) {
|
|
955
|
-
const
|
|
956
|
-
Ce.set(t,
|
|
955
|
+
const s = Rr(e, r.validationHandlerName);
|
|
956
|
+
Ce.set(t, s);
|
|
957
957
|
}
|
|
958
958
|
const a = Ce.get(t);
|
|
959
959
|
if (a)
|
|
@@ -961,11 +961,11 @@ function Y(e, r, n, o) {
|
|
|
961
961
|
}
|
|
962
962
|
return null;
|
|
963
963
|
}
|
|
964
|
-
function
|
|
964
|
+
function Nr(e, r, n) {
|
|
965
965
|
if (e && typeof e.validationHandlerName == "string") {
|
|
966
966
|
const o = e.validationHandlerName;
|
|
967
967
|
if (!je.has(o)) {
|
|
968
|
-
const a =
|
|
968
|
+
const a = Er(o);
|
|
969
969
|
je.set(o, a);
|
|
970
970
|
}
|
|
971
971
|
const t = je.get(o);
|
|
@@ -982,7 +982,7 @@ function Ve(e) {
|
|
|
982
982
|
const r = e;
|
|
983
983
|
return typeof r.name == "string" && typeof r.displayName == "string";
|
|
984
984
|
}
|
|
985
|
-
function
|
|
985
|
+
function ar(e) {
|
|
986
986
|
if (!ie(e)) return !1;
|
|
987
987
|
const r = e;
|
|
988
988
|
return typeof r.name != "string" || typeof r.version != "string" || !Array.isArray(r.properties) ? !1 : r.properties.every((n) => Ve(n));
|
|
@@ -995,14 +995,14 @@ function Ee(e) {
|
|
|
995
995
|
return !!r && typeof r.name == "string" && typeof r.size == "number";
|
|
996
996
|
}
|
|
997
997
|
}
|
|
998
|
-
function
|
|
998
|
+
function en(e, r, n = {}) {
|
|
999
999
|
try {
|
|
1000
1000
|
const {
|
|
1001
1001
|
includeMetadata: o = !1,
|
|
1002
1002
|
dateFormat: t = "iso",
|
|
1003
1003
|
fileHandling: a = "metadata",
|
|
1004
|
-
prettify:
|
|
1005
|
-
excludeFields:
|
|
1004
|
+
prettify: s = !1,
|
|
1005
|
+
excludeFields: i = [],
|
|
1006
1006
|
includeOnlyFields: u = []
|
|
1007
1007
|
} = n;
|
|
1008
1008
|
if (!e || typeof e != "object")
|
|
@@ -1010,9 +1010,9 @@ function Qt(e, r, n = {}) {
|
|
|
1010
1010
|
success: !1,
|
|
1011
1011
|
error: "Instance must be a valid object"
|
|
1012
1012
|
};
|
|
1013
|
-
const m = [], l = [],
|
|
1013
|
+
const m = [], l = [], p = {}, d = (ar(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), b = new Map(d.map((y) => [y.name, y]));
|
|
1014
1014
|
for (const [y, x] of Object.entries(e)) {
|
|
1015
|
-
if (
|
|
1015
|
+
if (i.includes(y)) {
|
|
1016
1016
|
l.push(y);
|
|
1017
1017
|
continue;
|
|
1018
1018
|
}
|
|
@@ -1021,23 +1021,23 @@ function Qt(e, r, n = {}) {
|
|
|
1021
1021
|
continue;
|
|
1022
1022
|
}
|
|
1023
1023
|
if (x === void 0) continue;
|
|
1024
|
-
const
|
|
1024
|
+
const v = b.get(y);
|
|
1025
1025
|
try {
|
|
1026
|
-
|
|
1026
|
+
p[y] = Ir(x, v, { dateFormat: t, fileHandling: a });
|
|
1027
1027
|
} catch (F) {
|
|
1028
|
-
m.push(`Error serializing field '${y}': ${String(F)}`),
|
|
1028
|
+
m.push(`Error serializing field '${y}': ${String(F)}`), p[y] = null;
|
|
1029
1029
|
}
|
|
1030
1030
|
}
|
|
1031
|
-
return o && (
|
|
1031
|
+
return o && (p._metadata = {
|
|
1032
1032
|
serializedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1033
1033
|
version: (ie(r) ? r.version : void 0) || "1.0.0",
|
|
1034
|
-
fieldCount: Object.keys(
|
|
1034
|
+
fieldCount: Object.keys(p).length - 1
|
|
1035
1035
|
// Exclude metadata itself
|
|
1036
1036
|
}), {
|
|
1037
1037
|
success: !0,
|
|
1038
|
-
data:
|
|
1038
|
+
data: s ? JSON.stringify(p, null, 2) : JSON.stringify(p),
|
|
1039
1039
|
metadata: {
|
|
1040
|
-
fieldCount: Object.keys(
|
|
1040
|
+
fieldCount: Object.keys(p).length,
|
|
1041
1041
|
excludedFields: l,
|
|
1042
1042
|
warnings: m
|
|
1043
1043
|
}
|
|
@@ -1049,7 +1049,7 @@ function Qt(e, r, n = {}) {
|
|
|
1049
1049
|
};
|
|
1050
1050
|
}
|
|
1051
1051
|
}
|
|
1052
|
-
function
|
|
1052
|
+
function Ir(e, r, n = {}) {
|
|
1053
1053
|
const { dateFormat: o = "iso", fileHandling: t = "metadata" } = n;
|
|
1054
1054
|
if (e == null)
|
|
1055
1055
|
return null;
|
|
@@ -1119,50 +1119,50 @@ function Ye(e, r) {
|
|
|
1119
1119
|
_note: "Base64 encoding requires async implementation"
|
|
1120
1120
|
};
|
|
1121
1121
|
}
|
|
1122
|
-
function
|
|
1122
|
+
function rn(e, r, n = {}) {
|
|
1123
1123
|
try {
|
|
1124
1124
|
const {
|
|
1125
1125
|
strict: o = !1,
|
|
1126
1126
|
validateTypes: t = !0,
|
|
1127
1127
|
preserveUnknownFields: a = !0,
|
|
1128
|
-
dateFormat:
|
|
1128
|
+
dateFormat: s = "auto"
|
|
1129
1129
|
} = n;
|
|
1130
1130
|
if (!e || typeof e != "string")
|
|
1131
1131
|
return {
|
|
1132
1132
|
success: !1,
|
|
1133
1133
|
error: "Serialized data must be a non-empty string"
|
|
1134
1134
|
};
|
|
1135
|
-
let
|
|
1135
|
+
let i;
|
|
1136
1136
|
try {
|
|
1137
|
-
|
|
1138
|
-
} catch (
|
|
1137
|
+
i = JSON.parse(e);
|
|
1138
|
+
} catch (f) {
|
|
1139
1139
|
return {
|
|
1140
1140
|
success: !1,
|
|
1141
|
-
error: `Invalid JSON: ${
|
|
1141
|
+
error: `Invalid JSON: ${f instanceof Error ? f.message : "Unknown parsing error"}`
|
|
1142
1142
|
};
|
|
1143
1143
|
}
|
|
1144
|
-
if (!
|
|
1144
|
+
if (!i || typeof i != "object")
|
|
1145
1145
|
return {
|
|
1146
1146
|
success: !1,
|
|
1147
1147
|
error: "Parsed data must be an object"
|
|
1148
1148
|
};
|
|
1149
|
-
const u = [], m = [], l = {}, c = (
|
|
1150
|
-
for (const
|
|
1151
|
-
const y =
|
|
1149
|
+
const u = [], m = [], l = {}, c = (ar(r) || ie(r) && Array.isArray(r.properties) ? r.properties : []).filter(Ve), d = new Map(c.map((f) => [f.name, f]));
|
|
1150
|
+
for (const f of c) {
|
|
1151
|
+
const y = f.name, x = i[y];
|
|
1152
1152
|
if (x === void 0) {
|
|
1153
|
-
o &&
|
|
1153
|
+
o && f.required && m.push(`Required field '${y}' is missing`);
|
|
1154
1154
|
continue;
|
|
1155
1155
|
}
|
|
1156
1156
|
try {
|
|
1157
|
-
l[y] =
|
|
1158
|
-
} catch (
|
|
1159
|
-
const F = `Error deserializing field '${y}': ${String(
|
|
1157
|
+
l[y] = Ar(x, f, { validateTypes: t, dateFormat: s });
|
|
1158
|
+
} catch (v) {
|
|
1159
|
+
const F = `Error deserializing field '${y}': ${String(v)}`;
|
|
1160
1160
|
o ? m.push(F) : (u.push(F), l[y] = x);
|
|
1161
1161
|
}
|
|
1162
1162
|
}
|
|
1163
1163
|
if (a)
|
|
1164
|
-
for (const [
|
|
1165
|
-
!
|
|
1164
|
+
for (const [f, y] of Object.entries(i))
|
|
1165
|
+
!d.has(f) && f !== "_metadata" && (o && u.push(`Unknown field '${f}' preserved`), l[f] = y);
|
|
1166
1166
|
const b = m.length > 0;
|
|
1167
1167
|
return {
|
|
1168
1168
|
success: !b,
|
|
@@ -1177,7 +1177,7 @@ function en(e, r, n = {}) {
|
|
|
1177
1177
|
};
|
|
1178
1178
|
}
|
|
1179
1179
|
}
|
|
1180
|
-
function
|
|
1180
|
+
function Ar(e, r, n = {}) {
|
|
1181
1181
|
const { validateTypes: o = !0, dateFormat: t = "auto" } = n;
|
|
1182
1182
|
if (e == null)
|
|
1183
1183
|
return e;
|
|
@@ -1186,7 +1186,7 @@ function Ir(e, r, n = {}) {
|
|
|
1186
1186
|
case "date":
|
|
1187
1187
|
case "datetime":
|
|
1188
1188
|
case "date-time":
|
|
1189
|
-
return
|
|
1189
|
+
return Fr(e, t, o);
|
|
1190
1190
|
case "int":
|
|
1191
1191
|
case "integer":
|
|
1192
1192
|
return Ne(e, o);
|
|
@@ -1194,7 +1194,7 @@ function Ir(e, r, n = {}) {
|
|
|
1194
1194
|
case "number":
|
|
1195
1195
|
return Ie(e, o);
|
|
1196
1196
|
case "boolean":
|
|
1197
|
-
return
|
|
1197
|
+
return Mr(e, o);
|
|
1198
1198
|
case "int-array":
|
|
1199
1199
|
return Je(e, "integer", o);
|
|
1200
1200
|
case "float-array":
|
|
@@ -1214,7 +1214,7 @@ function Ir(e, r, n = {}) {
|
|
|
1214
1214
|
return e;
|
|
1215
1215
|
}
|
|
1216
1216
|
}
|
|
1217
|
-
function
|
|
1217
|
+
function tn(e, r = {}) {
|
|
1218
1218
|
try {
|
|
1219
1219
|
const { prettify: n = !0, includeMetadata: o = !0 } = r;
|
|
1220
1220
|
if (!e || typeof e != "object")
|
|
@@ -1243,7 +1243,7 @@ function rn(e, r = {}) {
|
|
|
1243
1243
|
};
|
|
1244
1244
|
}
|
|
1245
1245
|
}
|
|
1246
|
-
function
|
|
1246
|
+
function nn(e, r = {}) {
|
|
1247
1247
|
try {
|
|
1248
1248
|
const { strict: n = !1, validateTypes: o = !0 } = r;
|
|
1249
1249
|
let t;
|
|
@@ -1263,11 +1263,11 @@ function tn(e, r = {}) {
|
|
|
1263
1263
|
success: !1,
|
|
1264
1264
|
error: "Input must be a string or object"
|
|
1265
1265
|
};
|
|
1266
|
-
const a = [],
|
|
1267
|
-
for (const l of
|
|
1266
|
+
const a = [], s = [], i = ["name", "version", "displayName"];
|
|
1267
|
+
for (const l of i)
|
|
1268
1268
|
if (!t[l])
|
|
1269
1269
|
if (n)
|
|
1270
|
-
|
|
1270
|
+
s.push(`Required field '${l}' is missing`);
|
|
1271
1271
|
else
|
|
1272
1272
|
switch (a.push(`Missing field '${l}', using default`), l) {
|
|
1273
1273
|
case "name":
|
|
@@ -1281,20 +1281,20 @@ function tn(e, r = {}) {
|
|
|
1281
1281
|
break;
|
|
1282
1282
|
}
|
|
1283
1283
|
const u = Array.isArray(t.properties) ? t.properties : null;
|
|
1284
|
-
u ? t.properties = u.map((l,
|
|
1285
|
-
const c = ie(l) ? l : {},
|
|
1284
|
+
u ? t.properties = u.map((l, p) => {
|
|
1285
|
+
const c = ie(l) ? l : {}, d = { ...c };
|
|
1286
1286
|
if (!c.name) {
|
|
1287
|
-
const b = `Property at index ${
|
|
1288
|
-
n ?
|
|
1287
|
+
const b = `Property at index ${p} missing 'name'`;
|
|
1288
|
+
n ? s.push(b) : (a.push(`${b}, using 'field_${p}'`), d.name = `field_${p}`);
|
|
1289
1289
|
}
|
|
1290
|
-
return c.displayName || (
|
|
1291
|
-
}) : n ?
|
|
1292
|
-
const m =
|
|
1290
|
+
return c.displayName || (d.displayName = c.name || `Field ${p}`), c.type || (n && o ? s.push(`Property '${c.name || p}' missing 'type'`) : (a.push(`Property '${c.name || p}' missing 'type', using 'string'`), d.type = "string")), c.defaultValue === void 0 && (d.defaultValue = null), c.required === void 0 && (d.required = !1), d;
|
|
1291
|
+
}) : n ? s.push("Properties must be an array") : (a.push("Properties not found or invalid, using empty array"), t.properties = []);
|
|
1292
|
+
const m = s.length > 0;
|
|
1293
1293
|
return {
|
|
1294
1294
|
success: !m,
|
|
1295
1295
|
data: t,
|
|
1296
1296
|
warnings: a.length > 0 ? a : void 0,
|
|
1297
|
-
validationErrors: m ?
|
|
1297
|
+
validationErrors: m ? s : void 0
|
|
1298
1298
|
};
|
|
1299
1299
|
} catch (n) {
|
|
1300
1300
|
return {
|
|
@@ -1303,7 +1303,7 @@ function tn(e, r = {}) {
|
|
|
1303
1303
|
};
|
|
1304
1304
|
}
|
|
1305
1305
|
}
|
|
1306
|
-
function
|
|
1306
|
+
function Fr(e, r, n) {
|
|
1307
1307
|
if (e instanceof Date)
|
|
1308
1308
|
return e;
|
|
1309
1309
|
if (typeof e == "number") {
|
|
@@ -1348,7 +1348,7 @@ function Ie(e, r) {
|
|
|
1348
1348
|
throw new Error(`Cannot convert ${typeof e} to number`);
|
|
1349
1349
|
return e;
|
|
1350
1350
|
}
|
|
1351
|
-
function
|
|
1351
|
+
function Mr(e, r) {
|
|
1352
1352
|
if (typeof e == "boolean")
|
|
1353
1353
|
return e;
|
|
1354
1354
|
if (typeof e == "string") {
|
|
@@ -1382,60 +1382,60 @@ function Je(e, r, n) {
|
|
|
1382
1382
|
}
|
|
1383
1383
|
});
|
|
1384
1384
|
}
|
|
1385
|
-
const
|
|
1385
|
+
const Or = (e, r) => {
|
|
1386
1386
|
const n = /* @__PURE__ */ new Map();
|
|
1387
1387
|
let o = null, t = null, a = 0;
|
|
1388
|
-
for (const
|
|
1389
|
-
const
|
|
1390
|
-
if (!
|
|
1388
|
+
for (const s of e) {
|
|
1389
|
+
const i = s.group;
|
|
1390
|
+
if (!i) {
|
|
1391
1391
|
o = null, t = null;
|
|
1392
1392
|
continue;
|
|
1393
1393
|
}
|
|
1394
|
-
if (
|
|
1395
|
-
r[
|
|
1394
|
+
if (i === o)
|
|
1395
|
+
r[s.name].group = t ?? i;
|
|
1396
1396
|
else {
|
|
1397
|
-
if (!n.has(
|
|
1398
|
-
n.set(
|
|
1397
|
+
if (!n.has(i))
|
|
1398
|
+
n.set(i, 1), t = null, r[s.name].group = i;
|
|
1399
1399
|
else {
|
|
1400
|
-
const u = n.get(
|
|
1401
|
-
n.set(
|
|
1400
|
+
const u = n.get(i), m = `${i}(${u})`;
|
|
1401
|
+
n.set(i, u + 1), t = m, r[s.name].group = m, a++;
|
|
1402
1402
|
}
|
|
1403
|
-
o =
|
|
1403
|
+
o = i;
|
|
1404
1404
|
}
|
|
1405
1405
|
}
|
|
1406
1406
|
return a;
|
|
1407
|
-
},
|
|
1407
|
+
}, $r = (e, r = {}) => {
|
|
1408
1408
|
const { includeEmpty: n = !0 } = r, o = [];
|
|
1409
|
-
let t = null, a = [],
|
|
1409
|
+
let t = null, a = [], s = 0;
|
|
1410
1410
|
for (const u of e) {
|
|
1411
1411
|
const m = u.group || null;
|
|
1412
|
-
m !== t ? ((a.length > 0 || n) && (a.length === 0 &&
|
|
1412
|
+
m !== t ? ((a.length > 0 || n) && (a.length === 0 && s++, o.push({ name: t, fields: a })), t = m, a = [u]) : a.push(u);
|
|
1413
1413
|
}
|
|
1414
|
-
(a.length > 0 || n) && (a.length === 0 &&
|
|
1415
|
-
const
|
|
1414
|
+
(a.length > 0 || n) && (a.length === 0 && s++, o.push({ name: t, fields: a }));
|
|
1415
|
+
const i = Math.max(0, ...o.map((u) => u.fields.length));
|
|
1416
1416
|
return {
|
|
1417
1417
|
groups: o,
|
|
1418
1418
|
metadata: {
|
|
1419
1419
|
totalGroups: o.length,
|
|
1420
|
-
emptyGroups:
|
|
1421
|
-
largestGroup:
|
|
1420
|
+
emptyGroups: s,
|
|
1421
|
+
largestGroup: i
|
|
1422
1422
|
}
|
|
1423
1423
|
};
|
|
1424
|
-
}, ke = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), se = /* @__PURE__ */ new Set(), Ae = /* @__PURE__ */ new Map(),
|
|
1424
|
+
}, ke = /* @__PURE__ */ new Map(), ye = /* @__PURE__ */ new Map(), se = /* @__PURE__ */ new Set(), Ae = /* @__PURE__ */ new Map(), Vr = async (e) => {
|
|
1425
1425
|
try {
|
|
1426
1426
|
let r;
|
|
1427
1427
|
switch (e.toLowerCase()) {
|
|
1428
1428
|
case "fr":
|
|
1429
|
-
r = (await import("./common-
|
|
1429
|
+
r = (await import("./common-CTK4jqc5.js")).default;
|
|
1430
1430
|
break;
|
|
1431
1431
|
case "de":
|
|
1432
|
-
r = (await import("./common-
|
|
1432
|
+
r = (await import("./common-ClNcU_yE.js")).default;
|
|
1433
1433
|
break;
|
|
1434
1434
|
case "es":
|
|
1435
|
-
r = (await import("./common-
|
|
1435
|
+
r = (await import("./common-DXEjsP3o.js")).default;
|
|
1436
1436
|
break;
|
|
1437
1437
|
case "zh-cn":
|
|
1438
|
-
r = (await import("./common-
|
|
1438
|
+
r = (await import("./common-DRxsgpaH.js")).default;
|
|
1439
1439
|
break;
|
|
1440
1440
|
case "en":
|
|
1441
1441
|
r = {};
|
|
@@ -1455,7 +1455,7 @@ const Mr = (e, r) => {
|
|
|
1455
1455
|
error: `Failed to load common translations for ${e}: ${r}`
|
|
1456
1456
|
};
|
|
1457
1457
|
}
|
|
1458
|
-
},
|
|
1458
|
+
}, Dr = async (e) => {
|
|
1459
1459
|
if (!e)
|
|
1460
1460
|
return { success: !1, translations: {}, error: "Language is required" };
|
|
1461
1461
|
const r = e.toLowerCase();
|
|
@@ -1467,13 +1467,13 @@ const Mr = (e, r) => {
|
|
|
1467
1467
|
translations: ke.get(r) || {},
|
|
1468
1468
|
fromCache: !0
|
|
1469
1469
|
};
|
|
1470
|
-
const n = await
|
|
1470
|
+
const n = await Vr(r);
|
|
1471
1471
|
return n.success && (ke.set(r, n.translations), Ae.set(r, {
|
|
1472
1472
|
loadedAt: /* @__PURE__ */ new Date(),
|
|
1473
1473
|
size: Object.keys(n.translations).length,
|
|
1474
1474
|
source: "common"
|
|
1475
1475
|
})), n;
|
|
1476
|
-
},
|
|
1476
|
+
}, zr = async (e, r) => {
|
|
1477
1477
|
if (!e || !r)
|
|
1478
1478
|
return {
|
|
1479
1479
|
success: !1,
|
|
@@ -1515,22 +1515,22 @@ const Mr = (e, r) => {
|
|
|
1515
1515
|
});
|
|
1516
1516
|
}
|
|
1517
1517
|
const a = t.headers.get("content-type") || "";
|
|
1518
|
-
!a.includes("application/json") && !a.includes("text/json") &&
|
|
1518
|
+
!a.includes("application/json") && !a.includes("text/json") && sr() && console.warn(
|
|
1519
1519
|
`Translation file at ${o} has unexpected content-type: ${a}`
|
|
1520
1520
|
);
|
|
1521
|
-
const
|
|
1522
|
-
if (!
|
|
1521
|
+
const s = await t.text();
|
|
1522
|
+
if (!s) {
|
|
1523
1523
|
const m = "Empty translation file";
|
|
1524
1524
|
return se.add(n), { success: !1, translations: {}, error: m };
|
|
1525
1525
|
}
|
|
1526
|
-
let
|
|
1526
|
+
let i;
|
|
1527
1527
|
try {
|
|
1528
|
-
|
|
1528
|
+
i = JSON.parse(s);
|
|
1529
1529
|
} catch (m) {
|
|
1530
1530
|
const l = `Invalid JSON in translation file: ${m instanceof Error ? m.message : String(m)}`;
|
|
1531
1531
|
return se.add(n), { success: !1, translations: {}, error: l };
|
|
1532
1532
|
}
|
|
1533
|
-
if (!
|
|
1533
|
+
if (!i || typeof i != "object") {
|
|
1534
1534
|
const m = "Invalid translation file format";
|
|
1535
1535
|
return se.add(n), {
|
|
1536
1536
|
success: !1,
|
|
@@ -1539,7 +1539,7 @@ const Mr = (e, r) => {
|
|
|
1539
1539
|
};
|
|
1540
1540
|
}
|
|
1541
1541
|
const u = Object.fromEntries(
|
|
1542
|
-
Object.entries(
|
|
1542
|
+
Object.entries(i).map(([m, l]) => [
|
|
1543
1543
|
m,
|
|
1544
1544
|
typeof l == "string" ? l : String(l)
|
|
1545
1545
|
])
|
|
@@ -1570,7 +1570,7 @@ const Mr = (e, r) => {
|
|
|
1570
1570
|
};
|
|
1571
1571
|
}
|
|
1572
1572
|
};
|
|
1573
|
-
function
|
|
1573
|
+
function sr() {
|
|
1574
1574
|
try {
|
|
1575
1575
|
if (typeof process < "u" && process?.env?.NODE_ENV === "development")
|
|
1576
1576
|
return !0;
|
|
@@ -1578,7 +1578,7 @@ function or() {
|
|
|
1578
1578
|
}
|
|
1579
1579
|
return !1;
|
|
1580
1580
|
}
|
|
1581
|
-
function
|
|
1581
|
+
function Tr(e, r) {
|
|
1582
1582
|
return r.length === 0 ? e : e.replace(/\{\{(\d+)\}\}/g, (n, o) => {
|
|
1583
1583
|
const t = parseInt(o, 10) - 1, a = r[t];
|
|
1584
1584
|
if (a == null)
|
|
@@ -1590,12 +1590,12 @@ function zr(e, r) {
|
|
|
1590
1590
|
}
|
|
1591
1591
|
});
|
|
1592
1592
|
}
|
|
1593
|
-
const
|
|
1594
|
-
let a = o,
|
|
1595
|
-
return !o || typeof o != "string" ? String(o || "") : (e.toLowerCase() === "en" ? (a = o,
|
|
1593
|
+
const Lr = (e, r, n) => (o, ...t) => {
|
|
1594
|
+
let a = o, s = !1;
|
|
1595
|
+
return !o || typeof o != "string" ? String(o || "") : (e.toLowerCase() === "en" ? (a = o, s = !0) : Object.prototype.hasOwnProperty.call(n, o) ? (a = n[o], s = !0) : Object.prototype.hasOwnProperty.call(r, o) ? (a = r[o], s = !0) : a = o, a = Tr(a, t), !s && sr() && console.debug(
|
|
1596
1596
|
`Missing translation for "${o}" in language "${e}"`
|
|
1597
1597
|
), a);
|
|
1598
|
-
},
|
|
1598
|
+
}, De = {
|
|
1599
1599
|
length: ["m", "cm", "mm", "km", "in", "ft", "yd", "mi"],
|
|
1600
1600
|
area: ["m^2", "cm^2", "mm^2", "in^2", "ft^2", "yd^2"],
|
|
1601
1601
|
volume: ["L", "m^3", "cm^3", "mL", "in^3", "ft^3", "yd^3"],
|
|
@@ -1657,7 +1657,7 @@ const Dr = (e, r, n) => (o, ...t) => {
|
|
|
1657
1657
|
rad: "Radian (rad)",
|
|
1658
1658
|
rev: "Revolution (rev)"
|
|
1659
1659
|
}
|
|
1660
|
-
},
|
|
1660
|
+
}, Te = {
|
|
1661
1661
|
length: {
|
|
1662
1662
|
mm: 1e3,
|
|
1663
1663
|
cm: 100,
|
|
@@ -1712,52 +1712,52 @@ const Dr = (e, r, n) => (o, ...t) => {
|
|
|
1712
1712
|
rad: Math.PI / 180,
|
|
1713
1713
|
rev: 1 / 360
|
|
1714
1714
|
}
|
|
1715
|
-
}, Le = {},
|
|
1716
|
-
...Object.keys(
|
|
1715
|
+
}, Le = {}, Pr = /* @__PURE__ */ new Set([
|
|
1716
|
+
...Object.keys(De),
|
|
1717
1717
|
...Object.keys(ze),
|
|
1718
|
-
...Object.keys(
|
|
1718
|
+
...Object.keys(Te)
|
|
1719
1719
|
]);
|
|
1720
|
-
for (const e of
|
|
1721
|
-
const r = {}, n =
|
|
1720
|
+
for (const e of Pr) {
|
|
1721
|
+
const r = {}, n = De[e] ?? [], o = ze[e] ?? {}, t = Te[e] ?? {};
|
|
1722
1722
|
for (const a of n) {
|
|
1723
|
-
const
|
|
1723
|
+
const s = o[a];
|
|
1724
1724
|
r[a] = {
|
|
1725
|
-
name: typeof
|
|
1725
|
+
name: typeof s == "string" ? s : String(a),
|
|
1726
1726
|
shortName: a,
|
|
1727
1727
|
factor: Object.prototype.hasOwnProperty.call(t, a) ? t[a] : void 0
|
|
1728
1728
|
};
|
|
1729
1729
|
}
|
|
1730
|
-
for (const [a,
|
|
1730
|
+
for (const [a, s] of Object.entries(o))
|
|
1731
1731
|
if (!r[a]) {
|
|
1732
|
-
const
|
|
1733
|
-
r[a] = { name:
|
|
1732
|
+
const i = typeof s == "string" ? s : String(a);
|
|
1733
|
+
r[a] = { name: i, shortName: a, factor: Object.prototype.hasOwnProperty.call(t, a) ? t[a] : void 0 };
|
|
1734
1734
|
}
|
|
1735
|
-
for (const [a,
|
|
1736
|
-
r[a] || (r[a] = { name: String(a), shortName: String(a), factor:
|
|
1735
|
+
for (const [a, s] of Object.entries(t))
|
|
1736
|
+
r[a] || (r[a] = { name: String(a), shortName: String(a), factor: s });
|
|
1737
1737
|
Le[e] = r;
|
|
1738
1738
|
}
|
|
1739
|
-
const
|
|
1739
|
+
const on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1740
1740
|
__proto__: null,
|
|
1741
1741
|
dimensionUnitDisplayMap: ze,
|
|
1742
|
-
dimensionUnitsMap:
|
|
1743
|
-
dimensonUnitFactorsMap:
|
|
1742
|
+
dimensionUnitsMap: De,
|
|
1743
|
+
dimensonUnitFactorsMap: Te,
|
|
1744
1744
|
unitsByDimension: Le
|
|
1745
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1745
|
+
}, Symbol.toStringTag, { value: "Module" })), _r = ({
|
|
1746
1746
|
field: e,
|
|
1747
1747
|
value: r,
|
|
1748
1748
|
onChange: n,
|
|
1749
1749
|
onError: o
|
|
1750
1750
|
}) => {
|
|
1751
|
-
const { definitionName: t, t: a } =
|
|
1751
|
+
const { definitionName: t, t: a } = T(), s = k(o);
|
|
1752
1752
|
C(() => {
|
|
1753
|
-
|
|
1753
|
+
s.current = o;
|
|
1754
1754
|
}, [o]), C(() => {
|
|
1755
1755
|
const l = Y(t, e, r ?? !1, a);
|
|
1756
|
-
|
|
1756
|
+
s.current?.(l ?? null);
|
|
1757
1757
|
}, [r, e, t, a]);
|
|
1758
|
-
const
|
|
1759
|
-
const
|
|
1760
|
-
n?.(
|
|
1758
|
+
const i = (l) => {
|
|
1759
|
+
const p = l.target.checked;
|
|
1760
|
+
n?.(p, null);
|
|
1761
1761
|
}, u = (l) => {
|
|
1762
1762
|
(l.key === " " || l.key === "Spacebar" || l.key === "Space" || l.key === "Enter") && (l.preventDefault(), n?.(!r, null));
|
|
1763
1763
|
}, m = e.name;
|
|
@@ -1778,7 +1778,7 @@ const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1778
1778
|
"data-testid": "boolean-checkbox",
|
|
1779
1779
|
type: "checkbox",
|
|
1780
1780
|
checked: !!r,
|
|
1781
|
-
onChange:
|
|
1781
|
+
onChange: i,
|
|
1782
1782
|
onKeyDown: u,
|
|
1783
1783
|
"aria-checked": !!r,
|
|
1784
1784
|
style: {
|
|
@@ -1810,62 +1810,62 @@ const nn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
1810
1810
|
{ label: "Light Gray", value: "#d3d3d3" },
|
|
1811
1811
|
{ label: "Pink", value: "#ffc0cb" }
|
|
1812
1812
|
];
|
|
1813
|
-
function
|
|
1813
|
+
function ir(e) {
|
|
1814
1814
|
return /^#([0-9A-F]{3}){1,2}$/i.test(e);
|
|
1815
1815
|
}
|
|
1816
|
-
function
|
|
1817
|
-
if (!
|
|
1818
|
-
const r =
|
|
1816
|
+
function qr(e) {
|
|
1817
|
+
if (!ir(e)) return null;
|
|
1818
|
+
const r = cr(e), n = parseInt(r.slice(1), 16);
|
|
1819
1819
|
return {
|
|
1820
1820
|
r: n >> 16 & 255,
|
|
1821
1821
|
g: n >> 8 & 255,
|
|
1822
1822
|
b: n & 255
|
|
1823
1823
|
};
|
|
1824
1824
|
}
|
|
1825
|
-
function
|
|
1825
|
+
function cr(e) {
|
|
1826
1826
|
return e ? (e = e.toLowerCase(), /^#([a-f0-9]){3}$/i.test(e) ? "#" + e.slice(1).split("").map((r) => r + r).join("") : e) : "#000000";
|
|
1827
1827
|
}
|
|
1828
|
-
const
|
|
1829
|
-
const { t, definitionName: a } =
|
|
1830
|
-
|
|
1828
|
+
const Br = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
1829
|
+
const { t, definitionName: a } = T(), [s, i] = D("#000000"), u = N.useRef(null), m = N.useRef(null), l = N.useRef(o);
|
|
1830
|
+
N.useEffect(() => {
|
|
1831
1831
|
l.current = o;
|
|
1832
1832
|
}, [o]), C(() => {
|
|
1833
|
-
const x = r &&
|
|
1834
|
-
|
|
1835
|
-
}, [r]),
|
|
1833
|
+
const x = r && ir(r) ? r : "#000000", v = cr(x);
|
|
1834
|
+
i(v);
|
|
1835
|
+
}, [r]), N.useEffect(() => {
|
|
1836
1836
|
const x = Y(a, e, r ?? "#000000", t);
|
|
1837
1837
|
l.current?.(x ?? null);
|
|
1838
1838
|
}, [r, e, a, t]);
|
|
1839
|
-
const
|
|
1840
|
-
const
|
|
1841
|
-
|
|
1839
|
+
const p = (x) => {
|
|
1840
|
+
const v = x.target.value;
|
|
1841
|
+
i(v), n?.(v, null);
|
|
1842
1842
|
}, c = (x) => {
|
|
1843
|
-
const
|
|
1844
|
-
|
|
1845
|
-
},
|
|
1846
|
-
(x) => x.value ===
|
|
1847
|
-
), { r: b, g:
|
|
1843
|
+
const v = x.target.value;
|
|
1844
|
+
i(v), n?.(v, null);
|
|
1845
|
+
}, d = Ge.find(
|
|
1846
|
+
(x) => x.value === s
|
|
1847
|
+
), { r: b, g: f, b: y } = qr(s) || { r: 0, g: 0, b: 0 };
|
|
1848
1848
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: null, children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", width: "100%" }, children: [
|
|
1849
1849
|
/* @__PURE__ */ g.jsxs(
|
|
1850
1850
|
"select",
|
|
1851
1851
|
{
|
|
1852
1852
|
ref: u,
|
|
1853
1853
|
id: e.name,
|
|
1854
|
-
value:
|
|
1855
|
-
onChange:
|
|
1854
|
+
value: s,
|
|
1855
|
+
onChange: p,
|
|
1856
1856
|
style: { minWidth: "120px", flex: 1 },
|
|
1857
|
-
className:
|
|
1857
|
+
className: K($.input, $.inputSelect),
|
|
1858
1858
|
children: [
|
|
1859
1859
|
Ge.map((x) => /* @__PURE__ */ g.jsx("option", { value: x.value, children: t(x.label) }, x.value)),
|
|
1860
|
-
|
|
1860
|
+
d ? null : /* @__PURE__ */ g.jsxs("option", { value: s, children: [
|
|
1861
1861
|
"(",
|
|
1862
1862
|
b,
|
|
1863
1863
|
", ",
|
|
1864
|
-
|
|
1864
|
+
f,
|
|
1865
1865
|
", ",
|
|
1866
1866
|
y,
|
|
1867
1867
|
")"
|
|
1868
|
-
] },
|
|
1868
|
+
] }, s)
|
|
1869
1869
|
]
|
|
1870
1870
|
}
|
|
1871
1871
|
),
|
|
@@ -1878,7 +1878,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
1878
1878
|
display: "inline-block",
|
|
1879
1879
|
border: "1px solid #ccc",
|
|
1880
1880
|
borderRadius: "4px",
|
|
1881
|
-
backgroundColor:
|
|
1881
|
+
backgroundColor: s,
|
|
1882
1882
|
cursor: "pointer",
|
|
1883
1883
|
overflow: "hidden",
|
|
1884
1884
|
flexShrink: 0
|
|
@@ -1888,7 +1888,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
1888
1888
|
{
|
|
1889
1889
|
ref: m,
|
|
1890
1890
|
type: "color",
|
|
1891
|
-
value:
|
|
1891
|
+
value: s,
|
|
1892
1892
|
onChange: c,
|
|
1893
1893
|
style: {
|
|
1894
1894
|
opacity: 0,
|
|
@@ -1907,7 +1907,7 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
1907
1907
|
if (!e) return null;
|
|
1908
1908
|
const r = new Date(e);
|
|
1909
1909
|
return isNaN(r.getTime()) ? null : r;
|
|
1910
|
-
},
|
|
1910
|
+
}, Hr = (e) => {
|
|
1911
1911
|
if (!e) return "";
|
|
1912
1912
|
if (/^\d{4}-\d{2}-\d{2}$/.test(e))
|
|
1913
1913
|
return ge(e) ? e : "";
|
|
@@ -1917,37 +1917,37 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
1917
1917
|
return `${o}-${t}-${a}`;
|
|
1918
1918
|
}
|
|
1919
1919
|
return "";
|
|
1920
|
-
},
|
|
1920
|
+
}, Ur = ({
|
|
1921
1921
|
field: e,
|
|
1922
1922
|
value: r,
|
|
1923
1923
|
onChange: n,
|
|
1924
1924
|
onError: o
|
|
1925
1925
|
}) => {
|
|
1926
|
-
const { t, definitionName: a } =
|
|
1926
|
+
const { t, definitionName: a } = T(), { name: s, required: i } = e, u = k(null), m = k(o);
|
|
1927
1927
|
C(() => {
|
|
1928
1928
|
m.current = o;
|
|
1929
1929
|
}, [o]);
|
|
1930
|
-
const l =
|
|
1930
|
+
const l = N.useCallback((c) => {
|
|
1931
1931
|
if (!c || c.trim() === "")
|
|
1932
|
-
return
|
|
1932
|
+
return i ? t("Value required") : null;
|
|
1933
1933
|
if (c) {
|
|
1934
1934
|
const b = ge(c);
|
|
1935
1935
|
if (!b) return t("Invalid date format");
|
|
1936
1936
|
if (e.minDate) {
|
|
1937
|
-
const
|
|
1938
|
-
if (
|
|
1937
|
+
const f = ge(e.minDate);
|
|
1938
|
+
if (f && b.getTime() < f.getTime())
|
|
1939
1939
|
return t("Date must be on or after {{1}}", e.minDate);
|
|
1940
1940
|
}
|
|
1941
1941
|
if (e.maxDate) {
|
|
1942
|
-
const
|
|
1943
|
-
if (
|
|
1942
|
+
const f = ge(e.maxDate);
|
|
1943
|
+
if (f && b.getTime() > f.getTime())
|
|
1944
1944
|
return t("Date must be on or before {{1}}", e.maxDate);
|
|
1945
1945
|
}
|
|
1946
1946
|
}
|
|
1947
1947
|
return Y(a, e, c, t) ?? null;
|
|
1948
|
-
}, [e, a, t,
|
|
1949
|
-
const
|
|
1950
|
-
n?.(
|
|
1948
|
+
}, [e, a, t, i]), p = (c) => {
|
|
1949
|
+
const d = c.target.value, b = l(d);
|
|
1950
|
+
n?.(d, b);
|
|
1951
1951
|
};
|
|
1952
1952
|
return C(() => {
|
|
1953
1953
|
const c = l(r);
|
|
@@ -1955,50 +1955,50 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
1955
1955
|
}, [r, l]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(r), children: /* @__PURE__ */ g.jsx(
|
|
1956
1956
|
"input",
|
|
1957
1957
|
{
|
|
1958
|
-
id:
|
|
1958
|
+
id: s,
|
|
1959
1959
|
type: "date",
|
|
1960
|
-
value:
|
|
1961
|
-
onChange:
|
|
1962
|
-
className:
|
|
1960
|
+
value: Hr(r),
|
|
1961
|
+
onChange: p,
|
|
1962
|
+
className: K($.input, $.textInput),
|
|
1963
1963
|
...e.minDate ? { min: e.minDate } : {},
|
|
1964
1964
|
...e.maxDate ? { max: e.maxDate } : {},
|
|
1965
1965
|
"aria-invalid": !!l(r),
|
|
1966
|
-
"aria-describedby": l(r) ? `${
|
|
1966
|
+
"aria-describedby": l(r) ? `${s}-error` : void 0
|
|
1967
1967
|
}
|
|
1968
1968
|
) });
|
|
1969
|
-
},
|
|
1969
|
+
}, Wr = ({
|
|
1970
1970
|
field: e,
|
|
1971
1971
|
value: r,
|
|
1972
1972
|
onChange: n,
|
|
1973
1973
|
onError: o
|
|
1974
1974
|
}) => {
|
|
1975
|
-
const { t, definitionName: a } =
|
|
1975
|
+
const { t, definitionName: a } = T(), s = k(null), i = k(o);
|
|
1976
1976
|
C(() => {
|
|
1977
|
-
|
|
1977
|
+
i.current = o;
|
|
1978
1978
|
}, [o]);
|
|
1979
1979
|
const u = Z(
|
|
1980
1980
|
(l) => l === "" || l === null || l === void 0 ? t("Value required") : !e.options || e.options.length === 0 ? null : e.options.some((c) => c.value === l) ? Y(a, e, l, t) ?? null : t("Invalid option selected"),
|
|
1981
1981
|
[e, t, a]
|
|
1982
1982
|
);
|
|
1983
1983
|
C(() => {
|
|
1984
|
-
const l = r != null ? String(r) : "",
|
|
1985
|
-
if (
|
|
1984
|
+
const l = r != null ? String(r) : "", p = u(l);
|
|
1985
|
+
if (p && e.options && e.options.length > 0) {
|
|
1986
1986
|
const c = String(e.options[0].value);
|
|
1987
|
-
|
|
1987
|
+
s.current && (s.current.value = c), n?.(c, null), i.current?.(null);
|
|
1988
1988
|
} else
|
|
1989
|
-
|
|
1989
|
+
s.current && (s.current.value = l), i.current?.(p ?? null);
|
|
1990
1990
|
}, [r, u, n, e.options]);
|
|
1991
1991
|
const m = (l) => {
|
|
1992
|
-
const
|
|
1993
|
-
n?.(
|
|
1992
|
+
const p = l.target.value, c = u(p);
|
|
1993
|
+
n?.(p, c);
|
|
1994
1994
|
};
|
|
1995
1995
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
1996
1996
|
"select",
|
|
1997
1997
|
{
|
|
1998
1998
|
defaultValue: String(r ?? ""),
|
|
1999
|
-
ref:
|
|
1999
|
+
ref: s,
|
|
2000
2000
|
onChange: m,
|
|
2001
|
-
className:
|
|
2001
|
+
className: K(
|
|
2002
2002
|
$.input,
|
|
2003
2003
|
$.inputSelect
|
|
2004
2004
|
),
|
|
@@ -2006,45 +2006,45 @@ const qr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
|
2006
2006
|
}
|
|
2007
2007
|
) });
|
|
2008
2008
|
};
|
|
2009
|
-
function
|
|
2009
|
+
function Yr(e) {
|
|
2010
2010
|
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
|
|
2011
2011
|
}
|
|
2012
|
-
const
|
|
2012
|
+
const Jr = ({
|
|
2013
2013
|
field: e,
|
|
2014
2014
|
value: r,
|
|
2015
2015
|
onChange: n,
|
|
2016
2016
|
onError: o
|
|
2017
2017
|
}) => {
|
|
2018
|
-
const { definitionName: t, t: a } =
|
|
2019
|
-
(
|
|
2020
|
-
const c =
|
|
2021
|
-
return c === "" ? e.required ? a("Value required") : null :
|
|
2018
|
+
const { definitionName: t, t: a } = T(), s = k(null), i = N.useCallback(
|
|
2019
|
+
(p) => {
|
|
2020
|
+
const c = p.trim();
|
|
2021
|
+
return c === "" ? e.required ? a("Value required") : null : Yr(c) ? e.pattern && !new RegExp(e.pattern).test(c) ? a("Email does not match pattern: {{%1}}", {
|
|
2022
2022
|
"%1": `${e.pattern}`
|
|
2023
|
-
}) : Y(t, e,
|
|
2023
|
+
}) : Y(t, e, p, a) ?? null : a("Must be valid email format");
|
|
2024
2024
|
},
|
|
2025
2025
|
[e, t, a]
|
|
2026
|
-
), u = (
|
|
2027
|
-
const c =
|
|
2028
|
-
n?.(c,
|
|
2026
|
+
), u = (p) => {
|
|
2027
|
+
const c = p.target.value, d = i(c);
|
|
2028
|
+
n?.(c, d);
|
|
2029
2029
|
}, m = k(null), l = k(o);
|
|
2030
2030
|
return C(() => {
|
|
2031
2031
|
l.current = o;
|
|
2032
2032
|
}, [o]), C(() => {
|
|
2033
|
-
const
|
|
2034
|
-
|
|
2035
|
-
}, [r,
|
|
2033
|
+
const p = r ?? "", c = i(p);
|
|
2034
|
+
s.current && s.current.value !== String(p) && (s.current.value = String(p)), c !== m.current && (m.current = c, l.current?.(c ?? null));
|
|
2035
|
+
}, [r, i]), /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2036
2036
|
"input",
|
|
2037
2037
|
{
|
|
2038
2038
|
id: e.name,
|
|
2039
2039
|
type: "email",
|
|
2040
2040
|
defaultValue: String(r ?? ""),
|
|
2041
|
-
ref:
|
|
2041
|
+
ref: s,
|
|
2042
2042
|
onChange: u,
|
|
2043
|
-
className:
|
|
2043
|
+
className: K($.input, $.textInput)
|
|
2044
2044
|
}
|
|
2045
2045
|
) });
|
|
2046
|
-
},
|
|
2047
|
-
const { darkMode: r } =
|
|
2046
|
+
}, Gr = ({ field: e }) => {
|
|
2047
|
+
const { darkMode: r } = T(), {
|
|
2048
2048
|
color: n = r ? "#444444" : "#CCCCCC",
|
|
2049
2049
|
thickness: o = 1,
|
|
2050
2050
|
margin: t = "8px 0"
|
|
@@ -2061,254 +2061,254 @@ const Yr = ({
|
|
|
2061
2061
|
}
|
|
2062
2062
|
}
|
|
2063
2063
|
);
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2064
|
+
}, Kr = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
2065
|
+
const { t, definitionName: a } = T(), [s, i] = D(!1), u = k(null), m = k(o);
|
|
2066
|
+
C(() => {
|
|
2067
|
+
m.current = o;
|
|
2068
|
+
}, [o]);
|
|
2069
|
+
const l = N.useCallback(
|
|
2070
|
+
(v) => e.required && (!v || Array.isArray(v) && v.length === 0) ? t("Value required") : Y(a, e, v, t) ?? null,
|
|
2071
|
+
[e, a, t]
|
|
2072
|
+
), p = N.useMemo(() => l(r), [r, l]);
|
|
2073
|
+
C(() => {
|
|
2074
|
+
const v = l(r);
|
|
2075
|
+
n?.(r, v), m.current?.(v ?? null);
|
|
2076
|
+
}, [r, l]);
|
|
2077
|
+
const c = (v) => {
|
|
2078
|
+
const F = v.target.files;
|
|
2079
|
+
let R = null;
|
|
2080
|
+
if (F && F.length > 0) {
|
|
2081
|
+
const j = Array.from(F);
|
|
2082
|
+
e.multiple ? R = [...Array.isArray(r) ? r : [], ...j] : R = j[0];
|
|
2075
2083
|
}
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2084
|
+
const w = l(R);
|
|
2085
|
+
n?.(R, w);
|
|
2086
|
+
}, d = (v) => {
|
|
2087
|
+
v.preventDefault(), v.stopPropagation(), i(!1);
|
|
2088
|
+
const F = v.dataTransfer.files;
|
|
2089
|
+
if (F && F.length > 0) {
|
|
2090
|
+
const R = Array.from(F);
|
|
2091
|
+
let w = null;
|
|
2092
|
+
e.multiple ? w = [...Array.isArray(r) ? r : [], ...R] : w = R[0];
|
|
2093
|
+
const j = l(w);
|
|
2094
|
+
n?.(w, j);
|
|
2095
|
+
}
|
|
2096
|
+
}, b = (v) => {
|
|
2097
|
+
v.preventDefault(), v.stopPropagation(), i(!0);
|
|
2098
|
+
}, f = (v) => {
|
|
2099
|
+
v.preventDefault(), v.stopPropagation(), i(!1);
|
|
2100
|
+
}, y = (v) => {
|
|
2101
|
+
if (Array.isArray(r) && typeof v == "number") {
|
|
2102
|
+
const F = r.filter((j, I) => I !== v), R = F.length > 0 ? F : null, w = l(R);
|
|
2103
|
+
n?.(R, w);
|
|
2104
|
+
} else {
|
|
2105
|
+
const F = l(null);
|
|
2106
|
+
n?.(null, F);
|
|
2107
|
+
}
|
|
2108
|
+
}, x = () => {
|
|
2109
|
+
const v = Array.isArray(r) ? r : r ? [r] : [];
|
|
2110
|
+
return v.length === 0 ? null : /* @__PURE__ */ g.jsx("div", { style: {
|
|
2111
|
+
marginTop: "8px",
|
|
2112
|
+
display: "flex",
|
|
2113
|
+
flexDirection: "column",
|
|
2114
|
+
gap: "6px"
|
|
2115
|
+
}, children: v.map((F, R) => /* @__PURE__ */ g.jsxs(
|
|
2081
2116
|
"div",
|
|
2082
2117
|
{
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2118
|
+
style: {
|
|
2119
|
+
display: "flex",
|
|
2120
|
+
alignItems: "center",
|
|
2121
|
+
justifyContent: "space-between",
|
|
2122
|
+
padding: "6px 10px",
|
|
2123
|
+
backgroundColor: "var(--reactaform-input-bg, #fff)",
|
|
2124
|
+
border: "1px solid var(--reactaform-border-color, #d1d5db)",
|
|
2125
|
+
borderRadius: "4px",
|
|
2126
|
+
fontSize: "0.875rem",
|
|
2127
|
+
gap: "8px"
|
|
2086
2128
|
},
|
|
2129
|
+
children: [
|
|
2130
|
+
/* @__PURE__ */ g.jsx("div", { style: {
|
|
2131
|
+
flex: 1,
|
|
2132
|
+
minWidth: 0,
|
|
2133
|
+
overflow: "hidden",
|
|
2134
|
+
textOverflow: "ellipsis",
|
|
2135
|
+
whiteSpace: "nowrap"
|
|
2136
|
+
}, children: F.name }),
|
|
2137
|
+
/* @__PURE__ */ g.jsx(
|
|
2138
|
+
"button",
|
|
2139
|
+
{
|
|
2140
|
+
type: "button",
|
|
2141
|
+
onClick: () => y(Array.isArray(r) ? R : void 0),
|
|
2142
|
+
"aria-label": t("Remove file"),
|
|
2143
|
+
style: {
|
|
2144
|
+
background: "transparent",
|
|
2145
|
+
border: "none",
|
|
2146
|
+
color: "var(--reactaform-color-error, #ef4444)",
|
|
2147
|
+
cursor: "pointer",
|
|
2148
|
+
padding: "2px 6px",
|
|
2149
|
+
fontSize: "1.125rem",
|
|
2150
|
+
lineHeight: 1,
|
|
2151
|
+
borderRadius: "4px",
|
|
2152
|
+
transition: "background-color 0.2s",
|
|
2153
|
+
flexShrink: 0
|
|
2154
|
+
},
|
|
2155
|
+
onMouseEnter: (w) => {
|
|
2156
|
+
w.currentTarget.style.backgroundColor = "var(--reactaform-bg-hover, #fee)";
|
|
2157
|
+
},
|
|
2158
|
+
onMouseLeave: (w) => {
|
|
2159
|
+
w.currentTarget.style.backgroundColor = "transparent";
|
|
2160
|
+
},
|
|
2161
|
+
children: "×"
|
|
2162
|
+
}
|
|
2163
|
+
)
|
|
2164
|
+
]
|
|
2165
|
+
},
|
|
2166
|
+
`${F.name}-${R}`
|
|
2167
|
+
)) });
|
|
2168
|
+
};
|
|
2169
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: p, children: /* @__PURE__ */ g.jsxs("div", { style: { width: "100%" }, children: [
|
|
2170
|
+
/* @__PURE__ */ g.jsxs(
|
|
2171
|
+
"div",
|
|
2172
|
+
{
|
|
2173
|
+
onDrop: d,
|
|
2174
|
+
onDragOver: b,
|
|
2175
|
+
onDragLeave: f,
|
|
2087
2176
|
style: {
|
|
2088
|
-
position: "
|
|
2089
|
-
|
|
2090
|
-
left: d,
|
|
2091
|
-
backgroundColor: "var(--reactaform-primary-bg, #fff)",
|
|
2092
|
-
border: "1px solid var(--reactaform-border-color, #ccc)",
|
|
2177
|
+
position: "relative",
|
|
2178
|
+
border: `1px dashed ${s ? "var(--reactaform-color-primary, #2563eb)" : p ? "var(--reactaform-color-error, #ef4444)" : "var(--reactaform-border-color, #d1d5db)"}`,
|
|
2093
2179
|
borderRadius: "var(--reactaform-border-radius, 4px)",
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2180
|
+
padding: "8px 12px",
|
|
2181
|
+
textAlign: "center",
|
|
2182
|
+
backgroundColor: s ? "var(--reactaform-bg-hover, #f0f9ff)" : "var(--reactaform-input-bg, #fff)",
|
|
2183
|
+
transition: "all 0.2s ease",
|
|
2184
|
+
cursor: "pointer",
|
|
2185
|
+
minHeight: "var(--reactaform-input-height, 34px)",
|
|
2186
|
+
width: "100%",
|
|
2187
|
+
maxWidth: "100%",
|
|
2188
|
+
alignSelf: "stretch",
|
|
2189
|
+
boxSizing: "border-box",
|
|
2190
|
+
display: "flex",
|
|
2191
|
+
alignItems: "center",
|
|
2192
|
+
justifyContent: "center",
|
|
2193
|
+
gap: "8px"
|
|
2098
2194
|
},
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
"
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2195
|
+
onClick: () => u.current?.click(),
|
|
2196
|
+
children: [
|
|
2197
|
+
/* @__PURE__ */ g.jsx(
|
|
2198
|
+
"input",
|
|
2199
|
+
{
|
|
2200
|
+
id: e.name,
|
|
2201
|
+
ref: u,
|
|
2202
|
+
type: "file",
|
|
2203
|
+
accept: e.accept,
|
|
2204
|
+
multiple: e.multiple,
|
|
2205
|
+
style: {
|
|
2206
|
+
display: "none"
|
|
2207
|
+
},
|
|
2208
|
+
onChange: c
|
|
2209
|
+
}
|
|
2210
|
+
),
|
|
2211
|
+
/* @__PURE__ */ g.jsx("div", { style: {
|
|
2212
|
+
fontSize: "1.25rem",
|
|
2213
|
+
opacity: 0.6,
|
|
2214
|
+
lineHeight: 1,
|
|
2215
|
+
flexShrink: 0
|
|
2216
|
+
}, children: "📁" }),
|
|
2217
|
+
/* @__PURE__ */ g.jsx("div", { style: {
|
|
2218
|
+
fontSize: "0.875rem",
|
|
2219
|
+
fontWeight: 400,
|
|
2220
|
+
color: "var(--reactaform-text-color, #111827)",
|
|
2221
|
+
flex: 1,
|
|
2222
|
+
textAlign: "left"
|
|
2223
|
+
}, children: s ? t("Drop files here") : e.multiple ? t("Choose Files or Drag & Drop") : t("Choose File or Drag & Drop") }),
|
|
2224
|
+
e.accept && /* @__PURE__ */ g.jsx("div", { style: {
|
|
2225
|
+
fontSize: "0.75rem",
|
|
2226
|
+
color: "var(--reactaform-text-muted, #6b7280)",
|
|
2227
|
+
whiteSpace: "nowrap",
|
|
2228
|
+
opacity: s ? 0 : 1,
|
|
2229
|
+
transition: "opacity 0.15s ease",
|
|
2230
|
+
pointerEvents: s ? "none" : "auto"
|
|
2231
|
+
}, children: e.accept })
|
|
2232
|
+
]
|
|
2128
2233
|
}
|
|
2129
2234
|
),
|
|
2130
|
-
|
|
2131
|
-
);
|
|
2132
|
-
}
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
C(() => {
|
|
2136
|
-
f.current = o;
|
|
2137
|
-
}, [o]);
|
|
2138
|
-
const b = A.useCallback(
|
|
2139
|
-
(S) => e.required && (!S || Array.isArray(S) && S.length === 0) ? t("Value required") : Y(a, e, S, t) ?? null,
|
|
2140
|
-
[e, a, t]
|
|
2141
|
-
), p = A.useMemo(() => b(r), [r, b]);
|
|
2142
|
-
C(() => {
|
|
2143
|
-
const S = b(r);
|
|
2144
|
-
n?.(r, S), f.current?.(S ?? null);
|
|
2145
|
-
}, [r, b]);
|
|
2146
|
-
const y = (S) => {
|
|
2147
|
-
const F = S.target.files;
|
|
2148
|
-
let I = null;
|
|
2149
|
-
F && F.length > 0 && (I = e.multiple ? Array.from(F) : F[0]);
|
|
2150
|
-
const w = b(I);
|
|
2151
|
-
n?.(I, w);
|
|
2152
|
-
}, x = (S) => {
|
|
2153
|
-
if (p)
|
|
2154
|
-
return;
|
|
2155
|
-
let F = null;
|
|
2156
|
-
try {
|
|
2157
|
-
F = S.currentTarget.getBoundingClientRect();
|
|
2158
|
-
} catch {
|
|
2159
|
-
F = null;
|
|
2160
|
-
}
|
|
2161
|
-
const I = F && typeof F.left == "number" ? F.left : 10, w = F && typeof F.bottom == "number" ? F.bottom : 20;
|
|
2162
|
-
m({ x: I, y: w });
|
|
2163
|
-
let j = [];
|
|
2164
|
-
Array.isArray(r) ? j = r ? r.map((E) => ({ label: E.name })) : [] : j = r ? [{ label: r.name }] : [], j.length === 0 && (j = [{ label: t("No file selected") }]), d(j), s((E) => !E);
|
|
2165
|
-
};
|
|
2166
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error: p, children: /* @__PURE__ */ g.jsxs(
|
|
2167
|
-
"div",
|
|
2168
|
-
{
|
|
2169
|
-
style: {
|
|
2170
|
-
display: "flex",
|
|
2171
|
-
alignItems: "center",
|
|
2172
|
-
gap: "var(--reactaform-inline-gap, 8px)",
|
|
2173
|
-
width: "100%"
|
|
2174
|
-
},
|
|
2175
|
-
children: [
|
|
2176
|
-
/* @__PURE__ */ g.jsx(
|
|
2177
|
-
"input",
|
|
2178
|
-
{
|
|
2179
|
-
id: e.name,
|
|
2180
|
-
ref: c,
|
|
2181
|
-
type: "file",
|
|
2182
|
-
accept: e.accept,
|
|
2183
|
-
multiple: e.multiple,
|
|
2184
|
-
style: {
|
|
2185
|
-
width: 0,
|
|
2186
|
-
height: 0,
|
|
2187
|
-
opacity: 0,
|
|
2188
|
-
position: "absolute",
|
|
2189
|
-
zIndex: -1
|
|
2190
|
-
},
|
|
2191
|
-
onChange: y
|
|
2192
|
-
}
|
|
2193
|
-
),
|
|
2194
|
-
/* @__PURE__ */ g.jsx(
|
|
2195
|
-
"label",
|
|
2196
|
-
{
|
|
2197
|
-
htmlFor: e.name,
|
|
2198
|
-
className: $.button,
|
|
2199
|
-
style: {
|
|
2200
|
-
width: "100%",
|
|
2201
|
-
height: "inherit",
|
|
2202
|
-
textAlign: "center"
|
|
2203
|
-
},
|
|
2204
|
-
children: e.multiple ? t("Choose Files...") : t("Choose File...")
|
|
2205
|
-
}
|
|
2206
|
-
),
|
|
2207
|
-
/* @__PURE__ */ g.jsx(
|
|
2208
|
-
"button",
|
|
2209
|
-
{
|
|
2210
|
-
onClick: x,
|
|
2211
|
-
"aria-haspopup": !0,
|
|
2212
|
-
"aria-expanded": i,
|
|
2213
|
-
"aria-label": t("Show selected files"),
|
|
2214
|
-
className: $.button,
|
|
2215
|
-
style: {
|
|
2216
|
-
height: "inherit",
|
|
2217
|
-
display: "inline-block"
|
|
2218
|
-
},
|
|
2219
|
-
children: /* @__PURE__ */ g.jsx("span", { children: "⋮" })
|
|
2220
|
-
}
|
|
2221
|
-
),
|
|
2222
|
-
i && u && l && l.length > 0 && /* @__PURE__ */ g.jsx(
|
|
2223
|
-
ir,
|
|
2224
|
-
{
|
|
2225
|
-
pos: u,
|
|
2226
|
-
options: l,
|
|
2227
|
-
onClose: () => {
|
|
2228
|
-
m(null), s(!1);
|
|
2229
|
-
},
|
|
2230
|
-
onClickOption: () => {
|
|
2231
|
-
}
|
|
2232
|
-
}
|
|
2233
|
-
)
|
|
2234
|
-
]
|
|
2235
|
-
}
|
|
2236
|
-
) });
|
|
2237
|
-
}, Kr = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
|
|
2238
|
-
function Xr(e) {
|
|
2239
|
-
return e.split(",").map((r) => r.trim()).every((r) => Kr.test(r));
|
|
2235
|
+
x()
|
|
2236
|
+
] }) });
|
|
2237
|
+
}, Xr = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
|
|
2238
|
+
function Zr(e) {
|
|
2239
|
+
return e.split(",").map((r) => r.trim()).every((r) => Xr.test(r));
|
|
2240
2240
|
}
|
|
2241
|
-
const
|
|
2241
|
+
const Qr = (e) => !e || e.trim() === "" ? [] : e.split(",").map((r) => r.trim()).filter(Boolean).map(Number), et = ({
|
|
2242
2242
|
field: e,
|
|
2243
2243
|
value: r,
|
|
2244
2244
|
onChange: n,
|
|
2245
2245
|
onError: o
|
|
2246
2246
|
}) => {
|
|
2247
|
-
const { t, definitionName: a } =
|
|
2247
|
+
const { t, definitionName: a } = T(), [s, i] = D(
|
|
2248
2248
|
Array.isArray(r) ? r.join(", ") : String(r ?? "")
|
|
2249
|
-
), u =
|
|
2249
|
+
), u = N.useCallback(
|
|
2250
2250
|
(c) => {
|
|
2251
2251
|
if (c.trim() === "")
|
|
2252
2252
|
return e.required ? t("Value required") : null;
|
|
2253
|
-
if (!
|
|
2253
|
+
if (!Zr(c))
|
|
2254
2254
|
return t("Each value must be a valid float");
|
|
2255
|
-
const
|
|
2256
|
-
if (e.minCount !== void 0 &&
|
|
2255
|
+
const d = Qr(c);
|
|
2256
|
+
if (e.minCount !== void 0 && d.length < e.minCount)
|
|
2257
2257
|
return t("Minimum number of values: {{1}}", e.minCount);
|
|
2258
|
-
if (e.maxCount !== void 0 &&
|
|
2258
|
+
if (e.maxCount !== void 0 && d.length > e.maxCount)
|
|
2259
2259
|
return t("Maximum number of values: {{1}}", e.maxCount);
|
|
2260
|
-
for (const
|
|
2261
|
-
if (e.min !== void 0 && (e.minInclusive ?
|
|
2260
|
+
for (const f of d) {
|
|
2261
|
+
if (e.min !== void 0 && (e.minInclusive ? f < e.min : f <= e.min))
|
|
2262
2262
|
return t(
|
|
2263
2263
|
"Each value must be {{1}} {{2}}",
|
|
2264
2264
|
e.minInclusive ? "≥" : ">",
|
|
2265
2265
|
e.min
|
|
2266
2266
|
);
|
|
2267
|
-
if (e.max !== void 0 && (e.maxInclusive ?
|
|
2267
|
+
if (e.max !== void 0 && (e.maxInclusive ? f > e.max : f >= e.max))
|
|
2268
2268
|
return t(
|
|
2269
2269
|
"Each value must be {{1}} {{2}}",
|
|
2270
2270
|
e.maxInclusive ? "≤" : "<",
|
|
2271
2271
|
e.max
|
|
2272
2272
|
);
|
|
2273
2273
|
}
|
|
2274
|
-
return Y(a, e,
|
|
2274
|
+
return Y(a, e, d, t) ?? null;
|
|
2275
2275
|
},
|
|
2276
2276
|
[a, e, t]
|
|
2277
2277
|
), m = (c) => {
|
|
2278
|
-
const
|
|
2279
|
-
|
|
2280
|
-
}, l = k(null),
|
|
2278
|
+
const d = c.target.value, b = u(d);
|
|
2279
|
+
i(d), n?.(d, b);
|
|
2280
|
+
}, l = k(null), p = k(o);
|
|
2281
2281
|
return C(() => {
|
|
2282
|
-
|
|
2282
|
+
p.current = o;
|
|
2283
2283
|
}, [o]), C(() => {
|
|
2284
|
-
const c = Array.isArray(r) ? r.join(", ") : String(r ?? ""),
|
|
2285
|
-
|
|
2286
|
-
}, [r, e.required, u, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: u(
|
|
2284
|
+
const c = Array.isArray(r) ? r.join(", ") : String(r ?? ""), d = u(c);
|
|
2285
|
+
d !== l.current && (l.current = d, p.current?.(d ?? null));
|
|
2286
|
+
}, [r, e.required, u, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: u(s), children: /* @__PURE__ */ g.jsx(
|
|
2287
2287
|
"input",
|
|
2288
2288
|
{
|
|
2289
2289
|
type: "text",
|
|
2290
|
-
value:
|
|
2290
|
+
value: s,
|
|
2291
2291
|
onChange: m,
|
|
2292
|
-
className:
|
|
2292
|
+
className: K($.input, $.textInput),
|
|
2293
2293
|
style: { flex: 1 }
|
|
2294
2294
|
}
|
|
2295
2295
|
) });
|
|
2296
|
-
},
|
|
2296
|
+
}, rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, tt = (e) => {
|
|
2297
2297
|
const r = Number.parseFloat(e);
|
|
2298
2298
|
return Number.isNaN(r) ? null : r;
|
|
2299
|
-
},
|
|
2299
|
+
}, nt = ({
|
|
2300
2300
|
field: e,
|
|
2301
2301
|
value: r,
|
|
2302
2302
|
onChange: n,
|
|
2303
2303
|
onError: o
|
|
2304
2304
|
}) => {
|
|
2305
|
-
const { t, definitionName: a } =
|
|
2306
|
-
(
|
|
2307
|
-
if (
|
|
2305
|
+
const { t, definitionName: a } = T(), s = k(null), i = N.useCallback(
|
|
2306
|
+
(p) => {
|
|
2307
|
+
if (p.trim() === "")
|
|
2308
2308
|
return e.required ? t("Value required") : null;
|
|
2309
|
-
if (!
|
|
2309
|
+
if (!rt.test(p))
|
|
2310
2310
|
return t("Must be a valid float");
|
|
2311
|
-
const c =
|
|
2311
|
+
const c = tt(p);
|
|
2312
2312
|
return c === null ? t("Must be a valid float") : e.min !== void 0 && (e.minInclusive ? c < e.min : c <= e.min) ? t(
|
|
2313
2313
|
"Must be {{1}} {{2}}",
|
|
2314
2314
|
e.minInclusive ? "≥" : ">",
|
|
@@ -2324,29 +2324,29 @@ const Zr = (e) => !e || e.trim() === "" ? [] : e.split(",").map((r) => r.trim())
|
|
|
2324
2324
|
C(() => {
|
|
2325
2325
|
m.current = o;
|
|
2326
2326
|
}, [o]), C(() => {
|
|
2327
|
-
const
|
|
2328
|
-
c !== u.current && (u.current = c, m.current?.(c ?? null)),
|
|
2329
|
-
}, [r, e,
|
|
2330
|
-
const l = (
|
|
2331
|
-
const c =
|
|
2332
|
-
n?.(c,
|
|
2327
|
+
const p = String(r ?? ""), c = i(p);
|
|
2328
|
+
c !== u.current && (u.current = c, m.current?.(c ?? null)), s.current && document.activeElement !== s.current && (s.current.value = p);
|
|
2329
|
+
}, [r, e, i, t]);
|
|
2330
|
+
const l = (p) => {
|
|
2331
|
+
const c = p.target.value, d = i(c);
|
|
2332
|
+
n?.(c, d);
|
|
2333
2333
|
};
|
|
2334
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error:
|
|
2334
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2335
2335
|
"input",
|
|
2336
2336
|
{
|
|
2337
2337
|
id: e.name,
|
|
2338
2338
|
type: "text",
|
|
2339
2339
|
defaultValue: String(r ?? ""),
|
|
2340
|
-
ref:
|
|
2340
|
+
ref: s,
|
|
2341
2341
|
onChange: l,
|
|
2342
|
-
className:
|
|
2342
|
+
className: K(
|
|
2343
2343
|
$.input,
|
|
2344
2344
|
$.inputNumber
|
|
2345
2345
|
)
|
|
2346
2346
|
}
|
|
2347
2347
|
) });
|
|
2348
2348
|
};
|
|
2349
|
-
function
|
|
2349
|
+
function ot() {
|
|
2350
2350
|
try {
|
|
2351
2351
|
return "/";
|
|
2352
2352
|
} catch {
|
|
@@ -2358,46 +2358,46 @@ function nt() {
|
|
|
2358
2358
|
}
|
|
2359
2359
|
return "/";
|
|
2360
2360
|
}
|
|
2361
|
-
const
|
|
2362
|
-
const { language: n, t: o } =
|
|
2361
|
+
const at = ({ field: e, value: r }) => {
|
|
2362
|
+
const { language: n, t: o } = T(), t = e.alignment || "center", a = {
|
|
2363
2363
|
left: "flex-start",
|
|
2364
2364
|
center: "center",
|
|
2365
2365
|
right: "flex-end"
|
|
2366
|
-
},
|
|
2367
|
-
let
|
|
2368
|
-
|
|
2369
|
-
const u = e.localized?.split(";").map((y) => y.trim()), [m, l] =
|
|
2366
|
+
}, s = typeof r == "string" ? r : "";
|
|
2367
|
+
let i = s && s.trim() !== "" ? s : typeof e.defaultValue == "string" ? e.defaultValue : "";
|
|
2368
|
+
i && !i.startsWith("/") && (i = `${ot()}${i}`);
|
|
2369
|
+
const u = e.localized?.split(";").map((y) => y.trim()), [m, l] = D(i || ""), p = k(i || null);
|
|
2370
2370
|
if (C(() => {
|
|
2371
|
-
if (!
|
|
2372
|
-
const y =
|
|
2373
|
-
if (
|
|
2374
|
-
const F = x.substring(0,
|
|
2371
|
+
if (!i) return;
|
|
2372
|
+
const y = i.split("/"), x = y.pop(), v = x.lastIndexOf(".");
|
|
2373
|
+
if (v === -1) return;
|
|
2374
|
+
const F = x.substring(0, v), R = x.substring(v);
|
|
2375
2375
|
let w = null;
|
|
2376
|
-
u?.includes(n) && (w = `${F}_${n}${
|
|
2376
|
+
u?.includes(n) && (w = `${F}_${n}${R}`);
|
|
2377
2377
|
const j = new AbortController();
|
|
2378
2378
|
if (w) {
|
|
2379
|
-
const
|
|
2380
|
-
fetch(
|
|
2381
|
-
const
|
|
2382
|
-
|
|
2379
|
+
const I = [...y, w].join("/");
|
|
2380
|
+
fetch(I, { method: "HEAD", signal: j.signal }).then((S) => {
|
|
2381
|
+
const A = S.ok ? I : i;
|
|
2382
|
+
A !== p.current && (p.current = A, l(A));
|
|
2383
2383
|
}).catch(() => {
|
|
2384
|
-
|
|
2384
|
+
i !== p.current && (p.current = i, l(i));
|
|
2385
2385
|
});
|
|
2386
2386
|
} else {
|
|
2387
|
-
const
|
|
2388
|
-
|
|
2387
|
+
const I = i;
|
|
2388
|
+
I !== p.current && (p.current = I, requestAnimationFrame(() => l(I)));
|
|
2389
2389
|
}
|
|
2390
2390
|
return () => {
|
|
2391
2391
|
j.abort();
|
|
2392
2392
|
};
|
|
2393
|
-
}, [
|
|
2394
|
-
const { width: c, height:
|
|
2393
|
+
}, [i, n, u]), !m) return null;
|
|
2394
|
+
const { width: c, height: d } = e, b = {}, f = {
|
|
2395
2395
|
borderRadius: "8px",
|
|
2396
2396
|
objectFit: "contain",
|
|
2397
2397
|
boxShadow: "0 2px 6px rgba(0,0,0,0.1)",
|
|
2398
2398
|
margin: "0 0 8px 0"
|
|
2399
2399
|
};
|
|
2400
|
-
return c &&
|
|
2400
|
+
return c && d ? (b.width = c, b.height = d, f.width = `${c}px`, f.height = `${d}px`) : c && !d ? (b.width = c, f.width = `${c}px`, f.height = "auto") : !c && d && (b.height = d, f.width = "auto", f.height = `${d}px`), /* @__PURE__ */ g.jsx(W, { field: e, children: /* @__PURE__ */ g.jsx(
|
|
2401
2401
|
"div",
|
|
2402
2402
|
{
|
|
2403
2403
|
"data-testid": "image-wrapper",
|
|
@@ -2412,36 +2412,36 @@ const ot = ({ field: e, value: r }) => {
|
|
|
2412
2412
|
src: m,
|
|
2413
2413
|
alt: o?.(e.displayName || "Image") || e.displayName || "Image",
|
|
2414
2414
|
...b,
|
|
2415
|
-
style:
|
|
2415
|
+
style: f
|
|
2416
2416
|
}
|
|
2417
2417
|
)
|
|
2418
2418
|
}
|
|
2419
2419
|
) });
|
|
2420
2420
|
};
|
|
2421
|
-
function
|
|
2421
|
+
function st(e) {
|
|
2422
2422
|
const r = /^-?\d+$/;
|
|
2423
2423
|
return e.split(",").map((n) => n.trim()).every((n) => r.test(n));
|
|
2424
2424
|
}
|
|
2425
|
-
const
|
|
2425
|
+
const it = ({
|
|
2426
2426
|
field: e,
|
|
2427
2427
|
value: r,
|
|
2428
2428
|
onChange: n,
|
|
2429
2429
|
onError: o
|
|
2430
2430
|
}) => {
|
|
2431
|
-
const { t, definitionName: a } =
|
|
2432
|
-
Array.isArray(r) ? r.join(
|
|
2433
|
-
), m = (b) => !b || b.trim() === "" ? [] : b.split(
|
|
2431
|
+
const { t, definitionName: a } = T(), s = ",", [i, u] = D(
|
|
2432
|
+
Array.isArray(r) ? r.join(s + " ") : String(r ?? "")
|
|
2433
|
+
), m = (b) => !b || b.trim() === "" ? [] : b.split(s).map((f) => f.trim()).filter(Boolean).map((f) => Number(f)), l = N.useCallback(
|
|
2434
2434
|
(b) => {
|
|
2435
2435
|
if (b.trim() === "")
|
|
2436
2436
|
return e.required ? t("Value required") : null;
|
|
2437
|
-
if (!
|
|
2437
|
+
if (!st(b))
|
|
2438
2438
|
return t("Each value must be a valid integer");
|
|
2439
|
-
const
|
|
2440
|
-
if (e.minCount !== void 0 &&
|
|
2439
|
+
const f = m(b);
|
|
2440
|
+
if (e.minCount !== void 0 && f.length < e.minCount)
|
|
2441
2441
|
return t("Minimum number of values: {{1}}", `${e.minCount}`);
|
|
2442
|
-
if (e.maxCount !== void 0 &&
|
|
2442
|
+
if (e.maxCount !== void 0 && f.length > e.maxCount)
|
|
2443
2443
|
return t("Maximum number of values: {{1}}", `${e.maxCount}`);
|
|
2444
|
-
for (const x of
|
|
2444
|
+
for (const x of f) {
|
|
2445
2445
|
if (e.min !== void 0 && (e.minInclusive ? x < e.min : x <= e.min))
|
|
2446
2446
|
return t(
|
|
2447
2447
|
"Each value must be {{1}} {{2}}",
|
|
@@ -2455,83 +2455,83 @@ const st = ({
|
|
|
2455
2455
|
e.max
|
|
2456
2456
|
);
|
|
2457
2457
|
}
|
|
2458
|
-
return Y(a, e,
|
|
2458
|
+
return Y(a, e, f, t) ?? null;
|
|
2459
2459
|
},
|
|
2460
2460
|
[a, e, t]
|
|
2461
|
-
),
|
|
2462
|
-
const
|
|
2463
|
-
u(
|
|
2464
|
-
}, c = k(null),
|
|
2461
|
+
), p = (b) => {
|
|
2462
|
+
const f = b.target.value, y = l(f);
|
|
2463
|
+
u(f), n?.(f, y);
|
|
2464
|
+
}, c = k(null), d = k(
|
|
2465
2465
|
o
|
|
2466
2466
|
);
|
|
2467
2467
|
return C(() => {
|
|
2468
|
-
|
|
2468
|
+
d.current = o;
|
|
2469
2469
|
}, [o]), C(() => {
|
|
2470
|
-
const b = Array.isArray(r) ? r.join(
|
|
2471
|
-
|
|
2472
|
-
}, [r, e.required, l, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(
|
|
2470
|
+
const b = Array.isArray(r) ? r.join(s + " ") : String(r ?? ""), f = l(b);
|
|
2471
|
+
f !== c.current && (c.current = f, d.current?.(f ?? null));
|
|
2472
|
+
}, [r, e.required, l, t]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(i), children: /* @__PURE__ */ g.jsx(
|
|
2473
2473
|
"input",
|
|
2474
2474
|
{
|
|
2475
2475
|
type: "text",
|
|
2476
|
-
value:
|
|
2477
|
-
onChange:
|
|
2478
|
-
className:
|
|
2476
|
+
value: i,
|
|
2477
|
+
onChange: p,
|
|
2478
|
+
className: K($.input, $.textInput),
|
|
2479
2479
|
style: { flex: 1 }
|
|
2480
2480
|
}
|
|
2481
2481
|
) });
|
|
2482
2482
|
};
|
|
2483
|
-
function
|
|
2483
|
+
function ct(e) {
|
|
2484
2484
|
return /^[-+]?\d*$/.test(e);
|
|
2485
2485
|
}
|
|
2486
|
-
const
|
|
2486
|
+
const lt = ({
|
|
2487
2487
|
field: e,
|
|
2488
2488
|
value: r,
|
|
2489
2489
|
onChange: n,
|
|
2490
2490
|
onError: o
|
|
2491
2491
|
}) => {
|
|
2492
|
-
const { t, definitionName: a } =
|
|
2493
|
-
const
|
|
2494
|
-
return Number.isNaN(
|
|
2495
|
-
}, []), u =
|
|
2492
|
+
const { t, definitionName: a } = T(), s = k(null), i = Z((c) => {
|
|
2493
|
+
const d = parseInt(c, 10);
|
|
2494
|
+
return Number.isNaN(d) ? null : d;
|
|
2495
|
+
}, []), u = N.useCallback(
|
|
2496
2496
|
(c) => {
|
|
2497
2497
|
if (c.trim() === "")
|
|
2498
2498
|
return e.required ? t("Value required") : null;
|
|
2499
|
-
if (!
|
|
2499
|
+
if (!ct(c))
|
|
2500
2500
|
return t("Must be a valid integer");
|
|
2501
|
-
const
|
|
2502
|
-
if (
|
|
2503
|
-
if (e.min !== void 0 && (e.minInclusive ?
|
|
2501
|
+
const d = i(c);
|
|
2502
|
+
if (d === null) return t("Must be a valid integer");
|
|
2503
|
+
if (e.min !== void 0 && (e.minInclusive ? d < e.min : d <= e.min))
|
|
2504
2504
|
return t(
|
|
2505
2505
|
"Must be {{1}} {{2}}",
|
|
2506
2506
|
e.minInclusive ? "≥" : ">",
|
|
2507
2507
|
e.min
|
|
2508
2508
|
);
|
|
2509
|
-
if (e.max !== void 0 && (e.maxInclusive ?
|
|
2509
|
+
if (e.max !== void 0 && (e.maxInclusive ? d > e.max : d >= e.max))
|
|
2510
2510
|
return t(
|
|
2511
2511
|
"Must be {{1}} {{2}}",
|
|
2512
2512
|
e.maxInclusive ? "≤" : "<",
|
|
2513
2513
|
e.max
|
|
2514
2514
|
);
|
|
2515
2515
|
if (e.step !== void 0) {
|
|
2516
|
-
const
|
|
2517
|
-
if (!Number.isInteger(
|
|
2516
|
+
const f = Number(e.step);
|
|
2517
|
+
if (!Number.isInteger(f))
|
|
2518
2518
|
return t("Invalid step value");
|
|
2519
|
-
if (
|
|
2520
|
-
return t("Must be a multiple of {{1}}",
|
|
2519
|
+
if (d % f !== 0)
|
|
2520
|
+
return t("Must be a multiple of {{1}}", f);
|
|
2521
2521
|
}
|
|
2522
|
-
return Y(a, e,
|
|
2522
|
+
return Y(a, e, d, t) ?? null;
|
|
2523
2523
|
},
|
|
2524
|
-
[e, a, t,
|
|
2524
|
+
[e, a, t, i]
|
|
2525
2525
|
), m = k(null), l = k(o);
|
|
2526
2526
|
C(() => {
|
|
2527
2527
|
l.current = o;
|
|
2528
2528
|
}, [o]), C(() => {
|
|
2529
|
-
const c = String(r ?? ""),
|
|
2530
|
-
|
|
2529
|
+
const c = String(r ?? ""), d = u(c);
|
|
2530
|
+
d !== m.current && (m.current = d, l.current?.(d ?? null)), s.current && document.activeElement !== s.current && (s.current.value = c);
|
|
2531
2531
|
}, [r, e, u, t]);
|
|
2532
|
-
const
|
|
2533
|
-
const
|
|
2534
|
-
n?.(
|
|
2532
|
+
const p = (c) => {
|
|
2533
|
+
const d = c.target.value, b = u(d);
|
|
2534
|
+
n?.(d, b);
|
|
2535
2535
|
};
|
|
2536
2536
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2537
2537
|
"input",
|
|
@@ -2539,51 +2539,51 @@ const ct = ({
|
|
|
2539
2539
|
id: e.name,
|
|
2540
2540
|
type: "text",
|
|
2541
2541
|
defaultValue: String(r ?? ""),
|
|
2542
|
-
ref:
|
|
2543
|
-
onChange:
|
|
2544
|
-
className:
|
|
2542
|
+
ref: s,
|
|
2543
|
+
onChange: p,
|
|
2544
|
+
className: K(
|
|
2545
2545
|
$.input,
|
|
2546
2546
|
$.inputNumber
|
|
2547
2547
|
)
|
|
2548
2548
|
}
|
|
2549
2549
|
) });
|
|
2550
|
-
},
|
|
2550
|
+
}, ut = ({
|
|
2551
2551
|
field: e,
|
|
2552
2552
|
value: r,
|
|
2553
2553
|
onChange: n,
|
|
2554
2554
|
onError: o
|
|
2555
2555
|
}) => {
|
|
2556
|
-
const { t, definitionName: a } =
|
|
2556
|
+
const { t, definitionName: a } = T(), s = e.minHeight ?? "80px", i = N.useRef(null), u = N.useRef(null), m = N.useRef(
|
|
2557
2557
|
o
|
|
2558
2558
|
);
|
|
2559
|
-
|
|
2559
|
+
N.useEffect(() => {
|
|
2560
2560
|
m.current = o;
|
|
2561
2561
|
}, [o]);
|
|
2562
|
-
const l =
|
|
2563
|
-
(
|
|
2562
|
+
const l = N.useCallback(
|
|
2563
|
+
(d) => d.trim() === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && d.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && d.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : Y(a, e, d, t),
|
|
2564
2564
|
[e, a, t]
|
|
2565
|
-
),
|
|
2566
|
-
const b =
|
|
2567
|
-
n?.(b,
|
|
2565
|
+
), p = (d) => {
|
|
2566
|
+
const b = d.target.value, f = l(b);
|
|
2567
|
+
n?.(b, f);
|
|
2568
2568
|
};
|
|
2569
2569
|
C(() => {
|
|
2570
|
-
const
|
|
2571
|
-
|
|
2570
|
+
const d = l(r);
|
|
2571
|
+
d !== u.current && (u.current = d, m.current?.(d ?? null)), i.current && i.current.value !== String(r ?? "") && (i.current.value = String(r ?? ""));
|
|
2572
2572
|
}, [r, l]);
|
|
2573
2573
|
const c = {
|
|
2574
2574
|
defaultValue: String(r ?? ""),
|
|
2575
|
-
ref:
|
|
2576
|
-
onChange:
|
|
2575
|
+
ref: i,
|
|
2576
|
+
onChange: p,
|
|
2577
2577
|
style: {
|
|
2578
2578
|
resize: "vertical",
|
|
2579
|
-
minHeight:
|
|
2579
|
+
minHeight: s,
|
|
2580
2580
|
width: "100%",
|
|
2581
2581
|
boxSizing: "border-box"
|
|
2582
2582
|
},
|
|
2583
|
-
className:
|
|
2583
|
+
className: K($.input, $.textInput)
|
|
2584
2584
|
};
|
|
2585
2585
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: l(r), children: /* @__PURE__ */ g.jsx("textarea", { ...c }) });
|
|
2586
|
-
},
|
|
2586
|
+
}, mt = ({
|
|
2587
2587
|
field: e,
|
|
2588
2588
|
value: r,
|
|
2589
2589
|
onChange: n,
|
|
@@ -2593,28 +2593,28 @@ const ct = ({
|
|
|
2593
2593
|
C(() => {
|
|
2594
2594
|
t.current = o;
|
|
2595
2595
|
}, [o]);
|
|
2596
|
-
const { t: a, darkMode:
|
|
2597
|
-
if (!
|
|
2598
|
-
const L =
|
|
2596
|
+
const { t: a, darkMode: s, formStyle: i, fieldStyle: u, definitionName: m } = T(), l = (S, A, M) => {
|
|
2597
|
+
if (!A) return {};
|
|
2598
|
+
const L = S?.[A];
|
|
2599
2599
|
return (M && L ? L[M] : void 0) ?? {};
|
|
2600
|
-
},
|
|
2600
|
+
}, p = k(null), [c, d] = D(!1), [b, f] = D(
|
|
2601
2601
|
null
|
|
2602
2602
|
), y = G(
|
|
2603
|
-
() => e.options.map((
|
|
2603
|
+
() => e.options.map((S) => ({ value: S.value, label: a(S.label) })),
|
|
2604
2604
|
[e.options, a]
|
|
2605
2605
|
), x = G(() => {
|
|
2606
|
-
const
|
|
2607
|
-
return
|
|
2608
|
-
}, [r, y]),
|
|
2609
|
-
const
|
|
2610
|
-
return e.required &&
|
|
2606
|
+
const S = Array.isArray(r) ? r : [], A = new Set(y.map((M) => M.value));
|
|
2607
|
+
return S.filter((M) => A.has(M));
|
|
2608
|
+
}, [r, y]), v = (S) => {
|
|
2609
|
+
const A = Array.isArray(S) ? S : [];
|
|
2610
|
+
return e.required && A.length === 0 ? a("Value required") : Y(m, e, A, a) ?? null;
|
|
2611
2611
|
}, F = () => {
|
|
2612
|
-
if (!
|
|
2613
|
-
const
|
|
2614
|
-
|
|
2615
|
-
},
|
|
2616
|
-
const
|
|
2617
|
-
t.current?.(M ?? null), n?.(
|
|
2612
|
+
if (!p.current) return;
|
|
2613
|
+
const S = p.current.getBoundingClientRect();
|
|
2614
|
+
f({ x: S.left, y: S.bottom }), d((A) => !A);
|
|
2615
|
+
}, R = (S) => {
|
|
2616
|
+
const A = x.includes(S) ? x.filter((z) => z !== S) : [...x, S], M = v(A);
|
|
2617
|
+
t.current?.(M ?? null), n?.(A, M);
|
|
2618
2618
|
}, w = G(() => ({
|
|
2619
2619
|
height: "var(--reactaform-input-height, 2.5rem)",
|
|
2620
2620
|
padding: "var(--reactaform-input-padding, 8px)",
|
|
@@ -2627,9 +2627,9 @@ const ct = ({
|
|
|
2627
2627
|
border: "1px solid var(--reactaform-border-color, #ccc)",
|
|
2628
2628
|
background: "var(--reactaform-secondary-bg, #fff)",
|
|
2629
2629
|
color: "var(--reactaform-text-color, #000)",
|
|
2630
|
-
...l(
|
|
2630
|
+
...l(i, "multiSelect", "control"),
|
|
2631
2631
|
...l(u, void 0, "control")
|
|
2632
|
-
}), [
|
|
2632
|
+
}), [i, u]), j = G(() => ({
|
|
2633
2633
|
position: "absolute",
|
|
2634
2634
|
right: "1.5em",
|
|
2635
2635
|
top: "50%",
|
|
@@ -2640,9 +2640,9 @@ const ct = ({
|
|
|
2640
2640
|
fontSize: "0.8em",
|
|
2641
2641
|
color: "var(--reactaform-text-muted, #999)",
|
|
2642
2642
|
padding: 0,
|
|
2643
|
-
...l(
|
|
2643
|
+
...l(i, "multiSelect", "clearButton"),
|
|
2644
2644
|
...l(u, void 0, "clearButton")
|
|
2645
|
-
}), [
|
|
2645
|
+
}), [i, u]), I = G(() => ({
|
|
2646
2646
|
position: "absolute",
|
|
2647
2647
|
right: "0.7em",
|
|
2648
2648
|
top: "50%",
|
|
@@ -2650,14 +2650,14 @@ const ct = ({
|
|
|
2650
2650
|
pointerEvents: "none",
|
|
2651
2651
|
fontSize: "0.8em",
|
|
2652
2652
|
color: "var(--reactaform-text-muted, #999)",
|
|
2653
|
-
...l(
|
|
2653
|
+
...l(i, "multiSelect", "arrow"),
|
|
2654
2654
|
...l(u, void 0, "arrow")
|
|
2655
|
-
}), [
|
|
2655
|
+
}), [i, u]);
|
|
2656
2656
|
return /* @__PURE__ */ g.jsxs("div", { children: [
|
|
2657
2657
|
/* @__PURE__ */ g.jsx(W, { field: e, error: null, children: /* @__PURE__ */ g.jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ g.jsxs(
|
|
2658
2658
|
"div",
|
|
2659
2659
|
{
|
|
2660
|
-
ref:
|
|
2660
|
+
ref: p,
|
|
2661
2661
|
className: "reactaform-multiselection-control",
|
|
2662
2662
|
style: w,
|
|
2663
2663
|
onClick: F,
|
|
@@ -2665,8 +2665,8 @@ const ct = ({
|
|
|
2665
2665
|
role: "button",
|
|
2666
2666
|
"aria-haspopup": "listbox",
|
|
2667
2667
|
"aria-expanded": c,
|
|
2668
|
-
onKeyDown: (
|
|
2669
|
-
(
|
|
2668
|
+
onKeyDown: (S) => {
|
|
2669
|
+
(S.key === "Enter" || S.key === " ") && (S.preventDefault(), F());
|
|
2670
2670
|
},
|
|
2671
2671
|
children: [
|
|
2672
2672
|
/* @__PURE__ */ g.jsxs(
|
|
@@ -2686,44 +2686,44 @@ const ct = ({
|
|
|
2686
2686
|
{
|
|
2687
2687
|
type: "button",
|
|
2688
2688
|
"aria-label": "Clear selections",
|
|
2689
|
-
onClick: (
|
|
2690
|
-
|
|
2689
|
+
onClick: (S) => {
|
|
2690
|
+
S.stopPropagation(), n?.([], null);
|
|
2691
2691
|
},
|
|
2692
2692
|
style: j,
|
|
2693
2693
|
children: /* @__PURE__ */ g.jsx("span", { style: j, "aria-hidden": !0, children: "✖" })
|
|
2694
2694
|
}
|
|
2695
2695
|
),
|
|
2696
|
-
/* @__PURE__ */ g.jsx("span", { style:
|
|
2696
|
+
/* @__PURE__ */ g.jsx("span", { style: I, "aria-hidden": !0, children: "▼" })
|
|
2697
2697
|
]
|
|
2698
2698
|
}
|
|
2699
2699
|
) }) }),
|
|
2700
2700
|
c && b && /* @__PURE__ */ g.jsx(
|
|
2701
|
-
|
|
2701
|
+
ft,
|
|
2702
2702
|
{
|
|
2703
2703
|
position: b,
|
|
2704
2704
|
options: y,
|
|
2705
2705
|
selectedValues: x,
|
|
2706
|
-
onToggleOption:
|
|
2707
|
-
onClose: () =>
|
|
2708
|
-
controlRef:
|
|
2709
|
-
darkMode:
|
|
2706
|
+
onToggleOption: R,
|
|
2707
|
+
onClose: () => d(!1),
|
|
2708
|
+
controlRef: p,
|
|
2709
|
+
darkMode: s
|
|
2710
2710
|
}
|
|
2711
2711
|
)
|
|
2712
2712
|
] });
|
|
2713
|
-
},
|
|
2713
|
+
}, ft = ({
|
|
2714
2714
|
position: e,
|
|
2715
2715
|
options: r,
|
|
2716
2716
|
selectedValues: n,
|
|
2717
2717
|
onToggleOption: o,
|
|
2718
2718
|
onClose: t,
|
|
2719
2719
|
controlRef: a,
|
|
2720
|
-
darkMode:
|
|
2720
|
+
darkMode: s
|
|
2721
2721
|
}) => {
|
|
2722
|
-
const
|
|
2723
|
-
if (!
|
|
2724
|
-
const M = j?.[
|
|
2725
|
-
return (
|
|
2726
|
-
},
|
|
2722
|
+
const i = k(null), [u, m] = D(-1), { formStyle: l, fieldStyle: p } = T(), c = (j, I, S) => {
|
|
2723
|
+
if (!I) return {};
|
|
2724
|
+
const M = j?.[I];
|
|
2725
|
+
return (S && M ? M[S] : void 0) ?? {};
|
|
2726
|
+
}, d = G(() => ({
|
|
2727
2727
|
maxHeight: 200,
|
|
2728
2728
|
overflowY: "auto",
|
|
2729
2729
|
background: "var(--reactaform-secondary-bg, #fff)",
|
|
@@ -2735,8 +2735,8 @@ const ct = ({
|
|
|
2735
2735
|
color: "var(--reactaform-text-color, #000)",
|
|
2736
2736
|
fontSize: "var(--reactaform-popup-font-size, 0.875rem)",
|
|
2737
2737
|
...c(l, "multiSelect", "popup"),
|
|
2738
|
-
...c(
|
|
2739
|
-
}), [l,
|
|
2738
|
+
...c(p, void 0, "popup")
|
|
2739
|
+
}), [l, p]), b = G(() => ({
|
|
2740
2740
|
padding: "6px 8px",
|
|
2741
2741
|
cursor: "pointer",
|
|
2742
2742
|
display: "flex",
|
|
@@ -2744,40 +2744,40 @@ const ct = ({
|
|
|
2744
2744
|
background: "transparent",
|
|
2745
2745
|
color: "var(--reactaform-text-color, #000)",
|
|
2746
2746
|
...c(l, "multiSelect", "option"),
|
|
2747
|
-
...c(
|
|
2748
|
-
}), [l,
|
|
2747
|
+
...c(p, void 0, "option")
|
|
2748
|
+
}), [l, p]);
|
|
2749
2749
|
C(() => {
|
|
2750
|
-
const j = (
|
|
2751
|
-
const
|
|
2752
|
-
!
|
|
2750
|
+
const j = (I) => {
|
|
2751
|
+
const S = I.target;
|
|
2752
|
+
!i.current?.contains(S) && !a.current?.contains(S) && t();
|
|
2753
2753
|
};
|
|
2754
2754
|
return document.addEventListener("mousedown", j), () => document.removeEventListener("mousedown", j);
|
|
2755
2755
|
}, [t, a]), C(() => {
|
|
2756
|
-
|
|
2756
|
+
i.current && r.length > 0 && requestAnimationFrame(() => m((j) => j === -1 ? 0 : j));
|
|
2757
2757
|
}, [r.length]), C(() => {
|
|
2758
|
-
if (!
|
|
2759
|
-
const j =
|
|
2758
|
+
if (!i.current || u < 0) return;
|
|
2759
|
+
const j = i.current.querySelector(`#multi-opt-${u}`);
|
|
2760
2760
|
j && requestAnimationFrame(() => j.focus());
|
|
2761
2761
|
}, [u]);
|
|
2762
|
-
const
|
|
2762
|
+
const f = 250, y = 200, [x, v] = D(
|
|
2763
2763
|
null
|
|
2764
|
-
), [F,
|
|
2764
|
+
), [F, R] = D(null);
|
|
2765
2765
|
if (C(() => {
|
|
2766
2766
|
if (typeof window > "u") return;
|
|
2767
2767
|
const j = () => {
|
|
2768
|
-
let
|
|
2768
|
+
let A = e.x, M = e.y, z = f;
|
|
2769
2769
|
const L = a?.current;
|
|
2770
2770
|
if (L) {
|
|
2771
2771
|
const J = L.getBoundingClientRect();
|
|
2772
|
-
|
|
2772
|
+
A = J.left, M = J.bottom, z = Math.max(80, Math.round(J.width));
|
|
2773
2773
|
}
|
|
2774
|
-
|
|
2774
|
+
A = Math.min(A, window.innerWidth - z), M = Math.min(M, window.innerHeight - y), v({ left: A, top: M }), R(z);
|
|
2775
2775
|
};
|
|
2776
2776
|
j(), window.addEventListener("scroll", j, !0), window.addEventListener("resize", j);
|
|
2777
|
-
let
|
|
2778
|
-
const
|
|
2779
|
-
return typeof ResizeObserver < "u" &&
|
|
2780
|
-
window.removeEventListener("scroll", j, !0), window.removeEventListener("resize", j),
|
|
2777
|
+
let I = null;
|
|
2778
|
+
const S = a?.current;
|
|
2779
|
+
return typeof ResizeObserver < "u" && S && (I = new ResizeObserver(() => j()), I.observe(S)), () => {
|
|
2780
|
+
window.removeEventListener("scroll", j, !0), window.removeEventListener("resize", j), I && S && I.unobserve(S);
|
|
2781
2781
|
};
|
|
2782
2782
|
}, [a, e.x, e.y]), typeof window > "u") return null;
|
|
2783
2783
|
let w = document.getElementById("popup-root");
|
|
@@ -2785,27 +2785,27 @@ const ct = ({
|
|
|
2785
2785
|
/* @__PURE__ */ g.jsx(
|
|
2786
2786
|
"div",
|
|
2787
2787
|
{
|
|
2788
|
-
ref:
|
|
2788
|
+
ref: i,
|
|
2789
2789
|
role: "listbox",
|
|
2790
2790
|
"aria-activedescendant": u >= 0 ? `multi-opt-${u}` : void 0,
|
|
2791
2791
|
style: {
|
|
2792
2792
|
position: "absolute",
|
|
2793
2793
|
top: x ? x.top : e.y,
|
|
2794
2794
|
left: x ? x.left : e.x,
|
|
2795
|
-
width: F ??
|
|
2795
|
+
width: F ?? f,
|
|
2796
2796
|
// spread the static popup styles
|
|
2797
|
-
...
|
|
2797
|
+
...d
|
|
2798
2798
|
},
|
|
2799
|
-
"data-reactaform-theme":
|
|
2800
|
-
children: r.map((j,
|
|
2801
|
-
const
|
|
2799
|
+
"data-reactaform-theme": s ? "dark" : "light",
|
|
2800
|
+
children: r.map((j, I) => {
|
|
2801
|
+
const S = n.includes(j.value), A = s ? "var(--reactaform-hover-bg, rgba(255,255,255,0.01))" : "var(--reactaform-hover-bg, #eee)", M = {
|
|
2802
2802
|
...b,
|
|
2803
|
-
background:
|
|
2803
|
+
background: I === u ? A : b.background
|
|
2804
2804
|
};
|
|
2805
2805
|
return /* @__PURE__ */ g.jsxs(
|
|
2806
2806
|
"div",
|
|
2807
2807
|
{
|
|
2808
|
-
id: `multi-opt-${
|
|
2808
|
+
id: `multi-opt-${I}`,
|
|
2809
2809
|
onMouseDown: (z) => {
|
|
2810
2810
|
z.stopPropagation(), o(j.value);
|
|
2811
2811
|
},
|
|
@@ -2833,29 +2833,29 @@ const ct = ({
|
|
|
2833
2833
|
break;
|
|
2834
2834
|
}
|
|
2835
2835
|
},
|
|
2836
|
-
tabIndex:
|
|
2836
|
+
tabIndex: I === u ? 0 : -1,
|
|
2837
2837
|
role: "option",
|
|
2838
|
-
"aria-selected":
|
|
2838
|
+
"aria-selected": S,
|
|
2839
2839
|
style: M,
|
|
2840
2840
|
onMouseEnter: (z) => {
|
|
2841
|
-
z.currentTarget.style.background =
|
|
2841
|
+
z.currentTarget.style.background = A, m(I);
|
|
2842
2842
|
},
|
|
2843
2843
|
onMouseLeave: (z) => {
|
|
2844
|
-
z.currentTarget.style.background = "transparent", m((L) => L ===
|
|
2844
|
+
z.currentTarget.style.background = "transparent", m((L) => L === I ? -1 : L);
|
|
2845
2845
|
},
|
|
2846
2846
|
children: [
|
|
2847
2847
|
/* @__PURE__ */ g.jsx(
|
|
2848
2848
|
"input",
|
|
2849
2849
|
{
|
|
2850
2850
|
type: "checkbox",
|
|
2851
|
-
checked:
|
|
2851
|
+
checked: S,
|
|
2852
2852
|
readOnly: !0,
|
|
2853
2853
|
style: {
|
|
2854
2854
|
marginRight: 8,
|
|
2855
2855
|
width: "1.125em",
|
|
2856
2856
|
height: "1.125em",
|
|
2857
2857
|
verticalAlign: "middle",
|
|
2858
|
-
accentColor:
|
|
2858
|
+
accentColor: s ? "#10b981" : "#22c55e",
|
|
2859
2859
|
cursor: "pointer"
|
|
2860
2860
|
}
|
|
2861
2861
|
}
|
|
@@ -2870,41 +2870,41 @@ const ct = ({
|
|
|
2870
2870
|
),
|
|
2871
2871
|
w
|
|
2872
2872
|
);
|
|
2873
|
-
},
|
|
2873
|
+
}, dt = ({
|
|
2874
2874
|
field: e,
|
|
2875
2875
|
value: r,
|
|
2876
2876
|
onChange: n,
|
|
2877
2877
|
onError: o
|
|
2878
2878
|
}) => {
|
|
2879
|
-
const { t, definitionName: a } =
|
|
2880
|
-
(
|
|
2881
|
-
[a, e, t,
|
|
2882
|
-
),
|
|
2879
|
+
const { t, definitionName: a } = T(), s = N.useRef(null), i = e.min ?? void 0, u = e.max ?? void 0, m = Math.max(1, Math.round(e.step ?? 1)), l = Z(
|
|
2880
|
+
(f) => isNaN(f) ? t("Must be a valid integer") : Number.isInteger(f) ? i !== void 0 && f < i ? t("Must be �?{{1}}", i) : u !== void 0 && f > u ? t("Must be �?{{1}}", u) : Y(a, e, f, t) ?? null : t("Must be an integer"),
|
|
2881
|
+
[a, e, t, i, u]
|
|
2882
|
+
), p = k(null), c = k(
|
|
2883
2883
|
o
|
|
2884
2884
|
);
|
|
2885
2885
|
C(() => {
|
|
2886
2886
|
c.current = o;
|
|
2887
2887
|
}, [o]), C(() => {
|
|
2888
|
-
if (document.activeElement ===
|
|
2888
|
+
if (document.activeElement === s.current) return;
|
|
2889
2889
|
const y = String(r), x = l(r);
|
|
2890
|
-
|
|
2890
|
+
s.current && (s.current.value = y), x !== p.current && (p.current = x, c.current?.(x ?? null));
|
|
2891
2891
|
}, [r, l]);
|
|
2892
|
-
const
|
|
2893
|
-
if (
|
|
2894
|
-
const x = Number(
|
|
2892
|
+
const d = (f) => {
|
|
2893
|
+
if (f.trim() === "") return e.required ? t("Value required") : null;
|
|
2894
|
+
const x = Number(f);
|
|
2895
2895
|
return l(x);
|
|
2896
|
-
}, b = (
|
|
2897
|
-
const y =
|
|
2898
|
-
n?.(x,
|
|
2896
|
+
}, b = (f) => {
|
|
2897
|
+
const y = f.target.value, x = f.target.valueAsNumber, v = d(y);
|
|
2898
|
+
n?.(x, v);
|
|
2899
2899
|
};
|
|
2900
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error:
|
|
2900
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: d(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2901
2901
|
"input",
|
|
2902
2902
|
{
|
|
2903
|
-
ref:
|
|
2903
|
+
ref: s,
|
|
2904
2904
|
id: e.name,
|
|
2905
2905
|
type: "number",
|
|
2906
2906
|
defaultValue: String(r ?? ""),
|
|
2907
|
-
min:
|
|
2907
|
+
min: i,
|
|
2908
2908
|
max: u,
|
|
2909
2909
|
step: m,
|
|
2910
2910
|
onChange: b,
|
|
@@ -2912,15 +2912,15 @@ const ct = ({
|
|
|
2912
2912
|
className: $.input
|
|
2913
2913
|
}
|
|
2914
2914
|
) });
|
|
2915
|
-
},
|
|
2915
|
+
}, pt = ({
|
|
2916
2916
|
field: e,
|
|
2917
2917
|
value: r,
|
|
2918
2918
|
onChange: n,
|
|
2919
2919
|
onError: o
|
|
2920
2920
|
}) => {
|
|
2921
|
-
const { t } =
|
|
2922
|
-
(
|
|
2923
|
-
const c = String(
|
|
2921
|
+
const { t } = T(), a = N.useRef(null), { definitionName: s } = T(), i = Z(
|
|
2922
|
+
(p) => {
|
|
2923
|
+
const c = String(p ?? "").trim();
|
|
2924
2924
|
if (c === "")
|
|
2925
2925
|
return e.required ? t("Value required") : null;
|
|
2926
2926
|
if (e.pattern)
|
|
@@ -2932,74 +2932,74 @@ const ct = ({
|
|
|
2932
2932
|
);
|
|
2933
2933
|
} catch {
|
|
2934
2934
|
}
|
|
2935
|
-
return Y(
|
|
2935
|
+
return Y(s, e, c, t);
|
|
2936
2936
|
},
|
|
2937
|
-
[
|
|
2937
|
+
[s, e, t]
|
|
2938
2938
|
), u = k(null), m = k(o);
|
|
2939
2939
|
C(() => {
|
|
2940
2940
|
m.current = o;
|
|
2941
2941
|
}, [o]), C(() => {
|
|
2942
|
-
const
|
|
2943
|
-
a.current && a.current.value !== String(
|
|
2944
|
-
}, [r,
|
|
2945
|
-
const l = (
|
|
2946
|
-
const c =
|
|
2942
|
+
const p = String(r ?? ""), c = i(p);
|
|
2943
|
+
a.current && a.current.value !== String(p) && (a.current.value = String(p)), c !== u.current && (u.current = c, m.current?.(c ?? null));
|
|
2944
|
+
}, [r, i]);
|
|
2945
|
+
const l = (p) => {
|
|
2946
|
+
const c = p.target.value, d = c.trim();
|
|
2947
2947
|
let b = null;
|
|
2948
|
-
if (
|
|
2948
|
+
if (d === "") {
|
|
2949
2949
|
b = e.required ? t("Value required") : null, n?.(c, b);
|
|
2950
2950
|
return;
|
|
2951
2951
|
}
|
|
2952
|
-
!b && e.pattern && !new RegExp(e.pattern).test(
|
|
2952
|
+
!b && e.pattern && !new RegExp(e.pattern).test(d) && (b = t("Phone number does not match pattern: {{1}}", `${e.pattern}`)), n?.(c, b);
|
|
2953
2953
|
};
|
|
2954
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error:
|
|
2954
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2955
2955
|
"input",
|
|
2956
2956
|
{
|
|
2957
2957
|
type: "tel",
|
|
2958
2958
|
defaultValue: String(r ?? ""),
|
|
2959
2959
|
ref: a,
|
|
2960
2960
|
onChange: l,
|
|
2961
|
-
className:
|
|
2961
|
+
className: K($.input, $.textInput)
|
|
2962
2962
|
}
|
|
2963
2963
|
) });
|
|
2964
|
-
},
|
|
2965
|
-
const { t, definitionName: a } =
|
|
2964
|
+
}, gt = ({ field: e, value: r, onChange: n, onError: o }) => {
|
|
2965
|
+
const { t, definitionName: a } = T(), s = e.layout?.toLowerCase() === "horizontal" ? "row" : "column", i = k(null), u = k(o);
|
|
2966
2966
|
C(() => {
|
|
2967
2967
|
u.current = o;
|
|
2968
2968
|
}, [o]);
|
|
2969
2969
|
const m = Z(
|
|
2970
|
-
(
|
|
2970
|
+
(p) => p === "" || p === null || p === void 0 ? t("Value required") : !e.options || e.options.length === 0 ? null : e.options.some((d) => d.value === p) ? Y(a, e, p, t) ?? null : t("Invalid option selected"),
|
|
2971
2971
|
[e, t, a]
|
|
2972
2972
|
);
|
|
2973
2973
|
C(() => {
|
|
2974
|
-
const
|
|
2975
|
-
if (u.current?.(c ?? null),
|
|
2976
|
-
const
|
|
2977
|
-
|
|
2974
|
+
const p = r != null ? String(r) : "", c = m(p);
|
|
2975
|
+
if (u.current?.(c ?? null), i.current) {
|
|
2976
|
+
const d = Array.from(
|
|
2977
|
+
i.current.querySelectorAll("input[type=radio]")
|
|
2978
2978
|
);
|
|
2979
2979
|
if (c && e.options && e.options.length > 0) {
|
|
2980
2980
|
const b = String(e.options[0].value);
|
|
2981
|
-
|
|
2981
|
+
d.forEach((f) => f.checked = f.value === b), n?.(b, null);
|
|
2982
2982
|
} else
|
|
2983
|
-
|
|
2983
|
+
d.forEach((b) => b.checked = b.value === p);
|
|
2984
2984
|
}
|
|
2985
2985
|
}, [r, m, n, e.options]);
|
|
2986
|
-
const l = (
|
|
2987
|
-
const c =
|
|
2988
|
-
u.current?.(
|
|
2986
|
+
const l = (p) => {
|
|
2987
|
+
const c = p.target.value, d = m(c);
|
|
2988
|
+
u.current?.(d ?? null), n?.(c, d);
|
|
2989
2989
|
};
|
|
2990
2990
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: m(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
2991
2991
|
"div",
|
|
2992
2992
|
{
|
|
2993
2993
|
style: {
|
|
2994
2994
|
display: "flex",
|
|
2995
|
-
flexDirection:
|
|
2996
|
-
flexWrap:
|
|
2997
|
-
gap:
|
|
2998
|
-
alignItems:
|
|
2995
|
+
flexDirection: s,
|
|
2996
|
+
flexWrap: s === "row" ? "wrap" : "nowrap",
|
|
2997
|
+
gap: s === "row" ? "12px" : "4px",
|
|
2998
|
+
alignItems: s === "row" ? "center" : "flex-start",
|
|
2999
2999
|
width: "100%"
|
|
3000
3000
|
},
|
|
3001
|
-
ref:
|
|
3002
|
-
children: (e.options ?? []).map((
|
|
3001
|
+
ref: i,
|
|
3002
|
+
children: (e.options ?? []).map((p) => /* @__PURE__ */ g.jsxs(
|
|
3003
3003
|
"label",
|
|
3004
3004
|
{
|
|
3005
3005
|
style: {
|
|
@@ -3014,22 +3014,22 @@ const ct = ({
|
|
|
3014
3014
|
{
|
|
3015
3015
|
type: "radio",
|
|
3016
3016
|
name: e.name,
|
|
3017
|
-
value: String(
|
|
3018
|
-
defaultChecked: String(r ?? "") === String(
|
|
3017
|
+
value: String(p.value),
|
|
3018
|
+
defaultChecked: String(r ?? "") === String(p.value),
|
|
3019
3019
|
onChange: l
|
|
3020
3020
|
}
|
|
3021
3021
|
),
|
|
3022
|
-
t(
|
|
3022
|
+
t(p.label)
|
|
3023
3023
|
]
|
|
3024
3024
|
},
|
|
3025
|
-
String(
|
|
3025
|
+
String(p.value)
|
|
3026
3026
|
))
|
|
3027
3027
|
}
|
|
3028
3028
|
) });
|
|
3029
|
-
},
|
|
3029
|
+
}, ht = {
|
|
3030
3030
|
display: "flex",
|
|
3031
3031
|
gap: 4
|
|
3032
|
-
},
|
|
3032
|
+
}, bt = {
|
|
3033
3033
|
cursor: "pointer",
|
|
3034
3034
|
fontSize: "1.5rem",
|
|
3035
3035
|
lineHeight: 1,
|
|
@@ -3037,91 +3037,150 @@ const ct = ({
|
|
|
3037
3037
|
marginRight: "0.25rem",
|
|
3038
3038
|
userSelect: "none",
|
|
3039
3039
|
transition: "color 0.12s ease"
|
|
3040
|
-
},
|
|
3040
|
+
}, yt = ({
|
|
3041
3041
|
field: e,
|
|
3042
3042
|
value: r,
|
|
3043
3043
|
onChange: n,
|
|
3044
3044
|
onError: o
|
|
3045
3045
|
}) => {
|
|
3046
|
-
const { t, definitionName: a } =
|
|
3046
|
+
const { t, definitionName: a } = T(), [s, i] = D(null), u = e.max || 5, m = Z(
|
|
3047
3047
|
(b) => e.required && b === 0 ? t("Value required") : Y(a, e, b, t) ?? null,
|
|
3048
3048
|
[e, t, a]
|
|
3049
|
-
), l = k(null),
|
|
3049
|
+
), l = k(null), p = k(o);
|
|
3050
3050
|
C(() => {
|
|
3051
|
-
|
|
3051
|
+
p.current = o;
|
|
3052
3052
|
}, [o]), C(() => {
|
|
3053
3053
|
let b = r || 0;
|
|
3054
3054
|
r < 0 && (b = 0), r > u && (b = u);
|
|
3055
|
-
const
|
|
3056
|
-
|
|
3055
|
+
const f = m(b);
|
|
3056
|
+
f !== l.current && (l.current = f, p.current?.(f ?? null));
|
|
3057
3057
|
}, [r, m, u]);
|
|
3058
3058
|
const c = (b) => {
|
|
3059
|
-
const
|
|
3060
|
-
n?.(b,
|
|
3061
|
-
},
|
|
3059
|
+
const f = m(b);
|
|
3060
|
+
n?.(b, f);
|
|
3061
|
+
}, d = (() => {
|
|
3062
3062
|
let b = r || 0;
|
|
3063
3063
|
return b < 0 && (b = 0), b > u && (b = u), b;
|
|
3064
3064
|
})();
|
|
3065
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error: m(
|
|
3066
|
-
const b = e.icon,
|
|
3065
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: m(d), children: /* @__PURE__ */ g.jsx("div", { style: ht, children: (() => {
|
|
3066
|
+
const b = e.icon, f = b && String(b).trim() ? String(b) : "★";
|
|
3067
3067
|
return [...Array(u)].map((y, x) => {
|
|
3068
|
-
const
|
|
3068
|
+
const v = x < d, R = s !== null && x <= s || v ? "gold" : "lightgray";
|
|
3069
3069
|
return /* @__PURE__ */ g.jsx(
|
|
3070
3070
|
"span",
|
|
3071
3071
|
{
|
|
3072
3072
|
onClick: () => c(x + 1),
|
|
3073
|
-
onMouseEnter: () =>
|
|
3074
|
-
onMouseLeave: () =>
|
|
3075
|
-
style: { ...
|
|
3073
|
+
onMouseEnter: () => i(x),
|
|
3074
|
+
onMouseLeave: () => i(null),
|
|
3075
|
+
style: { ...bt, color: R },
|
|
3076
3076
|
"aria-label": `Rating ${x + 1}`,
|
|
3077
3077
|
title: t(`${e.displayName} ${x + 1}`),
|
|
3078
|
-
children:
|
|
3078
|
+
children: f
|
|
3079
3079
|
},
|
|
3080
3080
|
x
|
|
3081
3081
|
);
|
|
3082
3082
|
});
|
|
3083
3083
|
})() }) });
|
|
3084
|
-
},
|
|
3085
|
-
|
|
3086
|
-
|
|
3084
|
+
}, xt = ({
|
|
3085
|
+
field: e,
|
|
3086
|
+
value: r,
|
|
3087
|
+
onChange: n,
|
|
3088
|
+
onError: o
|
|
3089
|
+
}) => {
|
|
3090
|
+
const { t, definitionName: a } = T(), s = N.useRef(null), i = N.useRef(null), u = N.useRef(
|
|
3091
|
+
o
|
|
3092
|
+
);
|
|
3093
|
+
N.useEffect(() => {
|
|
3094
|
+
u.current = o;
|
|
3095
|
+
}, [o]);
|
|
3096
|
+
const m = G(
|
|
3097
|
+
() => e.pattern ? new RegExp(e.pattern) : null,
|
|
3098
|
+
[e.pattern]
|
|
3099
|
+
), l = N.useCallback(
|
|
3100
|
+
(f) => f === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && f.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && f.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : m && !m.test(f) ? t("Input does not match pattern: {{1}}", e.pattern) : Y(a, e, f, t),
|
|
3101
|
+
[e, a, t, m]
|
|
3102
|
+
), p = (f) => {
|
|
3103
|
+
const y = f.target.value, x = l(y);
|
|
3104
|
+
n?.(y, x);
|
|
3105
|
+
};
|
|
3106
|
+
C(() => {
|
|
3107
|
+
const f = l(r ?? "");
|
|
3108
|
+
s.current && s.current.value !== String(r ?? "") && (s.current.value = String(r ?? "")), f !== i.current && (i.current = f, u.current?.(f ?? null));
|
|
3109
|
+
}, [r, l]);
|
|
3110
|
+
const [c, d] = N.useState(!1), b = () => d((f) => !f);
|
|
3111
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: l(String(r ?? "")), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8, width: "100%" }, children: [
|
|
3112
|
+
/* @__PURE__ */ g.jsx(
|
|
3113
|
+
"input",
|
|
3114
|
+
{
|
|
3115
|
+
id: e.name,
|
|
3116
|
+
type: c ? "text" : "password",
|
|
3117
|
+
defaultValue: String(r ?? ""),
|
|
3118
|
+
ref: s,
|
|
3119
|
+
onChange: p,
|
|
3120
|
+
className: K($.input, $.textInput),
|
|
3121
|
+
style: { flex: 1, minWidth: 0 }
|
|
3122
|
+
}
|
|
3123
|
+
),
|
|
3124
|
+
/* @__PURE__ */ g.jsx(
|
|
3125
|
+
"button",
|
|
3126
|
+
{
|
|
3127
|
+
type: "button",
|
|
3128
|
+
onClick: b,
|
|
3129
|
+
"aria-label": t(c ? "Hide password" : "Show password"),
|
|
3130
|
+
style: {
|
|
3131
|
+
background: "transparent",
|
|
3132
|
+
border: "none",
|
|
3133
|
+
cursor: "pointer",
|
|
3134
|
+
fontSize: 16,
|
|
3135
|
+
lineHeight: 1,
|
|
3136
|
+
padding: "4px 6px",
|
|
3137
|
+
flexShrink: 0
|
|
3138
|
+
},
|
|
3139
|
+
children: c ? "🙈" : "👁️"
|
|
3140
|
+
}
|
|
3141
|
+
)
|
|
3142
|
+
] }) });
|
|
3143
|
+
}, vt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/;
|
|
3144
|
+
function wt(e) {
|
|
3145
|
+
return vt.test(e);
|
|
3087
3146
|
}
|
|
3088
|
-
const
|
|
3147
|
+
const St = ({
|
|
3089
3148
|
field: e,
|
|
3090
3149
|
value: r,
|
|
3091
3150
|
onChange: n,
|
|
3092
3151
|
onError: o
|
|
3093
3152
|
}) => {
|
|
3094
|
-
const { t, definitionName: a } =
|
|
3153
|
+
const { t, definitionName: a } = T(), s = k(null), i = k(null), u = N.useCallback(
|
|
3095
3154
|
(b) => {
|
|
3096
|
-
let
|
|
3155
|
+
let f = null;
|
|
3097
3156
|
if (b.trim() === "")
|
|
3098
3157
|
return t("Value required");
|
|
3099
|
-
if (!
|
|
3158
|
+
if (!wt(b))
|
|
3100
3159
|
return t("Invalid number");
|
|
3101
3160
|
const y = Number(b);
|
|
3102
|
-
return typeof e.min == "number" && y < e.min ? t("Value should be at least {{1}}", e.min) : typeof e.max == "number" && y > e.max ? t("Value should be at most {{1}}", e.max) : (
|
|
3161
|
+
return typeof e.min == "number" && y < e.min ? t("Value should be at least {{1}}", e.min) : typeof e.max == "number" && y > e.max ? t("Value should be at most {{1}}", e.max) : (f || (f = Y(a, e, y, t)), f);
|
|
3103
3162
|
},
|
|
3104
3163
|
[a, e, t]
|
|
3105
3164
|
), m = k(null), l = k(o);
|
|
3106
3165
|
C(() => {
|
|
3107
3166
|
l.current = o;
|
|
3108
3167
|
}, [o]), C(() => {
|
|
3109
|
-
const b = String(r),
|
|
3110
|
-
|
|
3168
|
+
const b = String(r), f = u(b);
|
|
3169
|
+
i.current && document.activeElement !== i.current && (i.current.value = isNaN(Number(b)) ? String(e.min ?? 0) : String(Number(b))), s.current && document.activeElement !== s.current && (s.current.value = b), f !== m.current && (m.current = f, l.current?.(f ?? null));
|
|
3111
3170
|
}, [r, u, e.min]);
|
|
3112
|
-
const
|
|
3113
|
-
const
|
|
3114
|
-
n?.(
|
|
3171
|
+
const p = e.min ?? 0, c = e.max ?? 100, d = (b) => {
|
|
3172
|
+
const f = b.target.value, y = u(f);
|
|
3173
|
+
n?.(f, y);
|
|
3115
3174
|
};
|
|
3116
3175
|
return /* @__PURE__ */ g.jsx(W, { field: e, error: u(String(r ?? "")), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", width: "100%" }, children: [
|
|
3117
3176
|
/* @__PURE__ */ g.jsx(
|
|
3118
3177
|
"input",
|
|
3119
3178
|
{
|
|
3120
|
-
ref:
|
|
3179
|
+
ref: i,
|
|
3121
3180
|
type: "range",
|
|
3122
|
-
defaultValue: isNaN(Number(r)) ? String(
|
|
3123
|
-
onChange:
|
|
3124
|
-
min:
|
|
3181
|
+
defaultValue: isNaN(Number(r)) ? String(p) : String(Number(r)),
|
|
3182
|
+
onChange: d,
|
|
3183
|
+
min: p,
|
|
3125
3184
|
max: c,
|
|
3126
3185
|
style: {
|
|
3127
3186
|
padding: "0px, 0px",
|
|
@@ -3134,10 +3193,10 @@ const vt = ({
|
|
|
3134
3193
|
/* @__PURE__ */ g.jsx(
|
|
3135
3194
|
"input",
|
|
3136
3195
|
{
|
|
3137
|
-
ref:
|
|
3196
|
+
ref: s,
|
|
3138
3197
|
type: "text",
|
|
3139
3198
|
defaultValue: String(r ?? ""),
|
|
3140
|
-
onChange:
|
|
3199
|
+
onChange: d,
|
|
3141
3200
|
required: !0,
|
|
3142
3201
|
style: {
|
|
3143
3202
|
width: "40px",
|
|
@@ -3146,28 +3205,28 @@ const vt = ({
|
|
|
3146
3205
|
textAlign: "center",
|
|
3147
3206
|
flexShrink: 0
|
|
3148
3207
|
},
|
|
3149
|
-
className:
|
|
3208
|
+
className: K($.input, $.textInput)
|
|
3150
3209
|
}
|
|
3151
3210
|
)
|
|
3152
3211
|
] }) });
|
|
3153
|
-
},
|
|
3212
|
+
}, Ct = ({
|
|
3154
3213
|
field: e,
|
|
3155
3214
|
value: r,
|
|
3156
3215
|
onChange: n,
|
|
3157
3216
|
onError: o
|
|
3158
3217
|
}) => {
|
|
3159
|
-
const { t, formStyle: a, fieldStyle:
|
|
3218
|
+
const { t, formStyle: a, fieldStyle: s, definitionName: i } = T(), u = a, m = s, l = (w, j, I) => {
|
|
3160
3219
|
if (!j) return {};
|
|
3161
|
-
const
|
|
3162
|
-
return (
|
|
3163
|
-
},
|
|
3220
|
+
const S = w?.[j];
|
|
3221
|
+
return (I && S ? S[I] : void 0) ?? {};
|
|
3222
|
+
}, p = N.useMemo(() => ({
|
|
3164
3223
|
display: "inline-block",
|
|
3165
3224
|
position: "relative",
|
|
3166
3225
|
width: 44,
|
|
3167
3226
|
height: 24,
|
|
3168
3227
|
...l(u, "switch", "label"),
|
|
3169
3228
|
...l(m, void 0, "label")
|
|
3170
|
-
}), [u, m]), c =
|
|
3229
|
+
}), [u, m]), c = N.useMemo(() => ({
|
|
3171
3230
|
position: "absolute",
|
|
3172
3231
|
opacity: 0,
|
|
3173
3232
|
top: 0,
|
|
@@ -3180,7 +3239,7 @@ const vt = ({
|
|
|
3180
3239
|
// Make hidden input non-interactive to avoid event conflicts
|
|
3181
3240
|
...l(u, "switch", "hiddenInput"),
|
|
3182
3241
|
...l(m, void 0, "hiddenInput")
|
|
3183
|
-
}), [u, m]),
|
|
3242
|
+
}), [u, m]), d = N.useMemo(() => ({
|
|
3184
3243
|
position: "absolute",
|
|
3185
3244
|
cursor: "pointer",
|
|
3186
3245
|
top: 0,
|
|
@@ -3199,7 +3258,7 @@ const vt = ({
|
|
|
3199
3258
|
borderColor: "transparent",
|
|
3200
3259
|
...l(u, "switch", "slider"),
|
|
3201
3260
|
...l(m, void 0, "slider")
|
|
3202
|
-
}), [u, m]), b =
|
|
3261
|
+
}), [u, m]), b = N.useMemo(() => ({
|
|
3203
3262
|
position: "absolute",
|
|
3204
3263
|
height: 16,
|
|
3205
3264
|
width: 16,
|
|
@@ -3211,34 +3270,34 @@ const vt = ({
|
|
|
3211
3270
|
boxShadow: "0 1px 3px rgba(0, 0, 0, 0.3)",
|
|
3212
3271
|
...l(u, "switch", "knob"),
|
|
3213
3272
|
...l(m, void 0, "knob")
|
|
3214
|
-
}), [u, m]),
|
|
3215
|
-
const w = !
|
|
3273
|
+
}), [u, m]), f = !!r, y = N.useRef(null), x = N.useRef(o), v = N.useCallback((w) => w ? Y(i, e, w, t) ?? null : e.required ? t("Value required") : null, [e, t, i]), F = () => {
|
|
3274
|
+
const w = !f, j = v(w);
|
|
3216
3275
|
n?.(w, j);
|
|
3217
3276
|
};
|
|
3218
|
-
|
|
3277
|
+
N.useEffect(() => {
|
|
3219
3278
|
x.current = o;
|
|
3220
|
-
}, [o]),
|
|
3221
|
-
const w =
|
|
3279
|
+
}, [o]), N.useEffect(() => {
|
|
3280
|
+
const w = v(f);
|
|
3222
3281
|
w !== y.current && (y.current = w, x.current?.(w ?? null));
|
|
3223
|
-
}, [
|
|
3224
|
-
const
|
|
3225
|
-
return /* @__PURE__ */ g.jsx(W, { field: e, error:
|
|
3282
|
+
}, [f, e, v]);
|
|
3283
|
+
const R = e.name;
|
|
3284
|
+
return /* @__PURE__ */ g.jsx(W, { field: e, error: v(f), rightAlign: !1, children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", width: "100%" }, children: [
|
|
3226
3285
|
/* @__PURE__ */ g.jsx(
|
|
3227
3286
|
"label",
|
|
3228
3287
|
{
|
|
3229
3288
|
className: $.label,
|
|
3230
|
-
htmlFor:
|
|
3289
|
+
htmlFor: R,
|
|
3231
3290
|
style: { textAlign: "left", justifyContent: "flex-start" },
|
|
3232
3291
|
children: t(e.displayName)
|
|
3233
3292
|
}
|
|
3234
3293
|
),
|
|
3235
|
-
/* @__PURE__ */ g.jsxs("label", { style:
|
|
3294
|
+
/* @__PURE__ */ g.jsxs("label", { style: p, children: [
|
|
3236
3295
|
/* @__PURE__ */ g.jsx(
|
|
3237
3296
|
"input",
|
|
3238
3297
|
{
|
|
3239
3298
|
id: e.name,
|
|
3240
3299
|
type: "checkbox",
|
|
3241
|
-
checked:
|
|
3300
|
+
checked: f,
|
|
3242
3301
|
readOnly: !0,
|
|
3243
3302
|
"aria-label": t(e.displayName),
|
|
3244
3303
|
style: c,
|
|
@@ -3251,19 +3310,19 @@ const vt = ({
|
|
|
3251
3310
|
role: "switch",
|
|
3252
3311
|
"data-testid": "switch",
|
|
3253
3312
|
tabIndex: 0,
|
|
3254
|
-
"aria-checked":
|
|
3313
|
+
"aria-checked": f,
|
|
3255
3314
|
onClick: F,
|
|
3256
3315
|
onKeyDown: (w) => {
|
|
3257
3316
|
(w.key === " " || w.key === "Spacebar" || w.key === "Space" || w.key === "Enter") && (w.preventDefault(), F());
|
|
3258
3317
|
},
|
|
3259
|
-
className: `reactaform-switch ${
|
|
3260
|
-
style:
|
|
3318
|
+
className: `reactaform-switch ${f ? "active checked on" : ""} `,
|
|
3319
|
+
style: f ? { ...d, backgroundColor: "var(--reactaform-switch-on-bg, #22c55e)", borderColor: "var(--reactaform-switch-on-border, #16a34a)" } : d,
|
|
3261
3320
|
children: /* @__PURE__ */ g.jsx(
|
|
3262
3321
|
"span",
|
|
3263
3322
|
{
|
|
3264
3323
|
style: {
|
|
3265
3324
|
...b,
|
|
3266
|
-
transform:
|
|
3325
|
+
transform: f ? "translateX(20px)" : void 0
|
|
3267
3326
|
}
|
|
3268
3327
|
}
|
|
3269
3328
|
)
|
|
@@ -3277,52 +3336,52 @@ const vt = ({
|
|
|
3277
3336
|
onChange: n,
|
|
3278
3337
|
onError: o
|
|
3279
3338
|
}) => {
|
|
3280
|
-
const { t, definitionName: a } =
|
|
3339
|
+
const { t, definitionName: a } = T(), s = N.useRef(null), i = N.useRef(null), u = N.useRef(
|
|
3281
3340
|
o
|
|
3282
3341
|
);
|
|
3283
|
-
|
|
3342
|
+
N.useEffect(() => {
|
|
3284
3343
|
u.current = o;
|
|
3285
3344
|
}, [o]);
|
|
3286
3345
|
const m = G(
|
|
3287
3346
|
() => e.pattern ? new RegExp(e.pattern) : null,
|
|
3288
3347
|
[e.pattern]
|
|
3289
|
-
), l =
|
|
3348
|
+
), l = N.useCallback(
|
|
3290
3349
|
(c) => c.trim() === "" ? e.required ? t("Value required") : null : e.minLength !== void 0 && c.length < e.minLength ? t("Must be at least {{1}} characters", e.minLength) : e.maxLength !== void 0 && c.length > e.maxLength ? t("Must be at most {{1}} characters", e.maxLength) : m && !m.test(c) ? t("Input does not match pattern: {{1}}", e.pattern) : Y(a, e, c, t),
|
|
3291
3350
|
[e, a, t, m]
|
|
3292
|
-
),
|
|
3293
|
-
const
|
|
3294
|
-
n?.(
|
|
3351
|
+
), p = (c) => {
|
|
3352
|
+
const d = c.target.value, b = l(d);
|
|
3353
|
+
n?.(d, b);
|
|
3295
3354
|
};
|
|
3296
3355
|
return C(() => {
|
|
3297
3356
|
const c = l(r);
|
|
3298
|
-
|
|
3357
|
+
s.current && s.current.value !== String(r ?? "") && (s.current.value = String(r ?? "")), c !== i.current && (i.current = c, u.current?.(c ?? null));
|
|
3299
3358
|
}, [r, l]), /* @__PURE__ */ g.jsx(W, { field: e, error: l(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
3300
3359
|
"input",
|
|
3301
3360
|
{
|
|
3302
3361
|
id: e.name,
|
|
3303
3362
|
type: "text",
|
|
3304
3363
|
defaultValue: String(r ?? ""),
|
|
3305
|
-
ref:
|
|
3306
|
-
onChange:
|
|
3307
|
-
className:
|
|
3364
|
+
ref: s,
|
|
3365
|
+
onChange: p,
|
|
3366
|
+
className: K($.input, $.textInput)
|
|
3308
3367
|
}
|
|
3309
3368
|
) });
|
|
3310
|
-
},
|
|
3369
|
+
}, jt = ({
|
|
3311
3370
|
field: e,
|
|
3312
3371
|
value: r,
|
|
3313
3372
|
onChange: n,
|
|
3314
3373
|
onError: o
|
|
3315
3374
|
}) => {
|
|
3316
|
-
const { t, definitionName: a } =
|
|
3375
|
+
const { t, definitionName: a } = T(), s = k(null), i = k(o), u = e.includeSeconds ?? !0;
|
|
3317
3376
|
C(() => {
|
|
3318
|
-
|
|
3377
|
+
i.current = o;
|
|
3319
3378
|
}, [o]);
|
|
3320
|
-
const m =
|
|
3321
|
-
if (!
|
|
3379
|
+
const m = N.useCallback((p) => {
|
|
3380
|
+
if (!p || p.trim() === "")
|
|
3322
3381
|
return e.required || e.min || e.max ? t("Value required") : null;
|
|
3323
|
-
const c = (
|
|
3324
|
-
const y =
|
|
3325
|
-
if (y.some((
|
|
3382
|
+
const c = (f) => {
|
|
3383
|
+
const y = f.split(":").map((v) => parseInt(v, 10));
|
|
3384
|
+
if (y.some((v) => Number.isNaN(v))) return NaN;
|
|
3326
3385
|
let x = 0;
|
|
3327
3386
|
if (y.length === 3)
|
|
3328
3387
|
x = y[0] * 3600 + y[1] * 60 + y[2];
|
|
@@ -3333,26 +3392,26 @@ const vt = ({
|
|
|
3333
3392
|
else
|
|
3334
3393
|
return NaN;
|
|
3335
3394
|
return x;
|
|
3336
|
-
},
|
|
3337
|
-
if (Number.isNaN(
|
|
3395
|
+
}, d = c(p);
|
|
3396
|
+
if (Number.isNaN(d)) return t("Invalid time format");
|
|
3338
3397
|
if (e.min && typeof e.min == "string") {
|
|
3339
|
-
const
|
|
3340
|
-
if (!Number.isNaN(
|
|
3398
|
+
const f = c(e.min);
|
|
3399
|
+
if (!Number.isNaN(f) && d < f)
|
|
3341
3400
|
return t("Time must be on or after {{1}}", e.min);
|
|
3342
3401
|
}
|
|
3343
3402
|
if (e.max && typeof e.max == "string") {
|
|
3344
|
-
const
|
|
3345
|
-
if (!Number.isNaN(
|
|
3403
|
+
const f = c(e.max);
|
|
3404
|
+
if (!Number.isNaN(f) && d > f)
|
|
3346
3405
|
return t("Time must be on or before {{1}}", e.max);
|
|
3347
3406
|
}
|
|
3348
|
-
return Y(a, e,
|
|
3349
|
-
}, [e, a, t]), l = (
|
|
3350
|
-
const c =
|
|
3351
|
-
n?.(c,
|
|
3407
|
+
return Y(a, e, p, t) ?? null;
|
|
3408
|
+
}, [e, a, t]), l = (p) => {
|
|
3409
|
+
const c = p.target.value, d = m(c);
|
|
3410
|
+
n?.(c, d);
|
|
3352
3411
|
};
|
|
3353
3412
|
return C(() => {
|
|
3354
|
-
const
|
|
3355
|
-
|
|
3413
|
+
const p = m(r);
|
|
3414
|
+
p !== s.current && (s.current = p, i.current?.(p ?? null));
|
|
3356
3415
|
}, [r, m]), /* @__PURE__ */ g.jsx(W, { field: e, error: m(r), children: /* @__PURE__ */ g.jsx(
|
|
3357
3416
|
"input",
|
|
3358
3417
|
{
|
|
@@ -3363,25 +3422,94 @@ const vt = ({
|
|
|
3363
3422
|
onChange: l,
|
|
3364
3423
|
min: typeof e.min == "string" ? e.min : void 0,
|
|
3365
3424
|
max: typeof e.max == "string" ? e.max : void 0,
|
|
3366
|
-
className:
|
|
3425
|
+
className: K($.input, $.textInput)
|
|
3367
3426
|
}
|
|
3368
3427
|
) });
|
|
3369
|
-
}
|
|
3370
|
-
function
|
|
3428
|
+
};
|
|
3429
|
+
function kt({
|
|
3430
|
+
pos: e,
|
|
3431
|
+
options: r,
|
|
3432
|
+
onClose: n,
|
|
3433
|
+
onClickOption: o
|
|
3434
|
+
}) {
|
|
3435
|
+
const t = k(null), a = k(!1), s = typeof window < "u" ? document.getElementById("popup-root") || document.body : null;
|
|
3436
|
+
if (C(() => {
|
|
3437
|
+
function d(b) {
|
|
3438
|
+
a.current || b.target.dataset?.popupMenu === "item" || t.current && b.target instanceof Node && !t.current.contains(b.target) && n();
|
|
3439
|
+
}
|
|
3440
|
+
return document.addEventListener("mousedown", d), () => document.removeEventListener("mousedown", d);
|
|
3441
|
+
}, [n]), !s || r === void 0 || r.length === 0 || !e || e.x == null || e.y == null) return null;
|
|
3442
|
+
const i = e.x, u = e.y, m = typeof window < "u" ? window.innerWidth : 1024, l = Math.max(0, m - 160), p = Math.max(0, Math.min(i, l)), c = Math.max(0, u);
|
|
3443
|
+
return Me.createPortal(
|
|
3444
|
+
/* @__PURE__ */ g.jsx(
|
|
3445
|
+
"div",
|
|
3446
|
+
{
|
|
3447
|
+
ref: t,
|
|
3448
|
+
onMouseDown: (d) => {
|
|
3449
|
+
d.stopPropagation();
|
|
3450
|
+
},
|
|
3451
|
+
style: {
|
|
3452
|
+
position: "fixed",
|
|
3453
|
+
top: c,
|
|
3454
|
+
left: p,
|
|
3455
|
+
backgroundColor: "var(--reactaform-primary-bg, #fff)",
|
|
3456
|
+
border: "1px solid var(--reactaform-border-color, #ccc)",
|
|
3457
|
+
borderRadius: "var(--reactaform-border-radius, 4px)",
|
|
3458
|
+
boxShadow: "var(--reactaform-shadow, 0 2px 10px rgba(0,0,0,0.2))",
|
|
3459
|
+
zIndex: 9999,
|
|
3460
|
+
minWidth: "var(--reactaform-menu-min-width, 150px)",
|
|
3461
|
+
pointerEvents: "auto"
|
|
3462
|
+
},
|
|
3463
|
+
children: r.map((d, b) => /* @__PURE__ */ g.jsx(
|
|
3464
|
+
"div",
|
|
3465
|
+
{
|
|
3466
|
+
"data-popup-menu": "item",
|
|
3467
|
+
onMouseDown: (f) => {
|
|
3468
|
+
f.stopPropagation(), a.current = !0;
|
|
3469
|
+
},
|
|
3470
|
+
onClick: (f) => {
|
|
3471
|
+
f.stopPropagation(), f.preventDefault(), o(d), n(), setTimeout(() => {
|
|
3472
|
+
a.current = !1;
|
|
3473
|
+
}, 100);
|
|
3474
|
+
},
|
|
3475
|
+
style: {
|
|
3476
|
+
padding: "var(--reactaform-menu-item-padding, 8px 12px)",
|
|
3477
|
+
cursor: "pointer",
|
|
3478
|
+
fontSize: "var(--reactaform-menu-item-font-size, 0.8em)",
|
|
3479
|
+
borderBottom: b < r.length - 1 ? "1px solid var(--reactaform-border-light, #eee)" : void 0,
|
|
3480
|
+
transition: "background-color 0.15s ease"
|
|
3481
|
+
},
|
|
3482
|
+
onMouseEnter: (f) => {
|
|
3483
|
+
f.currentTarget.style.backgroundColor = "var(--reactaform-hover-bg, #e0e0e0)";
|
|
3484
|
+
},
|
|
3485
|
+
onMouseLeave: (f) => {
|
|
3486
|
+
f.currentTarget.style.backgroundColor = "transparent";
|
|
3487
|
+
},
|
|
3488
|
+
children: d.label
|
|
3489
|
+
},
|
|
3490
|
+
d.label ?? b
|
|
3491
|
+
))
|
|
3492
|
+
}
|
|
3493
|
+
),
|
|
3494
|
+
s
|
|
3495
|
+
);
|
|
3496
|
+
}
|
|
3497
|
+
const he = {};
|
|
3498
|
+
function Rt(e, r) {
|
|
3371
3499
|
if (e in he)
|
|
3372
3500
|
return;
|
|
3373
3501
|
const n = Le[e] ?? {}, o = {}, t = {}, a = {};
|
|
3374
|
-
for (const [
|
|
3375
|
-
typeof u.factor == "number" && (o[
|
|
3376
|
-
const
|
|
3502
|
+
for (const [i, u] of Object.entries(n))
|
|
3503
|
+
typeof u.factor == "number" && (o[i] = u.factor), t[i] = r(i), a[r(i)] = i;
|
|
3504
|
+
const s = Object.keys(n)[0] ?? "";
|
|
3377
3505
|
he[e] = {
|
|
3378
|
-
default:
|
|
3506
|
+
default: s,
|
|
3379
3507
|
factors: o,
|
|
3380
3508
|
labels: t,
|
|
3381
3509
|
reverseLabels: a
|
|
3382
3510
|
};
|
|
3383
3511
|
}
|
|
3384
|
-
function
|
|
3512
|
+
function Et(e, r, n) {
|
|
3385
3513
|
if (e === "C") {
|
|
3386
3514
|
if (r === "F") return n * (9 / 5) + 32;
|
|
3387
3515
|
if (r === "K") return n + 273.15;
|
|
@@ -3394,38 +3522,38 @@ function jt(e, r, n) {
|
|
|
3394
3522
|
}
|
|
3395
3523
|
return n;
|
|
3396
3524
|
}
|
|
3397
|
-
function
|
|
3525
|
+
function Nt(e, r, n) {
|
|
3398
3526
|
if (!Number.isFinite(e)) return [];
|
|
3399
3527
|
if (n === he.temperature)
|
|
3400
3528
|
return Object.keys(n.labels).map((a) => {
|
|
3401
|
-
const
|
|
3402
|
-
return Number.isFinite(
|
|
3529
|
+
const s = Et(r, a, e);
|
|
3530
|
+
return Number.isFinite(s) ? { label: `${s.toFixed(6)} ${a}`, value: s.toString(), unit: a } : { label: `${String(s)} ${a}`, value: String(s), unit: a };
|
|
3403
3531
|
});
|
|
3404
3532
|
const t = n.factors[r];
|
|
3405
|
-
return t === void 0 ? [] : Object.entries(n.factors).map(([a,
|
|
3406
|
-
const
|
|
3407
|
-
return Number.isFinite(
|
|
3533
|
+
return t === void 0 ? [] : Object.entries(n.factors).map(([a, s]) => {
|
|
3534
|
+
const i = e / t * s;
|
|
3535
|
+
return Number.isFinite(i) ? { label: `${i.toFixed(6)} ${a}`, value: i.toString(), unit: a } : { label: `${String(i)} ${a}`, value: String(i), unit: a };
|
|
3408
3536
|
});
|
|
3409
3537
|
}
|
|
3410
3538
|
function xe(e, r) {
|
|
3411
3539
|
return e in r.labels ? e : r.reverseLabels && r.reverseLabels[e] ? r.reverseLabels[e] : null;
|
|
3412
3540
|
}
|
|
3413
|
-
const
|
|
3541
|
+
const It = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, At = ({
|
|
3414
3542
|
unitFactors: e,
|
|
3415
3543
|
field: r,
|
|
3416
3544
|
value: n,
|
|
3417
3545
|
onChange: o,
|
|
3418
3546
|
onError: t
|
|
3419
3547
|
}) => {
|
|
3420
|
-
const { t: a, definitionName:
|
|
3548
|
+
const { t: a, definitionName: s } = T(), i = k(null), u = k(null), m = k(null), [l, p] = D(null), [c, d] = D(null), [b, f] = D(!1), [y, x] = D(null), [v, F] = D([]), R = Z(
|
|
3421
3549
|
(P, O) => {
|
|
3422
3550
|
if (!P || P.trim() === "")
|
|
3423
3551
|
return r.required ? a("Value required") : null;
|
|
3424
|
-
if (!
|
|
3425
|
-
const h = Y(
|
|
3552
|
+
if (!It.test(P)) return a("Must be a valid number");
|
|
3553
|
+
const h = Y(s, r, [P, O], a);
|
|
3426
3554
|
return h || null;
|
|
3427
3555
|
},
|
|
3428
|
-
[
|
|
3556
|
+
[s, r, a]
|
|
3429
3557
|
), w = e.reverseLabels !== void 0 ? e.reverseLabels : Object.fromEntries(
|
|
3430
3558
|
Object.entries(e.labels).map(([P, O]) => [O, P])
|
|
3431
3559
|
);
|
|
@@ -3434,51 +3562,51 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
|
|
|
3434
3562
|
let O = n[1] ?? e.default;
|
|
3435
3563
|
O = xe(O, e) || O;
|
|
3436
3564
|
const h = document.activeElement;
|
|
3437
|
-
h ===
|
|
3438
|
-
m.current = null,
|
|
3565
|
+
h === i.current || h === u.current || (i.current && (i.current.value = P), u.current && (u.current.value = O), m.current !== null && (cancelAnimationFrame(m.current), m.current = null), m.current = requestAnimationFrame(() => {
|
|
3566
|
+
m.current = null, p(null), d(null);
|
|
3439
3567
|
}));
|
|
3440
3568
|
}, [n, e]), C(() => () => {
|
|
3441
3569
|
m.current !== null && (cancelAnimationFrame(m.current), m.current = null);
|
|
3442
3570
|
}, []);
|
|
3443
|
-
const j = k(null),
|
|
3571
|
+
const j = k(null), I = k(
|
|
3444
3572
|
t
|
|
3445
3573
|
);
|
|
3446
3574
|
C(() => {
|
|
3447
|
-
|
|
3575
|
+
I.current = t;
|
|
3448
3576
|
}, [t]), C(() => {
|
|
3449
3577
|
const P = String(n[0]);
|
|
3450
3578
|
let O = n[1] ?? e.default;
|
|
3451
3579
|
O = xe(O, e) || O;
|
|
3452
|
-
const h =
|
|
3453
|
-
h !== j.current && (j.current = h,
|
|
3454
|
-
}, [n, e,
|
|
3455
|
-
const
|
|
3456
|
-
const
|
|
3457
|
-
o?.([P,
|
|
3458
|
-
},
|
|
3459
|
-
const O = P.target.value, h = u.current ? u.current.value : e.default,
|
|
3460
|
-
|
|
3580
|
+
const h = R(P, O);
|
|
3581
|
+
h !== j.current && (j.current = h, I.current?.(h ?? null));
|
|
3582
|
+
}, [n, e, R]);
|
|
3583
|
+
const S = (P, O, h) => {
|
|
3584
|
+
const E = w[O] || O;
|
|
3585
|
+
o?.([P, E], h);
|
|
3586
|
+
}, A = (P) => {
|
|
3587
|
+
const O = P.target.value, h = u.current ? u.current.value : e.default, E = R(O, h);
|
|
3588
|
+
p(O), S(O, h, E);
|
|
3461
3589
|
}, M = (P) => {
|
|
3462
|
-
const O = P.target.value, h =
|
|
3463
|
-
|
|
3590
|
+
const O = P.target.value, h = i.current ? i.current.value : String(n[0] ?? ""), E = R(h, O);
|
|
3591
|
+
d(O), u.current && (u.current.value = O), S(h, O, E);
|
|
3464
3592
|
}, z = (P) => {
|
|
3465
|
-
const O =
|
|
3466
|
-
if (
|
|
3593
|
+
const O = i.current ? i.current.value : String(n[0] ?? ""), h = parseFloat(O), E = u.current ? u.current.value : e.default;
|
|
3594
|
+
if (R(O, E) || !O.trim() || !Number.isFinite(h))
|
|
3467
3595
|
return;
|
|
3468
3596
|
const U = P.currentTarget.getBoundingClientRect(), ne = U.left, ae = U.bottom;
|
|
3469
3597
|
x({ x: ne, y: ae });
|
|
3470
|
-
const _ =
|
|
3598
|
+
const _ = Nt(h, E, e);
|
|
3471
3599
|
if (_.length === 0) {
|
|
3472
|
-
F([]),
|
|
3600
|
+
F([]), f(!1);
|
|
3473
3601
|
return;
|
|
3474
3602
|
}
|
|
3475
|
-
F(_),
|
|
3603
|
+
F(_), f((V) => !V);
|
|
3476
3604
|
}, L = (P) => {
|
|
3477
3605
|
const { value: O, unit: h } = P;
|
|
3478
|
-
|
|
3479
|
-
const
|
|
3480
|
-
|
|
3481
|
-
}, J = String(n[0] ?? ""), ce = xe(n[1] ?? e.default, e) || (n[1] ?? e.default), re = l ?? J, Q = !!
|
|
3606
|
+
f(!1), x(null), i.current && (i.current.value = O), u.current && (u.current.value = h), p(O), d(h);
|
|
3607
|
+
const E = R(O, h);
|
|
3608
|
+
S(O, h, E);
|
|
3609
|
+
}, J = String(n[0] ?? ""), ce = xe(n[1] ?? e.default, e) || (n[1] ?? e.default), re = l ?? J, Q = !!R(re, c ?? ce) || !re.trim(), oe = {
|
|
3482
3610
|
width: "var(--reactaform-unit-btn-width, 2.5em)",
|
|
3483
3611
|
height: "var(--reactaform-unit-btn-height, 2.5em)",
|
|
3484
3612
|
padding: "var(--reactaform-unit-btn-padding, 0)",
|
|
@@ -3492,16 +3620,16 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
|
|
|
3492
3620
|
alignItems: "center",
|
|
3493
3621
|
justifyContent: "center"
|
|
3494
3622
|
};
|
|
3495
|
-
return /* @__PURE__ */ g.jsx(W, { field: r, error:
|
|
3623
|
+
return /* @__PURE__ */ g.jsx(W, { field: r, error: R(J, ce), children: /* @__PURE__ */ g.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "var(--reactaform-unit-gap, 8px)", width: "100%" }, children: [
|
|
3496
3624
|
/* @__PURE__ */ g.jsx(
|
|
3497
3625
|
"input",
|
|
3498
3626
|
{
|
|
3499
3627
|
type: "text",
|
|
3500
|
-
ref:
|
|
3628
|
+
ref: i,
|
|
3501
3629
|
defaultValue: String(n[0] ?? ""),
|
|
3502
|
-
onChange:
|
|
3630
|
+
onChange: A,
|
|
3503
3631
|
style: { width: "var(--reactaform-unit-input-width, 100px)" },
|
|
3504
|
-
className:
|
|
3632
|
+
className: K($.input, $.textInput)
|
|
3505
3633
|
}
|
|
3506
3634
|
),
|
|
3507
3635
|
/* @__PURE__ */ g.jsx(
|
|
@@ -3510,7 +3638,7 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
|
|
|
3510
3638
|
ref: u,
|
|
3511
3639
|
defaultValue: xe(n[1] ?? e.default, e) || (n[1] ?? e.default),
|
|
3512
3640
|
onChange: M,
|
|
3513
|
-
className:
|
|
3641
|
+
className: K(
|
|
3514
3642
|
$.input,
|
|
3515
3643
|
$.inputSelect
|
|
3516
3644
|
),
|
|
@@ -3540,13 +3668,13 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
|
|
|
3540
3668
|
)
|
|
3541
3669
|
}
|
|
3542
3670
|
),
|
|
3543
|
-
b &&
|
|
3544
|
-
|
|
3671
|
+
b && v && /* @__PURE__ */ g.jsx(
|
|
3672
|
+
kt,
|
|
3545
3673
|
{
|
|
3546
3674
|
pos: y,
|
|
3547
|
-
options:
|
|
3675
|
+
options: v,
|
|
3548
3676
|
onClose: () => {
|
|
3549
|
-
x(null),
|
|
3677
|
+
x(null), f(!1);
|
|
3550
3678
|
},
|
|
3551
3679
|
onClickOption: L
|
|
3552
3680
|
}
|
|
@@ -3554,13 +3682,13 @@ const Rt = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/, Et = ({
|
|
|
3554
3682
|
] })
|
|
3555
3683
|
] }) });
|
|
3556
3684
|
};
|
|
3557
|
-
function
|
|
3558
|
-
const { t: o } =
|
|
3685
|
+
function Ft({ field: e, value: r, onChange: n }) {
|
|
3686
|
+
const { t: o } = T(), t = e.dimension;
|
|
3559
3687
|
if (!t) return null;
|
|
3560
|
-
he[t] ||
|
|
3688
|
+
he[t] || Rt(t, o);
|
|
3561
3689
|
const a = he[t];
|
|
3562
3690
|
return a ? /* @__PURE__ */ g.jsx(
|
|
3563
|
-
|
|
3691
|
+
At,
|
|
3564
3692
|
{
|
|
3565
3693
|
unitFactors: a,
|
|
3566
3694
|
field: e,
|
|
@@ -3569,47 +3697,62 @@ function Nt({ field: e, value: r, onChange: n }) {
|
|
|
3569
3697
|
}
|
|
3570
3698
|
) : null;
|
|
3571
3699
|
}
|
|
3572
|
-
const
|
|
3700
|
+
const Xe = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$/i, Ze = (e) => {
|
|
3573
3701
|
try {
|
|
3574
3702
|
return new URL(e), !0;
|
|
3575
3703
|
} catch {
|
|
3576
3704
|
return !1;
|
|
3577
3705
|
}
|
|
3578
|
-
},
|
|
3706
|
+
}, Mt = ({
|
|
3579
3707
|
field: e,
|
|
3580
3708
|
value: r,
|
|
3581
3709
|
onChange: n,
|
|
3582
3710
|
onError: o
|
|
3583
3711
|
}) => {
|
|
3584
|
-
const { t, definitionName: a } =
|
|
3585
|
-
(
|
|
3586
|
-
const c =
|
|
3587
|
-
|
|
3712
|
+
const { t, definitionName: a } = T(), s = k(null), i = Z(
|
|
3713
|
+
(p) => {
|
|
3714
|
+
const c = p.trim();
|
|
3715
|
+
if (c === "")
|
|
3716
|
+
return e.required ? t("Value required") : null;
|
|
3717
|
+
if (!Xe.test(c) && !Ze(c)) {
|
|
3718
|
+
const b = e.allowRelative === !0;
|
|
3719
|
+
let f = !1;
|
|
3720
|
+
if (Xe.test(c) || Ze(c))
|
|
3721
|
+
f = !0;
|
|
3722
|
+
else if (b)
|
|
3723
|
+
try {
|
|
3724
|
+
new URL(c, "http://example.com"), f = !0;
|
|
3725
|
+
} catch {
|
|
3726
|
+
f = !1;
|
|
3727
|
+
}
|
|
3728
|
+
if (!f) return t("Must be a valid URL");
|
|
3729
|
+
}
|
|
3730
|
+
return Y(a, e, c, t) ?? null;
|
|
3588
3731
|
},
|
|
3589
3732
|
[a, e, t]
|
|
3590
|
-
), u = (
|
|
3591
|
-
const c =
|
|
3592
|
-
n?.(c.trim(),
|
|
3733
|
+
), u = (p) => {
|
|
3734
|
+
const c = p.target.value, d = i(c);
|
|
3735
|
+
n?.(c.trim(), d);
|
|
3593
3736
|
}, m = k(null), l = k(o);
|
|
3594
3737
|
return C(() => {
|
|
3595
3738
|
l.current = o;
|
|
3596
3739
|
}, [o]), C(() => {
|
|
3597
|
-
const
|
|
3598
|
-
|
|
3599
|
-
}, [r,
|
|
3740
|
+
const p = r ?? "", c = i(p);
|
|
3741
|
+
s.current && s.current.value !== String(p) && (s.current.value = String(p)), c !== m.current && (m.current = c, l.current?.(c ?? null));
|
|
3742
|
+
}, [r, i]), /* @__PURE__ */ g.jsx(W, { field: e, error: i(String(r ?? "")), children: /* @__PURE__ */ g.jsx(
|
|
3600
3743
|
"input",
|
|
3601
3744
|
{
|
|
3602
3745
|
id: e.name,
|
|
3603
3746
|
type: "url",
|
|
3604
3747
|
defaultValue: String(r ?? ""),
|
|
3605
|
-
ref:
|
|
3748
|
+
ref: s,
|
|
3606
3749
|
onChange: u,
|
|
3607
3750
|
style: { alignItems: "left" },
|
|
3608
|
-
className:
|
|
3751
|
+
className: K($.input, $.textInput),
|
|
3609
3752
|
placeholder: "https://example.com"
|
|
3610
3753
|
}
|
|
3611
3754
|
) });
|
|
3612
|
-
}, Fe = new we(),
|
|
3755
|
+
}, Fe = new we(), Ot = /* @__PURE__ */ new Set([
|
|
3613
3756
|
"checkbox",
|
|
3614
3757
|
"switch",
|
|
3615
3758
|
"dropdown",
|
|
@@ -3619,46 +3762,47 @@ const It = /^(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]
|
|
|
3619
3762
|
"stepper",
|
|
3620
3763
|
"color",
|
|
3621
3764
|
"rating"
|
|
3622
|
-
]),
|
|
3623
|
-
checkbox:
|
|
3624
|
-
color:
|
|
3625
|
-
date:
|
|
3626
|
-
dropdown:
|
|
3627
|
-
email:
|
|
3628
|
-
file:
|
|
3629
|
-
float:
|
|
3630
|
-
"float-array":
|
|
3631
|
-
image:
|
|
3632
|
-
int:
|
|
3633
|
-
"int-array":
|
|
3634
|
-
"multi-selection":
|
|
3635
|
-
multiline:
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3765
|
+
]), lr = {
|
|
3766
|
+
checkbox: _r,
|
|
3767
|
+
color: Br,
|
|
3768
|
+
date: Ur,
|
|
3769
|
+
dropdown: Wr,
|
|
3770
|
+
email: Jr,
|
|
3771
|
+
file: Kr,
|
|
3772
|
+
float: nt,
|
|
3773
|
+
"float-array": et,
|
|
3774
|
+
image: at,
|
|
3775
|
+
int: lt,
|
|
3776
|
+
"int-array": it,
|
|
3777
|
+
"multi-selection": mt,
|
|
3778
|
+
multiline: ut,
|
|
3779
|
+
password: xt,
|
|
3780
|
+
phone: pt,
|
|
3781
|
+
radio: gt,
|
|
3782
|
+
rating: yt,
|
|
3783
|
+
separator: Gr,
|
|
3784
|
+
slider: St,
|
|
3641
3785
|
string: Ke,
|
|
3642
|
-
stepper:
|
|
3643
|
-
switch:
|
|
3786
|
+
stepper: dt,
|
|
3787
|
+
switch: Ct,
|
|
3644
3788
|
text: Ke,
|
|
3645
|
-
time:
|
|
3646
|
-
unit:
|
|
3647
|
-
url:
|
|
3789
|
+
time: jt,
|
|
3790
|
+
unit: Ft,
|
|
3791
|
+
url: Mt
|
|
3648
3792
|
};
|
|
3649
|
-
function
|
|
3650
|
-
if (!n && e in
|
|
3793
|
+
function ur(e, r, n) {
|
|
3794
|
+
if (!n && e in lr) {
|
|
3651
3795
|
console.warn(
|
|
3652
3796
|
`Can't Overwrite Base Component type "${e}".`
|
|
3653
3797
|
);
|
|
3654
3798
|
return;
|
|
3655
3799
|
}
|
|
3656
|
-
if (
|
|
3800
|
+
if (Ot.has(e)) {
|
|
3657
3801
|
Fe.register(e, r);
|
|
3658
3802
|
return;
|
|
3659
3803
|
}
|
|
3660
3804
|
const o = (t) => {
|
|
3661
|
-
const { callback:
|
|
3805
|
+
const { callback: s, cancel: i } = jr(
|
|
3662
3806
|
(...u) => {
|
|
3663
3807
|
const m = t.onChange;
|
|
3664
3808
|
typeof m == "function" && m(...u);
|
|
@@ -3666,31 +3810,31 @@ function lr(e, r, n) {
|
|
|
3666
3810
|
200
|
|
3667
3811
|
);
|
|
3668
3812
|
return C(() => () => {
|
|
3669
|
-
|
|
3670
|
-
}, [
|
|
3813
|
+
i();
|
|
3814
|
+
}, [i]), N.createElement(r, { ...t, onChange: s });
|
|
3671
3815
|
};
|
|
3672
3816
|
Fe.register(e, o);
|
|
3673
3817
|
}
|
|
3674
|
-
function
|
|
3675
|
-
|
|
3818
|
+
function an(e, r) {
|
|
3819
|
+
ur(e, r, !1);
|
|
3676
3820
|
}
|
|
3677
|
-
function
|
|
3821
|
+
function $t(e) {
|
|
3678
3822
|
return Fe.get(e);
|
|
3679
3823
|
}
|
|
3680
|
-
let
|
|
3681
|
-
function
|
|
3682
|
-
|
|
3683
|
-
|
|
3684
|
-
}),
|
|
3824
|
+
let Qe = !1;
|
|
3825
|
+
function mr() {
|
|
3826
|
+
Qe || (Object.entries(lr).forEach(([e, r]) => {
|
|
3827
|
+
ur(e, r, !0);
|
|
3828
|
+
}), Qe = !0);
|
|
3685
3829
|
}
|
|
3686
|
-
const
|
|
3687
|
-
function
|
|
3688
|
-
|
|
3830
|
+
const fr = new we();
|
|
3831
|
+
function Vt(e, r) {
|
|
3832
|
+
fr.register(e, r);
|
|
3689
3833
|
}
|
|
3690
|
-
function
|
|
3691
|
-
return
|
|
3834
|
+
function Dt(e) {
|
|
3835
|
+
return fr.get(e);
|
|
3692
3836
|
}
|
|
3693
|
-
|
|
3837
|
+
Vt(
|
|
3694
3838
|
"Preset_AlertSubmitHandler",
|
|
3695
3839
|
(e, r, n) => {
|
|
3696
3840
|
const o = {
|
|
@@ -3702,12 +3846,12 @@ $t(
|
|
|
3702
3846
|
alert(t);
|
|
3703
3847
|
}
|
|
3704
3848
|
);
|
|
3705
|
-
const
|
|
3706
|
-
const t =
|
|
3707
|
-
(
|
|
3849
|
+
const dr = N.memo(({ field: e, value: r, handleChange: n, handleError: o }) => {
|
|
3850
|
+
const t = $t(e.type), a = N.useCallback(
|
|
3851
|
+
(i, u) => n(e.name, i, u),
|
|
3708
3852
|
[n, e.name]
|
|
3709
|
-
),
|
|
3710
|
-
(
|
|
3853
|
+
), s = N.useCallback(
|
|
3854
|
+
(i) => o?.(e.name, i),
|
|
3711
3855
|
[o, e.name]
|
|
3712
3856
|
);
|
|
3713
3857
|
return t ? /* @__PURE__ */ g.jsx(
|
|
@@ -3716,13 +3860,13 @@ const fr = A.memo(({ field: e, value: r, handleChange: n, handleError: o }) => {
|
|
|
3716
3860
|
field: e,
|
|
3717
3861
|
value: r,
|
|
3718
3862
|
onChange: a,
|
|
3719
|
-
onError:
|
|
3863
|
+
onError: s
|
|
3720
3864
|
}
|
|
3721
3865
|
) : null;
|
|
3722
3866
|
}, (e, r) => e.field === r.field && e.value === r.value && e.handleChange === r.handleChange && e.handleError === r.handleError);
|
|
3723
|
-
|
|
3724
|
-
const
|
|
3725
|
-
|
|
3867
|
+
dr.displayName = "FieldWrapper";
|
|
3868
|
+
const pr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
|
|
3869
|
+
dr,
|
|
3726
3870
|
{
|
|
3727
3871
|
field: e,
|
|
3728
3872
|
value: r[e.name],
|
|
@@ -3730,8 +3874,8 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
|
|
|
3730
3874
|
handleError: o
|
|
3731
3875
|
},
|
|
3732
3876
|
e.name
|
|
3733
|
-
),
|
|
3734
|
-
const u =
|
|
3877
|
+
), gr = N.memo(({ groupName: e, isOpen: r, fields: n, valuesMap: o, handleChange: t, handleError: a, toggleGroup: s, t: i }) => {
|
|
3878
|
+
const u = N.useCallback(() => s(e), [s, e]), { formStyle: m, fieldStyle: l } = T(), p = N.useMemo(() => ({
|
|
3735
3879
|
border: "1px solid var(--reactaform-border-color, #bbb)",
|
|
3736
3880
|
padding: "var(--reactaform-fieldset-padding, 0.5em)",
|
|
3737
3881
|
borderRadius: "var(--reactaform-border-radius, 4px)",
|
|
@@ -3739,7 +3883,7 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
|
|
|
3739
3883
|
// allow per-form overrides if provider exposes them
|
|
3740
3884
|
...m?.fieldset || {},
|
|
3741
3885
|
...l?.fieldset || {}
|
|
3742
|
-
}), [m, l]), c =
|
|
3886
|
+
}), [m, l]), c = N.useMemo(() => ({
|
|
3743
3887
|
fontWeight: "bold",
|
|
3744
3888
|
cursor: "pointer",
|
|
3745
3889
|
display: "flex",
|
|
@@ -3750,40 +3894,40 @@ const dr = (e, r, n, o) => /* @__PURE__ */ g.jsx(
|
|
|
3750
3894
|
...m?.legend || {},
|
|
3751
3895
|
...l?.legend || {}
|
|
3752
3896
|
}), [m, l]);
|
|
3753
|
-
return /* @__PURE__ */ g.jsxs("fieldset", { style:
|
|
3897
|
+
return /* @__PURE__ */ g.jsxs("fieldset", { style: p, children: [
|
|
3754
3898
|
/* @__PURE__ */ g.jsxs("legend", { onClick: u, style: c, children: [
|
|
3755
|
-
/* @__PURE__ */ g.jsx("span", { children:
|
|
3899
|
+
/* @__PURE__ */ g.jsx("span", { children: i(e) }),
|
|
3756
3900
|
/* @__PURE__ */ g.jsx("span", { children: r ? "▼" : "▶" })
|
|
3757
3901
|
] }),
|
|
3758
|
-
r && n.map((
|
|
3902
|
+
r && n.map((d) => /* @__PURE__ */ g.jsx("div", { children: pr(d, o, t, a) }, d.name))
|
|
3759
3903
|
] });
|
|
3760
3904
|
});
|
|
3761
|
-
|
|
3762
|
-
const
|
|
3763
|
-
const m = r.slice(0,
|
|
3764
|
-
return
|
|
3765
|
-
if (
|
|
3766
|
-
const b = e[
|
|
3905
|
+
gr.displayName = "FieldGroup";
|
|
3906
|
+
const zt = (e, r, n, o, t, a, s, i, u) => {
|
|
3907
|
+
const m = r.slice(0, i).filter((d) => s[d.name]), p = $r(m).groups, c = [];
|
|
3908
|
+
return p.forEach((d) => {
|
|
3909
|
+
if (d.name) {
|
|
3910
|
+
const b = e[d.name] ?? !0;
|
|
3767
3911
|
c.push(
|
|
3768
3912
|
/* @__PURE__ */ g.jsx(
|
|
3769
|
-
|
|
3913
|
+
gr,
|
|
3770
3914
|
{
|
|
3771
|
-
groupName:
|
|
3915
|
+
groupName: d.name,
|
|
3772
3916
|
isOpen: b,
|
|
3773
|
-
fields:
|
|
3917
|
+
fields: d.fields,
|
|
3774
3918
|
valuesMap: n,
|
|
3775
3919
|
handleChange: t,
|
|
3776
3920
|
handleError: a,
|
|
3777
3921
|
toggleGroup: u,
|
|
3778
3922
|
t: o
|
|
3779
3923
|
},
|
|
3780
|
-
|
|
3924
|
+
d.name
|
|
3781
3925
|
)
|
|
3782
3926
|
);
|
|
3783
3927
|
} else
|
|
3784
|
-
|
|
3928
|
+
d.fields.forEach((b) => c.push(/* @__PURE__ */ g.jsx("div", { children: pr(b, n, t, a) }, b.name)));
|
|
3785
3929
|
}), c;
|
|
3786
|
-
},
|
|
3930
|
+
}, Tt = (e) => {
|
|
3787
3931
|
const r = {};
|
|
3788
3932
|
return e.forEach((n) => {
|
|
3789
3933
|
r[n.name] = !1;
|
|
@@ -3791,34 +3935,34 @@ const Tt = (e, r, n, o, t, a, i, s, u) => {
|
|
|
3791
3935
|
}, Pe = (e, r, n, o) => {
|
|
3792
3936
|
const t = r[e];
|
|
3793
3937
|
if (!t?.children) return;
|
|
3794
|
-
const a = n[e],
|
|
3795
|
-
(t.children[
|
|
3938
|
+
const a = n[e], s = a != null ? String(a) : "";
|
|
3939
|
+
(t.children[s] || []).forEach((u) => {
|
|
3796
3940
|
o[u] = !0, Pe(u, r, n, o);
|
|
3797
3941
|
});
|
|
3798
|
-
},
|
|
3942
|
+
}, hr = (e, r, n) => {
|
|
3799
3943
|
const o = r[e];
|
|
3800
3944
|
o?.children && Object.values(o.children).flat().forEach((t) => {
|
|
3801
|
-
n[t] = !1,
|
|
3945
|
+
n[t] = !1, hr(t, r, n);
|
|
3802
3946
|
});
|
|
3803
|
-
},
|
|
3947
|
+
}, Lt = (e, r, n, o) => {
|
|
3804
3948
|
const t = { ...n };
|
|
3805
3949
|
return e.forEach((a) => {
|
|
3806
3950
|
(!a.parents || Object.keys(a.parents).length === 0) && (t[a.name] = !0, Pe(a.name, o, r, t));
|
|
3807
3951
|
}), t;
|
|
3808
|
-
},
|
|
3952
|
+
}, Pt = (e, r, n, o, t) => {
|
|
3809
3953
|
const a = { ...e };
|
|
3810
|
-
if (
|
|
3811
|
-
const
|
|
3812
|
-
if (
|
|
3813
|
-
const
|
|
3814
|
-
(
|
|
3954
|
+
if (hr(o, r, a), t != null) {
|
|
3955
|
+
const s = r[o];
|
|
3956
|
+
if (s?.children) {
|
|
3957
|
+
const i = String(t);
|
|
3958
|
+
(s.children[i] || []).forEach((m) => {
|
|
3815
3959
|
a[m] = !0, Pe(m, r, n, a);
|
|
3816
3960
|
});
|
|
3817
3961
|
}
|
|
3818
3962
|
}
|
|
3819
3963
|
return a;
|
|
3820
3964
|
};
|
|
3821
|
-
function
|
|
3965
|
+
function _t(e, r, n, o, t) {
|
|
3822
3966
|
const a = Object.values(t).filter(Boolean);
|
|
3823
3967
|
if (a.length > 0)
|
|
3824
3968
|
return {
|
|
@@ -3826,34 +3970,34 @@ function Pt(e, r, n, o, t) {
|
|
|
3826
3970
|
message: o("Please fix validation errors before submitting."),
|
|
3827
3971
|
errors: a
|
|
3828
3972
|
};
|
|
3829
|
-
const
|
|
3973
|
+
const s = { ...n }, i = [];
|
|
3830
3974
|
if (e && Array.isArray(e.properties))
|
|
3831
3975
|
for (const m of e.properties) {
|
|
3832
|
-
const l = m.name,
|
|
3833
|
-
if (
|
|
3976
|
+
const l = m.name, p = s[l];
|
|
3977
|
+
if (p == null) continue;
|
|
3834
3978
|
const c = m.type;
|
|
3835
3979
|
try {
|
|
3836
|
-
if (
|
|
3837
|
-
const
|
|
3838
|
-
isNaN(
|
|
3839
|
-
} else if (
|
|
3840
|
-
const b = String(
|
|
3841
|
-
const y = Number(
|
|
3842
|
-
return isNaN(y) ? (
|
|
3980
|
+
if (c === "int" || c === "number" || c === "float") {
|
|
3981
|
+
const d = Number(String(p).trim());
|
|
3982
|
+
isNaN(d) ? i.push(o(`Invalid number format for field ${m.displayName || l}`)) : s[l] = d;
|
|
3983
|
+
} else if (c === "int-array" || c === "float-array") {
|
|
3984
|
+
const b = String(p).split(",").map((f) => f.trim()).filter(Boolean).map((f) => {
|
|
3985
|
+
const y = Number(f);
|
|
3986
|
+
return isNaN(y) ? (i.push(o(`Invalid number "${f}" in array for field ${m.displayName || l}`)), 0) : y;
|
|
3843
3987
|
});
|
|
3844
|
-
|
|
3988
|
+
i.length === 0 && (s[l] = b);
|
|
3845
3989
|
}
|
|
3846
|
-
} catch (
|
|
3847
|
-
|
|
3990
|
+
} catch (d) {
|
|
3991
|
+
i.push(o(`Error processing field ${m.displayName || l}: ${d}`));
|
|
3848
3992
|
}
|
|
3849
3993
|
}
|
|
3850
|
-
if (
|
|
3994
|
+
if (i.length > 0)
|
|
3851
3995
|
return {
|
|
3852
3996
|
success: !1,
|
|
3853
3997
|
message: o("Data transformation errors occurred."),
|
|
3854
|
-
errors:
|
|
3998
|
+
errors: i
|
|
3855
3999
|
};
|
|
3856
|
-
const u =
|
|
4000
|
+
const u = Nr(e, s, o);
|
|
3857
4001
|
if (u && u.length > 0)
|
|
3858
4002
|
return {
|
|
3859
4003
|
success: !1,
|
|
@@ -3861,10 +4005,10 @@ function Pt(e, r, n, o, t) {
|
|
|
3861
4005
|
errors: u
|
|
3862
4006
|
};
|
|
3863
4007
|
if (e && typeof e.submitHandlerName == "string") {
|
|
3864
|
-
const m =
|
|
4008
|
+
const m = Dt(e.submitHandlerName);
|
|
3865
4009
|
if (m)
|
|
3866
4010
|
try {
|
|
3867
|
-
const l = m(e, r?.name ?? null,
|
|
4011
|
+
const l = m(e, r?.name ?? null, s, o);
|
|
3868
4012
|
if (l && l.length > 0)
|
|
3869
4013
|
return {
|
|
3870
4014
|
success: !1,
|
|
@@ -3882,21 +4026,21 @@ function Pt(e, r, n, o, t) {
|
|
|
3882
4026
|
return {
|
|
3883
4027
|
success: !0,
|
|
3884
4028
|
message: o("Form submitted successfully."),
|
|
3885
|
-
data:
|
|
4029
|
+
data: s
|
|
3886
4030
|
};
|
|
3887
4031
|
}
|
|
3888
|
-
const
|
|
4032
|
+
const qt = ({
|
|
3889
4033
|
definition: e,
|
|
3890
4034
|
instance: r,
|
|
3891
4035
|
chunkSize: n = 50,
|
|
3892
4036
|
chunkDelay: o = 50
|
|
3893
4037
|
}) => {
|
|
3894
|
-
const { properties: t, displayName: a } = e,
|
|
3895
|
-
...
|
|
3896
|
-
definitionName: e?.name ??
|
|
3897
|
-
}, [
|
|
4038
|
+
const { properties: t, displayName: a } = e, s = T(), { t: i, formStyle: u, language: m } = s, l = {
|
|
4039
|
+
...s,
|
|
4040
|
+
definitionName: e?.name ?? s.definitionName
|
|
4041
|
+
}, [p, c] = D("en"), [d, b] = D([]), [f, y] = D({}), [x, v] = D(
|
|
3898
4042
|
{}
|
|
3899
|
-
), [F,
|
|
4043
|
+
), [F, R] = D({}), [w, j] = D({}), [I, S] = D({}), [A, M] = D(null), [z, L] = D(null), [J, ce] = D(0), [re, ue] = D(!1), [Q, oe] = D(!1), [P, O] = D(r.name || ""), h = k(r), E = k(!1);
|
|
3900
4044
|
C(() => {
|
|
3901
4045
|
const V = Object.fromEntries(
|
|
3902
4046
|
t.map((H) => [
|
|
@@ -3907,104 +4051,104 @@ const _t = ({
|
|
|
3907
4051
|
t.forEach((H) => {
|
|
3908
4052
|
H.parents && Object.entries(H.parents).forEach(([me, Se]) => {
|
|
3909
4053
|
const fe = V[me];
|
|
3910
|
-
fe && Se.forEach((
|
|
4054
|
+
fe && Se.forEach((br) => {
|
|
3911
4055
|
fe.children || (fe.children = {});
|
|
3912
|
-
const _e = String(
|
|
4056
|
+
const _e = String(br);
|
|
3913
4057
|
fe.children[_e] = [
|
|
3914
4058
|
...fe.children[_e] || [],
|
|
3915
4059
|
H.name
|
|
3916
4060
|
];
|
|
3917
4061
|
});
|
|
3918
4062
|
});
|
|
3919
|
-
}),
|
|
4063
|
+
}), Or(t, V);
|
|
3920
4064
|
const q = Object.values(
|
|
3921
4065
|
V
|
|
3922
|
-
),
|
|
4066
|
+
), X = {};
|
|
3923
4067
|
q.forEach((H) => {
|
|
3924
4068
|
if (H.type === "unit") {
|
|
3925
4069
|
const me = typeof H.defaultValue == "number" ? String(H.defaultValue) : "", Se = typeof H.defaultUnit == "string" ? H.defaultUnit : String(H.defaultUnit ?? "m");
|
|
3926
|
-
|
|
4070
|
+
X[H.name] = [me, Se];
|
|
3927
4071
|
} else
|
|
3928
|
-
|
|
4072
|
+
X[H.name] = H.defaultValue;
|
|
3929
4073
|
}), h.current = r, Object.keys(r.values).forEach((H) => {
|
|
3930
|
-
V[H] !== void 0 && (
|
|
4074
|
+
V[H] !== void 0 && (X[H] = r.values[H]);
|
|
3931
4075
|
});
|
|
3932
|
-
const ee =
|
|
4076
|
+
const ee = Tt(q), te = {};
|
|
3933
4077
|
q.forEach((H) => {
|
|
3934
4078
|
H.group && !(H.group in te) && (te[H.group] = !0);
|
|
3935
4079
|
});
|
|
3936
4080
|
const le = requestAnimationFrame(() => {
|
|
3937
|
-
b(q), y(V),
|
|
3938
|
-
|
|
4081
|
+
b(q), y(V), v(X), R(
|
|
4082
|
+
Lt(q, X, ee, V)
|
|
3939
4083
|
), j(te), ue(!0), O(r.name);
|
|
3940
4084
|
});
|
|
3941
4085
|
return () => cancelAnimationFrame(le);
|
|
3942
4086
|
}, [t, r, e]), C(() => {
|
|
3943
|
-
if (!re || J >=
|
|
4087
|
+
if (!re || J >= d.length) return;
|
|
3944
4088
|
const V = setTimeout(() => {
|
|
3945
4089
|
ce(
|
|
3946
|
-
(q) => Math.min(q + n,
|
|
4090
|
+
(q) => Math.min(q + n, d.length)
|
|
3947
4091
|
);
|
|
3948
4092
|
}, o);
|
|
3949
4093
|
return () => clearTimeout(V);
|
|
3950
|
-
}, [re, J,
|
|
4094
|
+
}, [re, J, d.length, n, o]);
|
|
3951
4095
|
const B = Z(
|
|
3952
|
-
(V, q,
|
|
3953
|
-
M(null), L(null),
|
|
3954
|
-
const te = { ...ee, [V]: q }, le =
|
|
4096
|
+
(V, q, X) => {
|
|
4097
|
+
M(null), L(null), v((ee) => {
|
|
4098
|
+
const te = { ...ee, [V]: q }, le = f[V];
|
|
3955
4099
|
return le && [
|
|
3956
4100
|
"checkbox",
|
|
3957
4101
|
"dropdown",
|
|
3958
4102
|
"multi-select",
|
|
3959
4103
|
"radio",
|
|
3960
4104
|
"switch"
|
|
3961
|
-
].includes(le.type) &&
|
|
3962
|
-
(me) =>
|
|
4105
|
+
].includes(le.type) && R(
|
|
4106
|
+
(me) => Pt(
|
|
3963
4107
|
me,
|
|
3964
|
-
|
|
4108
|
+
f,
|
|
3965
4109
|
te,
|
|
3966
4110
|
V,
|
|
3967
4111
|
String(q)
|
|
3968
4112
|
)
|
|
3969
4113
|
), te;
|
|
3970
|
-
}),
|
|
4114
|
+
}), S((ee) => X ? { ...ee, [V]: X } : Object.fromEntries(Object.entries(ee).filter(([le]) => le !== V)));
|
|
3971
4115
|
},
|
|
3972
|
-
[
|
|
4116
|
+
[f, M, L]
|
|
3973
4117
|
);
|
|
3974
4118
|
C(() => {
|
|
3975
4119
|
let V = 0;
|
|
3976
4120
|
return V = requestAnimationFrame(() => {
|
|
3977
|
-
m !==
|
|
4121
|
+
m !== p && (c(m || "en"), M(null), L(null));
|
|
3978
4122
|
}), () => cancelAnimationFrame(V);
|
|
3979
|
-
}, [m,
|
|
4123
|
+
}, [m, p]), C(() => {
|
|
3980
4124
|
let V = 0;
|
|
3981
4125
|
return V = requestAnimationFrame(() => {
|
|
3982
|
-
if (
|
|
3983
|
-
|
|
4126
|
+
if (E.current) {
|
|
4127
|
+
E.current = !1, h.current = r, O(r.name || "");
|
|
3984
4128
|
return;
|
|
3985
4129
|
}
|
|
3986
4130
|
h.current = r, M(null), L(null), O(r.name || "");
|
|
3987
4131
|
}), () => cancelAnimationFrame(V);
|
|
3988
4132
|
}, [r, r.name]);
|
|
3989
4133
|
const U = Z((V, q) => {
|
|
3990
|
-
|
|
4134
|
+
S((X) => q ? { ...X, [V]: String(q) } : Object.fromEntries(Object.entries(X).filter(([te]) => te !== V)));
|
|
3991
4135
|
}, []), ne = () => {
|
|
3992
|
-
|
|
4136
|
+
E.current = !0;
|
|
3993
4137
|
const V = h.current?.name;
|
|
3994
4138
|
h.current.name = P;
|
|
3995
|
-
const q =
|
|
4139
|
+
const q = _t(e, h.current, x, i, I), X = typeof q.message == "string" ? q.message : String(q.message), ee = Object.values(q.errors ?? {}).join(`
|
|
3996
4140
|
`);
|
|
3997
|
-
M(ee ?
|
|
3998
|
-
` + ee :
|
|
4141
|
+
M(ee ? X + `
|
|
4142
|
+
` + ee : X), L(q.success), q.success || (h.current.name = V ?? h.current.name, O(V ?? ""));
|
|
3999
4143
|
}, ae = (V) => {
|
|
4000
4144
|
j((q) => ({ ...q, [V]: !q[V] }));
|
|
4001
4145
|
}, _ = G(
|
|
4002
|
-
() => Object.values(
|
|
4003
|
-
[
|
|
4146
|
+
() => Object.values(I).some(Boolean),
|
|
4147
|
+
[I]
|
|
4004
4148
|
);
|
|
4005
4149
|
return /* @__PURE__ */ g.jsx(Oe.Provider, { value: l, children: /* @__PURE__ */ g.jsxs("div", { style: u.container, children: [
|
|
4006
|
-
a && /* @__PURE__ */ g.jsx("h2", { style: u.titleStyle, children:
|
|
4007
|
-
|
|
4150
|
+
a && /* @__PURE__ */ g.jsx("h2", { style: u.titleStyle, children: i(a) }),
|
|
4151
|
+
A && /* @__PURE__ */ g.jsxs(
|
|
4008
4152
|
"div",
|
|
4009
4153
|
{
|
|
4010
4154
|
role: "status",
|
|
@@ -4020,14 +4164,14 @@ const _t = ({
|
|
|
4020
4164
|
justifyContent: "space-between"
|
|
4021
4165
|
},
|
|
4022
4166
|
children: [
|
|
4023
|
-
/* @__PURE__ */ g.jsx("div", { style: { whiteSpace: "pre-wrap", flex: 1 }, children:
|
|
4167
|
+
/* @__PURE__ */ g.jsx("div", { style: { whiteSpace: "pre-wrap", flex: 1 }, children: A }),
|
|
4024
4168
|
/* @__PURE__ */ g.jsx(
|
|
4025
4169
|
"button",
|
|
4026
4170
|
{
|
|
4027
4171
|
onClick: () => {
|
|
4028
4172
|
M(null), L(null);
|
|
4029
4173
|
},
|
|
4030
|
-
"aria-label":
|
|
4174
|
+
"aria-label": i("Dismiss"),
|
|
4031
4175
|
style: {
|
|
4032
4176
|
marginLeft: 12,
|
|
4033
4177
|
background: "transparent",
|
|
@@ -4044,7 +4188,7 @@ const _t = ({
|
|
|
4044
4188
|
}
|
|
4045
4189
|
),
|
|
4046
4190
|
r && /* @__PURE__ */ g.jsx(
|
|
4047
|
-
|
|
4191
|
+
tr,
|
|
4048
4192
|
{
|
|
4049
4193
|
name: P,
|
|
4050
4194
|
onChange: (V) => {
|
|
@@ -4053,18 +4197,18 @@ const _t = ({
|
|
|
4053
4197
|
}
|
|
4054
4198
|
),
|
|
4055
4199
|
/* @__PURE__ */ g.jsxs(g.Fragment, { children: [
|
|
4056
|
-
|
|
4200
|
+
zt(
|
|
4057
4201
|
w,
|
|
4058
|
-
|
|
4202
|
+
d,
|
|
4059
4203
|
x,
|
|
4060
|
-
|
|
4204
|
+
i,
|
|
4061
4205
|
B,
|
|
4062
4206
|
U,
|
|
4063
4207
|
F,
|
|
4064
4208
|
J,
|
|
4065
4209
|
ae
|
|
4066
4210
|
),
|
|
4067
|
-
J <
|
|
4211
|
+
J < d.length && /* @__PURE__ */ g.jsx(
|
|
4068
4212
|
"div",
|
|
4069
4213
|
{
|
|
4070
4214
|
style: {
|
|
@@ -4095,13 +4239,13 @@ const _t = ({
|
|
|
4095
4239
|
transition: "opacity 0.2s ease",
|
|
4096
4240
|
opacity: _ ? "var(--reactaform-button-disabled-opacity, 0.6)" : Q ? "var(--reactaform-button-hover-opacity, 0.9)" : "1"
|
|
4097
4241
|
},
|
|
4098
|
-
children:
|
|
4242
|
+
children: i("Submit")
|
|
4099
4243
|
}
|
|
4100
4244
|
)
|
|
4101
4245
|
] }) });
|
|
4102
4246
|
};
|
|
4103
|
-
|
|
4104
|
-
const
|
|
4247
|
+
mr();
|
|
4248
|
+
const Bt = (e, r = !1) => ({
|
|
4105
4249
|
container: {
|
|
4106
4250
|
padding: "var(--reactaform-space-sm, 8px)",
|
|
4107
4251
|
margin: "0 auto",
|
|
@@ -4142,7 +4286,7 @@ const qt = (e, r = !1) => ({
|
|
|
4142
4286
|
lineHeight: "1.2",
|
|
4143
4287
|
textAlign: "left"
|
|
4144
4288
|
}
|
|
4145
|
-
}),
|
|
4289
|
+
}), Ht = (e, r = !1) => {
|
|
4146
4290
|
const n = {
|
|
4147
4291
|
color: "var(--reactaform-color-text)",
|
|
4148
4292
|
fontFamily: e?.fontFamily || "var(--reactaform-font-family, inherit)",
|
|
@@ -4201,68 +4345,68 @@ const qt = (e, r = !1) => ({
|
|
|
4201
4345
|
display: "block"
|
|
4202
4346
|
}
|
|
4203
4347
|
};
|
|
4204
|
-
},
|
|
4348
|
+
}, Ut = ({
|
|
4205
4349
|
children: e,
|
|
4206
4350
|
definitionName: r = "",
|
|
4207
4351
|
defaultStyle: n,
|
|
4208
4352
|
defaultLanguage: o = "en",
|
|
4209
4353
|
defaultDarkMode: t = !1,
|
|
4210
4354
|
defaultLocalizeName: a = "",
|
|
4211
|
-
className:
|
|
4355
|
+
className: s = "reactaform-container"
|
|
4212
4356
|
}) => {
|
|
4213
|
-
const
|
|
4357
|
+
const i = r, u = a, m = t, l = o, p = G(
|
|
4214
4358
|
() => n ?? {},
|
|
4215
4359
|
[n]
|
|
4216
|
-
), [c,
|
|
4360
|
+
), [c, d] = D({}), [b, f] = D({}), [y, x] = D({}), [v, F] = D({});
|
|
4217
4361
|
C(() => {
|
|
4218
|
-
let
|
|
4362
|
+
let S = !0;
|
|
4219
4363
|
return (async () => {
|
|
4220
4364
|
if (l === "en") {
|
|
4221
|
-
|
|
4365
|
+
S && (d({}), f({}));
|
|
4222
4366
|
return;
|
|
4223
4367
|
}
|
|
4224
4368
|
try {
|
|
4225
|
-
const M = await
|
|
4226
|
-
|
|
4227
|
-
const L = await
|
|
4228
|
-
|
|
4369
|
+
const M = await Dr(l), z = M.success ? M.translations : {};
|
|
4370
|
+
S && d(z);
|
|
4371
|
+
const L = await zr(l, u), J = L.success ? L.translations : {};
|
|
4372
|
+
S && f(J);
|
|
4229
4373
|
} catch {
|
|
4230
|
-
|
|
4374
|
+
S && (d({}), f({}));
|
|
4231
4375
|
}
|
|
4232
4376
|
})(), () => {
|
|
4233
|
-
|
|
4377
|
+
S = !1;
|
|
4234
4378
|
};
|
|
4235
4379
|
}, [l, u]), C(() => {
|
|
4236
|
-
F(
|
|
4237
|
-
}, [
|
|
4238
|
-
const
|
|
4239
|
-
() =>
|
|
4380
|
+
F(Bt(p, m)), x(Ht(p, m));
|
|
4381
|
+
}, [p, m]);
|
|
4382
|
+
const R = G(
|
|
4383
|
+
() => Lr(l, c, b),
|
|
4240
4384
|
[l, c, b]
|
|
4241
4385
|
), w = Z(
|
|
4242
|
-
(
|
|
4243
|
-
[
|
|
4386
|
+
(S, ...A) => R(S, ...A),
|
|
4387
|
+
[R]
|
|
4244
4388
|
), j = G(
|
|
4245
4389
|
() => ({
|
|
4246
|
-
definitionName:
|
|
4390
|
+
definitionName: i,
|
|
4247
4391
|
language: l,
|
|
4248
4392
|
darkMode: m,
|
|
4249
|
-
formStyle:
|
|
4393
|
+
formStyle: v,
|
|
4250
4394
|
fieldStyle: y,
|
|
4251
4395
|
t: w
|
|
4252
4396
|
}),
|
|
4253
|
-
[
|
|
4254
|
-
),
|
|
4397
|
+
[i, l, m, y, v, w]
|
|
4398
|
+
), I = p?.height ? { height: "100%" } : void 0;
|
|
4255
4399
|
return /* @__PURE__ */ g.jsx(Oe.Provider, { value: j, children: /* @__PURE__ */ g.jsx(
|
|
4256
4400
|
"div",
|
|
4257
4401
|
{
|
|
4258
4402
|
"data-reactaform-theme": m ? "dark" : "light",
|
|
4259
|
-
className:
|
|
4260
|
-
style:
|
|
4403
|
+
className: s,
|
|
4404
|
+
style: I,
|
|
4261
4405
|
children: e
|
|
4262
4406
|
}
|
|
4263
4407
|
) });
|
|
4264
4408
|
};
|
|
4265
|
-
function
|
|
4409
|
+
function Wt(e) {
|
|
4266
4410
|
if (!e || typeof e != "object") return "Definition must be an object";
|
|
4267
4411
|
const r = e;
|
|
4268
4412
|
if (!r.name || typeof r.name != "string") return "Definition must include a 'name' string";
|
|
@@ -4277,7 +4421,7 @@ function Ut(e) {
|
|
|
4277
4421
|
}
|
|
4278
4422
|
return null;
|
|
4279
4423
|
}
|
|
4280
|
-
async function
|
|
4424
|
+
async function sn(e, r = {}) {
|
|
4281
4425
|
const { validateSchema: n = !0 } = r;
|
|
4282
4426
|
try {
|
|
4283
4427
|
if (!e || typeof e != "string")
|
|
@@ -4295,7 +4439,7 @@ async function an(e, r = {}) {
|
|
|
4295
4439
|
};
|
|
4296
4440
|
}
|
|
4297
4441
|
if (n) {
|
|
4298
|
-
const a =
|
|
4442
|
+
const a = Wt(t);
|
|
4299
4443
|
if (a)
|
|
4300
4444
|
return { success: !1, error: `Schema validation failed: ${a}` };
|
|
4301
4445
|
}
|
|
@@ -4304,7 +4448,7 @@ async function an(e, r = {}) {
|
|
|
4304
4448
|
return { success: !1, error: `Unexpected error loading definition: ${o instanceof Error ? o.message : "Unknown error"}` };
|
|
4305
4449
|
}
|
|
4306
4450
|
}
|
|
4307
|
-
function
|
|
4451
|
+
function Yt(e, r) {
|
|
4308
4452
|
try {
|
|
4309
4453
|
if (!e)
|
|
4310
4454
|
return { success: !1, error: "Definition is required" };
|
|
@@ -4327,7 +4471,7 @@ function Wt(e, r) {
|
|
|
4327
4471
|
};
|
|
4328
4472
|
}
|
|
4329
4473
|
}
|
|
4330
|
-
function
|
|
4474
|
+
function cn(e) {
|
|
4331
4475
|
try {
|
|
4332
4476
|
if (!e)
|
|
4333
4477
|
return { success: !1, error: "Instance data is required" };
|
|
@@ -4351,9 +4495,9 @@ function sn(e) {
|
|
|
4351
4495
|
};
|
|
4352
4496
|
}
|
|
4353
4497
|
}
|
|
4354
|
-
|
|
4355
|
-
function
|
|
4356
|
-
const [r, n] =
|
|
4498
|
+
mr();
|
|
4499
|
+
function Jt(e) {
|
|
4500
|
+
const [r, n] = D(null);
|
|
4357
4501
|
return C(() => {
|
|
4358
4502
|
const o = document.querySelector("[data-reactaform-theme]");
|
|
4359
4503
|
if (!o) return;
|
|
@@ -4361,14 +4505,14 @@ function Yt(e) {
|
|
|
4361
4505
|
if (!t) return;
|
|
4362
4506
|
const a = () => n(t.getAttribute("data-reactaform-theme"));
|
|
4363
4507
|
a();
|
|
4364
|
-
const
|
|
4365
|
-
for (const u of
|
|
4508
|
+
const s = new MutationObserver((i) => {
|
|
4509
|
+
for (const u of i)
|
|
4366
4510
|
u.type === "attributes" && u.attributeName === "data-reactaform-theme" && a();
|
|
4367
4511
|
});
|
|
4368
|
-
return
|
|
4512
|
+
return s.observe(t, { attributes: !0, attributeFilter: ["data-reactaform-theme"] }), () => s.disconnect();
|
|
4369
4513
|
}, [e]), r;
|
|
4370
4514
|
}
|
|
4371
|
-
const
|
|
4515
|
+
const ln = ({
|
|
4372
4516
|
definitionData: e,
|
|
4373
4517
|
instance: r,
|
|
4374
4518
|
language: n,
|
|
@@ -4376,75 +4520,75 @@ const cn = ({
|
|
|
4376
4520
|
darkMode: t,
|
|
4377
4521
|
style: a
|
|
4378
4522
|
}) => {
|
|
4379
|
-
const
|
|
4523
|
+
const s = G(() => {
|
|
4380
4524
|
try {
|
|
4381
4525
|
return typeof e == "string" ? JSON.parse(e) : e ?? null;
|
|
4382
4526
|
} catch {
|
|
4383
4527
|
return null;
|
|
4384
4528
|
}
|
|
4385
|
-
}, [e]),
|
|
4529
|
+
}, [e]), i = { fontSize: "inherit", fontFamily: "inherit", ...a }, u = Jt(), m = t ?? u === "dark", l = n ?? "en";
|
|
4386
4530
|
if (C(() => {
|
|
4387
4531
|
let c = document.getElementById("popup-root");
|
|
4388
4532
|
c || (c = document.createElement("div"), c.id = "popup-root", document.body.appendChild(c));
|
|
4389
|
-
}, []), !
|
|
4533
|
+
}, []), !s)
|
|
4390
4534
|
return /* @__PURE__ */ g.jsx("div", { style: { color: "red" }, children: "Error: No form definition provided." });
|
|
4391
|
-
let
|
|
4392
|
-
if (!
|
|
4393
|
-
const c =
|
|
4535
|
+
let p = r;
|
|
4536
|
+
if (!p) {
|
|
4537
|
+
const c = Yt(s, s.name);
|
|
4394
4538
|
if (!c.success || !c.instance)
|
|
4395
4539
|
return /* @__PURE__ */ g.jsx("div", { style: { color: "red" }, children: "Error: Failed to create instance from definition." });
|
|
4396
|
-
|
|
4540
|
+
p = c.instance;
|
|
4397
4541
|
}
|
|
4398
4542
|
return /* @__PURE__ */ g.jsx(
|
|
4399
|
-
|
|
4543
|
+
Ut,
|
|
4400
4544
|
{
|
|
4401
|
-
definitionName:
|
|
4402
|
-
defaultStyle:
|
|
4545
|
+
definitionName: s.name,
|
|
4546
|
+
defaultStyle: i,
|
|
4403
4547
|
defaultLanguage: l,
|
|
4404
4548
|
defaultDarkMode: m,
|
|
4405
|
-
defaultLocalizeName:
|
|
4549
|
+
defaultLocalizeName: s.localization || "",
|
|
4406
4550
|
className: o,
|
|
4407
4551
|
children: /* @__PURE__ */ g.jsx(
|
|
4408
|
-
|
|
4552
|
+
qt,
|
|
4409
4553
|
{
|
|
4410
|
-
definition:
|
|
4411
|
-
instance:
|
|
4554
|
+
definition: s,
|
|
4555
|
+
instance: p
|
|
4412
4556
|
}
|
|
4413
4557
|
)
|
|
4414
4558
|
}
|
|
4415
4559
|
);
|
|
4416
4560
|
};
|
|
4417
|
-
function
|
|
4561
|
+
function Gt() {
|
|
4418
4562
|
if (!(typeof document > "u") && !document.getElementById("reactaform-styles"))
|
|
4419
4563
|
try {
|
|
4420
4564
|
const e = document.createElement("style");
|
|
4421
|
-
e.id = "reactaform-styles", e.textContent =
|
|
4565
|
+
e.id = "reactaform-styles", e.textContent = vr, document.head.appendChild(e);
|
|
4422
4566
|
} catch {
|
|
4423
4567
|
}
|
|
4424
4568
|
}
|
|
4425
|
-
|
|
4569
|
+
Gt();
|
|
4426
4570
|
export {
|
|
4427
4571
|
$ as CSS_CLASSES,
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4572
|
+
ln as ReactaForm,
|
|
4573
|
+
Ut as ReactaFormProvider,
|
|
4574
|
+
qt as ReactaFormRenderer,
|
|
4431
4575
|
W as StandardFieldLayout,
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4576
|
+
on as Units,
|
|
4577
|
+
K as combineClasses,
|
|
4578
|
+
Yt as createInstanceFromDefinition,
|
|
4579
|
+
nn as deserializeDefinition,
|
|
4580
|
+
rn as deserializeInstance,
|
|
4581
|
+
$t as getComponent,
|
|
4582
|
+
cn as loadInstance,
|
|
4583
|
+
sn as loadJsonDefinition,
|
|
4584
|
+
an as registerComponent,
|
|
4585
|
+
Qt as registerFieldValidationHandler,
|
|
4586
|
+
Zt as registerFormValidationHandler,
|
|
4587
|
+
Vt as registerSubmissionHandler,
|
|
4588
|
+
tn as serializeDefinition,
|
|
4589
|
+
en as serializeInstance,
|
|
4590
|
+
jr as useDebouncedCallback,
|
|
4591
|
+
T as useReactaFormContext,
|
|
4448
4592
|
Y as validateFieldValue,
|
|
4449
|
-
|
|
4593
|
+
Nr as validateFormValues
|
|
4450
4594
|
};
|