treege 3.0.0-beta.62 → 3.0.0-beta.64
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 +95 -43
- package/dist/DefaultInputs-2wzCRMKH.js +1742 -0
- package/dist/{ThemeContext-cGSTk24y.js → ThemeContext-7cghqUb0.js} +108 -602
- package/dist/{editor-K1jjfc5n.js → editor-DPECN9XS.js} +1799 -1800
- package/dist/editor.js +2 -2
- package/dist/main.js +6 -4
- package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +1 -2
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultStep.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSubmitInput.d.ts +11 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +2 -0
- package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.d.ts +2 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultStep.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +4 -0
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +10 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +2 -2
- package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +2 -2
- package/dist/renderer/hooks/useRenderNode.d.ts +4 -1
- package/dist/renderer/types/renderer.d.ts +73 -11
- package/dist/renderer/utils/form.d.ts +16 -0
- package/dist/renderer-DlAYvOLz.js +272 -0
- package/dist/renderer-native.js +1011 -1002
- package/dist/renderer.js +5 -3
- package/dist/useRenderNode-CZt7LwVV.js +504 -0
- package/package.json +1 -1
- package/dist/DefaultInputs-DamDWb5R.js +0 -1988
- package/dist/renderer/features/TreegeRenderer/InputRendererHost.d.ts +0 -15
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
1
|
+
import { createContext as e, useContext as t, useEffect as n, useMemo as r, useState as i } from "react";
|
|
2
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import o from "dompurify";
|
|
4
4
|
//#region src/shared/utils/nodeTypeGuards.ts
|
|
5
|
-
var
|
|
5
|
+
var s = (e) => e?.type === "input", c = (e) => e?.type === "ui", l = (e) => e?.type === "group", u = {
|
|
6
6
|
common: {
|
|
7
7
|
cancel: "إلغاء",
|
|
8
8
|
clear: "مسح",
|
|
@@ -74,7 +74,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
74
74
|
invalidFormat: "تنسيق غير صالح",
|
|
75
75
|
required: "هذا الحقل مطلوب"
|
|
76
76
|
}
|
|
77
|
-
},
|
|
77
|
+
}, d = {
|
|
78
78
|
common: {
|
|
79
79
|
cancel: "Abbrechen",
|
|
80
80
|
clear: "Löschen",
|
|
@@ -146,7 +146,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
146
146
|
invalidFormat: "Ungültiges Format",
|
|
147
147
|
required: "Dieses Feld ist erforderlich"
|
|
148
148
|
}
|
|
149
|
-
},
|
|
149
|
+
}, f = {
|
|
150
150
|
common: {
|
|
151
151
|
cancel: "Cancel",
|
|
152
152
|
clear: "Clear",
|
|
@@ -218,7 +218,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
218
218
|
invalidFormat: "Invalid format",
|
|
219
219
|
required: "This field is required"
|
|
220
220
|
}
|
|
221
|
-
},
|
|
221
|
+
}, p = {
|
|
222
222
|
common: {
|
|
223
223
|
cancel: "Cancelar",
|
|
224
224
|
clear: "Limpiar",
|
|
@@ -290,7 +290,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
290
290
|
invalidFormat: "Formato inválido",
|
|
291
291
|
required: "Este campo es obligatorio"
|
|
292
292
|
}
|
|
293
|
-
},
|
|
293
|
+
}, m = {
|
|
294
294
|
common: {
|
|
295
295
|
cancel: "Annuler",
|
|
296
296
|
clear: "Effacer",
|
|
@@ -362,7 +362,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
362
362
|
invalidFormat: "Format invalide",
|
|
363
363
|
required: "Ce champ est requis"
|
|
364
364
|
}
|
|
365
|
-
},
|
|
365
|
+
}, h = {
|
|
366
366
|
common: {
|
|
367
367
|
cancel: "Annulla",
|
|
368
368
|
clear: "Cancella",
|
|
@@ -434,7 +434,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
434
434
|
invalidFormat: "Formato non valido",
|
|
435
435
|
required: "Questo campo è obbligatorio"
|
|
436
436
|
}
|
|
437
|
-
},
|
|
437
|
+
}, g = {
|
|
438
438
|
common: {
|
|
439
439
|
cancel: "Cancelar",
|
|
440
440
|
clear: "Limpar",
|
|
@@ -506,28 +506,28 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
506
506
|
invalidFormat: "Formato inválido",
|
|
507
507
|
required: "Este campo é obrigatório"
|
|
508
508
|
}
|
|
509
|
-
},
|
|
510
|
-
ar:
|
|
511
|
-
de:
|
|
512
|
-
en:
|
|
513
|
-
es:
|
|
514
|
-
fr:
|
|
515
|
-
it:
|
|
516
|
-
pt:
|
|
517
|
-
},
|
|
509
|
+
}, _ = (e, t = "en") => e ? typeof e == "string" ? e : e[t] || e.en || Object.values(e).find(Boolean) || "" : "", v = {
|
|
510
|
+
ar: u,
|
|
511
|
+
de: d,
|
|
512
|
+
en: f,
|
|
513
|
+
es: p,
|
|
514
|
+
fr: m,
|
|
515
|
+
it: h,
|
|
516
|
+
pt: g
|
|
517
|
+
}, y = (e, t = "") => Object.keys(e).reduce((n, r) => {
|
|
518
518
|
let i = e[r], a = t ? `${t}.${r}` : r;
|
|
519
|
-
return typeof i == "object" && i && !Array.isArray(i) ? Object.assign(n,
|
|
520
|
-
}, {}),
|
|
521
|
-
let t =
|
|
522
|
-
return
|
|
523
|
-
},
|
|
519
|
+
return typeof i == "object" && i && !Array.isArray(i) ? Object.assign(n, y(i, a)) : n[a] = String(i), n;
|
|
520
|
+
}, {}), b = (e) => y(v[e] || v.en), x = (e) => {
|
|
521
|
+
let t = r(() => b(e), [e]);
|
|
522
|
+
return r(() => (n) => n ? typeof n == "object" ? _(n, e) : n in t ? t[n] : n : "", [e, t]);
|
|
523
|
+
}, S = {
|
|
524
524
|
AND: "AND",
|
|
525
525
|
OR: "OR"
|
|
526
|
-
},
|
|
526
|
+
}, C = {
|
|
527
527
|
group: "group",
|
|
528
528
|
input: "input",
|
|
529
529
|
ui: "ui"
|
|
530
|
-
},
|
|
530
|
+
}, w = {
|
|
531
531
|
baseUrl: void 0,
|
|
532
532
|
flow: null,
|
|
533
533
|
formErrors: {},
|
|
@@ -538,30 +538,22 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
538
538
|
language: "",
|
|
539
539
|
optionsDisplayLimit: void 0,
|
|
540
540
|
setFieldValue: () => {}
|
|
541
|
-
},
|
|
542
|
-
let n =
|
|
543
|
-
...
|
|
541
|
+
}, T = e(null), E = ({ children: e, value: t }) => {
|
|
542
|
+
let n = r(() => ({
|
|
543
|
+
...w,
|
|
544
544
|
...t
|
|
545
545
|
}), [t]);
|
|
546
|
-
return /* @__PURE__ */
|
|
546
|
+
return /* @__PURE__ */ a(T.Provider, {
|
|
547
547
|
value: n,
|
|
548
548
|
children: e
|
|
549
549
|
});
|
|
550
|
-
},
|
|
551
|
-
let e =
|
|
550
|
+
}, D = () => {
|
|
551
|
+
let e = t(T) ?? w, n = r(() => e.flow?.edges ?? [], [e.flow]);
|
|
552
552
|
return {
|
|
553
553
|
...e,
|
|
554
|
-
edges:
|
|
554
|
+
edges: n
|
|
555
555
|
};
|
|
556
|
-
}
|
|
557
|
-
//#endregion
|
|
558
|
-
//#region src/renderer/features/TreegeRenderer/InputRendererHost.tsx
|
|
559
|
-
function j({ render: e, field: t, extra: n }) {
|
|
560
|
-
return /* @__PURE__ */ l(c, { children: e(t, n) });
|
|
561
|
-
}
|
|
562
|
-
//#endregion
|
|
563
|
-
//#region src/renderer/utils/sanitize.ts
|
|
564
|
-
var M = [
|
|
556
|
+
}, ee = [
|
|
565
557
|
"b",
|
|
566
558
|
"i",
|
|
567
559
|
"em",
|
|
@@ -570,45 +562,45 @@ var M = [
|
|
|
570
562
|
"br",
|
|
571
563
|
"p",
|
|
572
564
|
"span"
|
|
573
|
-
], te = ["class"],
|
|
565
|
+
], te = ["class"], O = (e, t = {}) => {
|
|
574
566
|
if (e == null || e === "") return "";
|
|
575
567
|
let n = String(e), { plainTextOnly: r = !0, allowedTags: i, allowedAttributes: a } = t;
|
|
576
|
-
if (r) return
|
|
568
|
+
if (r) return o.sanitize(n, {
|
|
577
569
|
ALLOWED_ATTR: [],
|
|
578
570
|
ALLOWED_TAGS: []
|
|
579
571
|
});
|
|
580
|
-
let
|
|
581
|
-
return
|
|
572
|
+
let s = i ?? ee, c = a ?? te;
|
|
573
|
+
return o.sanitize(n, {
|
|
582
574
|
ALLOW_DATA_ATTR: !1,
|
|
583
575
|
ALLOW_UNKNOWN_PROTOCOLS: !1,
|
|
584
|
-
ALLOWED_ATTR:
|
|
585
|
-
ALLOWED_TAGS:
|
|
576
|
+
ALLOWED_ATTR: c,
|
|
577
|
+
ALLOWED_TAGS: s,
|
|
586
578
|
FORBID_ATTR: ["style"],
|
|
587
579
|
FORBID_TAGS: ["style", "script"],
|
|
588
580
|
KEEP_CONTENT: !0,
|
|
589
581
|
RETURN_DOM: !1,
|
|
590
582
|
RETURN_DOM_FRAGMENT: !1
|
|
591
583
|
});
|
|
592
|
-
},
|
|
593
|
-
if (n >
|
|
584
|
+
}, k = 100, A = (e, t = {}, n = 0, r = /* @__PURE__ */ new WeakSet()) => {
|
|
585
|
+
if (n > k) return console.warn(`sanitizeHttpResponse: Maximum depth (${k}) exceeded.`), typeof e == "string" ? O(e, t) : "[Max Depth Exceeded]";
|
|
594
586
|
if (e == null) return e;
|
|
595
|
-
if (typeof e == "string") return
|
|
596
|
-
if (Array.isArray(e)) return e.map((e) =>
|
|
587
|
+
if (typeof e == "string") return O(e, t);
|
|
588
|
+
if (Array.isArray(e)) return e.map((e) => A(e, t, n + 1, r));
|
|
597
589
|
if (typeof e == "object") {
|
|
598
590
|
if (r.has(e)) return console.warn("sanitizeHttpResponse: Circular reference detected. Breaking cycle to prevent infinite recursion."), "[Circular Reference]";
|
|
599
591
|
r.add(e);
|
|
600
592
|
let i = {};
|
|
601
|
-
for (let [a, o] of Object.entries(e)) i[a] =
|
|
593
|
+
for (let [a, o] of Object.entries(e)) i[a] = A(o, t, n + 1, r);
|
|
602
594
|
return r.delete(e), i;
|
|
603
595
|
}
|
|
604
596
|
return e;
|
|
605
|
-
},
|
|
606
|
-
let t =
|
|
607
|
-
return
|
|
597
|
+
}, j = (e) => {
|
|
598
|
+
let t = D(), n = x(e ?? t.language);
|
|
599
|
+
return r(() => (e) => {
|
|
608
600
|
let t = n(e);
|
|
609
|
-
return typeof e == "object" && e ?
|
|
601
|
+
return typeof e == "object" && e ? O(t) : t;
|
|
610
602
|
}, [n]);
|
|
611
|
-
},
|
|
603
|
+
}, M = (...e) => {
|
|
612
604
|
let t = /* @__PURE__ */ new Map();
|
|
613
605
|
return e.forEach((e) => {
|
|
614
606
|
e && Object.entries(e).forEach(([e, n]) => {
|
|
@@ -618,19 +610,19 @@ var M = [
|
|
|
618
610
|
});
|
|
619
611
|
});
|
|
620
612
|
}), Object.fromEntries(Array.from(t.values(), ({ key: e, value: t }) => [e, t]));
|
|
621
|
-
},
|
|
613
|
+
}, ne = (e, t, n) => e && Object.fromEntries(Object.entries(e).map(([e, r]) => [e, F(r, t, n)])), N = (e, t) => {
|
|
622
614
|
let n = Object.entries(t ?? {}).filter(([e]) => e);
|
|
623
615
|
if (n.length === 0) return e;
|
|
624
616
|
let r = n.map(([e, t]) => `${encodeURIComponent(e)}=${encodeURIComponent(t ?? "")}`).join("&");
|
|
625
617
|
return r ? `${e}${e.includes("?") ? "&" : "?"}${r}` : e;
|
|
626
|
-
},
|
|
618
|
+
}, re = (e, t) => !(t && e) || /^(https?:)?\/\//i.test(e) ? e : `${t.replace(/\/+$/, "")}/${e.replace(/^\/+/, "")}`, P = async (e) => {
|
|
627
619
|
try {
|
|
628
620
|
let { url: t, method: n = "GET", headers: r, queryParams: i, body: a, signal: o } = e;
|
|
629
621
|
if (!t || t.trim() === "") return {
|
|
630
622
|
error: "No URL provided",
|
|
631
623
|
success: !1
|
|
632
624
|
};
|
|
633
|
-
let s =
|
|
625
|
+
let s = N(t, i), c = M({ "Content-Type": "application/json" }, r), l = {
|
|
634
626
|
headers: Object.fromEntries(Object.entries(c).filter(([, e]) => e)),
|
|
635
627
|
method: n,
|
|
636
628
|
signal: o
|
|
@@ -659,13 +651,13 @@ var M = [
|
|
|
659
651
|
success: !1
|
|
660
652
|
};
|
|
661
653
|
}
|
|
662
|
-
},
|
|
654
|
+
}, F = (e, t, n = {}) => {
|
|
663
655
|
if (!e) return "";
|
|
664
656
|
let { encode: r = !1, json: i = !1 } = n;
|
|
665
657
|
return e.replace(/\{\{([\w-]+)}}/g, (e, n) => {
|
|
666
658
|
let a = t[n.trim()];
|
|
667
659
|
if (a == null) return i ? "null" : "";
|
|
668
|
-
let o = typeof a == "string" ?
|
|
660
|
+
let o = typeof a == "string" ? O(a) : a;
|
|
669
661
|
if (r) return encodeURIComponent(String(o));
|
|
670
662
|
if (i) {
|
|
671
663
|
if (typeof o == "string") return `"${o.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
|
|
@@ -674,14 +666,14 @@ var M = [
|
|
|
674
666
|
}
|
|
675
667
|
return String(o);
|
|
676
668
|
});
|
|
677
|
-
},
|
|
678
|
-
let r =
|
|
669
|
+
}, I = (e, t) => e ? e.replace(/\{\{response\.([\w.-]+)}}/g, (e, n) => {
|
|
670
|
+
let r = L(t, n.trim());
|
|
679
671
|
return r == null ? "" : String(r);
|
|
680
|
-
}) : "",
|
|
672
|
+
}) : "", L = (e, t) => {
|
|
681
673
|
if (!(!e || typeof e != "object")) return t.split(".").reduce((e, t) => {
|
|
682
674
|
if (!(typeof e != "object" || !e)) return e[t];
|
|
683
675
|
}, e);
|
|
684
|
-
},
|
|
676
|
+
}, R = (e, t) => t ? t.split(".").reduce((e, t) => {
|
|
685
677
|
if (e == null) return;
|
|
686
678
|
let n = t.match(/^(\w+)\[(\d+)]$/);
|
|
687
679
|
if (n) {
|
|
@@ -689,26 +681,26 @@ var M = [
|
|
|
689
681
|
return Array.isArray(i) ? i[Number.parseInt(r, 10)] : i;
|
|
690
682
|
}
|
|
691
683
|
return e[t];
|
|
692
|
-
}, e) : e,
|
|
693
|
-
let r =
|
|
684
|
+
}, e) : e, z = (e, t, n) => {
|
|
685
|
+
let r = R(e, t ?? "");
|
|
694
686
|
return Array.isArray(r) ? r.map((e) => {
|
|
695
|
-
let t =
|
|
687
|
+
let t = R(e, n.valueField), r = R(e, n.labelField);
|
|
696
688
|
if (t == null) return null;
|
|
697
689
|
let i = {
|
|
698
690
|
label: { en: String(r ?? t) },
|
|
699
691
|
value: String(t)
|
|
700
692
|
};
|
|
701
693
|
if (n.descriptionField) {
|
|
702
|
-
let t =
|
|
694
|
+
let t = R(e, n.descriptionField);
|
|
703
695
|
t != null && t !== "" && (i.description = { en: String(t) });
|
|
704
696
|
}
|
|
705
697
|
if (n.imageField) {
|
|
706
|
-
let t =
|
|
698
|
+
let t = R(e, n.imageField);
|
|
707
699
|
typeof t == "string" && t !== "" && (i.image = t);
|
|
708
700
|
}
|
|
709
701
|
return i;
|
|
710
702
|
}).filter((e) => e !== null) : [];
|
|
711
|
-
},
|
|
703
|
+
}, B = (e) => new Promise((t, n) => {
|
|
712
704
|
let r = new FileReader();
|
|
713
705
|
r.onload = () => {
|
|
714
706
|
let n = r.result;
|
|
@@ -722,7 +714,7 @@ var M = [
|
|
|
722
714
|
}, r.onerror = () => {
|
|
723
715
|
n(/* @__PURE__ */ Error(`Failed to read file: ${e.name}`));
|
|
724
716
|
}, r.readAsDataURL(e);
|
|
725
|
-
}),
|
|
717
|
+
}), V = (e) => {
|
|
726
718
|
let t = e.data.split(",")[1], n = atob(t), r = new ArrayBuffer(n.length), i = new Uint8Array(r);
|
|
727
719
|
for (let e = 0; e < n.length; e++) i[e] = n.charCodeAt(e);
|
|
728
720
|
let a = new Blob([r], { type: e.type });
|
|
@@ -730,13 +722,13 @@ var M = [
|
|
|
730
722
|
lastModified: e.lastModified,
|
|
731
723
|
type: e.type
|
|
732
724
|
});
|
|
733
|
-
},
|
|
725
|
+
}, H = (e) => Promise.all(e.map((e) => B(e))), U = new Set([
|
|
734
726
|
"text",
|
|
735
727
|
"number",
|
|
736
728
|
"password",
|
|
737
729
|
"textarea",
|
|
738
730
|
"time"
|
|
739
|
-
]),
|
|
731
|
+
]), W = (e) => e.filter(s), G = (e) => {
|
|
740
732
|
if (e.data.name) return e.data.name;
|
|
741
733
|
if (e.data.label) {
|
|
742
734
|
if (e.data.label.en) return e.data.label.en;
|
|
@@ -744,13 +736,30 @@ var M = [
|
|
|
744
736
|
if (t) return t;
|
|
745
737
|
}
|
|
746
738
|
return e.id;
|
|
747
|
-
},
|
|
739
|
+
}, K = (e, t) => _(e.data.label, t) || e.data.name || e.id, q = (e, t) => {
|
|
748
740
|
let n = e.type ?? "text";
|
|
749
|
-
return !e.placeholder?.[t] &&
|
|
750
|
-
},
|
|
741
|
+
return !e.placeholder?.[t] && U.has(n) ? b(t)["renderer.defaultInputs.newAnswer"] ?? "" : _(e.placeholder, t);
|
|
742
|
+
}, J = (e) => e == null || typeof e == "string" && e.trim() === "" ? !0 : Array.isArray(e) && e.length === 0, Y = (e, t) => e ? t[e] != null : !1, ie = (e, t) => {
|
|
743
|
+
let n = {};
|
|
744
|
+
return t.forEach((t) => {
|
|
745
|
+
if (e[t.id] !== void 0) {
|
|
746
|
+
n[t.id] = e[t.id];
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
let r = G(t);
|
|
750
|
+
e[r] !== void 0 && (n[t.id] = e[r]);
|
|
751
|
+
}), t.forEach((e) => {
|
|
752
|
+
if (n[e.id] !== void 0) return;
|
|
753
|
+
let { defaultValue: t } = e.data;
|
|
754
|
+
if (t && (t.type === "static" && t.staticValue !== void 0 && (n[e.id] = t.staticValue), t.type === "reference" && t.referenceField)) {
|
|
755
|
+
let r = n[t.referenceField];
|
|
756
|
+
r !== void 0 && (n[e.id] = r);
|
|
757
|
+
}
|
|
758
|
+
}), n;
|
|
759
|
+
}, ae = (e, t) => {
|
|
751
760
|
let n = {};
|
|
752
761
|
return t.forEach((t) => {
|
|
753
|
-
let r = t.id, i =
|
|
762
|
+
let r = t.id, i = G(t);
|
|
754
763
|
e[r] !== void 0 && (n[i] = e[r]);
|
|
755
764
|
}), n;
|
|
756
765
|
}, X = (e, t, n) => {
|
|
@@ -788,7 +797,7 @@ var M = [
|
|
|
788
797
|
return e;
|
|
789
798
|
default: return e;
|
|
790
799
|
}
|
|
791
|
-
},
|
|
800
|
+
}, Z = (e, t) => {
|
|
792
801
|
if (Object.is(e, t)) return !0;
|
|
793
802
|
if (!(e && t) || typeof e != "object" || typeof t != "object") return !1;
|
|
794
803
|
try {
|
|
@@ -796,520 +805,17 @@ var M = [
|
|
|
796
805
|
} catch {
|
|
797
806
|
return !1;
|
|
798
807
|
}
|
|
799
|
-
},
|
|
808
|
+
}, oe = (e, t, n) => {
|
|
800
809
|
let r = {};
|
|
801
810
|
return e.forEach((e) => {
|
|
802
811
|
let { defaultValue: i } = e.data;
|
|
803
812
|
if (!i || i.type !== "reference" || !i.referenceField) return;
|
|
804
813
|
let a = e.id, { referenceField: o, transformFunction: s, objectMapping: c } = i, l = t[o], u = n[o];
|
|
805
814
|
if (l === u || l == null) return;
|
|
806
|
-
let d = X(l, s, c), f = X(u, s, c), p = t[a], m =
|
|
815
|
+
let d = X(l, s, c), f = X(u, s, c), p = t[a], m = Z(p, f), h = Z(p, d);
|
|
807
816
|
!m || h || (r[a] = d);
|
|
808
817
|
}), r;
|
|
809
|
-
},
|
|
810
|
-
value: t,
|
|
811
|
-
children: e
|
|
812
|
-
}), me = async (e, t, n, r, i) => {
|
|
813
|
-
if (!e.url || e.url.trim() === "") return {
|
|
814
|
-
error: "No URL configured for submission",
|
|
815
|
-
success: !1
|
|
816
|
-
};
|
|
817
|
-
let a = z(V(e.url, t, { encode: !0 }), i);
|
|
818
|
-
if (!a || a.trim() === "") return {
|
|
819
|
-
error: "Invalid URL after template replacement",
|
|
820
|
-
success: !1
|
|
821
|
-
};
|
|
822
|
-
let o = await B({
|
|
823
|
-
body: e.sendAllFormValues ? JSON.stringify(le(t, n)) : e.body ? V(e.body, t, { json: !0 }) : void 0,
|
|
824
|
-
headers: I(L(r, t), L(e.headers, t)),
|
|
825
|
-
method: e.method || "POST",
|
|
826
|
-
queryParams: L(e.queryParams, t),
|
|
827
|
-
url: a
|
|
828
|
-
});
|
|
829
|
-
if (!o.success) return {
|
|
830
|
-
data: o.data,
|
|
831
|
-
error: o.error,
|
|
832
|
-
success: !1
|
|
833
|
-
};
|
|
834
|
-
let s = e.redirectUrl ? (() => {
|
|
835
|
-
let t = H(e.redirectUrl, o.data);
|
|
836
|
-
return t && t.trim() !== "" ? t : void 0;
|
|
837
|
-
})() : void 0;
|
|
838
|
-
return {
|
|
839
|
-
data: o.data,
|
|
840
|
-
redirectUrl: s,
|
|
841
|
-
success: !0
|
|
842
|
-
};
|
|
843
|
-
}, he = (e) => {
|
|
844
|
-
e && (e.startsWith("http://") || e.startsWith("https://") ? window.location.href = e : window.history?.pushState ? (window.history.pushState({}, "", e), window.dispatchEvent(new PopStateEvent("popstate"))) : window.location.href = e);
|
|
845
|
-
}, ge = (e, t, r, i, o, c) => {
|
|
846
|
-
let [l, u] = s(!1), [f, p] = s(null), m = a(() => {
|
|
847
|
-
let t = e.find((e) => d(e) && e.data?.type === "submit");
|
|
848
|
-
return t && d(t) ? t : null;
|
|
849
|
-
}, [e]), h = n(async (e) => {
|
|
850
|
-
if (!m?.data?.submitConfig) return null;
|
|
851
|
-
let n = m.data.submitConfig;
|
|
852
|
-
if (!n.url || n.url.trim() === "") return null;
|
|
853
|
-
p(null), n.showLoading !== !1 && u(!0);
|
|
854
|
-
try {
|
|
855
|
-
let a = await me(n, t, i, o, c);
|
|
856
|
-
if (a.success) {
|
|
857
|
-
let t = x(n.successMessage, r);
|
|
858
|
-
if (t && p({
|
|
859
|
-
message: t,
|
|
860
|
-
type: "success"
|
|
861
|
-
}), e && e(a.data), a.redirectUrl) {
|
|
862
|
-
let e = a.redirectUrl;
|
|
863
|
-
setTimeout(() => he(e), 1e3);
|
|
864
|
-
}
|
|
865
|
-
} else p({
|
|
866
|
-
message: x(n.errorMessage, r) || a.error || "An error occurred during submission",
|
|
867
|
-
type: "error"
|
|
868
|
-
});
|
|
869
|
-
return a;
|
|
870
|
-
} catch (e) {
|
|
871
|
-
let t = x(n.errorMessage, r) || (e instanceof Error ? e.message : "An unexpected error occurred");
|
|
872
|
-
return p({
|
|
873
|
-
message: t,
|
|
874
|
-
type: "error"
|
|
875
|
-
}), {
|
|
876
|
-
error: t,
|
|
877
|
-
success: !1
|
|
878
|
-
};
|
|
879
|
-
} finally {
|
|
880
|
-
u(!1);
|
|
881
|
-
}
|
|
882
|
-
}, [
|
|
883
|
-
m,
|
|
884
|
-
t,
|
|
885
|
-
r,
|
|
886
|
-
i,
|
|
887
|
-
o,
|
|
888
|
-
c
|
|
889
|
-
]);
|
|
890
|
-
return {
|
|
891
|
-
clearSubmitMessage: n(() => {
|
|
892
|
-
p(null);
|
|
893
|
-
}, []),
|
|
894
|
-
handleSubmitWithConfig: h,
|
|
895
|
-
hasSubmitConfig: !!m?.data?.submitConfig,
|
|
896
|
-
isSubmitting: l,
|
|
897
|
-
submitButtonNode: m,
|
|
898
|
-
submitMessage: f
|
|
899
|
-
};
|
|
900
|
-
}, _e = (e) => e == null ? null : typeof e == "boolean" || typeof e == "number" ? e : typeof e == "string" ? e === "" ? null : e : typeof e == "object" ? JSON.stringify(e) : String(e), Q = (e, t, n) => {
|
|
901
|
-
let r = _e(e), i = _e(t);
|
|
902
|
-
if (r === null || i === null) switch (n) {
|
|
903
|
-
case "===": return r === i;
|
|
904
|
-
case "!==": return r !== i;
|
|
905
|
-
default: return !1;
|
|
906
|
-
}
|
|
907
|
-
if ([
|
|
908
|
-
">",
|
|
909
|
-
"<",
|
|
910
|
-
">=",
|
|
911
|
-
"<="
|
|
912
|
-
].includes(n)) {
|
|
913
|
-
let e = Number(r), t = Number(i);
|
|
914
|
-
if (!(Number.isNaN(e) || Number.isNaN(t))) switch (n) {
|
|
915
|
-
case ">": return e > t;
|
|
916
|
-
case "<": return e < t;
|
|
917
|
-
case ">=": return e >= t;
|
|
918
|
-
case "<=": return e <= t;
|
|
919
|
-
default: return !1;
|
|
920
|
-
}
|
|
921
|
-
return !1;
|
|
922
|
-
}
|
|
923
|
-
switch (n) {
|
|
924
|
-
case "===": {
|
|
925
|
-
let e = Number(r), t = Number(i);
|
|
926
|
-
return Number.isNaN(e) || Number.isNaN(t) ? String(r) === String(i) : e === t;
|
|
927
|
-
}
|
|
928
|
-
case "!==": {
|
|
929
|
-
let e = Number(r), t = Number(i);
|
|
930
|
-
return Number.isNaN(e) || Number.isNaN(t) ? String(r) !== String(i) : e !== t;
|
|
931
|
-
}
|
|
932
|
-
default: return !1;
|
|
933
|
-
}
|
|
934
|
-
}, $ = (e, t, n) => {
|
|
935
|
-
let { field: r, operator: i, value: a } = e;
|
|
936
|
-
if (!(r && i) || a === void 0) return !0;
|
|
937
|
-
let o = t[r];
|
|
938
|
-
if (o === void 0 && n) {
|
|
939
|
-
let e = n.get(r);
|
|
940
|
-
e && d(e) && (o = t[e.id]);
|
|
941
|
-
}
|
|
942
|
-
return Array.isArray(o) ? i === "===" ? o.some((e) => Q(e, a, "===")) || Q(o, a, "===") : i === "!==" ? o.every((e) => Q(e, a, "!==")) && Q(o, a, "!==") : o.some((e) => Q(e, a, i)) : Q(o, a, i);
|
|
943
|
-
}, ve = (e, t, n) => {
|
|
944
|
-
if (!e || e.length === 0) return !0;
|
|
945
|
-
if (e.length === 1) return $(e[0], t, n);
|
|
946
|
-
let r = $(e[0], t, n);
|
|
947
|
-
for (let i = 1; i < e.length; i += 1) {
|
|
948
|
-
let a = e[i], o = $(a, t, n), s = e[i - 1].logicalOperator || E.AND;
|
|
949
|
-
if (s === E.AND) {
|
|
950
|
-
if (r &&= o, !r) return !1;
|
|
951
|
-
} else if (s === E.OR && (r ||= o, r)) return !0;
|
|
952
|
-
}
|
|
953
|
-
return r;
|
|
954
|
-
}, ye = (e) => {
|
|
955
|
-
let t = /* @__PURE__ */ new Map();
|
|
956
|
-
return e.forEach((e) => {
|
|
957
|
-
let n = t.get(e.source);
|
|
958
|
-
n ? n.push(e) : t.set(e.source, [e]);
|
|
959
|
-
}), t;
|
|
960
|
-
}, be = (e, t, n) => {
|
|
961
|
-
let r = [], i = [], a = [];
|
|
962
|
-
e.forEach((e) => {
|
|
963
|
-
let t = e.data?.isFallback, n = e.data?.conditions?.length;
|
|
964
|
-
t ? a.push(e) : n ? i.push(e) : r.push(e);
|
|
965
|
-
});
|
|
966
|
-
let o = [...r];
|
|
967
|
-
if (i.length === 0) return a.length > 0 && o.length === 0 && o.push(...a), {
|
|
968
|
-
edgesToFollow: o,
|
|
969
|
-
waitingForInput: !1
|
|
970
|
-
};
|
|
971
|
-
if (!i.every((e) => {
|
|
972
|
-
let r = e.data?.conditions;
|
|
973
|
-
return r ? r.every((e) => {
|
|
974
|
-
if (!e.field) return !0;
|
|
975
|
-
let r = n.get(e.field);
|
|
976
|
-
return ce(d(r) ? r.id : e.field, t);
|
|
977
|
-
}) : !1;
|
|
978
|
-
})) return a.length > 0 && o.push(...a), {
|
|
979
|
-
edgesToFollow: o,
|
|
980
|
-
waitingForInput: o.length === 0
|
|
981
|
-
};
|
|
982
|
-
let s = i.filter((e) => ve(e.data?.conditions, t, n));
|
|
983
|
-
return s.length > 0 ? (o.push(...s), {
|
|
984
|
-
edgesToFollow: o,
|
|
985
|
-
waitingForInput: !1
|
|
986
|
-
}) : (o.push(...a), {
|
|
987
|
-
edgesToFollow: o,
|
|
988
|
-
waitingForInput: !1
|
|
989
|
-
});
|
|
990
|
-
}, xe = (e, t) => !t.some((t) => t.target === e), Se = (e, t) => {
|
|
991
|
-
let n = e.filter((e) => xe(e.id, t));
|
|
992
|
-
return n.find(d) || n[0];
|
|
993
|
-
}, Ce = (e, t, n, r) => {
|
|
994
|
-
e.forEach((e) => {
|
|
995
|
-
let i = r.get(e);
|
|
996
|
-
if (!i) return;
|
|
997
|
-
let { parentId: a } = i, o = /* @__PURE__ */ new Set();
|
|
998
|
-
for (; a && !o.has(a);) {
|
|
999
|
-
if (o.add(a), t.add(a), !n.has(a)) {
|
|
1000
|
-
let t = n.get(e);
|
|
1001
|
-
t !== void 0 && n.set(a, t);
|
|
1002
|
-
}
|
|
1003
|
-
a = r.get(a)?.parentId;
|
|
1004
|
-
}
|
|
1005
|
-
});
|
|
1006
|
-
}, we = (e, t, n) => {
|
|
1007
|
-
let r = Se(e, t);
|
|
1008
|
-
if (!r) return {
|
|
1009
|
-
endOfPathReached: !0,
|
|
1010
|
-
visibleNodeIds: /* @__PURE__ */ new Set(),
|
|
1011
|
-
visibleNodes: [],
|
|
1012
|
-
visibleRootNodes: []
|
|
1013
|
-
};
|
|
1014
|
-
let i = new Map(e.map((e) => [e.id, e])), a = ye(t), o = [], s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set(), l = !1, u = (e) => {
|
|
1015
|
-
if (c.has(e)) return;
|
|
1016
|
-
c.add(e);
|
|
1017
|
-
let t = i.get(e);
|
|
1018
|
-
if (!t) return;
|
|
1019
|
-
s.add(e), o.push(t);
|
|
1020
|
-
let { edgesToFollow: r, waitingForInput: d } = be(a.get(e) || [], n, i);
|
|
1021
|
-
if (d) {
|
|
1022
|
-
l = !0;
|
|
1023
|
-
return;
|
|
1024
|
-
}
|
|
1025
|
-
r.forEach((e) => {
|
|
1026
|
-
u(e.target);
|
|
1027
|
-
});
|
|
1028
|
-
};
|
|
1029
|
-
u(r.id);
|
|
1030
|
-
let d = new Map(o.map((e, t) => [e.id, t])), f = new Set(s);
|
|
1031
|
-
Ce(s, f, d, i);
|
|
1032
|
-
let p = e.filter((e) => f.has(e.id)).sort((e, t) => (d.get(e.id) ?? 2 ** 53 - 1) - (d.get(t.id) ?? 2 ** 53 - 1)), m = p.filter((e) => !(e.parentId && f.has(e.parentId)));
|
|
1033
|
-
return {
|
|
1034
|
-
endOfPathReached: !l,
|
|
1035
|
-
visibleNodeIds: f,
|
|
1036
|
-
visibleNodes: p,
|
|
1037
|
-
visibleRootNodes: m
|
|
1038
|
-
};
|
|
1039
|
-
}, Te = (e) => e.filter((e) => !p(e)).reduce((e, t) => {
|
|
1040
|
-
let n = t.parentId ?? null, r = e.at(-1);
|
|
1041
|
-
return r && r.groupId === n ? [...e.slice(0, -1), {
|
|
1042
|
-
...r,
|
|
1043
|
-
nodes: [...r.nodes, t]
|
|
1044
|
-
}] : [...e, {
|
|
1045
|
-
groupId: n,
|
|
1046
|
-
nodes: [t]
|
|
1047
|
-
}];
|
|
1048
|
-
}, []), Ee = ({ baseUrl: e, components: t, flow: r, googleApiKey: c, headers: l, language: u, onChange: f, onSubmit: m, theme: h, validate: g, validationMode: _, initialValues: v = {} }) => {
|
|
1049
|
-
let y = fe(), b = a(() => ({
|
|
1050
|
-
baseUrl: e ?? y?.baseUrl,
|
|
1051
|
-
components: {
|
|
1052
|
-
form: t?.form ?? y?.components?.form,
|
|
1053
|
-
inputs: {
|
|
1054
|
-
...y?.components?.inputs,
|
|
1055
|
-
...t?.inputs
|
|
1056
|
-
},
|
|
1057
|
-
loadingSkeleton: t?.loadingSkeleton ?? y?.components?.loadingSkeleton,
|
|
1058
|
-
step: t?.step ?? y?.components?.step,
|
|
1059
|
-
submitButton: t?.submitButton ?? y?.components?.submitButton,
|
|
1060
|
-
submitButtonWrapper: t?.submitButtonWrapper ?? y?.components?.submitButtonWrapper,
|
|
1061
|
-
ui: {
|
|
1062
|
-
...y?.components?.ui,
|
|
1063
|
-
...t?.ui
|
|
1064
|
-
}
|
|
1065
|
-
},
|
|
1066
|
-
googleApiKey: c ?? y?.googleApiKey,
|
|
1067
|
-
headers: I(y?.headers, l),
|
|
1068
|
-
language: u ?? y?.language ?? "en",
|
|
1069
|
-
theme: h ?? y?.theme ?? "dark",
|
|
1070
|
-
validationMode: _ ?? y?.validationMode ?? "onSubmit"
|
|
1071
|
-
}), [
|
|
1072
|
-
e,
|
|
1073
|
-
t,
|
|
1074
|
-
y,
|
|
1075
|
-
c,
|
|
1076
|
-
l,
|
|
1077
|
-
u,
|
|
1078
|
-
h,
|
|
1079
|
-
_
|
|
1080
|
-
]), x = a(() => r?.nodes ?? [], [r]), S = a(() => r?.edges ?? [], [r]), C = a(() => oe(x), [x]), w = ne(b.language), T = o({}), [E, D] = s({}), [O, k] = s(() => {
|
|
1081
|
-
let e = { ...v };
|
|
1082
|
-
return x.forEach((t) => {
|
|
1083
|
-
if (d(t)) {
|
|
1084
|
-
let n = t.id;
|
|
1085
|
-
if (e[n] !== void 0) return;
|
|
1086
|
-
let { defaultValue: r } = t.data;
|
|
1087
|
-
if (!r) return;
|
|
1088
|
-
if (r.type === "static" && r.staticValue !== void 0 && (e[n] = r.staticValue), r.type === "reference" && r.referenceField) {
|
|
1089
|
-
let { referenceField: t } = r, i = e[t];
|
|
1090
|
-
i !== void 0 && (e[n] = i);
|
|
1091
|
-
}
|
|
1092
|
-
}
|
|
1093
|
-
}), e;
|
|
1094
|
-
}), { endOfPathReached: ee, visibleNodes: A, visibleRootNodes: j } = a(() => we(x, S, O), [
|
|
1095
|
-
x,
|
|
1096
|
-
S,
|
|
1097
|
-
O
|
|
1098
|
-
]), M = a(() => Te(A), [A]), te = a(() => {
|
|
1099
|
-
let e = /* @__PURE__ */ new Map();
|
|
1100
|
-
return x.forEach((t) => {
|
|
1101
|
-
p(t) && e.set(t.id, t);
|
|
1102
|
-
}), e;
|
|
1103
|
-
}, [x]), [N, P] = s(0), F = M.length === 0 ? 0 : Math.min(N, M.length - 1), L = M[F], R = L?.groupId ? te.get(L.groupId) : void 0, z = F === 0, B = M.length === 0 || F >= M.length - 1, { clearSubmitMessage: V, handleSubmitWithConfig: H, hasSubmitConfig: re, isSubmitting: U, submitMessage: ie } = ge(A, O, b.language, C, b.headers, b.baseUrl), W = o(f), G = o(g), K = a(() => le(O, C), [O, C]), ae = n((e, t) => {
|
|
1104
|
-
k((n) => ({
|
|
1105
|
-
...n,
|
|
1106
|
-
[e]: t
|
|
1107
|
-
})), D((t) => {
|
|
1108
|
-
let n = { ...t };
|
|
1109
|
-
return delete n[e], n;
|
|
1110
|
-
});
|
|
1111
|
-
}, []), q = n((e) => {
|
|
1112
|
-
Object.keys(e).length !== 0 && (k((t) => ({
|
|
1113
|
-
...t,
|
|
1114
|
-
...e
|
|
1115
|
-
})), D((t) => {
|
|
1116
|
-
let n = { ...t };
|
|
1117
|
-
return Object.keys(e).forEach((e) => {
|
|
1118
|
-
delete n[e];
|
|
1119
|
-
}), n;
|
|
1120
|
-
}));
|
|
1121
|
-
}, []), J = n((e) => {
|
|
1122
|
-
let t = {};
|
|
1123
|
-
A.forEach((e) => {
|
|
1124
|
-
if (d(e)) {
|
|
1125
|
-
let n = e.id, r = O[n];
|
|
1126
|
-
if (e.data.required && Y(r)) {
|
|
1127
|
-
t[n] = w(e.data.errorMessage) || w("validation.required");
|
|
1128
|
-
return;
|
|
1129
|
-
}
|
|
1130
|
-
if (!Y(r) && e.data.pattern) try {
|
|
1131
|
-
new RegExp(e.data.pattern).test(String(r)) || (t[n] = w(e.data.errorMessage) || w("validation.invalidFormat"));
|
|
1132
|
-
} catch (e) {
|
|
1133
|
-
console.error(`Invalid pattern for field ${n}:`, e);
|
|
1134
|
-
}
|
|
1135
|
-
}
|
|
1136
|
-
});
|
|
1137
|
-
let n = e ? e(O, A) : {}, r = {
|
|
1138
|
-
...t,
|
|
1139
|
-
...n
|
|
1140
|
-
};
|
|
1141
|
-
return D(r), {
|
|
1142
|
-
errors: r,
|
|
1143
|
-
hasCustomErrors: Object.keys(n).length > 0,
|
|
1144
|
-
isValid: Object.keys(r).length === 0
|
|
1145
|
-
};
|
|
1146
|
-
}, [
|
|
1147
|
-
A,
|
|
1148
|
-
O,
|
|
1149
|
-
w
|
|
1150
|
-
]), se = n(() => {
|
|
1151
|
-
P((e) => e >= M.length - 1 ? e : e + 1);
|
|
1152
|
-
}, [M.length]), ce = n(() => {
|
|
1153
|
-
P((e) => Math.max(0, e - 1));
|
|
1154
|
-
}, []), X = n(async () => {
|
|
1155
|
-
let { isValid: e } = J(G.current);
|
|
1156
|
-
if (!e) return !1;
|
|
1157
|
-
if (re) {
|
|
1158
|
-
let e = await H((e) => {
|
|
1159
|
-
m && m(K, { httpResponse: e });
|
|
1160
|
-
});
|
|
1161
|
-
if (e === null) return m?.(K), !0;
|
|
1162
|
-
if (!e.success) return !0;
|
|
1163
|
-
} else m && m(K);
|
|
1164
|
-
return !0;
|
|
1165
|
-
}, [
|
|
1166
|
-
J,
|
|
1167
|
-
re,
|
|
1168
|
-
H,
|
|
1169
|
-
m,
|
|
1170
|
-
K
|
|
1171
|
-
]), ue = a(() => {
|
|
1172
|
-
let e = [];
|
|
1173
|
-
return A.forEach((t) => {
|
|
1174
|
-
if (!d(t)) return;
|
|
1175
|
-
let n = t.id, r = O[n];
|
|
1176
|
-
if (t.data.required && Y(r)) {
|
|
1177
|
-
let r = w(t.data.label) || n;
|
|
1178
|
-
e.push(r);
|
|
1179
|
-
}
|
|
1180
|
-
}), e;
|
|
1181
|
-
}, [
|
|
1182
|
-
A,
|
|
1183
|
-
O,
|
|
1184
|
-
w
|
|
1185
|
-
]), Z = a(() => A.some((e) => d(e) && e.data.type === "submit"), [A]), pe = a(() => L ? L.nodes.every((e) => !d(e) || !e.data.required || e.data.type === "submit" ? !0 : !Y(O[e.id])) : !1, [L, O]), me = a(() => {
|
|
1186
|
-
let e = Object.keys(E);
|
|
1187
|
-
return e.length > 0 ? e[0] : void 0;
|
|
1188
|
-
}, [E]);
|
|
1189
|
-
return i(() => {
|
|
1190
|
-
if (M.length === 0) {
|
|
1191
|
-
N !== 0 && P(0);
|
|
1192
|
-
return;
|
|
1193
|
-
}
|
|
1194
|
-
N > M.length - 1 && P(M.length - 1);
|
|
1195
|
-
}, [M.length, N]), i(() => {
|
|
1196
|
-
W.current = f;
|
|
1197
|
-
}, [f]), i(() => {
|
|
1198
|
-
G.current = g;
|
|
1199
|
-
}, [g]), i(() => {
|
|
1200
|
-
W.current?.(K);
|
|
1201
|
-
}, [K]), i(() => {
|
|
1202
|
-
b.validationMode === "onChange" && J(G.current);
|
|
1203
|
-
}, [b.validationMode, J]), i(() => {
|
|
1204
|
-
let e = de(C, O, T.current);
|
|
1205
|
-
Object.keys(e).length > 0 && q(e), T.current = O;
|
|
1206
|
-
}, [
|
|
1207
|
-
O,
|
|
1208
|
-
C,
|
|
1209
|
-
q
|
|
1210
|
-
]), {
|
|
1211
|
-
canContinueStep: pe,
|
|
1212
|
-
canSubmit: !Z && ee && x.length > 0,
|
|
1213
|
-
clearSubmitMessage: V,
|
|
1214
|
-
config: b,
|
|
1215
|
-
currentStep: L,
|
|
1216
|
-
currentStepGroupNode: R,
|
|
1217
|
-
currentStepIndex: F,
|
|
1218
|
-
firstErrorFieldId: me,
|
|
1219
|
-
formErrors: E,
|
|
1220
|
-
formValues: O,
|
|
1221
|
-
goToNextStep: se,
|
|
1222
|
-
goToPreviousStep: ce,
|
|
1223
|
-
handleSubmit: X,
|
|
1224
|
-
hasSubmitInput: Z,
|
|
1225
|
-
inputNodes: C,
|
|
1226
|
-
isFirstStep: z,
|
|
1227
|
-
isLastStep: B,
|
|
1228
|
-
isSubmitting: U,
|
|
1229
|
-
missingRequiredFields: ue,
|
|
1230
|
-
prevFormValuesRef: T,
|
|
1231
|
-
setFieldErrors: D,
|
|
1232
|
-
setFieldValue: ae,
|
|
1233
|
-
setMultipleFieldValues: q,
|
|
1234
|
-
steps: M,
|
|
1235
|
-
submitMessage: ie,
|
|
1236
|
-
t: w,
|
|
1237
|
-
validateForm: J,
|
|
1238
|
-
visibleNodes: A,
|
|
1239
|
-
visibleRootNodes: j
|
|
1240
|
-
};
|
|
1241
|
-
}, De = /\{\{([\w-]+)}}/g, Oe = (e) => e == null || e === "", ke = (...e) => {
|
|
1242
|
-
let t = [];
|
|
1243
|
-
for (let n of e) if (n) for (let e of n.matchAll(De)) t.includes(e[1]) || t.push(e[1]);
|
|
1244
|
-
return t;
|
|
1245
|
-
}, Ae = (e) => {
|
|
1246
|
-
let t = e.data.httpConfig ?? e.data.optionsSource;
|
|
1247
|
-
if (!t) return [];
|
|
1248
|
-
let n = Object.values(t.queryParams ?? {});
|
|
1249
|
-
return ke(t.url, t.body, ...n);
|
|
1250
|
-
}, je = (e, t, n, r) => Ae(e).filter((e) => Oe(t[e])).map((e) => {
|
|
1251
|
-
let t = n.find((t) => t.id === e);
|
|
1252
|
-
return {
|
|
1253
|
-
id: e,
|
|
1254
|
-
label: t ? J(t, r) : e
|
|
1255
|
-
};
|
|
1256
|
-
}), Me = ({ DefaultFormWrapper: t, DefaultInputWrapper: r, DefaultSubmitButton: i, DefaultSubmitButtonWrapper: o, config: s, defaultInputRenderers: c, defaultUI: u, formErrors: p, formValues: m, inputNodes: h, missingRequiredFields: g, setFieldValue: _ }) => {
|
|
1257
|
-
let v = a(() => s.components.form || t, [s.components.form, t]), y = a(() => s.components.submitButton || i, [s.components.submitButton, i]), b = a(() => s.components.submitButtonWrapper || o || e, [s.components.submitButtonWrapper, o]);
|
|
1258
|
-
return {
|
|
1259
|
-
FormWrapper: v,
|
|
1260
|
-
renderNode: n(function(e) {
|
|
1261
|
-
let { type: t } = e;
|
|
1262
|
-
switch (t) {
|
|
1263
|
-
case D.input: {
|
|
1264
|
-
if (!d(e)) return null;
|
|
1265
|
-
let t = e.data, n = t.type || "text", i = s.components.inputs?.[n], a = c[n], o = i || a, u = e.id, f = (e) => _(u, e), v = m[u], y = p[u], b = x(t.label, s.language), S = se(t, s.language), C = x(t.helperText, s.language), w = q(e), T = N(b), E = N(S), D = N(C);
|
|
1266
|
-
return o ? /* @__PURE__ */ l(r, {
|
|
1267
|
-
node: e,
|
|
1268
|
-
children: /* @__PURE__ */ l(j, {
|
|
1269
|
-
render: o,
|
|
1270
|
-
field: {
|
|
1271
|
-
"aria-invalid": y ? !0 : void 0,
|
|
1272
|
-
id: e.id,
|
|
1273
|
-
name: w,
|
|
1274
|
-
placeholder: E,
|
|
1275
|
-
required: t.required,
|
|
1276
|
-
value: v
|
|
1277
|
-
},
|
|
1278
|
-
extra: {
|
|
1279
|
-
error: y,
|
|
1280
|
-
helperText: D,
|
|
1281
|
-
label: T,
|
|
1282
|
-
missingDependencies: je(e, m, h, s.language),
|
|
1283
|
-
missingRequiredFields: g,
|
|
1284
|
-
node: e,
|
|
1285
|
-
setValue: f
|
|
1286
|
-
}
|
|
1287
|
-
}, n)
|
|
1288
|
-
}, e.id) : (console.warn("No renderer found for input type:", n), null);
|
|
1289
|
-
}
|
|
1290
|
-
case D.group: return null;
|
|
1291
|
-
case D.ui: {
|
|
1292
|
-
if (!f(e)) return null;
|
|
1293
|
-
let t = e.data.type || "title", n = s.components.ui?.[t], r = u[t], i = n || r;
|
|
1294
|
-
return i ? /* @__PURE__ */ l(i, { node: e }, e.id) : null;
|
|
1295
|
-
}
|
|
1296
|
-
default: return console.warn("Unknown node type:", t), null;
|
|
1297
|
-
}
|
|
1298
|
-
}, [
|
|
1299
|
-
s,
|
|
1300
|
-
m,
|
|
1301
|
-
p,
|
|
1302
|
-
_,
|
|
1303
|
-
g,
|
|
1304
|
-
h,
|
|
1305
|
-
c,
|
|
1306
|
-
u,
|
|
1307
|
-
r
|
|
1308
|
-
]),
|
|
1309
|
-
SubmitButton: y,
|
|
1310
|
-
SubmitButtonWrapper: b
|
|
1311
|
-
};
|
|
1312
|
-
}, Ne = {
|
|
818
|
+
}, Q = {
|
|
1313
819
|
dark: {
|
|
1314
820
|
background: "#0A0A0A",
|
|
1315
821
|
border: "#262626",
|
|
@@ -1352,26 +858,26 @@ var M = [
|
|
|
1352
858
|
textMuted: "#737373",
|
|
1353
859
|
textSecondary: "#525252"
|
|
1354
860
|
}
|
|
1355
|
-
},
|
|
1356
|
-
colors:
|
|
861
|
+
}, $ = e({
|
|
862
|
+
colors: Q.light,
|
|
1357
863
|
setTheme: () => null,
|
|
1358
864
|
theme: "system"
|
|
1359
|
-
}),
|
|
1360
|
-
let [
|
|
865
|
+
}), se = ({ children: e, defaultTheme: t = "system", storageKey: o = "treege-theme", theme: s, ...c }) => {
|
|
866
|
+
let [l, u] = i(() => s || typeof window < "u" && localStorage.getItem(o) || t), d = s ?? l, f = Q[d === "system" ? typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : d], p = r(() => ({
|
|
1361
867
|
colors: f,
|
|
1362
868
|
setTheme: (e) => {
|
|
1363
|
-
!
|
|
869
|
+
!s && typeof window < "u" && localStorage.setItem(o, e), u(e);
|
|
1364
870
|
},
|
|
1365
871
|
theme: d
|
|
1366
872
|
}), [
|
|
1367
|
-
|
|
873
|
+
o,
|
|
1368
874
|
d,
|
|
1369
|
-
|
|
875
|
+
s,
|
|
1370
876
|
f
|
|
1371
877
|
]);
|
|
1372
|
-
return
|
|
1373
|
-
|
|
1374
|
-
}, [
|
|
878
|
+
return n(() => {
|
|
879
|
+
s && u(s);
|
|
880
|
+
}, [s]), n(() => {
|
|
1375
881
|
if (typeof window > "u") return;
|
|
1376
882
|
let e = window.document.documentElement;
|
|
1377
883
|
if (e.classList.remove("light", "dark"), d === "system") {
|
|
@@ -1383,15 +889,15 @@ var M = [
|
|
|
1383
889
|
return t.addEventListener("change", r), () => t.removeEventListener("change", r);
|
|
1384
890
|
}
|
|
1385
891
|
e.classList.add(d);
|
|
1386
|
-
}, [d]), /* @__PURE__ */
|
|
1387
|
-
...
|
|
892
|
+
}, [d]), /* @__PURE__ */ a($.Provider, {
|
|
893
|
+
...c,
|
|
1388
894
|
value: p,
|
|
1389
895
|
children: e
|
|
1390
896
|
});
|
|
1391
|
-
},
|
|
1392
|
-
let e =
|
|
897
|
+
}, ce = () => {
|
|
898
|
+
let e = t($);
|
|
1393
899
|
if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
|
|
1394
900
|
return e;
|
|
1395
901
|
};
|
|
1396
902
|
//#endregion
|
|
1397
|
-
export {
|
|
903
|
+
export { C as A, ne as C, A as D, O as E, l as F, s as I, c as L, x as M, b as N, E as O, _ as P, F as S, j as T, z as _, oe as a, M as b, J as c, G as d, K as f, N as g, V as h, ie as i, S as j, D as k, W as l, H as m, ce as n, Y as o, B as p, X as r, ae as s, se as t, q as u, R as v, re as w, I as x, P as y };
|