treege 3.0.0-beta.62 → 3.0.0-beta.63
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 +88 -37
- package/dist/{DefaultInputs-DamDWb5R.js → DefaultInputs-nX-CVK2i.js} +415 -390
- package/dist/{ThemeContext-cGSTk24y.js → ThemeContext-nopV_oRU.js} +184 -168
- package/dist/{editor-K1jjfc5n.js → editor-Bag5U_S5.js} +237 -237
- package/dist/editor.js +2 -2
- package/dist/main.js +4 -4
- package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultStep.d.ts +1 -1
- 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/hooks/useRenderNode.d.ts +4 -1
- package/dist/renderer/types/renderer.d.ts +50 -4
- package/dist/renderer/utils/form.d.ts +16 -0
- package/dist/renderer-native.js +1014 -1002
- package/dist/renderer.js +3 -3
- package/package.json +1 -1
|
@@ -538,7 +538,7 @@ 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
|
-
}, k = t(null),
|
|
541
|
+
}, k = t(null), A = ({ children: e, value: t }) => {
|
|
542
542
|
let n = a(() => ({
|
|
543
543
|
...O,
|
|
544
544
|
...t
|
|
@@ -547,7 +547,7 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
547
547
|
value: n,
|
|
548
548
|
children: e
|
|
549
549
|
});
|
|
550
|
-
},
|
|
550
|
+
}, j = () => {
|
|
551
551
|
let e = r(k) ?? O, t = a(() => e.flow?.edges ?? [], [e.flow]);
|
|
552
552
|
return {
|
|
553
553
|
...e,
|
|
@@ -556,12 +556,12 @@ var d = (e) => e?.type === "input", f = (e) => e?.type === "ui", p = (e) => e?.t
|
|
|
556
556
|
};
|
|
557
557
|
//#endregion
|
|
558
558
|
//#region src/renderer/features/TreegeRenderer/InputRendererHost.tsx
|
|
559
|
-
function
|
|
559
|
+
function M({ render: e, field: t, extra: n }) {
|
|
560
560
|
return /* @__PURE__ */ l(c, { children: e(t, n) });
|
|
561
561
|
}
|
|
562
562
|
//#endregion
|
|
563
563
|
//#region src/renderer/utils/sanitize.ts
|
|
564
|
-
var
|
|
564
|
+
var N = [
|
|
565
565
|
"b",
|
|
566
566
|
"i",
|
|
567
567
|
"em",
|
|
@@ -570,14 +570,14 @@ var M = [
|
|
|
570
570
|
"br",
|
|
571
571
|
"p",
|
|
572
572
|
"span"
|
|
573
|
-
],
|
|
573
|
+
], ee = ["class"], P = (e, t = {}) => {
|
|
574
574
|
if (e == null || e === "") return "";
|
|
575
575
|
let n = String(e), { plainTextOnly: r = !0, allowedTags: i, allowedAttributes: a } = t;
|
|
576
576
|
if (r) return u.sanitize(n, {
|
|
577
577
|
ALLOWED_ATTR: [],
|
|
578
578
|
ALLOWED_TAGS: []
|
|
579
579
|
});
|
|
580
|
-
let o = i ??
|
|
580
|
+
let o = i ?? N, s = a ?? ee;
|
|
581
581
|
return u.sanitize(n, {
|
|
582
582
|
ALLOW_DATA_ATTR: !1,
|
|
583
583
|
ALLOW_UNKNOWN_PROTOCOLS: !1,
|
|
@@ -589,10 +589,10 @@ var M = [
|
|
|
589
589
|
RETURN_DOM: !1,
|
|
590
590
|
RETURN_DOM_FRAGMENT: !1
|
|
591
591
|
});
|
|
592
|
-
},
|
|
593
|
-
if (n >
|
|
592
|
+
}, te = 100, F = (e, t = {}, n = 0, r = /* @__PURE__ */ new WeakSet()) => {
|
|
593
|
+
if (n > te) return console.warn(`sanitizeHttpResponse: Maximum depth (${te}) exceeded.`), typeof e == "string" ? P(e, t) : "[Max Depth Exceeded]";
|
|
594
594
|
if (e == null) return e;
|
|
595
|
-
if (typeof e == "string") return
|
|
595
|
+
if (typeof e == "string") return P(e, t);
|
|
596
596
|
if (Array.isArray(e)) return e.map((e) => F(e, t, n + 1, r));
|
|
597
597
|
if (typeof e == "object") {
|
|
598
598
|
if (r.has(e)) return console.warn("sanitizeHttpResponse: Circular reference detected. Breaking cycle to prevent infinite recursion."), "[Circular Reference]";
|
|
@@ -603,10 +603,10 @@ var M = [
|
|
|
603
603
|
}
|
|
604
604
|
return e;
|
|
605
605
|
}, ne = (e) => {
|
|
606
|
-
let t =
|
|
606
|
+
let t = j(), n = T(e ?? t.language);
|
|
607
607
|
return a(() => (e) => {
|
|
608
608
|
let t = n(e);
|
|
609
|
-
return typeof e == "object" && e ?
|
|
609
|
+
return typeof e == "object" && e ? P(t) : t;
|
|
610
610
|
}, [n]);
|
|
611
611
|
}, I = (...e) => {
|
|
612
612
|
let t = /* @__PURE__ */ new Map();
|
|
@@ -665,7 +665,7 @@ var M = [
|
|
|
665
665
|
return e.replace(/\{\{([\w-]+)}}/g, (e, n) => {
|
|
666
666
|
let a = t[n.trim()];
|
|
667
667
|
if (a == null) return i ? "null" : "";
|
|
668
|
-
let o = typeof a == "string" ?
|
|
668
|
+
let o = typeof a == "string" ? P(a) : a;
|
|
669
669
|
if (r) return encodeURIComponent(String(o));
|
|
670
670
|
if (i) {
|
|
671
671
|
if (typeof o == "string") return `"${o.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`;
|
|
@@ -674,14 +674,14 @@ var M = [
|
|
|
674
674
|
}
|
|
675
675
|
return String(o);
|
|
676
676
|
});
|
|
677
|
-
},
|
|
678
|
-
let r =
|
|
677
|
+
}, re = (e, t) => e ? e.replace(/\{\{response\.([\w.-]+)}}/g, (e, n) => {
|
|
678
|
+
let r = ie(t, n.trim());
|
|
679
679
|
return r == null ? "" : String(r);
|
|
680
|
-
}) : "",
|
|
680
|
+
}) : "", ie = (e, t) => {
|
|
681
681
|
if (!(!e || typeof e != "object")) return t.split(".").reduce((e, t) => {
|
|
682
682
|
if (!(typeof e != "object" || !e)) return e[t];
|
|
683
683
|
}, e);
|
|
684
|
-
},
|
|
684
|
+
}, H = (e, t) => t ? t.split(".").reduce((e, t) => {
|
|
685
685
|
if (e == null) return;
|
|
686
686
|
let n = t.match(/^(\w+)\[(\d+)]$/);
|
|
687
687
|
if (n) {
|
|
@@ -689,26 +689,26 @@ var M = [
|
|
|
689
689
|
return Array.isArray(i) ? i[Number.parseInt(r, 10)] : i;
|
|
690
690
|
}
|
|
691
691
|
return e[t];
|
|
692
|
-
}, e) : e,
|
|
693
|
-
let r =
|
|
692
|
+
}, e) : e, ae = (e, t, n) => {
|
|
693
|
+
let r = H(e, t ?? "");
|
|
694
694
|
return Array.isArray(r) ? r.map((e) => {
|
|
695
|
-
let t =
|
|
695
|
+
let t = H(e, n.valueField), r = H(e, n.labelField);
|
|
696
696
|
if (t == null) return null;
|
|
697
697
|
let i = {
|
|
698
698
|
label: { en: String(r ?? t) },
|
|
699
699
|
value: String(t)
|
|
700
700
|
};
|
|
701
701
|
if (n.descriptionField) {
|
|
702
|
-
let t =
|
|
702
|
+
let t = H(e, n.descriptionField);
|
|
703
703
|
t != null && t !== "" && (i.description = { en: String(t) });
|
|
704
704
|
}
|
|
705
705
|
if (n.imageField) {
|
|
706
|
-
let t =
|
|
706
|
+
let t = H(e, n.imageField);
|
|
707
707
|
typeof t == "string" && t !== "" && (i.image = t);
|
|
708
708
|
}
|
|
709
709
|
return i;
|
|
710
710
|
}).filter((e) => e !== null) : [];
|
|
711
|
-
},
|
|
711
|
+
}, oe = (e) => new Promise((t, n) => {
|
|
712
712
|
let r = new FileReader();
|
|
713
713
|
r.onload = () => {
|
|
714
714
|
let n = r.result;
|
|
@@ -722,7 +722,7 @@ var M = [
|
|
|
722
722
|
}, r.onerror = () => {
|
|
723
723
|
n(/* @__PURE__ */ Error(`Failed to read file: ${e.name}`));
|
|
724
724
|
}, r.readAsDataURL(e);
|
|
725
|
-
}),
|
|
725
|
+
}), se = (e) => {
|
|
726
726
|
let t = e.data.split(",")[1], n = atob(t), r = new ArrayBuffer(n.length), i = new Uint8Array(r);
|
|
727
727
|
for (let e = 0; e < n.length; e++) i[e] = n.charCodeAt(e);
|
|
728
728
|
let a = new Blob([r], { type: e.type });
|
|
@@ -730,13 +730,13 @@ var M = [
|
|
|
730
730
|
lastModified: e.lastModified,
|
|
731
731
|
type: e.type
|
|
732
732
|
});
|
|
733
|
-
},
|
|
733
|
+
}, U = (e) => Promise.all(e.map((e) => oe(e))), W = new Set([
|
|
734
734
|
"text",
|
|
735
735
|
"number",
|
|
736
736
|
"password",
|
|
737
737
|
"textarea",
|
|
738
738
|
"time"
|
|
739
|
-
]),
|
|
739
|
+
]), ce = (e) => e.filter(d), G = (e) => {
|
|
740
740
|
if (e.data.name) return e.data.name;
|
|
741
741
|
if (e.data.label) {
|
|
742
742
|
if (e.data.label.en) return e.data.label.en;
|
|
@@ -744,13 +744,30 @@ var M = [
|
|
|
744
744
|
if (t) return t;
|
|
745
745
|
}
|
|
746
746
|
return e.id;
|
|
747
|
-
},
|
|
747
|
+
}, le = (e, t) => x(e.data.label, t) || e.data.name || e.id, K = (e, t) => {
|
|
748
748
|
let n = e.type ?? "text";
|
|
749
|
-
return !e.placeholder?.[t] &&
|
|
750
|
-
},
|
|
749
|
+
return !e.placeholder?.[t] && W.has(n) ? w(t)["renderer.defaultInputs.newAnswer"] ?? "" : x(e.placeholder, t);
|
|
750
|
+
}, q = (e) => e == null || typeof e == "string" && e.trim() === "" ? !0 : Array.isArray(e) && e.length === 0, J = (e, t) => e ? t[e] != null : !1, Y = (e, t) => {
|
|
751
751
|
let n = {};
|
|
752
752
|
return t.forEach((t) => {
|
|
753
|
-
|
|
753
|
+
if (e[t.id] !== void 0) {
|
|
754
|
+
n[t.id] = e[t.id];
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
let r = G(t);
|
|
758
|
+
e[r] !== void 0 && (n[t.id] = e[r]);
|
|
759
|
+
}), t.forEach((e) => {
|
|
760
|
+
if (n[e.id] !== void 0) return;
|
|
761
|
+
let { defaultValue: t } = e.data;
|
|
762
|
+
if (t && (t.type === "static" && t.staticValue !== void 0 && (n[e.id] = t.staticValue), t.type === "reference" && t.referenceField)) {
|
|
763
|
+
let r = n[t.referenceField];
|
|
764
|
+
r !== void 0 && (n[e.id] = r);
|
|
765
|
+
}
|
|
766
|
+
}), n;
|
|
767
|
+
}, ue = (e, t) => {
|
|
768
|
+
let n = {};
|
|
769
|
+
return t.forEach((t) => {
|
|
770
|
+
let r = t.id, i = G(t);
|
|
754
771
|
e[r] !== void 0 && (n[i] = e[r]);
|
|
755
772
|
}), n;
|
|
756
773
|
}, X = (e, t, n) => {
|
|
@@ -788,7 +805,7 @@ var M = [
|
|
|
788
805
|
return e;
|
|
789
806
|
default: return e;
|
|
790
807
|
}
|
|
791
|
-
},
|
|
808
|
+
}, de = (e, t) => {
|
|
792
809
|
if (Object.is(e, t)) return !0;
|
|
793
810
|
if (!(e && t) || typeof e != "object" || typeof t != "object") return !1;
|
|
794
811
|
try {
|
|
@@ -796,20 +813,20 @@ var M = [
|
|
|
796
813
|
} catch {
|
|
797
814
|
return !1;
|
|
798
815
|
}
|
|
799
|
-
},
|
|
816
|
+
}, fe = (e, t, n) => {
|
|
800
817
|
let r = {};
|
|
801
818
|
return e.forEach((e) => {
|
|
802
819
|
let { defaultValue: i } = e.data;
|
|
803
820
|
if (!i || i.type !== "reference" || !i.referenceField) return;
|
|
804
821
|
let a = e.id, { referenceField: o, transformFunction: s, objectMapping: c } = i, l = t[o], u = n[o];
|
|
805
822
|
if (l === u || l == null) return;
|
|
806
|
-
let d = X(l, s, c), f = X(u, s, c), p = t[a], m =
|
|
823
|
+
let d = X(l, s, c), f = X(u, s, c), p = t[a], m = de(p, f), h = de(p, d);
|
|
807
824
|
!m || h || (r[a] = d);
|
|
808
825
|
}), r;
|
|
809
|
-
},
|
|
826
|
+
}, pe = t(void 0), me = () => r(pe), he = ({ children: e, ...t }) => /* @__PURE__ */ l(pe.Provider, {
|
|
810
827
|
value: t,
|
|
811
828
|
children: e
|
|
812
|
-
}),
|
|
829
|
+
}), ge = async (e, t, n, r, i) => {
|
|
813
830
|
if (!e.url || e.url.trim() === "") return {
|
|
814
831
|
error: "No URL configured for submission",
|
|
815
832
|
success: !1
|
|
@@ -820,7 +837,7 @@ var M = [
|
|
|
820
837
|
success: !1
|
|
821
838
|
};
|
|
822
839
|
let o = await B({
|
|
823
|
-
body: e.sendAllFormValues ? JSON.stringify(
|
|
840
|
+
body: e.sendAllFormValues ? JSON.stringify(ue(t, n)) : e.body ? V(e.body, t, { json: !0 }) : void 0,
|
|
824
841
|
headers: I(L(r, t), L(e.headers, t)),
|
|
825
842
|
method: e.method || "POST",
|
|
826
843
|
queryParams: L(e.queryParams, t),
|
|
@@ -832,7 +849,7 @@ var M = [
|
|
|
832
849
|
success: !1
|
|
833
850
|
};
|
|
834
851
|
let s = e.redirectUrl ? (() => {
|
|
835
|
-
let t =
|
|
852
|
+
let t = re(e.redirectUrl, o.data);
|
|
836
853
|
return t && t.trim() !== "" ? t : void 0;
|
|
837
854
|
})() : void 0;
|
|
838
855
|
return {
|
|
@@ -840,9 +857,9 @@ var M = [
|
|
|
840
857
|
redirectUrl: s,
|
|
841
858
|
success: !0
|
|
842
859
|
};
|
|
843
|
-
},
|
|
860
|
+
}, _e = (e) => {
|
|
844
861
|
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
|
-
},
|
|
862
|
+
}, ve = (e, t, r, i, o, c) => {
|
|
846
863
|
let [l, u] = s(!1), [f, p] = s(null), m = a(() => {
|
|
847
864
|
let t = e.find((e) => d(e) && e.data?.type === "submit");
|
|
848
865
|
return t && d(t) ? t : null;
|
|
@@ -852,7 +869,7 @@ var M = [
|
|
|
852
869
|
if (!n.url || n.url.trim() === "") return null;
|
|
853
870
|
p(null), n.showLoading !== !1 && u(!0);
|
|
854
871
|
try {
|
|
855
|
-
let a = await
|
|
872
|
+
let a = await ge(n, t, i, o, c);
|
|
856
873
|
if (a.success) {
|
|
857
874
|
let t = x(n.successMessage, r);
|
|
858
875
|
if (t && p({
|
|
@@ -860,7 +877,7 @@ var M = [
|
|
|
860
877
|
type: "success"
|
|
861
878
|
}), e && e(a.data), a.redirectUrl) {
|
|
862
879
|
let e = a.redirectUrl;
|
|
863
|
-
setTimeout(() =>
|
|
880
|
+
setTimeout(() => _e(e), 1e3);
|
|
864
881
|
}
|
|
865
882
|
} else p({
|
|
866
883
|
message: x(n.errorMessage, r) || a.error || "An error occurred during submission",
|
|
@@ -897,8 +914,8 @@ var M = [
|
|
|
897
914
|
submitButtonNode: m,
|
|
898
915
|
submitMessage: f
|
|
899
916
|
};
|
|
900
|
-
},
|
|
901
|
-
let r =
|
|
917
|
+
}, ye = (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), Z = (e, t, n) => {
|
|
918
|
+
let r = ye(e), i = ye(t);
|
|
902
919
|
if (r === null || i === null) switch (n) {
|
|
903
920
|
case "===": return r === i;
|
|
904
921
|
case "!==": return r !== i;
|
|
@@ -931,7 +948,7 @@ var M = [
|
|
|
931
948
|
}
|
|
932
949
|
default: return !1;
|
|
933
950
|
}
|
|
934
|
-
},
|
|
951
|
+
}, Q = (e, t, n) => {
|
|
935
952
|
let { field: r, operator: i, value: a } = e;
|
|
936
953
|
if (!(r && i) || a === void 0) return !0;
|
|
937
954
|
let o = t[r];
|
|
@@ -939,25 +956,25 @@ var M = [
|
|
|
939
956
|
let e = n.get(r);
|
|
940
957
|
e && d(e) && (o = t[e.id]);
|
|
941
958
|
}
|
|
942
|
-
return Array.isArray(o) ? i === "===" ? o.some((e) =>
|
|
943
|
-
},
|
|
959
|
+
return Array.isArray(o) ? i === "===" ? o.some((e) => Z(e, a, "===")) || Z(o, a, "===") : i === "!==" ? o.every((e) => Z(e, a, "!==")) && Z(o, a, "!==") : o.some((e) => Z(e, a, i)) : Z(o, a, i);
|
|
960
|
+
}, be = (e, t, n) => {
|
|
944
961
|
if (!e || e.length === 0) return !0;
|
|
945
|
-
if (e.length === 1) return
|
|
946
|
-
let r =
|
|
962
|
+
if (e.length === 1) return Q(e[0], t, n);
|
|
963
|
+
let r = Q(e[0], t, n);
|
|
947
964
|
for (let i = 1; i < e.length; i += 1) {
|
|
948
|
-
let a = e[i], o =
|
|
965
|
+
let a = e[i], o = Q(a, t, n), s = e[i - 1].logicalOperator || E.AND;
|
|
949
966
|
if (s === E.AND) {
|
|
950
967
|
if (r &&= o, !r) return !1;
|
|
951
968
|
} else if (s === E.OR && (r ||= o, r)) return !0;
|
|
952
969
|
}
|
|
953
970
|
return r;
|
|
954
|
-
},
|
|
971
|
+
}, xe = (e) => {
|
|
955
972
|
let t = /* @__PURE__ */ new Map();
|
|
956
973
|
return e.forEach((e) => {
|
|
957
974
|
let n = t.get(e.source);
|
|
958
975
|
n ? n.push(e) : t.set(e.source, [e]);
|
|
959
976
|
}), t;
|
|
960
|
-
},
|
|
977
|
+
}, Se = (e, t, n) => {
|
|
961
978
|
let r = [], i = [], a = [];
|
|
962
979
|
e.forEach((e) => {
|
|
963
980
|
let t = e.data?.isFallback, n = e.data?.conditions?.length;
|
|
@@ -973,13 +990,13 @@ var M = [
|
|
|
973
990
|
return r ? r.every((e) => {
|
|
974
991
|
if (!e.field) return !0;
|
|
975
992
|
let r = n.get(e.field);
|
|
976
|
-
return
|
|
993
|
+
return J(d(r) ? r.id : e.field, t);
|
|
977
994
|
}) : !1;
|
|
978
995
|
})) return a.length > 0 && o.push(...a), {
|
|
979
996
|
edgesToFollow: o,
|
|
980
997
|
waitingForInput: o.length === 0
|
|
981
998
|
};
|
|
982
|
-
let s = i.filter((e) =>
|
|
999
|
+
let s = i.filter((e) => be(e.data?.conditions, t, n));
|
|
983
1000
|
return s.length > 0 ? (o.push(...s), {
|
|
984
1001
|
edgesToFollow: o,
|
|
985
1002
|
waitingForInput: !1
|
|
@@ -987,10 +1004,10 @@ var M = [
|
|
|
987
1004
|
edgesToFollow: o,
|
|
988
1005
|
waitingForInput: !1
|
|
989
1006
|
});
|
|
990
|
-
},
|
|
991
|
-
let n = e.filter((e) =>
|
|
1007
|
+
}, Ce = (e, t) => !t.some((t) => t.target === e), we = (e, t) => {
|
|
1008
|
+
let n = e.filter((e) => Ce(e.id, t));
|
|
992
1009
|
return n.find(d) || n[0];
|
|
993
|
-
},
|
|
1010
|
+
}, Te = (e, t, n, r) => {
|
|
994
1011
|
e.forEach((e) => {
|
|
995
1012
|
let i = r.get(e);
|
|
996
1013
|
if (!i) return;
|
|
@@ -1003,21 +1020,21 @@ var M = [
|
|
|
1003
1020
|
a = r.get(a)?.parentId;
|
|
1004
1021
|
}
|
|
1005
1022
|
});
|
|
1006
|
-
},
|
|
1007
|
-
let r =
|
|
1023
|
+
}, Ee = (e, t, n) => {
|
|
1024
|
+
let r = we(e, t);
|
|
1008
1025
|
if (!r) return {
|
|
1009
1026
|
endOfPathReached: !0,
|
|
1010
1027
|
visibleNodeIds: /* @__PURE__ */ new Set(),
|
|
1011
1028
|
visibleNodes: [],
|
|
1012
1029
|
visibleRootNodes: []
|
|
1013
1030
|
};
|
|
1014
|
-
let i = new Map(e.map((e) => [e.id, e])), a =
|
|
1031
|
+
let i = new Map(e.map((e) => [e.id, e])), a = xe(t), o = [], s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set(), l = !1, u = (e) => {
|
|
1015
1032
|
if (c.has(e)) return;
|
|
1016
1033
|
c.add(e);
|
|
1017
1034
|
let t = i.get(e);
|
|
1018
1035
|
if (!t) return;
|
|
1019
1036
|
s.add(e), o.push(t);
|
|
1020
|
-
let { edgesToFollow: r, waitingForInput: d } =
|
|
1037
|
+
let { edgesToFollow: r, waitingForInput: d } = Se(a.get(e) || [], n, i);
|
|
1021
1038
|
if (d) {
|
|
1022
1039
|
l = !0;
|
|
1023
1040
|
return;
|
|
@@ -1028,7 +1045,7 @@ var M = [
|
|
|
1028
1045
|
};
|
|
1029
1046
|
u(r.id);
|
|
1030
1047
|
let d = new Map(o.map((e, t) => [e.id, t])), f = new Set(s);
|
|
1031
|
-
|
|
1048
|
+
Te(s, f, d, i);
|
|
1032
1049
|
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
1050
|
return {
|
|
1034
1051
|
endOfPathReached: !l,
|
|
@@ -1036,7 +1053,7 @@ var M = [
|
|
|
1036
1053
|
visibleNodes: p,
|
|
1037
1054
|
visibleRootNodes: m
|
|
1038
1055
|
};
|
|
1039
|
-
},
|
|
1056
|
+
}, De = (e) => e.filter((e) => !p(e)).reduce((e, t) => {
|
|
1040
1057
|
let n = t.parentId ?? null, r = e.at(-1);
|
|
1041
1058
|
return r && r.groupId === n ? [...e.slice(0, -1), {
|
|
1042
1059
|
...r,
|
|
@@ -1045,8 +1062,13 @@ var M = [
|
|
|
1045
1062
|
groupId: n,
|
|
1046
1063
|
nodes: [t]
|
|
1047
1064
|
}];
|
|
1048
|
-
}, []),
|
|
1049
|
-
|
|
1065
|
+
}, []), $ = (e) => {
|
|
1066
|
+
if (typeof e != "object" || !e) return JSON.stringify(e) ?? "null";
|
|
1067
|
+
if (Array.isArray(e)) return `[${e.map($).join(",")}]`;
|
|
1068
|
+
let t = e;
|
|
1069
|
+
return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${$(t[e])}`).join(",")}}`;
|
|
1070
|
+
}, Oe = ({ baseUrl: e, components: t, flow: r, googleApiKey: c, headers: l, language: u, onChange: f, onSubmit: m, theme: h, validate: g, validationMode: _, initialValues: v = {} }) => {
|
|
1071
|
+
let y = me(), b = a(() => ({
|
|
1050
1072
|
baseUrl: e ?? y?.baseUrl,
|
|
1051
1073
|
components: {
|
|
1052
1074
|
form: t?.form ?? y?.components?.form,
|
|
@@ -1077,30 +1099,16 @@ var M = [
|
|
|
1077
1099
|
u,
|
|
1078
1100
|
h,
|
|
1079
1101
|
_
|
|
1080
|
-
]), x = a(() => r?.nodes ?? [], [r]), S = a(() => r?.edges ?? [], [r]), C = a(() =>
|
|
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), [
|
|
1102
|
+
]), x = a(() => r?.nodes ?? [], [r]), S = a(() => r?.edges ?? [], [r]), C = a(() => ce(x), [x]), w = ne(b.language), T = o({}), [E, D] = s({}), [O, k] = s(() => Y(v, C)), A = a(() => $(v), [v]), j = o(A), { endOfPathReached: M, visibleNodes: N, visibleRootNodes: ee } = a(() => Ee(x, S, O), [
|
|
1095
1103
|
x,
|
|
1096
1104
|
S,
|
|
1097
1105
|
O
|
|
1098
|
-
]),
|
|
1106
|
+
]), P = a(() => De(N), [N]), te = a(() => {
|
|
1099
1107
|
let e = /* @__PURE__ */ new Map();
|
|
1100
1108
|
return x.forEach((t) => {
|
|
1101
1109
|
p(t) && e.set(t.id, t);
|
|
1102
1110
|
}), e;
|
|
1103
|
-
}, [x]), [
|
|
1111
|
+
}, [x]), [F, L] = s(0), R = P.length === 0 ? 0 : Math.min(F, P.length - 1), z = P[R], B = z?.groupId ? te.get(z.groupId) : void 0, V = R === 0, re = P.length === 0 || R >= P.length - 1, { clearSubmitMessage: ie, handleSubmitWithConfig: H, hasSubmitConfig: ae, isSubmitting: oe, submitMessage: se } = ve(N, O, b.language, C, b.headers, b.baseUrl), U = o(f), W = o(g), G = a(() => ue(O, C), [O, C]), le = n((e, t) => {
|
|
1104
1112
|
k((n) => ({
|
|
1105
1113
|
...n,
|
|
1106
1114
|
[e]: t
|
|
@@ -1108,7 +1116,7 @@ var M = [
|
|
|
1108
1116
|
let n = { ...t };
|
|
1109
1117
|
return delete n[e], n;
|
|
1110
1118
|
});
|
|
1111
|
-
}, []),
|
|
1119
|
+
}, []), K = n((e) => {
|
|
1112
1120
|
Object.keys(e).length !== 0 && (k((t) => ({
|
|
1113
1121
|
...t,
|
|
1114
1122
|
...e
|
|
@@ -1120,21 +1128,21 @@ var M = [
|
|
|
1120
1128
|
}));
|
|
1121
1129
|
}, []), J = n((e) => {
|
|
1122
1130
|
let t = {};
|
|
1123
|
-
|
|
1131
|
+
N.forEach((e) => {
|
|
1124
1132
|
if (d(e)) {
|
|
1125
1133
|
let n = e.id, r = O[n];
|
|
1126
|
-
if (e.data.required &&
|
|
1134
|
+
if (e.data.required && q(r)) {
|
|
1127
1135
|
t[n] = w(e.data.errorMessage) || w("validation.required");
|
|
1128
1136
|
return;
|
|
1129
1137
|
}
|
|
1130
|
-
if (!
|
|
1138
|
+
if (!q(r) && e.data.pattern) try {
|
|
1131
1139
|
new RegExp(e.data.pattern).test(String(r)) || (t[n] = w(e.data.errorMessage) || w("validation.invalidFormat"));
|
|
1132
1140
|
} catch (e) {
|
|
1133
1141
|
console.error(`Invalid pattern for field ${n}:`, e);
|
|
1134
1142
|
}
|
|
1135
1143
|
}
|
|
1136
1144
|
});
|
|
1137
|
-
let n = e ? e(O,
|
|
1145
|
+
let n = e ? e(O, N) : {}, r = {
|
|
1138
1146
|
...t,
|
|
1139
1147
|
...n
|
|
1140
1148
|
};
|
|
@@ -1144,143 +1152,150 @@ var M = [
|
|
|
1144
1152
|
isValid: Object.keys(r).length === 0
|
|
1145
1153
|
};
|
|
1146
1154
|
}, [
|
|
1147
|
-
|
|
1155
|
+
N,
|
|
1148
1156
|
O,
|
|
1149
1157
|
w
|
|
1150
|
-
]),
|
|
1151
|
-
|
|
1152
|
-
}, [
|
|
1153
|
-
|
|
1154
|
-
}, []),
|
|
1155
|
-
let { isValid: e } = J(
|
|
1158
|
+
]), X = n(() => {
|
|
1159
|
+
L((e) => e >= P.length - 1 ? e : e + 1);
|
|
1160
|
+
}, [P.length]), de = n(() => {
|
|
1161
|
+
L((e) => Math.max(0, e - 1));
|
|
1162
|
+
}, []), pe = n(async () => {
|
|
1163
|
+
let { isValid: e } = J(W.current);
|
|
1156
1164
|
if (!e) return !1;
|
|
1157
|
-
if (
|
|
1165
|
+
if (ae) {
|
|
1158
1166
|
let e = await H((e) => {
|
|
1159
|
-
m && m(
|
|
1167
|
+
m && m(G, { httpResponse: e });
|
|
1160
1168
|
});
|
|
1161
|
-
if (e === null) return m?.(
|
|
1169
|
+
if (e === null) return m?.(G), !0;
|
|
1162
1170
|
if (!e.success) return !0;
|
|
1163
|
-
} else m && m(
|
|
1171
|
+
} else m && m(G);
|
|
1164
1172
|
return !0;
|
|
1165
1173
|
}, [
|
|
1166
1174
|
J,
|
|
1167
|
-
|
|
1175
|
+
ae,
|
|
1168
1176
|
H,
|
|
1169
1177
|
m,
|
|
1170
|
-
|
|
1171
|
-
]),
|
|
1178
|
+
G
|
|
1179
|
+
]), he = a(() => {
|
|
1172
1180
|
let e = [];
|
|
1173
|
-
return
|
|
1181
|
+
return N.forEach((t) => {
|
|
1174
1182
|
if (!d(t)) return;
|
|
1175
1183
|
let n = t.id, r = O[n];
|
|
1176
|
-
if (t.data.required &&
|
|
1184
|
+
if (t.data.required && q(r)) {
|
|
1177
1185
|
let r = w(t.data.label) || n;
|
|
1178
1186
|
e.push(r);
|
|
1179
1187
|
}
|
|
1180
1188
|
}), e;
|
|
1181
1189
|
}, [
|
|
1182
|
-
|
|
1190
|
+
N,
|
|
1183
1191
|
O,
|
|
1184
1192
|
w
|
|
1185
|
-
]),
|
|
1193
|
+
]), ge = a(() => N.some((e) => d(e) && e.data.type === "submit"), [N]), _e = a(() => z ? z.nodes.every((e) => !d(e) || !e.data.required || e.data.type === "submit" ? !0 : !q(O[e.id])) : !1, [z, O]), ye = a(() => {
|
|
1186
1194
|
let e = Object.keys(E);
|
|
1187
1195
|
return e.length > 0 ? e[0] : void 0;
|
|
1188
1196
|
}, [E]);
|
|
1189
1197
|
return i(() => {
|
|
1190
|
-
if (
|
|
1191
|
-
|
|
1198
|
+
if (P.length === 0) {
|
|
1199
|
+
F !== 0 && L(0);
|
|
1192
1200
|
return;
|
|
1193
1201
|
}
|
|
1194
|
-
|
|
1195
|
-
}, [
|
|
1196
|
-
|
|
1202
|
+
F > P.length - 1 && L(P.length - 1);
|
|
1203
|
+
}, [P.length, F]), i(() => {
|
|
1204
|
+
U.current = f;
|
|
1197
1205
|
}, [f]), i(() => {
|
|
1198
|
-
|
|
1206
|
+
W.current = g;
|
|
1199
1207
|
}, [g]), i(() => {
|
|
1200
|
-
|
|
1201
|
-
}, [
|
|
1202
|
-
b.validationMode === "onChange" && J(
|
|
1208
|
+
U.current?.(G);
|
|
1209
|
+
}, [G]), i(() => {
|
|
1210
|
+
b.validationMode === "onChange" && J(W.current);
|
|
1203
1211
|
}, [b.validationMode, J]), i(() => {
|
|
1204
|
-
let e =
|
|
1205
|
-
Object.keys(e).length > 0 &&
|
|
1212
|
+
let e = fe(C, O, T.current);
|
|
1213
|
+
Object.keys(e).length > 0 && K(e), T.current = O;
|
|
1206
1214
|
}, [
|
|
1207
1215
|
O,
|
|
1208
1216
|
C,
|
|
1209
|
-
|
|
1217
|
+
K
|
|
1218
|
+
]), i(() => {
|
|
1219
|
+
j.current !== A && (j.current = A, k(Y(v, C)), D({}));
|
|
1220
|
+
}, [
|
|
1221
|
+
A,
|
|
1222
|
+
v,
|
|
1223
|
+
C
|
|
1210
1224
|
]), {
|
|
1211
|
-
canContinueStep:
|
|
1212
|
-
canSubmit: !
|
|
1213
|
-
clearSubmitMessage:
|
|
1225
|
+
canContinueStep: _e,
|
|
1226
|
+
canSubmit: !ge && M && x.length > 0,
|
|
1227
|
+
clearSubmitMessage: ie,
|
|
1214
1228
|
config: b,
|
|
1215
|
-
currentStep:
|
|
1216
|
-
currentStepGroupNode:
|
|
1217
|
-
currentStepIndex:
|
|
1218
|
-
firstErrorFieldId:
|
|
1229
|
+
currentStep: z,
|
|
1230
|
+
currentStepGroupNode: B,
|
|
1231
|
+
currentStepIndex: R,
|
|
1232
|
+
firstErrorFieldId: ye,
|
|
1219
1233
|
formErrors: E,
|
|
1220
1234
|
formValues: O,
|
|
1221
|
-
goToNextStep:
|
|
1222
|
-
goToPreviousStep:
|
|
1223
|
-
handleSubmit:
|
|
1224
|
-
hasSubmitInput:
|
|
1235
|
+
goToNextStep: X,
|
|
1236
|
+
goToPreviousStep: de,
|
|
1237
|
+
handleSubmit: pe,
|
|
1238
|
+
hasSubmitInput: ge,
|
|
1225
1239
|
inputNodes: C,
|
|
1226
|
-
isFirstStep:
|
|
1227
|
-
isLastStep:
|
|
1228
|
-
isSubmitting:
|
|
1229
|
-
missingRequiredFields:
|
|
1240
|
+
isFirstStep: V,
|
|
1241
|
+
isLastStep: re,
|
|
1242
|
+
isSubmitting: oe,
|
|
1243
|
+
missingRequiredFields: he,
|
|
1230
1244
|
prevFormValuesRef: T,
|
|
1231
1245
|
setFieldErrors: D,
|
|
1232
|
-
setFieldValue:
|
|
1233
|
-
setMultipleFieldValues:
|
|
1234
|
-
steps:
|
|
1235
|
-
submitMessage:
|
|
1246
|
+
setFieldValue: le,
|
|
1247
|
+
setMultipleFieldValues: K,
|
|
1248
|
+
steps: P,
|
|
1249
|
+
submitMessage: se,
|
|
1236
1250
|
t: w,
|
|
1237
1251
|
validateForm: J,
|
|
1238
|
-
visibleNodes:
|
|
1239
|
-
visibleRootNodes:
|
|
1252
|
+
visibleNodes: N,
|
|
1253
|
+
visibleRootNodes: ee
|
|
1240
1254
|
};
|
|
1241
|
-
},
|
|
1255
|
+
}, ke = /\{\{([\w-]+)}}/g, Ae = (e) => e == null || e === "", je = (...e) => {
|
|
1242
1256
|
let t = [];
|
|
1243
|
-
for (let n of e) if (n) for (let e of n.matchAll(
|
|
1257
|
+
for (let n of e) if (n) for (let e of n.matchAll(ke)) t.includes(e[1]) || t.push(e[1]);
|
|
1244
1258
|
return t;
|
|
1245
|
-
},
|
|
1259
|
+
}, Me = (e) => {
|
|
1246
1260
|
let t = e.data.httpConfig ?? e.data.optionsSource;
|
|
1247
1261
|
if (!t) return [];
|
|
1248
1262
|
let n = Object.values(t.queryParams ?? {});
|
|
1249
|
-
return
|
|
1250
|
-
},
|
|
1263
|
+
return je(t.url, t.body, ...n);
|
|
1264
|
+
}, Ne = (e, t, n, r) => Me(e).filter((e) => Ae(t[e])).map((e) => {
|
|
1251
1265
|
let t = n.find((t) => t.id === e);
|
|
1252
1266
|
return {
|
|
1253
1267
|
id: e,
|
|
1254
|
-
label: t ?
|
|
1268
|
+
label: t ? le(t, r) : e
|
|
1255
1269
|
};
|
|
1256
|
-
}),
|
|
1257
|
-
let
|
|
1270
|
+
}), Pe = ({ DefaultFormWrapper: t, DefaultInputWrapper: r, DefaultSubmitButton: i, DefaultSubmitButtonWrapper: o, config: s, defaultInputRenderers: c, defaultUI: u, formErrors: p, formValues: m, inputNodes: h, isSubmitting: g, missingRequiredFields: _, setFieldValue: v }) => {
|
|
1271
|
+
let y = a(() => s.components.form || t, [s.components.form, t]), b = a(() => s.components.submitButton || i, [s.components.submitButton, i]), S = a(() => s.components.submitButtonWrapper || o || e, [s.components.submitButtonWrapper, o]);
|
|
1258
1272
|
return {
|
|
1259
|
-
FormWrapper:
|
|
1273
|
+
FormWrapper: y,
|
|
1260
1274
|
renderNode: n(function(e) {
|
|
1261
1275
|
let { type: t } = e;
|
|
1262
1276
|
switch (t) {
|
|
1263
1277
|
case D.input: {
|
|
1264
1278
|
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) =>
|
|
1279
|
+
let t = e.data, n = t.type || "text", i = s.components.inputs?.[n], a = c[n], o = i || a, u = e.id, f = (e) => v(u, e), y = m[u], b = p[u], S = x(t.label, s.language), C = K(t, s.language), w = x(t.helperText, s.language), T = G(e), E = P(S), D = P(C), O = P(w);
|
|
1266
1280
|
return o ? /* @__PURE__ */ l(r, {
|
|
1267
1281
|
node: e,
|
|
1268
|
-
children: /* @__PURE__ */ l(
|
|
1282
|
+
children: /* @__PURE__ */ l(M, {
|
|
1269
1283
|
render: o,
|
|
1270
1284
|
field: {
|
|
1271
|
-
"aria-invalid":
|
|
1285
|
+
"aria-invalid": b ? !0 : void 0,
|
|
1272
1286
|
id: e.id,
|
|
1273
|
-
name:
|
|
1274
|
-
placeholder:
|
|
1287
|
+
name: T,
|
|
1288
|
+
placeholder: D,
|
|
1275
1289
|
required: t.required,
|
|
1276
|
-
value:
|
|
1290
|
+
value: y
|
|
1277
1291
|
},
|
|
1278
1292
|
extra: {
|
|
1279
|
-
error:
|
|
1280
|
-
helperText:
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1293
|
+
error: b,
|
|
1294
|
+
helperText: O,
|
|
1295
|
+
isSubmitting: g,
|
|
1296
|
+
label: E,
|
|
1297
|
+
missingDependencies: Ne(e, m, h, s.language),
|
|
1298
|
+
missingRequiredFields: _,
|
|
1284
1299
|
node: e,
|
|
1285
1300
|
setValue: f
|
|
1286
1301
|
}
|
|
@@ -1299,17 +1314,18 @@ var M = [
|
|
|
1299
1314
|
s,
|
|
1300
1315
|
m,
|
|
1301
1316
|
p,
|
|
1302
|
-
|
|
1317
|
+
v,
|
|
1303
1318
|
g,
|
|
1319
|
+
_,
|
|
1304
1320
|
h,
|
|
1305
1321
|
c,
|
|
1306
1322
|
u,
|
|
1307
1323
|
r
|
|
1308
1324
|
]),
|
|
1309
|
-
SubmitButton:
|
|
1310
|
-
SubmitButtonWrapper:
|
|
1325
|
+
SubmitButton: b,
|
|
1326
|
+
SubmitButtonWrapper: S
|
|
1311
1327
|
};
|
|
1312
|
-
},
|
|
1328
|
+
}, Fe = {
|
|
1313
1329
|
dark: {
|
|
1314
1330
|
background: "#0A0A0A",
|
|
1315
1331
|
border: "#262626",
|
|
@@ -1352,12 +1368,12 @@ var M = [
|
|
|
1352
1368
|
textMuted: "#737373",
|
|
1353
1369
|
textSecondary: "#525252"
|
|
1354
1370
|
}
|
|
1355
|
-
},
|
|
1356
|
-
colors:
|
|
1371
|
+
}, Ie = t({
|
|
1372
|
+
colors: Fe.light,
|
|
1357
1373
|
setTheme: () => null,
|
|
1358
1374
|
theme: "system"
|
|
1359
|
-
}),
|
|
1360
|
-
let [c, u] = s(() => r || typeof window < "u" && localStorage.getItem(n) || t), d = r ?? c, f =
|
|
1375
|
+
}), Le = ({ children: e, defaultTheme: t = "system", storageKey: n = "treege-theme", theme: r, ...o }) => {
|
|
1376
|
+
let [c, u] = s(() => r || typeof window < "u" && localStorage.getItem(n) || t), d = r ?? c, f = Fe[d === "system" ? typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : d], p = a(() => ({
|
|
1361
1377
|
colors: f,
|
|
1362
1378
|
setTheme: (e) => {
|
|
1363
1379
|
!r && typeof window < "u" && localStorage.setItem(n, e), u(e);
|
|
@@ -1383,15 +1399,15 @@ var M = [
|
|
|
1383
1399
|
return t.addEventListener("change", r), () => t.removeEventListener("change", r);
|
|
1384
1400
|
}
|
|
1385
1401
|
e.classList.add(d);
|
|
1386
|
-
}, [d]), /* @__PURE__ */ l(
|
|
1402
|
+
}, [d]), /* @__PURE__ */ l(Ie.Provider, {
|
|
1387
1403
|
...o,
|
|
1388
1404
|
value: p,
|
|
1389
1405
|
children: e
|
|
1390
1406
|
});
|
|
1391
|
-
},
|
|
1392
|
-
let e = r(
|
|
1407
|
+
}, Re = () => {
|
|
1408
|
+
let e = r(Ie);
|
|
1393
1409
|
if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
|
|
1394
1410
|
return e;
|
|
1395
1411
|
};
|
|
1396
1412
|
//#endregion
|
|
1397
|
-
export {
|
|
1413
|
+
export { z as A, w as B, R as C, I as D, B as E, A as F, p as H, j as I, D as L, P as M, F as N, V as O, M as P, E as R, se as S, H as T, d as U, x as V, f as W, q as _, we as a, oe as b, Q as c, me as d, X as f, ue as g, J as h, Oe as i, ne as j, L as k, be as l, fe as m, Re as n, Ee as o, Y as p, Pe as r, Ce as s, Le as t, he as u, K as v, ae as w, U as x, G as y, T as z };
|