treege 3.0.0-beta.79 → 3.0.0-beta.80

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/dist/editor.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "./editor-CqWlTe-N.js";
1
+ import { t as e } from "./editor-Dw_ODEe1.js";
2
2
  import { n as t, t as n } from "./ThemeContext-DeWmeqHK.js";
3
3
  export { n as ThemeProvider, e as TreegeEditor, t as useTheme };
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
- import { t as e } from "./editor-CqWlTe-N.js";
1
+ import { t as e } from "./editor-Dw_ODEe1.js";
2
2
  import { B as t, H as n, M as r, N as i, U as a, V as o, a as s, c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, r as g, s as _, t as v, z as y } from "./ThemeContext-DeWmeqHK.js";
3
3
  import { C as b, L as x, S, _ as C, a as w, b as T, c as E, d as D, g as O, h as k, i as A, m as j, n as M, o as N, r as P, u as F, v as I, x as L, y as R } from "./DefaultSubmitButton-Bk5U_6Qm.js";
4
- import { a as z, c as B, i as V, l as H, n as U, o as W, r as G, s as K } from "./useRenderNode-DJ0mFozt.js";
5
- import { i as q, n as J, r as Y, t as X } from "./renderer-DOEjomS9.js";
4
+ import { a as z, c as B, i as V, l as H, n as U, o as W, r as G, s as K } from "./useRenderNode-BZ7fZJxT.js";
5
+ import { i as q, n as J, r as Y, t as X } from "./renderer-CN83AtIp.js";
6
6
  export { b as DefaultAddressInput, S as DefaultAutocompleteInput, L as DefaultCheckboxInput, T as DefaultDateInput, R as DefaultDateRangeInput, I as DefaultFileInput, C as DefaultHiddenInput, O as DefaultHttpInput, x as DefaultInputLabel, k as DefaultNumberInput, j as DefaultPasswordInput, D as DefaultRadioInput, F as DefaultSelectInput, E as DefaultSwitchInput, N as DefaultTextAreaInput, w as DefaultTextInput, A as DefaultTimeInput, P as DefaultTimeRangeInput, J as Divider, v as ThemeProvider, Y as Title, e as TreegeEditor, X as TreegeRenderer, B as TreegeRendererProvider, g as applyReferenceTransformation, d as buildInitialFormValues, s as calculateReferenceFieldUpdates, h as checkFormFieldHasValue, _ as convertFormValuesToNamedFormat, M as defaultInputRenderers, q as defaultUI, W as evaluateCondition, K as evaluateConditions, p as fileToSerializable, u as filesToSerializable, G as findStartNode, V as getFlowRenderState, y as getStaticTranslations, t as getTranslatedText, c as isFieldEmpty, o as isGroupNode, n as isInputNode, z as isStartNode, a as isUINode, f as resolveNodeDefaultValue, r as sanitize, i as sanitizeHttpResponse, l as serializableToFile, m as useTheme, U as useTreegeRenderer, H as useTreegeRendererConfig };
@@ -1,6 +1,6 @@
1
1
  import { F as e, H as t, P as n, j as r, t as i } from "./ThemeContext-DeWmeqHK.js";
2
2
  import { B as a, H as o, L as s, R as c, V as l, ct as u, et as d, n as f, t as p, z as m } from "./DefaultSubmitButton-Bk5U_6Qm.js";
3
- import { a as h, l as g, n as _, t as v } from "./useRenderNode-DJ0mFozt.js";
3
+ import { a as h, l as g, n as _, t as v } from "./useRenderNode-BZ7fZJxT.js";
4
4
  import { useCallback as y, useMemo as b, useState as x } from "react";
5
5
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
6
6
  //#region src/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.tsx
@@ -1,5 +1,5 @@
1
1
  import { A as e, B as t, C as n, F as r, H as i, O as a, P as o, T as s, _ as c, a as l, b as u, c as d, g as f, h as p, i as m, j as h, k as g, l as _, m as v, n as y, o as b, r as x, s as S, t as C, x as w } from "./ThemeContext-DeWmeqHK.js";
2
- import { a as T, c as E, i as D, l as O, n as k, o as A, r as j, s as ee, t as te } from "./useRenderNode-DJ0mFozt.js";
2
+ import { a as T, c as E, i as D, l as O, n as k, o as A, r as j, s as ee, t as te } from "./useRenderNode-BZ7fZJxT.js";
3
3
  import { useCallback as ne, useEffect as M, useMemo as re, useRef as N, useState as P } from "react";
4
4
  import { Fragment as ie, jsx as F, jsxs as I } from "react/jsx-runtime";
5
5
  import { ActivityIndicator as ae, Alert as oe, Animated as se, FlatList as ce, Image as L, Modal as le, ScrollView as R, StyleSheet as z, Switch as ue, Text as B, TextInput as de, TouchableOpacity as V, View as H } from "react-native";
package/dist/renderer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { B as e, M as t, N as n, a as r, c as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, r as f, s as p, t as m } from "./ThemeContext-DeWmeqHK.js";
2
2
  import { C as h, L as g, S as _, _ as v, a as y, b, c as x, d as S, g as C, h as w, i as T, m as E, n as D, o as O, r as k, u as A, v as j, x as M, y as N } from "./DefaultSubmitButton-Bk5U_6Qm.js";
3
- import { a as P, c as F, i as I, l as L, n as R, o as z, r as B, s as V } from "./useRenderNode-DJ0mFozt.js";
4
- import { i as H, n as U, r as W, t as G } from "./renderer-DOEjomS9.js";
3
+ import { a as P, c as F, i as I, l as L, n as R, o as z, r as B, s as V } from "./useRenderNode-BZ7fZJxT.js";
4
+ import { i as H, n as U, r as W, t as G } from "./renderer-CN83AtIp.js";
5
5
  export { h as DefaultAddressInput, _ as DefaultAutocompleteInput, M as DefaultCheckboxInput, b as DefaultDateInput, N as DefaultDateRangeInput, j as DefaultFileInput, v as DefaultHiddenInput, C as DefaultHttpInput, g as DefaultInputLabel, w as DefaultNumberInput, E as DefaultPasswordInput, S as DefaultRadioInput, A as DefaultSelectInput, x as DefaultSwitchInput, O as DefaultTextAreaInput, y as DefaultTextInput, T as DefaultTimeInput, k as DefaultTimeRangeInput, U as Divider, m as ThemeProvider, W as Title, G as TreegeRenderer, F as TreegeRendererProvider, f as applyReferenceTransformation, s as buildInitialFormValues, r as calculateReferenceFieldUpdates, d as checkFormFieldHasValue, p as convertFormValuesToNamedFormat, D as defaultInputRenderers, H as defaultUI, z as evaluateCondition, V as evaluateConditions, l as fileToSerializable, o as filesToSerializable, B as findStartNode, I as getFlowRenderState, e as getTranslatedText, i as isFieldEmpty, P as isStartNode, c as resolveNodeDefaultValue, t as sanitize, n as sanitizeHttpResponse, a as serializableToFile, u as useTheme, R as useTreegeRenderer, L as useTreegeRendererConfig };
@@ -130,12 +130,8 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
130
130
  }, z = (e, t, n) => {
131
131
  let { field: i, operator: a, value: o } = e;
132
132
  if (!(i && a) || o === void 0) return !0;
133
- let s = t[i];
134
- if (s === void 0 && n) {
135
- let e = n.get(i);
136
- e && r(e) && (s = t[e.id]);
137
- }
138
- return Array.isArray(s) ? a === "===" ? s.some((e) => R(e, o, "===")) || R(s, o, "===") : a === "!==" ? s.every((e) => R(e, o, "!==")) && R(s, o, "!==") : s.some((e) => R(e, o, a)) : R(s, o, a);
133
+ let s = t[i], c = s === void 0 && n ? n.get(i) : void 0, l = c && r(c) ? t[c.id] : s;
134
+ return Array.isArray(l) ? a === "===" ? l.some((e) => R(e, o, "===")) || R(l, o, "===") : a === "!==" ? l.every((e) => R(e, o, "!==")) && R(l, o, "!==") : l.some((e) => R(e, o, a)) : R(l, o, a);
139
135
  }, B = (e, t, n) => {
140
136
  if (!e || e.length === 0) return !0;
141
137
  if (e.length === 1) return z(e[0], t, n);
@@ -186,18 +182,12 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
186
182
  }, H = (e, t) => !t.some((t) => t.target === e), U = (e, t) => {
187
183
  let n = e.filter((e) => H(e.id, t));
188
184
  return n.find(r) || n[0];
189
- }, W = (e, t, n, r) => {
185
+ }, W = (e, t, n = /* @__PURE__ */ new Set()) => !e || n.has(e) ? [] : (n.add(e), [e, ...W(t.get(e)?.parentId, t, n)]), G = (e, t, n, r) => {
190
186
  e.forEach((e) => {
191
- let i = r.get(e);
192
- if (!i) return;
193
- let { parentId: a } = i, o = /* @__PURE__ */ new Set();
194
- for (; a && !o.has(a);) {
195
- if (o.add(a), t.add(a), !n.has(a)) {
196
- let t = n.get(e);
197
- t !== void 0 && n.set(a, t);
198
- }
199
- a = r.get(a)?.parentId;
200
- }
187
+ let i = n.get(e);
188
+ W(r.get(e)?.parentId, r).forEach((e) => {
189
+ t.add(e), !n.has(e) && i !== void 0 && n.set(e, i);
190
+ });
201
191
  });
202
192
  }, ie = (e, t, n) => {
203
193
  let r = U(e, t);
@@ -224,7 +214,7 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
224
214
  };
225
215
  u(r.id);
226
216
  let d = new Map(o.map((e, t) => [e.id, t])), f = new Set(s);
227
- W(s, f, d, i);
217
+ G(s, f, d, i);
228
218
  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)));
229
219
  return {
230
220
  endOfPathReached: !l,
@@ -241,12 +231,12 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
241
231
  groupId: n,
242
232
  nodes: [t]
243
233
  }];
244
- }, []), G = (e) => {
234
+ }, []), K = (e) => {
245
235
  if (typeof e != "object" || !e) return JSON.stringify(e) ?? "null";
246
- if (Array.isArray(e)) return `[${e.map(G).join(",")}]`;
236
+ if (Array.isArray(e)) return `[${e.map(K).join(",")}]`;
247
237
  let t = e;
248
- return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${G(t[e])}`).join(",")}}`;
249
- }, K = ({ baseUrl: e, components: t, flow: n, googleApiKey: i, headers: a, language: o, onChange: s, onSubmit: l, showPoweredBy: p, theme: m, validate: _, validationMode: y, initialValues: b = {} }) => {
238
+ return `{${Object.keys(t).sort().map((e) => `${JSON.stringify(e)}:${K(t[e])}`).join(",")}}`;
239
+ }, oe = ({ baseUrl: e, components: t, flow: n, googleApiKey: i, headers: a, language: o, onChange: s, onSubmit: l, showPoweredBy: p, theme: m, validate: _, validationMode: y, initialValues: b = {} }) => {
250
240
  let C = te(), w = k(() => ({
251
241
  baseUrl: e ?? C?.baseUrl,
252
242
  components: {
@@ -280,16 +270,16 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
280
270
  p,
281
271
  m,
282
272
  y
283
- ]), T = k(() => n?.nodes ?? [], [n]), D = k(() => n?.edges ?? [], [n]), M = k(() => S(T), [T]), N = g(w.language), P = A({}), F = A(null), [I, L] = j({}), [R, z] = j(() => h(b, M)), B = k(() => G(b), [b]), V = A(B), { endOfPathReached: re, visibleNodes: H, visibleRootNodes: U } = k(() => ie(T, D, R), [
273
+ ]), T = k(() => n?.nodes ?? [], [n]), D = k(() => n?.edges ?? [], [n]), M = k(() => S(T), [T]), N = g(w.language), P = A({}), F = A(null), [I, L] = j({}), [R, z] = j(() => h(b, M)), B = k(() => K(b), [b]), V = A(B), { endOfPathReached: re, visibleNodes: H, visibleRootNodes: U } = k(() => ie(T, D, R), [
284
274
  T,
285
275
  D,
286
276
  R
287
- ]), W = k(() => S(H), [H]), K = k(() => ae(H), [H]), oe = k(() => {
277
+ ]), W = k(() => S(H), [H]), G = k(() => ae(H), [H]), oe = k(() => {
288
278
  let e = /* @__PURE__ */ new Map();
289
279
  return T.forEach((t) => {
290
280
  u(t) && e.set(t.id, t);
291
281
  }), e;
292
- }, [T]), [q, J] = j(0), Y = K.length === 0 ? 0 : Math.min(q, K.length - 1), X = K[Y], se = X?.groupId ? oe.get(X.groupId) : void 0, ce = Y === 0, le = K.length === 0 || Y >= K.length - 1, { clearSubmitMessage: ue, handleSubmitWithConfig: de, hasSubmitConfig: fe, isSubmitting: pe, submitButtonNode: me, submitMessage: he } = ne(H, R, w.language, W, w.headers, w.baseUrl), ge = A(s), _e = A(_), Z = k(() => x(R, W), [R, W]), Q = k(() => {
282
+ }, [T]), [q, J] = j(0), Y = G.length === 0 ? 0 : Math.min(q, G.length - 1), X = G[Y], se = X?.groupId ? oe.get(X.groupId) : void 0, ce = Y === 0, le = G.length === 0 || Y >= G.length - 1, { clearSubmitMessage: ue, handleSubmitWithConfig: de, hasSubmitConfig: fe, isSubmitting: pe, submitButtonNode: me, submitMessage: he } = ne(H, R, w.language, W, w.headers, w.baseUrl), ge = A(s), _e = A(_), Z = k(() => x(R, W), [R, W]), Q = k(() => {
293
283
  let e = me?.data?.submitConfig?.payloadTemplate;
294
284
  return e ? ee(e, R, W) ?? Z : Z;
295
285
  }, [
@@ -345,8 +335,8 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
345
335
  R,
346
336
  N
347
337
  ]), be = E(() => {
348
- J((e) => e >= K.length - 1 ? e : e + 1);
349
- }, [K.length]), xe = E(() => {
338
+ J((e) => e >= G.length - 1 ? e : e + 1);
339
+ }, [G.length]), xe = E(() => {
350
340
  J((e) => Math.max(0, e - 1));
351
341
  }, []), Se = E(async () => {
352
342
  let { isValid: e } = $(_e.current);
@@ -380,12 +370,12 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
380
370
  return e.length > 0 ? e[0] : void 0;
381
371
  }, [I]);
382
372
  return O(() => {
383
- if (K.length === 0) {
373
+ if (G.length === 0) {
384
374
  q !== 0 && J(0);
385
375
  return;
386
376
  }
387
- q > K.length - 1 && J(K.length - 1);
388
- }, [K.length, q]), O(() => {
377
+ q > G.length - 1 && J(G.length - 1);
378
+ }, [G.length, q]), O(() => {
389
379
  ge.current = s;
390
380
  }, [s]), O(() => {
391
381
  _e.current = _;
@@ -452,29 +442,29 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
452
442
  setFieldErrors: L,
453
443
  setFieldValue: ve,
454
444
  setMultipleFieldValues: ye,
455
- steps: K,
445
+ steps: G,
456
446
  submitMessage: he,
457
447
  t: N,
458
448
  validateForm: $,
459
449
  visibleNodes: H,
460
450
  visibleRootNodes: U
461
451
  };
462
- }, oe = /\{\{([\w-]+)}}/g, q = (e) => e == null || e === "", J = (...e) => {
452
+ }, q = /\{\{([\w-]+)}}/g, J = (e) => e == null || e === "", Y = (...e) => {
463
453
  let t = [];
464
- for (let n of e) if (n) for (let e of n.matchAll(oe)) t.includes(e[1]) || t.push(e[1]);
454
+ for (let n of e) if (n) for (let e of n.matchAll(q)) t.includes(e[1]) || t.push(e[1]);
465
455
  return t;
466
- }, Y = (e) => {
456
+ }, X = (e) => {
467
457
  let t = e.data.httpConfig ?? e.data.optionsSource;
468
458
  if (!t) return [];
469
459
  let n = Object.values(t.queryParams ?? {});
470
- return J(t.url, t.body, ...n);
471
- }, X = (e, t, n, r) => Y(e).filter((e) => q(t[e])).map((e) => {
460
+ return Y(t.url, t.body, ...n);
461
+ }, se = (e, t, n, r) => X(e).filter((e) => J(t[e])).map((e) => {
472
462
  let t = n.find((t) => t.id === e);
473
463
  return {
474
464
  id: e,
475
465
  label: t ? b(t, r) : e
476
466
  };
477
- }), se = ({ DefaultFormWrapper: t, DefaultInputLabel: n, DefaultInputWrapper: a, DefaultSubmitButton: s, DefaultSubmitButtonWrapper: c, config: u, defaultInputRenderers: d, defaultUI: f, formErrors: h, formValues: g, inputNodes: _, isSubmitting: v, missingRequiredFields: y, setFieldValue: b }) => {
467
+ }), ce = ({ DefaultFormWrapper: t, DefaultInputLabel: n, DefaultInputWrapper: a, DefaultSubmitButton: s, DefaultSubmitButtonWrapper: c, config: u, defaultInputRenderers: d, defaultUI: f, formErrors: h, formValues: g, inputNodes: _, isSubmitting: v, missingRequiredFields: y, setFieldValue: b }) => {
478
468
  let x = k(() => u.components.form || t, [u.components.form, t]), S = k(() => u.components.submitButton || s, [u.components.submitButton, s]), C = k(() => u.components.submitButtonWrapper || c || w, [u.components.submitButtonWrapper, c]), ee = k(() => u.components.inputLabel || n, [u.components.inputLabel, n]);
479
469
  return {
480
470
  FormWrapper: x,
@@ -501,7 +491,7 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
501
491
  InputLabel: ee,
502
492
  isSubmitting: v,
503
493
  label: O,
504
- missingDependencies: X(t, g, _, u.language),
494
+ missingDependencies: se(t, g, _, u.language),
505
495
  missingRequiredFields: y,
506
496
  node: t,
507
497
  setValue: x
@@ -534,4 +524,4 @@ var N = T(void 0), te = () => D(N), P = ({ children: e, ...t }) => /* @__PURE__
534
524
  };
535
525
  };
536
526
  //#endregion
537
- export { H as a, P as c, ie as i, te as l, K as n, z as o, U as r, B as s, se as t };
527
+ export { H as a, P as c, ie as i, te as l, oe as n, z as o, U as r, B as s, ce as t };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "treege",
3
3
  "description": "Powerful form generator",
4
4
  "license": "ISC",
5
- "version": "3.0.0-beta.79",
5
+ "version": "3.0.0-beta.80",
6
6
  "type": "module",
7
7
  "types": "./dist/main.d.ts",
8
8
  "module": "./dist/main.js",