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.
@@ -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), ee = ({ children: e, value: t }) => {
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
- }, A = () => {
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 j({ render: e, field: t, extra: n }) {
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 M = [
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
- ], te = ["class"], N = (e, t = {}) => {
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 ?? M, s = a ?? te;
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
- }, P = 100, F = (e, t = {}, n = 0, r = /* @__PURE__ */ new WeakSet()) => {
593
- if (n > P) return console.warn(`sanitizeHttpResponse: Maximum depth (${P}) exceeded.`), typeof e == "string" ? N(e, t) : "[Max Depth Exceeded]";
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 N(e, t);
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 = A(), n = T(e ?? t.language);
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 ? N(t) : t;
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" ? N(a) : a;
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
- }, H = (e, t) => e ? e.replace(/\{\{response\.([\w.-]+)}}/g, (e, n) => {
678
- let r = re(t, n.trim());
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
- }) : "", re = (e, t) => {
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
- }, U = (e, t) => t ? t.split(".").reduce((e, t) => {
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, ie = (e, t, n) => {
693
- let r = U(e, t ?? "");
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 = U(e, n.valueField), r = U(e, n.labelField);
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 = U(e, n.descriptionField);
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 = U(e, n.imageField);
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
- }, W = (e) => new Promise((t, n) => {
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
- }), G = (e) => {
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
- }, K = (e) => Promise.all(e.map((e) => W(e))), ae = new Set([
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
- ]), oe = (e) => e.filter(d), q = (e) => {
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
- }, J = (e, t) => x(e.data.label, t) || e.data.name || e.id, se = (e, t) => {
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] && ae.has(n) ? w(t)["renderer.defaultInputs.newAnswer"] ?? "" : x(e.placeholder, t);
750
- }, Y = (e) => e == null || typeof e == "string" && e.trim() === "" ? !0 : Array.isArray(e) && e.length === 0, ce = (e, t) => e ? t[e] != null : !1, le = (e, t) => {
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
- let r = t.id, i = q(t);
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
- }, ue = (e, t) => {
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
- }, de = (e, t, n) => {
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 = ue(p, f), h = ue(p, d);
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
- }, Z = t(void 0), fe = () => r(Z), pe = ({ children: e, ...t }) => /* @__PURE__ */ l(Z.Provider, {
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
- }), me = async (e, t, n, r, i) => {
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(le(t, n)) : e.body ? V(e.body, t, { json: !0 }) : void 0,
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 = H(e.redirectUrl, o.data);
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
- }, he = (e) => {
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
- }, ge = (e, t, r, i, o, c) => {
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 me(n, t, i, o, c);
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(() => he(e), 1e3);
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
- }, _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);
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
- }, $ = (e, t, n) => {
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) => 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) => {
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 $(e[0], t, n);
946
- let r = $(e[0], t, n);
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 = $(a, t, n), s = e[i - 1].logicalOperator || E.AND;
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
- }, ye = (e) => {
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
- }, be = (e, t, n) => {
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 ce(d(r) ? r.id : e.field, t);
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) => ve(e.data?.conditions, t, n));
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
- }, xe = (e, t) => !t.some((t) => t.target === e), Se = (e, t) => {
991
- let n = e.filter((e) => xe(e.id, t));
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
- }, Ce = (e, t, n, r) => {
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
- }, we = (e, t, n) => {
1007
- let r = Se(e, t);
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 = ye(t), o = [], s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set(), l = !1, u = (e) => {
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 } = be(a.get(e) || [], n, i);
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
- Ce(s, f, d, i);
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
- }, Te = (e) => e.filter((e) => !p(e)).reduce((e, t) => {
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
- }, []), 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(() => ({
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(() => 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), [
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
- ]), M = a(() => Te(A), [A]), te = a(() => {
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]), [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) => {
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
- }, []), q = n((e) => {
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
- A.forEach((e) => {
1131
+ N.forEach((e) => {
1124
1132
  if (d(e)) {
1125
1133
  let n = e.id, r = O[n];
1126
- if (e.data.required && Y(r)) {
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 (!Y(r) && e.data.pattern) try {
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, A) : {}, r = {
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
- A,
1155
+ N,
1148
1156
  O,
1149
1157
  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);
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 (re) {
1165
+ if (ae) {
1158
1166
  let e = await H((e) => {
1159
- m && m(K, { httpResponse: e });
1167
+ m && m(G, { httpResponse: e });
1160
1168
  });
1161
- if (e === null) return m?.(K), !0;
1169
+ if (e === null) return m?.(G), !0;
1162
1170
  if (!e.success) return !0;
1163
- } else m && m(K);
1171
+ } else m && m(G);
1164
1172
  return !0;
1165
1173
  }, [
1166
1174
  J,
1167
- re,
1175
+ ae,
1168
1176
  H,
1169
1177
  m,
1170
- K
1171
- ]), ue = a(() => {
1178
+ G
1179
+ ]), he = a(() => {
1172
1180
  let e = [];
1173
- return A.forEach((t) => {
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 && Y(r)) {
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
- A,
1190
+ N,
1183
1191
  O,
1184
1192
  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(() => {
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 (M.length === 0) {
1191
- N !== 0 && P(0);
1198
+ if (P.length === 0) {
1199
+ F !== 0 && L(0);
1192
1200
  return;
1193
1201
  }
1194
- N > M.length - 1 && P(M.length - 1);
1195
- }, [M.length, N]), i(() => {
1196
- W.current = f;
1202
+ F > P.length - 1 && L(P.length - 1);
1203
+ }, [P.length, F]), i(() => {
1204
+ U.current = f;
1197
1205
  }, [f]), i(() => {
1198
- G.current = g;
1206
+ W.current = g;
1199
1207
  }, [g]), i(() => {
1200
- W.current?.(K);
1201
- }, [K]), i(() => {
1202
- b.validationMode === "onChange" && J(G.current);
1208
+ U.current?.(G);
1209
+ }, [G]), i(() => {
1210
+ b.validationMode === "onChange" && J(W.current);
1203
1211
  }, [b.validationMode, J]), i(() => {
1204
- let e = de(C, O, T.current);
1205
- Object.keys(e).length > 0 && q(e), T.current = O;
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
- q
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: pe,
1212
- canSubmit: !Z && ee && x.length > 0,
1213
- clearSubmitMessage: V,
1225
+ canContinueStep: _e,
1226
+ canSubmit: !ge && M && x.length > 0,
1227
+ clearSubmitMessage: ie,
1214
1228
  config: b,
1215
- currentStep: L,
1216
- currentStepGroupNode: R,
1217
- currentStepIndex: F,
1218
- firstErrorFieldId: me,
1229
+ currentStep: z,
1230
+ currentStepGroupNode: B,
1231
+ currentStepIndex: R,
1232
+ firstErrorFieldId: ye,
1219
1233
  formErrors: E,
1220
1234
  formValues: O,
1221
- goToNextStep: se,
1222
- goToPreviousStep: ce,
1223
- handleSubmit: X,
1224
- hasSubmitInput: Z,
1235
+ goToNextStep: X,
1236
+ goToPreviousStep: de,
1237
+ handleSubmit: pe,
1238
+ hasSubmitInput: ge,
1225
1239
  inputNodes: C,
1226
- isFirstStep: z,
1227
- isLastStep: B,
1228
- isSubmitting: U,
1229
- missingRequiredFields: ue,
1240
+ isFirstStep: V,
1241
+ isLastStep: re,
1242
+ isSubmitting: oe,
1243
+ missingRequiredFields: he,
1230
1244
  prevFormValuesRef: T,
1231
1245
  setFieldErrors: D,
1232
- setFieldValue: ae,
1233
- setMultipleFieldValues: q,
1234
- steps: M,
1235
- submitMessage: ie,
1246
+ setFieldValue: le,
1247
+ setMultipleFieldValues: K,
1248
+ steps: P,
1249
+ submitMessage: se,
1236
1250
  t: w,
1237
1251
  validateForm: J,
1238
- visibleNodes: A,
1239
- visibleRootNodes: j
1252
+ visibleNodes: N,
1253
+ visibleRootNodes: ee
1240
1254
  };
1241
- }, De = /\{\{([\w-]+)}}/g, Oe = (e) => e == null || e === "", ke = (...e) => {
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(De)) t.includes(e[1]) || t.push(e[1]);
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
- }, Ae = (e) => {
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 ke(t.url, t.body, ...n);
1250
- }, je = (e, t, n, r) => Ae(e).filter((e) => Oe(t[e])).map((e) => {
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 ? J(t, r) : e
1268
+ label: t ? le(t, r) : e
1255
1269
  };
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]);
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: v,
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) => _(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);
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(j, {
1282
+ children: /* @__PURE__ */ l(M, {
1269
1283
  render: o,
1270
1284
  field: {
1271
- "aria-invalid": y ? !0 : void 0,
1285
+ "aria-invalid": b ? !0 : void 0,
1272
1286
  id: e.id,
1273
- name: w,
1274
- placeholder: E,
1287
+ name: T,
1288
+ placeholder: D,
1275
1289
  required: t.required,
1276
- value: v
1290
+ value: y
1277
1291
  },
1278
1292
  extra: {
1279
- error: y,
1280
- helperText: D,
1281
- label: T,
1282
- missingDependencies: je(e, m, h, s.language),
1283
- missingRequiredFields: g,
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: y,
1310
- SubmitButtonWrapper: b
1325
+ SubmitButton: b,
1326
+ SubmitButtonWrapper: S
1311
1327
  };
1312
- }, Ne = {
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
- }, Pe = t({
1356
- colors: Ne.light,
1371
+ }, Ie = t({
1372
+ colors: Fe.light,
1357
1373
  setTheme: () => null,
1358
1374
  theme: "system"
1359
- }), Fe = ({ children: e, defaultTheme: t = "system", storageKey: n = "treege-theme", theme: r, ...o }) => {
1360
- let [c, u] = s(() => r || typeof window < "u" && localStorage.getItem(n) || t), d = r ?? c, f = Ne[d === "system" ? typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : d], p = a(() => ({
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(Pe.Provider, {
1402
+ }, [d]), /* @__PURE__ */ l(Ie.Provider, {
1387
1403
  ...o,
1388
1404
  value: p,
1389
1405
  children: e
1390
1406
  });
1391
- }, Ie = () => {
1392
- let e = r(Pe);
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 { ne as A, x as B, ie as C, V as D, I as E, A as F, d as H, D as I, E as L, F as M, j as N, L as O, ee as P, T as R, R as S, B as T, f as U, p as V, se as _, Se as a, K as b, $ as c, fe as d, X as f, Y as g, le as h, Ee as i, N as j, z as k, ve as l, ce as m, Ie as n, we as o, de as p, Me as r, xe as s, Fe as t, pe as u, q as v, U as w, G as x, W as y, w as z };
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 };