@harnessio/forms 0.0.1 → 0.0.2

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.
@@ -13,4 +13,6 @@ export declare function inputTransformValues(values: Record<string, any>, transf
13
13
  export declare function outputTransformValues(values: Record<string, any>, transformerItems: TransformItem[]): Record<string, any>;
14
14
  /** Collect all input/output transformer functions */
15
15
  export declare function getTransformers(formDefinition: IFormDefinition): TransformItem[];
16
+ /** Remove values for inputs that are hidden */
17
+ export declare function unsetHiddenInputsValues(formDefinition: IFormDefinition, values: Record<string, any>, metadata?: any): Record<string, any>;
16
18
  export {};
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
- var W = Object.defineProperty;
2
- var Y = (r, e, t) => e in r ? W(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var w = (r, e, t) => Y(r, typeof e != "symbol" ? e + "" : e, t);
4
- import { isEmpty as j, cloneDeep as V, set as p, get as b, forOwn as G, isNull as H, isUndefined as S, capitalize as K, isArray as I, isObject as D, merge as R, pick as Q, omitBy as B, isString as X } from "lodash-es";
5
- import z, { useMemo as F, useRef as ee, useEffect as C, forwardRef as re, useCallback as te } from "react";
6
- import { useFormContext as ne, useForm as se, FormProvider as ae, appendErrors as ue } from "react-hook-form";
1
+ var H = Object.defineProperty;
2
+ var Y = (r, e, t) => e in r ? H(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
+ var C = (r, e, t) => Y(r, typeof e != "symbol" ? e + "" : e, t);
4
+ import { isEmpty as S, cloneDeep as w, set as g, get as b, forOwn as G, isNull as K, isUndefined as j, capitalize as Q, isArray as V, isObject as B, merge as I, pick as X, unset as z, omitBy as J, isString as ee } from "lodash-es";
5
+ import re, { useMemo as k, useRef as te, useEffect as E, forwardRef as ne, useCallback as se } from "react";
6
+ import { useFormContext as ae, useForm as ue, FormProvider as ie, appendErrors as oe } from "react-hook-form";
7
7
  export * from "react-hook-form";
8
8
  import * as m from "zod";
9
- import { toNestErrors as ie } from "@hookform/resolvers";
10
- class oe extends Error {
9
+ import { toNestErrors as ce } from "@hookform/resolvers";
10
+ class fe extends Error {
11
11
  constructor(e) {
12
12
  super(`Input component '${e}' is already registered.`);
13
13
  }
14
14
  }
15
- class Ie {
15
+ class Ve {
16
16
  constructor(e) {
17
- w(this, "componentBank");
18
- w(this, "allowOverride");
17
+ C(this, "componentBank");
18
+ C(this, "allowOverride");
19
19
  this.allowOverride = (e == null ? void 0 : e.allowOverride) ?? !1, this.componentBank = /* @__PURE__ */ new Map();
20
20
  }
21
21
  /**
@@ -26,11 +26,11 @@ class Ie {
26
26
  */
27
27
  registerComponent(e) {
28
28
  if (!this.allowOverride && this.getComponent(e.internalType))
29
- throw new oe(e.internalType);
29
+ throw new fe(e.internalType);
30
30
  this.componentBank.set(e.internalType, e);
31
31
  }
32
32
  getComponent(e) {
33
- if (e && !j(e))
33
+ if (e && !S(e))
34
34
  return this.componentBank.get(e);
35
35
  }
36
36
  }
@@ -41,7 +41,7 @@ object-assign
41
41
  @license MIT
42
42
  */
43
43
  var x, A;
44
- function ce() {
44
+ function de() {
45
45
  if (A) return x;
46
46
  A = 1;
47
47
  var r = Object.getOwnPropertySymbols, e = Object.prototype.hasOwnProperty, t = Object.prototype.propertyIsEnumerable;
@@ -57,33 +57,33 @@ function ce() {
57
57
  var s = new String("abc");
58
58
  if (s[5] = "de", Object.getOwnPropertyNames(s)[0] === "5")
59
59
  return !1;
60
- for (var i = {}, u = 0; u < 10; u++)
61
- i["_" + String.fromCharCode(u)] = u;
62
- var o = Object.getOwnPropertyNames(i).map(function(f) {
63
- return i[f];
60
+ for (var o = {}, i = 0; i < 10; i++)
61
+ o["_" + String.fromCharCode(i)] = i;
62
+ var c = Object.getOwnPropertyNames(o).map(function(f) {
63
+ return o[f];
64
64
  });
65
- if (o.join("") !== "0123456789")
65
+ if (c.join("") !== "0123456789")
66
66
  return !1;
67
- var c = {};
67
+ var u = {};
68
68
  return "abcdefghijklmnopqrst".split("").forEach(function(f) {
69
- c[f] = f;
70
- }), Object.keys(Object.assign({}, c)).join("") === "abcdefghijklmnopqrst";
69
+ u[f] = f;
70
+ }), Object.keys(Object.assign({}, u)).join("") === "abcdefghijklmnopqrst";
71
71
  } catch {
72
72
  return !1;
73
73
  }
74
74
  }
75
- return x = a() ? Object.assign : function(s, i) {
76
- for (var u, o = n(s), c, f = 1; f < arguments.length; f++) {
77
- u = Object(arguments[f]);
78
- for (var d in u)
79
- e.call(u, d) && (o[d] = u[d]);
75
+ return x = a() ? Object.assign : function(s, o) {
76
+ for (var i, c = n(s), u, f = 1; f < arguments.length; f++) {
77
+ i = Object(arguments[f]);
78
+ for (var l in i)
79
+ e.call(i, l) && (c[l] = i[l]);
80
80
  if (r) {
81
- c = r(u);
82
- for (var l = 0; l < c.length; l++)
83
- t.call(u, c[l]) && (o[c[l]] = u[c[l]]);
81
+ u = r(i);
82
+ for (var d = 0; d < u.length; d++)
83
+ t.call(i, u[d]) && (c[u[d]] = i[u[d]]);
84
84
  }
85
85
  }
86
- return o;
86
+ return c;
87
87
  }, x;
88
88
  }
89
89
  /** @license React v17.0.2
@@ -94,44 +94,44 @@ function ce() {
94
94
  * This source code is licensed under the MIT license found in the
95
95
  * LICENSE file in the root directory of this source tree.
96
96
  */
97
- var k;
98
- function fe() {
99
- if (k) return v;
100
- k = 1, ce();
101
- var r = z, e = 60103;
97
+ var Z;
98
+ function le() {
99
+ if (Z) return v;
100
+ Z = 1, de();
101
+ var r = re, e = 60103;
102
102
  if (v.Fragment = 60107, typeof Symbol == "function" && Symbol.for) {
103
103
  var t = Symbol.for;
104
104
  e = t("react.element"), v.Fragment = t("react.fragment");
105
105
  }
106
106
  var n = r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, a = Object.prototype.hasOwnProperty, s = { key: !0, ref: !0, __self: !0, __source: !0 };
107
- function i(u, o, c) {
108
- var f, d = {}, l = null, h = null;
109
- c !== void 0 && (l = "" + c), o.key !== void 0 && (l = "" + o.key), o.ref !== void 0 && (h = o.ref);
110
- for (f in o) a.call(o, f) && !s.hasOwnProperty(f) && (d[f] = o[f]);
111
- if (u && u.defaultProps) for (f in o = u.defaultProps, o) d[f] === void 0 && (d[f] = o[f]);
112
- return { $$typeof: e, type: u, key: l, ref: h, props: d, _owner: n.current };
107
+ function o(i, c, u) {
108
+ var f, l = {}, d = null, h = null;
109
+ u !== void 0 && (d = "" + u), c.key !== void 0 && (d = "" + c.key), c.ref !== void 0 && (h = c.ref);
110
+ for (f in c) a.call(c, f) && !s.hasOwnProperty(f) && (l[f] = c[f]);
111
+ if (i && i.defaultProps) for (f in c = i.defaultProps, c) l[f] === void 0 && (l[f] = c[f]);
112
+ return { $$typeof: e, type: i, key: d, ref: h, props: l, _owner: n.current };
113
113
  }
114
- return v.jsx = i, v.jsxs = i, v;
114
+ return v.jsx = o, v.jsxs = o, v;
115
115
  }
116
- var Z;
117
- function de() {
118
- return Z || (Z = 1, q.exports = fe()), q.exports;
116
+ var D;
117
+ function me() {
118
+ return D || (D = 1, q.exports = le()), q.exports;
119
119
  }
120
- var y = de();
121
- function le({
120
+ var y = me();
121
+ function he({
122
122
  path: r,
123
123
  factory: e,
124
124
  onUpdate: t,
125
125
  onChange: n,
126
126
  readonly: a,
127
127
  initialValues: s,
128
- input: i
128
+ input: o
129
129
  }) {
130
- const { formState: u, watch: o } = ne(), {
131
- metadata: c = {},
130
+ const { formState: i, watch: c } = ae(), {
131
+ metadata: u = {},
132
132
  fixedValues: f = {}
133
133
  /*getValuesWithDependencies*/
134
- } = {}, d = e == null ? void 0 : e.getComponent(i.inputType), l = F(
134
+ } = {}, l = e == null ? void 0 : e.getComponent(o.inputType), d = k(
135
135
  () => ({
136
136
  path: r,
137
137
  initialValues: s,
@@ -139,31 +139,31 @@ function le({
139
139
  onChange: n,
140
140
  factory: e,
141
141
  readonly: a,
142
- input: i
142
+ input: o
143
143
  }),
144
- [e, s, i, n, t, r, a, u.errors]
145
- ), h = o(), g = V(h);
146
- f && Object.keys(f).forEach((N) => {
147
- const U = f[N];
148
- p(g, N, U);
144
+ [e, s, o, n, t, r, a, i.errors]
145
+ ), h = c(), p = w(h);
146
+ f && Object.keys(f).forEach((F) => {
147
+ const W = f[F];
148
+ g(p, F, W);
149
149
  });
150
- const _ = !i.isVisible || (i == null ? void 0 : i.isVisible(g, c)), M = F(() => _ ? /* @__PURE__ */ y.jsxs(y.Fragment, { children: [
151
- i.before ? i.before : null,
152
- d == null ? void 0 : d.renderComponent(l),
153
- i.after ? i.after : null
154
- ] }) : null, [l, i.after, i.before, d, _, u.errors]);
155
- return d ? _ ? M : null : /* @__PURE__ */ y.jsxs("p", { children: [
150
+ const _ = !o.isVisible || (o == null ? void 0 : o.isVisible(p, u)), U = k(() => _ ? /* @__PURE__ */ y.jsxs(y.Fragment, { children: [
151
+ o.before ? o.before : null,
152
+ l == null ? void 0 : l.renderComponent(d),
153
+ o.after ? o.after : null
154
+ ] }) : null, [d, o.after, o.before, l, _, i.errors]);
155
+ return l ? _ ? U : null : /* @__PURE__ */ y.jsxs("p", { children: [
156
156
  "Input component not found (internal type: ",
157
- i.inputType,
157
+ o.inputType,
158
158
  ")"
159
159
  ] });
160
160
  }
161
- class we {
161
+ class Ce {
162
162
  getType() {
163
163
  return this.internalType;
164
164
  }
165
165
  }
166
- function Ce(r) {
166
+ function qe(r) {
167
167
  const {
168
168
  mode: e = "onSubmit",
169
169
  resolver: t,
@@ -171,149 +171,165 @@ function Ce(r) {
171
171
  shouldFocusError: a,
172
172
  // validateAfterFirstSubmit,
173
173
  onValuesChange: s,
174
- onSubmit: i,
174
+ onSubmit: o,
175
175
  // validate,
176
176
  // validateDebounceInterval,
177
177
  // validationConfig,
178
178
  // metadata,
179
- children: u,
179
+ children: i,
180
180
  // fixedValues
181
- autoFocusPath: o
182
- } = r, c = se({
181
+ autoFocusPath: c
182
+ } = r, u = ue({
183
183
  mode: e ?? "onSubmit",
184
184
  reValidateMode: "onChange",
185
185
  defaultValues: n,
186
186
  shouldFocusError: a,
187
187
  resolver: t
188
- }), f = ee(!1);
189
- C(() => {
190
- c.reset(n);
191
- }, [c.reset, n]);
192
- const { getValues: d, handleSubmit: l } = c, h = d();
193
- return C(() => {
194
- s == null || s({ ...h }, { isValid: c.formState.isValid }), f.current === !0 && c.trigger();
195
- }, [JSON.stringify(h)]), C(() => {
196
- if (o)
188
+ }), f = te(!1);
189
+ E(() => {
190
+ u.reset(n, {});
191
+ }, [u.reset, n]), E(() => {
192
+ requestIdleCallback(() => {
193
+ u.reset({}, {
194
+ keepErrors: !0,
195
+ keepDirty: !0,
196
+ keepDirtyValues: !0,
197
+ keepValues: !0,
198
+ keepDefaultValues: !1,
199
+ // RESET default values
200
+ keepIsSubmitted: !0,
201
+ keepTouched: !0,
202
+ keepIsValid: !0,
203
+ keepSubmitCount: !0
204
+ });
205
+ });
206
+ }, []);
207
+ const { getValues: l, handleSubmit: d } = u, h = l();
208
+ return E(() => {
209
+ s == null || s({ ...h }, { isValid: u.formState.isValid }), f.current === !0 && u.trigger();
210
+ }, [JSON.stringify(h)]), E(() => {
211
+ if (c)
197
212
  if ("requestIdleCallback" in window) {
198
- const g = requestIdleCallback(() => {
199
- c.setFocus(o);
213
+ const p = requestIdleCallback(() => {
214
+ u.setFocus(c);
200
215
  });
201
- return () => cancelIdleCallback(g);
216
+ return () => cancelIdleCallback(p);
202
217
  } else {
203
- const g = setTimeout(() => {
204
- c.setFocus(o);
218
+ const p = setTimeout(() => {
219
+ u.setFocus(c);
205
220
  }, 100);
206
- return () => clearTimeout(g);
221
+ return () => clearTimeout(p);
207
222
  }
208
- }, [c]), /* @__PURE__ */ y.jsx(ae, { ...c, children: typeof u == "function" ? u({
209
- ...c,
223
+ }, [u]), /* @__PURE__ */ y.jsx(ie, { ...u, children: typeof i == "function" ? i({
224
+ ...u,
210
225
  submitForm: async () => {
211
- i && (f.current = !0, l((g) => {
212
- i(g);
226
+ o && (f.current = !0, d((p) => {
227
+ o(p);
213
228
  })());
214
229
  }
215
- }) : u });
230
+ }) : i });
216
231
  }
217
- const qe = (r) => {
232
+ const xe = (r) => {
218
233
  const e = {};
219
234
  return r.inputs.forEach((t) => {
220
- typeof b(e, t.path) > "u" && p(e, t.path, t.default);
235
+ typeof b(e, t.path) > "u" && g(e, t.path, t.default);
221
236
  }), e;
222
237
  };
223
- function xe(r, e) {
238
+ function Pe(r, e) {
224
239
  const t = r.inputs.map((n) => {
225
- const a = me(e, n.path);
240
+ const a = ye(e, n.path);
226
241
  return a || n;
227
242
  });
228
243
  return { ...r, inputs: t };
229
244
  }
230
- function me(r, e) {
245
+ function ye(r, e) {
231
246
  return r.inputs.find((t) => t.path === e);
232
247
  }
233
- function he({ input: r, factory: e }) {
248
+ function pe({ input: r, factory: e }) {
234
249
  const { prefix: t = "" } = {};
235
- return /* @__PURE__ */ y.jsx("div", { children: /* @__PURE__ */ y.jsx(le, { path: `${t}${r.path}`, factory: e, readonly: !1, input: r }) });
250
+ return /* @__PURE__ */ y.jsx("div", { children: /* @__PURE__ */ y.jsx(he, { path: `${t}${r.path}`, factory: e, readonly: !1, input: r }) });
236
251
  }
237
- function ye(r) {
252
+ function ge(r) {
238
253
  const { items: e, factory: t } = r;
239
254
  return /* @__PURE__ */ y.jsx(y.Fragment, { children: e.map((n) => {
240
255
  const a = `${n.inputType}_${n.path}_${n.label}`;
241
- return /* @__PURE__ */ y.jsx(he, { input: n, factory: t }, a);
256
+ return /* @__PURE__ */ y.jsx(pe, { input: n, factory: t }, a);
242
257
  }) });
243
258
  }
244
- const ge = re((r, e) => {
259
+ const be = ne((r, e) => {
245
260
  const { inputs: t, className: n, factory: a } = r;
246
261
  return /* @__PURE__ */ y.jsxs("div", { className: n, ref: e, children: [
247
262
  t.hero,
248
- /* @__PURE__ */ y.jsx(ye, { items: t.inputs, factory: a })
263
+ /* @__PURE__ */ y.jsx(ge, { items: t.inputs, factory: a })
249
264
  ] });
250
265
  });
251
- ge.displayName = "RenderForm";
252
- function Ve(r) {
266
+ be.displayName = "RenderForm";
267
+ function Ne(r) {
253
268
  let e = !0;
254
269
  return G(r, (t) => {
255
- e = e && (t === "" || H(t) || S(t));
270
+ e = e && (t === "" || K(t) || j(t));
256
271
  }), e;
257
272
  }
258
- const Pe = (r = "") => K(r.split("_").join(" "));
273
+ const Fe = (r = "") => Q(r.split("_").join(" "));
259
274
  function O(r) {
260
275
  const e = typeof r == "string" ? JSON.parse(r) : r;
261
276
  if (typeof e == "string")
262
277
  return e;
263
- if (I(e))
278
+ if (V(e))
264
279
  return O(e[0]);
265
280
  const t = e;
266
- return D(t) && (t != null && t.message) ? e == null ? void 0 : e.message : "Unknown error";
281
+ return B(t) && (t != null && t.message) ? e == null ? void 0 : e.message : "Unknown error";
267
282
  }
268
- function pe(r, e, t) {
283
+ function _e(r, e, t) {
269
284
  let n = {};
270
285
  if (T(n, r.inputs, e, t), t != null && t.prefix) {
271
286
  const s = t == null ? void 0 : t.prefix.replace(/.$/, "");
272
- n = p({}, s, n);
287
+ n = g({}, s, n);
273
288
  }
274
- return m.object(E(n, e, t));
289
+ return m.object(R(n, e, t));
275
290
  }
276
- function E(r, e, t) {
291
+ function R(r, e, t) {
277
292
  const n = {};
278
293
  return Object.keys(r).forEach((a) => {
279
294
  const {
280
295
  _requiredOnly: s,
281
- _schemaObj: i,
282
- _input: u,
283
- _isList: o,
284
- _isArrayItem: c,
296
+ _schemaObj: o,
297
+ _input: i,
298
+ _isList: c,
299
+ _isArrayItem: u,
285
300
  _schema: f
286
301
  /*...nestedSchemaObj*/
287
302
  } = r[a];
288
- if (o && i && u) {
289
- const d = m.array(m.object(E(i, e, t))).optional(), l = $(f, u, e, t, d);
290
- n[a] = l;
291
- } else if (c && u) {
292
- const d = i != null && i.___array ? E({ ___array: i.___array }, e, t) : { ___array: m.any() }, l = m.array(d.___array).optional(), h = $(f, u, e, t, l);
293
- n[a] = h;
294
- } else if (f && u) {
295
- const d = be(f, u, t);
303
+ if (c && o && i) {
304
+ const l = m.array(m.object(R(o, e, t))).optional(), d = $(f, i, e, t, l);
296
305
  n[a] = d;
297
- } else s && u ? n[a] = P(u, t) : n[a] = m.object(E(r[a], e, t)).optional();
306
+ } else if (u && i) {
307
+ const l = o != null && o.___array ? R({ ___array: o.___array }, e, t) : { ___array: m.any() }, d = m.array(l.___array).optional(), h = $(f, i, e, t, d);
308
+ n[a] = h;
309
+ } else if (f && i) {
310
+ const l = ve(f, i, e, t);
311
+ n[a] = l;
312
+ } else s && i ? n[a] = P(i, t) : n[a] = m.object(R(r[a], e, t)).optional();
298
313
  }), n;
299
314
  }
300
- function be(r, e, t) {
301
- return m.string().superRefine(async (n, a) => {
302
- var s, i;
303
- if (e.required && ((await P(e, t).safeParseAsync(n)).success || a.addIssue({
315
+ function ve(r, e, t, n) {
316
+ return m.any().superRefine(async (a, s) => {
317
+ var i, c;
318
+ if (e.required && ((await P(e, n).safeParseAsync(a)).success || s.addIssue({
304
319
  code: m.ZodIssueCode.custom,
305
320
  message: "Required field"
306
- })), (s = t == null ? void 0 : t.validationConfig) != null && s.globalValidation) {
307
- const u = (i = t == null ? void 0 : t.validationConfig) == null ? void 0 : i.globalValidation(n, e, t.metadata);
308
- if (u.error && a.addIssue({
321
+ })), (i = n == null ? void 0 : n.validationConfig) != null && i.globalValidation) {
322
+ const u = (c = n == null ? void 0 : n.validationConfig) == null ? void 0 : c.globalValidation(a, e, n.metadata);
323
+ if (u.error && s.addIssue({
309
324
  code: m.ZodIssueCode.custom,
310
325
  message: u.error
311
326
  }), !u.continue)
312
327
  return !0;
313
328
  }
314
- if (r) {
315
- const u = await r.safeParseAsync(n);
316
- u.success || a.addIssue({
329
+ const o = L(r, t);
330
+ if (o) {
331
+ const u = await o.safeParseAsync(a);
332
+ u.success || s.addIssue({
317
333
  code: m.ZodIssueCode.custom,
318
334
  message: O(u == null ? void 0 : u.error.message)
319
335
  });
@@ -321,34 +337,35 @@ function be(r, e, t) {
321
337
  });
322
338
  }
323
339
  function $(r, e, t, n, a) {
324
- return m.any().superRefine(async (s, i) => {
325
- var c, f;
326
- const o = await P(e, n).safeParseAsync(s);
327
- if (e.required && !o.success) {
328
- const d = O(o.error.message);
329
- return i.addIssue({ code: m.ZodIssueCode.custom, message: d, fatal: !0 }), m.NEVER;
340
+ return m.any().superRefine(async (s, o) => {
341
+ var f, l;
342
+ const c = await P(e, n).safeParseAsync(s);
343
+ if (e.required && !c.success) {
344
+ const d = O(c.error.message);
345
+ return o.addIssue({ code: m.ZodIssueCode.custom, message: d, fatal: !0 }), m.NEVER;
330
346
  }
331
- if (!e.required && !o.success)
347
+ if (!e.required && !c.success)
332
348
  return m.NEVER;
333
- if ((c = n == null ? void 0 : n.validationConfig) != null && c.globalValidation) {
334
- const d = (f = n == null ? void 0 : n.validationConfig) == null ? void 0 : f.globalValidation(s, e, n.metadata);
349
+ if ((f = n == null ? void 0 : n.validationConfig) != null && f.globalValidation) {
350
+ const d = (l = n == null ? void 0 : n.validationConfig) == null ? void 0 : l.globalValidation(s, e, n.metadata);
335
351
  if (d.error)
336
- return i.addIssue({
352
+ return o.addIssue({
337
353
  code: m.ZodIssueCode.custom,
338
354
  message: O(d.error)
339
355
  }), m.NEVER;
340
356
  if (!d.continue)
341
357
  return m.NEVER;
342
358
  }
343
- if (!I(s))
344
- return i.addIssue({
359
+ if (!V(s))
360
+ return o.addIssue({
345
361
  code: m.ZodIssueCode.custom,
346
362
  message: "'Value is not array'"
347
363
  }), m.NEVER;
348
- if (r) {
349
- const d = await r.safeParseAsync(s);
364
+ const u = L(r, t);
365
+ if (u) {
366
+ const d = await u.safeParseAsync(s);
350
367
  if (!d.success)
351
- return i.addIssue({
368
+ return o.addIssue({
352
369
  code: m.ZodIssueCode.custom,
353
370
  message: O(d.error.message)
354
371
  }), m.NEVER;
@@ -357,18 +374,18 @@ function $(r, e, t, n, a) {
357
374
  }
358
375
  function T(r, e, t, n, a) {
359
376
  e.forEach((s) => {
360
- var u, o, c, f, d;
361
- const i = t;
362
- if (!s.isVisible || (u = s.isVisible) != null && u.call(s, i, n == null ? void 0 : n.metadata)) {
363
- const l = b(r, s.path);
364
- if ((o = s.validation) != null && o.schema ? p(
377
+ var i, c, u, f, l;
378
+ const o = t;
379
+ if (!s.isVisible || (i = s.isVisible) != null && i.call(s, o, n == null ? void 0 : n.metadata)) {
380
+ const d = b(r, s.path);
381
+ if ((c = s.validation) != null && c.schema ? g(
365
382
  r,
366
383
  s.path,
367
- R(l, {
368
- _schema: (c = s.validation) == null ? void 0 : c.schema,
384
+ I(d, {
385
+ _schema: (u = s.validation) == null ? void 0 : u.schema,
369
386
  _input: s
370
387
  })
371
- ) : s.required && p(r, s.path, R(l, { _requiredOnly: !0, _input: s })), s.inputs && T(r, s.inputs, t, n), s.inputType === "list") {
388
+ ) : s.required && g(r, s.path, I(d, { _requiredOnly: !0, _input: s })), s.inputs && T(r, s.inputs, t, n), s.inputType === "list") {
372
389
  const h = {};
373
390
  T(
374
391
  h,
@@ -379,8 +396,8 @@ function T(r, e, t, n, a) {
379
396
  t,
380
397
  n
381
398
  );
382
- const g = b(r, s.path);
383
- p(r, s.path, R(g, { _schemaObj: h, _isList: !0, _input: s }));
399
+ const p = b(r, s.path);
400
+ g(r, s.path, I(p, { _schemaObj: h, _isList: !0, _input: s }));
384
401
  }
385
402
  if (!((f = s.validation) != null && f.schema) && s.inputType === "array") {
386
403
  const h = {};
@@ -389,12 +406,12 @@ function T(r, e, t, n, a) {
389
406
  [{ ...s.inputConfig.input, path: "___array" }],
390
407
  t,
391
408
  n
392
- ), p(
409
+ ), g(
393
410
  r,
394
411
  s.path,
395
- R(l, {
412
+ I(d, {
396
413
  _schemaObj: h,
397
- _schema: (d = s.validation) == null ? void 0 : d.schema,
414
+ _schema: (l = s.validation) == null ? void 0 : l.schema,
398
415
  _isArrayItem: !0,
399
416
  _input: s
400
417
  })
@@ -404,64 +421,70 @@ function T(r, e, t, n, a) {
404
421
  });
405
422
  }
406
423
  function P(r, e) {
407
- var n, a, s, i, u, o, c, f, d;
424
+ var n, a, s, o, i, c, u, f, l;
408
425
  if ((a = (n = e == null ? void 0 : e.validationConfig) == null ? void 0 : n.requiredSchemaPerInput) != null && a[r.inputType])
409
- return (i = (s = e == null ? void 0 : e.validationConfig) == null ? void 0 : s.requiredSchemaPerInput) == null ? void 0 : i[r.inputType];
410
- if ((u = e == null ? void 0 : e.validationConfig) != null && u.requiredSchema)
411
- return (o = e == null ? void 0 : e.validationConfig) == null ? void 0 : o.requiredSchema;
412
- const t = ((f = (c = e == null ? void 0 : e.validationConfig) == null ? void 0 : c.requiredMessagePerInput) == null ? void 0 : f[r.inputType]) ?? ((d = e == null ? void 0 : e.validationConfig) == null ? void 0 : d.requiredMessage) ?? "Required fields";
413
- return m.any().superRefine((l, h) => {
414
- typeof l == "object" && j(l) && h.addIssue({
426
+ return (o = (s = e == null ? void 0 : e.validationConfig) == null ? void 0 : s.requiredSchemaPerInput) == null ? void 0 : o[r.inputType];
427
+ if ((i = e == null ? void 0 : e.validationConfig) != null && i.requiredSchema)
428
+ return (c = e == null ? void 0 : e.validationConfig) == null ? void 0 : c.requiredSchema;
429
+ const t = ((f = (u = e == null ? void 0 : e.validationConfig) == null ? void 0 : u.requiredMessagePerInput) == null ? void 0 : f[r.inputType]) ?? ((l = e == null ? void 0 : e.validationConfig) == null ? void 0 : l.requiredMessage) ?? "Required fields";
430
+ return m.any().superRefine((d, h) => {
431
+ typeof d == "object" && S(d) && h.addIssue({
415
432
  code: m.ZodIssueCode.custom,
416
433
  message: t
417
- }), (S(l) || l === "") && h.addIssue({
434
+ }), (j(d) || d === "") && h.addIssue({
418
435
  code: m.ZodIssueCode.custom,
419
436
  message: t
420
437
  });
421
438
  });
422
439
  }
423
- const _e = (r) => Array.isArray(r == null ? void 0 : r.errors), ve = (r, e) => {
440
+ function L(r, e) {
441
+ if (r instanceof m.ZodType)
442
+ return r;
443
+ if (typeof r == "function")
444
+ return r(e);
445
+ }
446
+ const Oe = (r) => Array.isArray(r == null ? void 0 : r.errors), Se = (r, e) => {
424
447
  const t = {};
425
448
  for (; r.length; ) {
426
- const n = r[0], { code: a, message: s, path: i } = n, u = i.join(".");
427
- if (!t[u])
449
+ const n = r[0], { code: a, message: s, path: o } = n, i = o.join(".");
450
+ if (!t[i])
428
451
  if ("unionErrors" in n) {
429
- const o = n.unionErrors[0].errors[0];
430
- t[u] = {
431
- message: o.message,
432
- type: o.code
452
+ const c = n.unionErrors[0].errors[0];
453
+ t[i] = {
454
+ message: c.message,
455
+ type: c.code
433
456
  };
434
457
  } else
435
- t[u] = { message: s, type: a };
436
- "unionErrors" in n && n.unionErrors.forEach((o) => o.errors.forEach((c) => r.push(c)));
458
+ t[i] = { message: s, type: a };
459
+ "unionErrors" in n && n.unionErrors.forEach((c) => c.errors.forEach((u) => r.push(u)));
437
460
  {
438
- const o = t[u].types, c = o && o[n.code];
439
- t[u] = ue(
440
- u,
461
+ const c = t[i].types, u = c && c[n.code];
462
+ t[i] = oe(
463
+ i,
441
464
  e,
442
465
  t,
443
466
  a,
444
- c ? [].concat(c, n.message) : n.message
467
+ u ? [].concat(u, n.message) : n.message
445
468
  );
446
469
  }
447
470
  r.shift();
448
471
  }
449
472
  return t;
450
473
  };
451
- function Ne(r, e) {
452
- return te(
474
+ function ke(r, e) {
475
+ return se(
453
476
  async (t, n, a) => {
454
477
  try {
455
- return await pe(r, t, e).parseAsync(t), {
478
+ return await _e(r, t, e).parseAsync(t), {
456
479
  values: t,
457
480
  // TODO: check this - values does not contains all data
458
481
  errors: {}
459
482
  };
460
483
  } catch (s) {
461
- if (_e(s))
484
+ if (Oe(s))
462
485
  return {
463
486
  values: {},
464
- errors: ie(ve(s.errors, !0), a)
487
+ errors: ce(Se(s.errors, !0), a)
465
488
  };
466
489
  throw s;
467
490
  }
@@ -469,39 +492,45 @@ function Ne(r, e) {
469
492
  [r]
470
493
  );
471
494
  }
472
- function Fe(r, e) {
473
- const t = V(r);
495
+ function Ae(r, e) {
496
+ const t = w(r);
474
497
  return e.forEach((n) => {
475
498
  if (n.inputTransform) {
476
499
  const a = b(t, n.path), s = n.inputTransform(a, t);
477
- s && p(t, s.path ?? n.path, s.value);
500
+ s && g(t, s.path ?? n.path, s.value);
478
501
  }
479
502
  }), t;
480
503
  }
481
- function Ae(r, e) {
482
- const t = V(r);
504
+ function Ze(r, e) {
505
+ const t = w(r);
483
506
  return e.forEach((n) => {
484
507
  if (n.outputTransform) {
485
508
  const a = b(t, n.path), s = n.outputTransform(a, t);
486
- s && p(t, s.path ?? n.path, s.value);
509
+ s && g(t, s.path ?? n.path, s.value);
487
510
  }
488
511
  }), t;
489
512
  }
490
- function J(r) {
491
- return r.reduce((t, n) => n.inputType === "group" && n.inputs ? [...t, n, ...J(n.inputs)] : [...t, n], []);
513
+ function N(r) {
514
+ return r.reduce((t, n) => n.inputType === "group" && n.inputs ? [...t, n, ...N(n.inputs)] : [...t, n], []);
492
515
  }
493
- function ke(r) {
494
- const t = J(r.inputs).reduce((n, a) => {
516
+ function De(r) {
517
+ const t = N(r.inputs).reduce((n, a) => {
495
518
  const s = a.inputType === "text" || a.inputType === "boolean" || a.inputType === "number" || a.inputType === "textarea" || a.inputType === "select";
496
519
  return (a.inputTransform || a.outputTransform) && n.push({
497
- ...Q(a, "path", "inputTransform", "outputTransform"),
520
+ ...X(a, "path", "inputTransform", "outputTransform"),
498
521
  level: a.path.split(".").length,
499
522
  isPrimitive: s
500
523
  }), n;
501
524
  }, []);
502
525
  return t.sort((n, a) => n.level === a.level ? n.isPrimitive ? 1 : -1 : n.level > a.level ? -1 : 1), t;
503
526
  }
504
- function Ze() {
527
+ function $e(r, e, t) {
528
+ const n = N(r.inputs), a = w(e);
529
+ return n.forEach((s) => {
530
+ s.isVisible && !s.isVisible(e, t) && z(a, s.path);
531
+ }), a;
532
+ }
533
+ function Be() {
505
534
  return function(r, e) {
506
535
  if (!(typeof r > "u"))
507
536
  return r ? {
@@ -509,7 +538,7 @@ function Ze() {
509
538
  } : { value: r };
510
539
  };
511
540
  }
512
- function $e(r) {
541
+ function Je(r) {
513
542
  return function(e, t) {
514
543
  if (typeof e > "u") return;
515
544
  if (!e) return { value: e };
@@ -519,62 +548,62 @@ function $e(r) {
519
548
  return r != null && r.unsetIfEmpty && Object.getOwnPropertyNames(n.value).length === 0 ? { value: void 0 } : n;
520
549
  };
521
550
  }
522
- function De() {
551
+ function Le() {
523
552
  return function(r, e) {
524
553
  if (!(typeof r > "u"))
525
- return I(r) && j(r) ? { value: void 0 } : { value: r };
554
+ return V(r) && S(r) ? { value: void 0 } : { value: r };
526
555
  };
527
556
  }
528
- function Be() {
557
+ function Me() {
529
558
  return function(r, e) {
530
559
  if (!(typeof r > "u")) {
531
- if (D(r)) {
532
- const t = B(r, S);
533
- if (j(t))
560
+ if (B(r)) {
561
+ const t = J(r, j);
562
+ if (S(t))
534
563
  return { value: void 0 };
535
564
  }
536
565
  return { value: r };
537
566
  }
538
567
  };
539
568
  }
540
- function Je() {
569
+ function Ue() {
541
570
  return function(r, e) {
542
571
  if (!(typeof r > "u"))
543
- return X(r) && j(r) ? { value: void 0 } : { value: r };
572
+ return ee(r) && S(r) ? { value: void 0 } : { value: r };
544
573
  };
545
574
  }
546
- function Le(r) {
575
+ function We(r) {
547
576
  return function(e, t) {
548
577
  const n = b(t, r);
549
578
  return typeof n == "string" ? { value: n } : { value: e };
550
579
  };
551
580
  }
552
- function Me(r) {
581
+ function He(r) {
553
582
  return function(e, t) {
554
583
  if (typeof e > "u") return;
555
584
  if (!e) return { value: e };
556
585
  const n = b(t, r);
557
586
  if (typeof n == "object") {
558
- const a = Oe(n);
587
+ const a = je(n);
559
588
  if (Object.getOwnPropertyNames(a).length === 1)
560
589
  return { value: e, path: r };
561
590
  }
562
591
  return { value: e };
563
592
  };
564
593
  }
565
- function Ue(r) {
594
+ function Ye(r) {
566
595
  return function(e, t) {
567
596
  if (typeof e > "u") return;
568
597
  const n = b(t, r);
569
598
  return typeof n == "string" ? { value: [n] } : { value: e };
570
599
  };
571
600
  }
572
- function We(r, e) {
601
+ function Ge(r, e) {
573
602
  return function(t, n) {
574
603
  if (typeof t > "u") return;
575
604
  if (!t) return { value: t };
576
605
  const a = b(n, r);
577
- if (I(a)) {
606
+ if (V(a)) {
578
607
  if (a.length === 1)
579
608
  return { value: a[0], path: r };
580
609
  if (a.length === 0 && e != null && e.unsetIfEmpty)
@@ -583,39 +612,40 @@ function We(r, e) {
583
612
  return { value: t };
584
613
  };
585
614
  }
586
- function L(r) {
587
- return typeof r == "object" ? !Object.getOwnPropertyNames(r).some((e) => !L(r[e])) : S(r);
615
+ function M(r) {
616
+ return typeof r == "object" ? !Object.getOwnPropertyNames(r).some((e) => !M(r[e])) : j(r);
588
617
  }
589
- function Oe(r) {
590
- return B(r, (e) => typeof e == "object" ? L(e) : S(e));
618
+ function je(r) {
619
+ return J(r, (e) => typeof e == "object" ? M(e) : j(e));
591
620
  }
592
621
  export {
593
- we as InputComponent,
594
- le as InputComponentRenderer,
595
- Ie as InputFactory,
596
- oe as InputOverrideError,
597
- ge as RenderForm,
598
- ye as RenderInputs,
599
- Ce as RootForm,
600
- he as Row,
601
- $e as arrayToObjectOutputTransformer,
602
- Pe as generateReadableLabel,
603
- qe as getDefaultValuesFromFormDefinition,
604
- ke as getTransformers,
605
- pe as getValidationSchema,
606
- Fe as inputTransformValues,
607
- Ve as isChildrenEmpty,
608
- Ze as objectToArrayInputTransformer,
609
- Ae as outputTransformValues,
610
- xe as overrideFormDefinition,
622
+ Ce as InputComponent,
623
+ he as InputComponentRenderer,
624
+ Ve as InputFactory,
625
+ fe as InputOverrideError,
626
+ be as RenderForm,
627
+ ge as RenderInputs,
628
+ qe as RootForm,
629
+ pe as Row,
630
+ Je as arrayToObjectOutputTransformer,
631
+ Fe as generateReadableLabel,
632
+ xe as getDefaultValuesFromFormDefinition,
633
+ De as getTransformers,
634
+ _e as getValidationSchema,
635
+ Ae as inputTransformValues,
636
+ Ne as isChildrenEmpty,
637
+ Be as objectToArrayInputTransformer,
638
+ Ze as outputTransformValues,
639
+ Pe as overrideFormDefinition,
611
640
  O as processValidationParseResponse,
612
- Ue as shorthandArrayInputTransformer,
613
- We as shorthandArrayOutputTransformer,
614
- Le as shorthandObjectInputTransformer,
615
- Me as shorthandObjectOutputTransformer,
616
- De as unsetEmptyArrayOutputTransformer,
617
- Be as unsetEmptyObjectOutputTransformer,
618
- Je as unsetEmptyStringOutputTransformer,
619
- Ne as useZodValidationResolver
641
+ Ye as shorthandArrayInputTransformer,
642
+ Ge as shorthandArrayOutputTransformer,
643
+ We as shorthandObjectInputTransformer,
644
+ He as shorthandObjectOutputTransformer,
645
+ Le as unsetEmptyArrayOutputTransformer,
646
+ Me as unsetEmptyObjectOutputTransformer,
647
+ Ue as unsetEmptyStringOutputTransformer,
648
+ $e as unsetHiddenInputsValues,
649
+ ke as useZodValidationResolver
620
650
  };
621
651
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core/factory/InputFactory.ts","../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js","../src/core/components/InputComponentRenderer.tsx","../src/core/components/InputComponent.tsx","../src/core/components/RootForm.tsx","../src/core/utils/utils.ts","../src/form/Row/Row.tsx","../src/form/RenderInputs/RenderInputs.tsx","../src/form/RenderForm/RenderForm.tsx","../src/utils/utils.ts","../src/core/validation/zod-validation.ts","../src/core/utils/zod-resolver-utils.tsx","../src/core/utils/zod-resolver.tsx","../src/core/utils/transform-utils.tsx","../src/core/transformers/transformers.ts"],"sourcesContent":["import { isEmpty } from 'lodash-es'\n\nimport type { InputComponent } from '../components/InputComponent'\n\nexport interface IInputFactoryProps {\n allowOverride: boolean\n}\n\nexport class InputOverrideError extends Error {\n constructor(inputType: string) {\n super(`Input component '${inputType}' is already registered.`)\n }\n}\n\nexport class InputFactory {\n private componentBank: Map<string, InputComponent<unknown>>\n private allowOverride: boolean\n\n constructor(options?: IInputFactoryProps) {\n this.allowOverride = options?.allowOverride ?? false\n this.componentBank = new Map()\n }\n\n /**\n * Register input\n *\n * @param component - instance of input component\n * @throws Throws `InputOverrideError` if register two component with the same inputType (and if allowOverride is false)\n */\n registerComponent<T>(component: InputComponent<T>): void {\n if (!this.allowOverride && !!this.getComponent(component.internalType)) {\n throw new InputOverrideError(component.internalType)\n }\n\n this.componentBank.set(component.internalType, component as InputComponent<unknown>)\n }\n\n getComponent<T>(internalType?: string): InputComponent<T> | undefined {\n if (internalType && !isEmpty(internalType)) {\n return this.componentBank.get(internalType) as InputComponent<T>\n }\n return\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\n\nimport { cloneDeep, set } from 'lodash-es'\n\n//import { useRootFormikContext } from '../context/RootFormikContext'\nimport type { InputProps } from './InputComponent'\n\nexport interface InputComponentRendererProps<T = unknown> extends InputProps<T> {\n children?: React.ReactNode\n}\n\nexport function InputComponentRenderer<T = unknown>({\n path,\n factory,\n onUpdate,\n onChange,\n readonly,\n initialValues,\n input\n}: InputComponentRendererProps<T>): JSX.Element | null {\n const { formState, watch } = useFormContext()\n const { metadata = {}, fixedValues = {} /*getValuesWithDependencies*/ } = {} as any // useRootFormikContext()\n\n const inputComponent = factory?.getComponent<T>(input.inputType as string)\n\n const commonProps = useMemo(\n () => ({\n path,\n initialValues,\n onUpdate,\n onChange,\n factory,\n readonly,\n input\n }),\n [factory, initialValues, input, onChange, onUpdate, path, readonly, formState.errors]\n )\n\n const values = watch()\n const valuesWithDependenciesAndStepPaths = cloneDeep(values) //getValuesWithDependencies(values, input as IInputDefinition)\n\n if (fixedValues) {\n Object.keys(fixedValues).forEach(path => {\n const fixedValue = fixedValues[path]\n set(valuesWithDependenciesAndStepPaths, path, fixedValue)\n })\n }\n\n const isVisible = !input.isVisible || input?.isVisible(valuesWithDependenciesAndStepPaths, metadata)\n\n const component = useMemo(() => {\n if (isVisible) {\n return (\n <>\n {input.before ? input.before : null}\n {inputComponent?.renderComponent(commonProps)}\n {input.after ? input.after : null}\n </>\n )\n }\n return null\n }, [commonProps, input.after, input.before, inputComponent, isVisible, formState.errors])\n\n if (!inputComponent) {\n return <p>Input component not found (internal type: {input.inputType as string})</p>\n }\n\n if (isVisible) {\n return component\n }\n\n return null\n}\n","import type { IInputDefinition } from '../../types/types'\nimport type { InputFactory } from '../factory/InputFactory'\n\nexport interface InputProps<T, K extends { inputConfig?: unknown } = { inputConfig?: unknown }> {\n initialValues?: T\n onUpdate?: (data: T) => void\n onChange?: (data: T) => void\n factory: InputFactory\n path: string\n readonly?: boolean\n input: IInputDefinition<K['inputConfig']>\n}\n\nexport abstract class InputComponent<T> {\n public abstract internalType: string\n\n getType(): string {\n return this.internalType\n }\n\n abstract renderComponent(props: InputProps<T>): JSX.Element\n}\n","import { ReactElement, useEffect, useRef, type Attributes } from 'react'\nimport {\n DeepPartial,\n DefaultValues,\n FieldValues,\n FormProvider,\n Path,\n Resolver,\n useForm,\n UseFormReturn\n} from 'react-hook-form'\n\ninterface RootFormProps<TFieldValues extends FieldValues = FieldValues, TContext = any> {\n defaultValues?: DefaultValues<TFieldValues>\n resolver: Resolver<TFieldValues, TContext> | undefined\n onValuesChange?: (values: DeepPartial<TFieldValues>, formState: { isValid?: boolean }) => void\n onSubmit?: (values: FieldValues) => void\n shouldFocusError?: boolean\n mode: 'onBlur' | 'onChange' | 'onSubmit' | 'onTouched' | 'all' | undefined\n children:\n | JSX.Element\n | ((props: UseFormReturn<TFieldValues, any, undefined> & { submitForm: () => void }) => JSX.Element)\n validateAfterFirstSubmit?: boolean\n /**\n * This is passed to input handlers\n *\n * For visible function second argument is metadata.\n *\n * ```isVisible?: (values: AnyFormikValue, metadata: any) => boolean```\n */\n metadata?: any\n\n /**\n * Provide fixed value that are required for defined inputs\n */\n fixedValues?: { [path: string]: any }\n /**\n * Prefix to target nested structure\n */\n prefix?: string\n key?: Attributes['key']\n /**\n * auto focus input\n */\n autoFocusPath?: Path<TFieldValues>\n}\n\nexport function RootForm<TFieldValues extends FieldValues = FieldValues, TContext = any>(\n props: RootFormProps<TFieldValues, TContext>\n): ReactElement {\n const {\n mode = 'onSubmit',\n resolver,\n defaultValues,\n shouldFocusError,\n // validateAfterFirstSubmit,\n onValuesChange,\n onSubmit,\n // validate,\n // validateDebounceInterval,\n // validationConfig,\n // metadata,\n children,\n // fixedValues\n autoFocusPath\n } = props\n\n const methods = useForm<TFieldValues>({\n mode: mode ?? 'onSubmit',\n reValidateMode: 'onChange',\n defaultValues,\n shouldFocusError,\n resolver\n })\n\n const submittedRef = useRef(false)\n\n useEffect(() => {\n methods.reset(defaultValues)\n }, [methods.reset, defaultValues])\n\n const { getValues, handleSubmit } = methods\n const values = getValues()\n\n // trigger validation on value change\n useEffect(() => {\n onValuesChange?.({ ...(values as any) }, { isValid: methods.formState.isValid })\n\n if (submittedRef.current === true) {\n methods.trigger()\n }\n }, [JSON.stringify(values)])\n\n // auto focus\n useEffect(() => {\n if (autoFocusPath) {\n if ('requestIdleCallback' in window) {\n const handle = requestIdleCallback(() => {\n methods.setFocus(autoFocusPath)\n })\n return () => cancelIdleCallback(handle)\n }\n // fallback for safari\n else {\n const handle = setTimeout(() => {\n methods.setFocus(autoFocusPath)\n }, 100)\n return () => clearTimeout(handle)\n }\n }\n }, [methods])\n\n return (\n <FormProvider {...methods}>\n {typeof children === 'function'\n ? children({\n ...methods,\n submitForm: async () => {\n if (onSubmit) {\n submittedRef.current = true\n handleSubmit(values => {\n onSubmit(values)\n })()\n }\n }\n })\n : children}\n </FormProvider>\n )\n}\n","import { get, set } from 'lodash-es'\n\nimport type { AnyFormikValue, IFormDefinition, IInputDefinition } from '../../types/types'\n\nexport const getDefaultValuesFromFormDefinition = (inputs: IFormDefinition): AnyFormikValue => {\n const defaultValues: AnyFormikValue = {}\n\n // TODO: add default for nested (group),\n // TODO: this implementation is wrong\n inputs.inputs.forEach(input => {\n if (typeof get(defaultValues, input.path) === 'undefined') {\n set(defaultValues, input.path, input.default)\n }\n })\n\n return defaultValues\n}\n\nexport function overrideFormDefinition(base: IFormDefinition, override: IFormDefinition): IFormDefinition {\n const newInputs = base.inputs.map(input => {\n const overrideInput = findInputByPath(override, input.path)\n return overrideInput ? overrideInput : input\n })\n\n return { ...base, inputs: newInputs }\n}\n\nfunction findInputByPath(formDefinition: IFormDefinition, path: string): IInputDefinition | undefined {\n return formDefinition.inputs.find(input => input.path === path)\n}\n","import { InputComponentRenderer } from '../../core/components/InputComponentRenderer'\nimport type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IInputDefinition } from '../../types/types'\n\n//import { useRootFormikContext } from '../../core/context/RootFormikContext'\n\nexport interface InputRowProps {\n input: IInputDefinition\n factory: InputFactory\n}\n\nexport function Row({ input, factory }: InputRowProps): React.ReactElement {\n const { prefix = '' } = {} //useRootFormikContext()\n\n return (\n <div>\n <InputComponentRenderer path={`${prefix}${input.path}`} factory={factory} readonly={false} input={input} />\n </div>\n )\n}\n","import type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IInputDefinition } from '../../types/types'\nimport { Row } from '../Row/Row'\n\nexport function RenderInputs(props: { items: IInputDefinition[]; factory: InputFactory }): JSX.Element {\n const { items, factory } = props\n\n return (\n <>\n {items.map(input => {\n const key = `${input.inputType}_${input.path}_${input.label}`\n return <Row key={key} input={input} factory={factory} />\n })}\n </>\n )\n}\n","import { forwardRef } from 'react'\n\nimport type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IFormDefinition } from '../../types/types'\nimport { RenderInputs } from '../RenderInputs/RenderInputs'\n\nexport interface RenderFormProps {\n inputs: IFormDefinition\n factory: InputFactory\n className?: string\n}\n\nexport const RenderForm = forwardRef<HTMLDivElement, RenderFormProps>((props, ref): React.ReactElement => {\n const { inputs, className, factory } = props\n\n return (\n <div className={className} ref={ref}>\n {inputs.hero}\n <RenderInputs items={inputs.inputs} factory={factory} />\n </div>\n )\n})\nRenderForm.displayName = 'RenderForm'\n","import { capitalize, forOwn, isNull, isUndefined } from 'lodash-es'\n\nexport function isChildrenEmpty(obj: { [key: string]: unknown }): boolean {\n let empty = true\n forOwn(obj, val => {\n empty = empty && (val === '' || isNull(val) || isUndefined(val))\n })\n\n return empty\n}\n\nexport const generateReadableLabel = (name = ''): string => {\n return capitalize(name.split('_').join(' '))\n}\n","import { get, isArray, isEmpty, isObject, isUndefined, merge, set } from 'lodash-es'\nimport * as zod from 'zod'\n\nimport type { AnyFormikValue, IFormDefinition, IGlobalValidationConfig, IInputDefinition } from '../../types/types'\n\nexport function processValidationParseResponse(anyArray: string | Record<string, unknown>): string | undefined {\n const error = typeof anyArray === 'string' ? JSON.parse(anyArray) : anyArray\n\n if (typeof error === 'string') {\n return error\n }\n\n if (isArray(error)) {\n return processValidationParseResponse(error[0])\n }\n\n const errorObj = error as { message: string }\n if (isObject(errorObj) && errorObj?.message) {\n return error?.message\n }\n\n return 'Unknown error'\n}\n\n/**\n * Internal type used for preparing data model for creating schema\n */\ntype SchemaTreeNode = { [key: string]: SchemaTreeNode } & {\n _input?: IInputDefinition\n _isList?: boolean\n _isArrayItem?: boolean\n _schema?: zod.ZodObject<zod.ZodRawShape>\n _schemaObj?: { [key: string]: SchemaTreeNode }\n _requiredOnly?: boolean\n}\n\nexport interface IGetValidationSchemaOptions<T = any> {\n /**\n * Metadata is passed down to validation callbacks\n */\n metadata?: T\n /**\n * If formik model is nested, use prefix to extract data form matching.\n *\n * e.g. to get form data form {formData: {...}} use \"formData.\" as prefix\n */\n prefix?: string\n /**\n * global validation configuration applies to all inputs\n */\n validationConfig?: IGlobalValidationConfig\n // TODO: check this\n utils?: {\n getValuesWithDependencies?: (values: AnyFormikValue, input: IInputDefinition) => AnyFormikValue\n }\n}\n\nexport function getValidationSchema<T = any>(\n inputs: IFormDefinition,\n values: AnyFormikValue,\n options?: IGetValidationSchemaOptions<T>\n): zod.ZodObject<zod.ZodRawShape> {\n let schemaTreeNode: SchemaTreeNode = {}\n\n // 1. Prepare three model\n populateSchemaTreeRec(schemaTreeNode, inputs.inputs, values, options)\n\n // console.log('Internal model:')\n // console.log(schemaTreeNode)\n\n if (options?.prefix) {\n const prefixWithoutDot = options?.prefix.replace(/.$/, '')\n schemaTreeNode = set({}, prefixWithoutDot, schemaTreeNode)\n }\n\n // 2. Generate schema from model\n const schema = zod.object(generateSchemaRec(schemaTreeNode, values, options))\n\n // console.log('Schema:')\n // console.log(schema)\n\n return schema\n}\n\nfunction generateSchemaRec(schemaObj: SchemaTreeNode, values: AnyFormikValue, options?: IGetValidationSchemaOptions) {\n const objectSchemas: { [key: string]: zod.Schema<unknown> } = {}\n\n Object.keys(schemaObj).forEach(key => {\n const { _requiredOnly, _schemaObj, _input, _isList, _isArrayItem, _schema /*...nestedSchemaObj*/ } = schemaObj[key]\n if (_isList && _schemaObj && _input) {\n const arraySchema = zod.array(zod.object(generateSchemaRec(_schemaObj, values, options))).optional()\n const enhancedSchema = getSchemaForArray(_schema, _input, values, options, arraySchema)\n objectSchemas[key] = enhancedSchema!\n } else if (_isArrayItem && _input) {\n const innerSchema = _schemaObj?.___array\n ? generateSchemaRec({ ___array: _schemaObj.___array }, values, options)\n : { ___array: zod.any() }\n const arraySchema = zod.array(innerSchema.___array).optional()\n const enhancedSchema = getSchemaForArray(_schema, _input, values, options, arraySchema)\n objectSchemas[key] = enhancedSchema!\n } else if (_schema && _input) {\n const enhancedSchema: zod.Schema<unknown> = getSchemaForPrimitive(_schema, _input, options)\n objectSchemas[key] = enhancedSchema\n // TODO check this\n // objectSchemas[key] = !isEmpty(nestedSchemaObj)\n // ? addNestedSchema(nestedSchemaObj, enhancedSchema, options)\n // : enhancedSchema\n } else if (_requiredOnly && _input) {\n objectSchemas[key] = getRequiredSchema(_input, options)\n\n // TODO check this\n // if only required (no schema in place)\n // let requiredSchema = chainRequiredSchema(Yup.mixed(), _input!.inputType, options)\n // requiredSchema =\n // options?.globalValidationConfig?.globalValidation?.(requiredSchema, _input!) ?? requiredSchema\n // requiredSchema.when(_input?.path!, {\n // is: value => {\n // return true\n // },\n // then: (schema2: Yup.MixedSchema) =>\n // options?.globalValidationConfig?.globalValidation?.(schema2, _input!) ?? schema2\n // })\n //const requiredSchema = _input ? composeSchema(, _input, values, options) : Yup.mixed() //getRequiredSchema(_input?.inputType!, options)\n // ovo >>\n // objectSchemas[key] = !isEmpty(nestedSchemaObj)\n // ? addNestedSchema(nestedSchemaObj, requiredSchema, options)\n // : requiredSchema\n } else {\n objectSchemas[key] = zod.object(generateSchemaRec(schemaObj[key], values, options)).optional()\n }\n })\n\n return objectSchemas\n}\n\nfunction getSchemaForPrimitive(\n schema: zod.Schema<unknown> | undefined,\n input: IInputDefinition,\n options?: IGetValidationSchemaOptions\n) {\n return zod.string().superRefine(async (value, ctx) => {\n // 1. Required validation\n if (input.required) {\n const requiredSchemaResponse = await getRequiredSchema(input, options).safeParseAsync(value)\n if (!requiredSchemaResponse.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Required field`\n })\n }\n }\n\n // 2. Global validation\n if (options?.validationConfig?.globalValidation) {\n const validationRes = options?.validationConfig?.globalValidation(value, input!, options.metadata)\n\n if (validationRes.error) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: validationRes.error\n })\n }\n\n if (!validationRes.continue) {\n return true\n }\n }\n\n //3. Input validation\n if (schema) {\n const schemaResponse = await schema.safeParseAsync(value)\n\n if (!schemaResponse.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(schemaResponse?.error.message)\n })\n }\n }\n })\n}\n\nfunction getSchemaForArray(\n schema: zod.Schema | undefined,\n input: IInputDefinition,\n _values: AnyFormikValue, // TODO remove this\n options?: IGetValidationSchemaOptions,\n arraySchema?: zod.ZodTypeAny\n) {\n return zod\n .any()\n .superRefine(async (value: any, ctx) => {\n // 1. Required validation\n const requiredSchema = getRequiredSchema(input, options)\n const requiredSchemaResult = await requiredSchema.safeParseAsync(value)\n if (input.required && !requiredSchemaResult.success) {\n // TODO: move this logic to utils. (check if there is better solution)\n const message = processValidationParseResponse(requiredSchemaResult.error.message)\n ctx.addIssue({ code: zod.ZodIssueCode.custom, message: message, fatal: true })\n return zod.NEVER\n }\n if (!input.required && !requiredSchemaResult.success) {\n return zod.NEVER\n }\n\n // 2. Global validation\n if (options?.validationConfig?.globalValidation) {\n const validationRes = options?.validationConfig?.globalValidation(value, input, options.metadata)\n\n if (validationRes.error) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(validationRes.error)\n })\n return zod.NEVER\n } else if (!validationRes.continue) {\n return zod.NEVER\n }\n }\n\n // 3. Prevent more validation if value is not an array\n if (!isArray(value)) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: \"'Value is not array'\"\n })\n return zod.NEVER\n }\n\n // 4. Input validation\n if (schema) {\n const schemaResult = await schema.safeParseAsync(value)\n\n if (!schemaResult.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(schemaResult.error.message)\n })\n return zod.NEVER\n }\n }\n\n // NOTE: THIS IS MOVED TO pipe(...) - delete following block\n // // 5. Return dynamically created validation for nested inputs\n // const arraySchemaResponse = await arraySchema?.safeParseAsync(value)\n // if (!arraySchemaResponse?.success) {\n // ctx.addIssue({\n // code: zod.ZodIssueCode.custom,\n // message: arraySchemaResponse?.error.message\n // })\n // }\n })\n .pipe(arraySchema ?? zod.any())\n}\n\nfunction populateSchemaTreeRec<T = any>(\n schemaObj: SchemaTreeNode,\n inputsArr: IInputDefinition[],\n values: AnyFormikValue,\n options?: IGetValidationSchemaOptions<T>,\n utils?: {\n getValuesWithDependencies?: (values: AnyFormikValue, input: IInputDefinition) => AnyFormikValue\n }\n): void {\n inputsArr.forEach(input => {\n const valuesWithDependencies = utils?.getValuesWithDependencies\n ? utils?.getValuesWithDependencies(values, input)\n : values\n\n if (!input.isVisible || input.isVisible?.(valuesWithDependencies, options?.metadata)) {\n const existingSchema = get(schemaObj, input.path)\n if (input.validation?.schema) {\n set(\n schemaObj,\n input.path,\n merge(existingSchema, {\n _schema: input.validation?.schema,\n _input: input\n })\n )\n } else if (input.required) {\n set(schemaObj, input.path, merge(existingSchema, { _requiredOnly: true, _input: input }))\n }\n if (input.inputs) {\n populateSchemaTreeRec(schemaObj, input.inputs, values, options, utils)\n }\n\n // handle list\n if (input.inputType === 'list') {\n const listSchemaObj: SchemaTreeNode = {}\n populateSchemaTreeRec(\n listSchemaObj,\n (input.inputConfig as { inputs: (IInputDefinition & { relativePath: string })[] }).inputs.map(item => ({\n ...item,\n path: item.relativePath\n })),\n values,\n options,\n utils\n )\n\n const existingSchema = get(schemaObj, input.path)\n set(schemaObj, input.path, merge(existingSchema, { _schemaObj: listSchemaObj, _isList: true, _input: input }))\n }\n\n // handle array\n if (!input.validation?.schema && (input.inputType as string) === 'array') {\n const arraySchemaObj = {}\n populateSchemaTreeRec(\n arraySchemaObj,\n [{ ...(input.inputConfig as { input: IInputDefinition }).input, path: '___array' }],\n values,\n options,\n utils\n )\n\n set(\n schemaObj,\n input.path,\n merge(existingSchema, {\n _schemaObj: arraySchemaObj,\n _schema: input.validation?.schema,\n _isArrayItem: true,\n _input: input\n })\n )\n }\n }\n })\n}\n\nfunction getRequiredSchema(input: IInputDefinition, options?: IGetValidationSchemaOptions): zod.Schema<unknown> {\n if (options?.validationConfig?.requiredSchemaPerInput?.[input.inputType]) {\n return options?.validationConfig?.requiredSchemaPerInput?.[input.inputType]\n } else if (options?.validationConfig?.requiredSchema) {\n return options?.validationConfig?.requiredSchema\n }\n\n const requiredMessage =\n options?.validationConfig?.requiredMessagePerInput?.[input.inputType] ??\n options?.validationConfig?.requiredMessage ??\n 'Required fields'\n\n // Default \"required value\" validation\n return zod.any().superRefine((value, ctx) => {\n if (typeof value === 'object' && isEmpty(value)) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: requiredMessage\n })\n }\n if (isUndefined(value) || value === '') {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: requiredMessage\n })\n }\n })\n}\n","import { appendErrors, type FieldError } from 'react-hook-form'\n\nimport * as zod from 'zod'\n\nexport const isZodError = (error: any): error is zod.ZodError => Array.isArray(error?.errors)\n\nexport const parseErrorSchema = (zodErrors: zod.ZodIssue[], validateAllFieldCriteria: boolean) => {\n const errors: Record<string, FieldError> = {}\n for (; zodErrors.length; ) {\n const error = zodErrors[0]\n const { code, message, path } = error\n const _path = path.join('.')\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0]\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code\n }\n } else {\n errors[_path] = { message, type: code }\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach(unionError => unionError.errors.forEach(e => zodErrors.push(e)))\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types\n const messages = types && types[error.code]\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages ? ([] as string[]).concat(messages as string[], error.message) : error.message\n ) as FieldError\n }\n\n zodErrors.shift()\n }\n\n return errors\n}\n","import { useCallback } from 'react'\nimport type { FieldValues, Resolver, ResolverOptions } from 'react-hook-form'\n\nimport { toNestErrors } from '@hookform/resolvers'\n\nimport type { IFormDefinition } from '../../types/types'\nimport { getValidationSchema, IGetValidationSchemaOptions } from '../validation/zod-validation'\nimport { isZodError, parseErrorSchema } from './zod-resolver-utils'\n\nexport function useZodValidationResolver(\n formDefinition: IFormDefinition,\n options?: IGetValidationSchemaOptions\n): Resolver<any, any> | undefined {\n return useCallback(\n async (data: FieldValues, _: any, resolverOptions: ResolverOptions<FieldValues>) => {\n try {\n const validationSchema = getValidationSchema(formDefinition, data, options)\n\n await validationSchema.parseAsync(data)\n\n return {\n values: data, // TODO: check this - values does not contains all data\n errors: {}\n }\n } catch (error: any) {\n if (isZodError(error)) {\n return {\n values: {},\n errors: toNestErrors(parseErrorSchema(error.errors, true), resolverOptions)\n }\n }\n\n throw error\n }\n },\n [formDefinition]\n )\n}\n","import { cloneDeep, get, pick, set } from 'lodash-es'\n\nimport { IFormDefinition, IInputDefinition } from '../../types/types'\n\ntype TransformItem = {\n path: string\n /** level is used to sort transformers in order to execute them form leaf to root.*/\n level: number\n isPrimitive: boolean\n inputTransform?: IInputDefinition['inputTransform']\n outputTransform?: IInputDefinition['outputTransform']\n}\n\n/** convert data model to form model using input transformer functions */\nexport function inputTransformValues(values: Record<string, any>, transformerItems: TransformItem[]) {\n const retValues = cloneDeep(values)\n transformerItems.forEach(transformItem => {\n if (transformItem.inputTransform) {\n const rawValue = get(retValues, transformItem.path)\n const transformedObj = transformItem.inputTransform(rawValue, retValues)\n if (transformedObj) {\n set(retValues, transformedObj.path ?? transformItem.path, transformedObj.value)\n }\n }\n })\n return retValues\n}\n\n/** convert form model to data model using output transformer functions */\nexport function outputTransformValues(values: Record<string, any>, transformerItems: TransformItem[]) {\n const retValues = cloneDeep(values)\n transformerItems.forEach(transformItem => {\n if (transformItem.outputTransform) {\n const rawValue = get(retValues, transformItem.path)\n const transformedObj = transformItem.outputTransform(rawValue, retValues)\n if (transformedObj) {\n set(retValues, transformedObj.path ?? transformItem.path, transformedObj.value)\n }\n }\n })\n return retValues\n}\n\nfunction flattenInputsRec(inputs: IInputDefinition[]): IInputDefinition[] {\n const flattenInputs = inputs.reduce<IInputDefinition[]>((acc, input) => {\n if (input.inputType === 'group' && input.inputs) {\n return [...acc, input, ...flattenInputsRec(input.inputs)]\n } else {\n return [...acc, input]\n }\n }, [])\n\n return flattenInputs\n}\n\n/** Collect all input/output transformer functions */\nexport function getTransformers(formDefinition: IFormDefinition): TransformItem[] {\n const flattenInputs = flattenInputsRec(formDefinition.inputs)\n\n const ret = flattenInputs.reduce<TransformItem[]>((acc, input) => {\n // TODO: has to be abstracted\n const isPrimitive =\n input.inputType === 'text' ||\n input.inputType === 'boolean' ||\n input.inputType === 'number' ||\n input.inputType === 'textarea' ||\n input.inputType === 'select'\n\n if (input.inputTransform || input.outputTransform) {\n acc.push({\n ...pick(input, 'path', 'inputTransform', 'outputTransform'),\n level: input.path.split('.').length,\n isPrimitive\n })\n }\n\n return acc\n }, [])\n\n ret.sort((a, b) => {\n if (a.level === b.level) return !a.isPrimitive ? -1 : 1\n return a.level > b.level ? -1 : 1\n })\n\n return ret\n}\n","import { get, isArray, isEmpty, isObject, isString, isUndefined, omitBy } from 'lodash-es'\n\nexport function objectToArrayInputTransformer() {\n return function (value: Record<string, unknown>, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n return {\n value: Object.getOwnPropertyNames(value).map(key => {\n return { key, value: value[key] }\n })\n }\n }\n}\n\nexport function arrayToObjectOutputTransformer(options?: { unsetIfEmpty?: boolean }) {\n return function (value: { key: string; value: unknown }[], _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const retObj = {\n value: value.reduce((acc, rowValue) => {\n return { ...acc, [rowValue.key]: rowValue.value }\n }, {})\n }\n\n if (options?.unsetIfEmpty && Object.getOwnPropertyNames(retObj.value).length === 0) {\n return { value: undefined }\n }\n\n return retObj\n }\n}\n\nexport function unsetEmptyArrayOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isArray(value) && isEmpty(value)) {\n return { value: undefined }\n }\n\n return { value }\n }\n}\n\nexport function unsetEmptyObjectOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isObject(value)) {\n const cleanObj = omitBy(value, isUndefined)\n if (isEmpty(cleanObj)) {\n return { value: undefined }\n }\n }\n\n return { value }\n }\n}\n\nexport function unsetEmptyStringOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isString(value) && isEmpty(value)) {\n return { value: undefined }\n }\n\n return { value }\n }\n}\n\nexport function shorthandObjectInputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n const parentStr = get(values, parentPath)\n\n if (typeof parentStr === 'string') {\n return { value: parentStr }\n }\n\n return { value }\n }\n}\n\nexport function shorthandObjectOutputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const parentObj = get(values, parentPath)\n\n if (typeof parentObj === 'object') {\n const cleanParentObj = cleanUpObject(parentObj)\n if (Object.getOwnPropertyNames(cleanParentObj).length === 1) {\n return { value, path: parentPath }\n }\n }\n\n return { value }\n }\n}\n\nexport function shorthandArrayInputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n const parentStr = get(values, parentPath)\n\n if (typeof parentStr === 'string') {\n return { value: [parentStr] }\n }\n\n return { value }\n }\n}\n\nexport function shorthandArrayOutputTransformer(parentPath: string, options?: { unsetIfEmpty?: boolean }) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const parentArr = get(values, parentPath)\n\n if (isArray(parentArr)) {\n if (parentArr.length === 1) {\n return { value: parentArr[0], path: parentPath }\n } else if (parentArr.length === 0) {\n if (options?.unsetIfEmpty) {\n return { value: undefined, path: parentPath }\n }\n }\n }\n\n return { value }\n }\n}\n\nfunction isEmptyRec(obj: unknown): boolean {\n if (typeof obj === 'object') {\n return !Object.getOwnPropertyNames(obj).some(item => {\n return !isEmptyRec((obj as Record<string, unknown>)[item])\n })\n } else {\n return isUndefined(obj)\n }\n}\n\nfunction cleanUpObject(obj: object | null) {\n return omitBy(obj, value => {\n if (typeof value === 'object') {\n return isEmptyRec(value)\n }\n return isUndefined(value)\n })\n}\n"],"names":["InputOverrideError","inputType","InputFactory","options","__publicField","component","internalType","isEmpty","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","i","order2","n","test3","letter","objectAssign","target","source","from","to","symbols","s","key","require$$0","f","require$$1","g","reactJsxRuntime_production_min","h","m","p","q","c","a","k","b","e","l","jsxRuntimeModule","InputComponentRenderer","path","factory","onUpdate","onChange","readonly","initialValues","input","formState","watch","useFormContext","metadata","fixedValues","inputComponent","commonProps","useMemo","values","valuesWithDependenciesAndStepPaths","cloneDeep","fixedValue","set","isVisible","jsxs","Fragment","InputComponent","RootForm","props","mode","resolver","defaultValues","shouldFocusError","onValuesChange","onSubmit","children","autoFocusPath","methods","useForm","submittedRef","useRef","useEffect","getValues","handleSubmit","handle","FormProvider","getDefaultValuesFromFormDefinition","inputs","get","overrideFormDefinition","base","override","newInputs","overrideInput","findInputByPath","formDefinition","Row","prefix","jsx","RenderInputs","items","RenderForm","forwardRef","ref","className","isChildrenEmpty","obj","empty","forOwn","isNull","isUndefined","generateReadableLabel","name","capitalize","processValidationParseResponse","anyArray","error","isArray","errorObj","isObject","getValidationSchema","schemaTreeNode","populateSchemaTreeRec","prefixWithoutDot","zod","generateSchemaRec","schemaObj","objectSchemas","_requiredOnly","_schemaObj","_input","_isList","_isArrayItem","_schema","arraySchema","enhancedSchema","getSchemaForArray","innerSchema","getSchemaForPrimitive","getRequiredSchema","schema","value","ctx","_a","validationRes","_b","schemaResponse","_values","requiredSchemaResult","message","schemaResult","inputsArr","utils","valuesWithDependencies","existingSchema","merge","_c","listSchemaObj","item","_d","arraySchemaObj","_e","_f","requiredMessage","_h","_g","_i","isZodError","parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","code","_path","unionError","types","messages","appendErrors","useZodValidationResolver","useCallback","data","_","resolverOptions","toNestErrors","inputTransformValues","transformerItems","retValues","transformItem","rawValue","transformedObj","outputTransformValues","flattenInputsRec","acc","getTransformers","ret","isPrimitive","pick","objectToArrayInputTransformer","arrayToObjectOutputTransformer","retObj","rowValue","unsetEmptyArrayOutputTransformer","unsetEmptyObjectOutputTransformer","cleanObj","omitBy","unsetEmptyStringOutputTransformer","isString","shorthandObjectInputTransformer","parentPath","parentStr","shorthandObjectOutputTransformer","parentObj","cleanParentObj","cleanUpObject","shorthandArrayInputTransformer","shorthandArrayOutputTransformer","parentArr","isEmptyRec"],"mappings":"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","x_google_ignoreList":[1,2,3]}
1
+ {"version":3,"file":"index.js","sources":["../src/core/factory/InputFactory.ts","../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js","../src/core/components/InputComponentRenderer.tsx","../src/core/components/InputComponent.tsx","../src/core/components/RootForm.tsx","../src/core/utils/utils.ts","../src/form/Row/Row.tsx","../src/form/RenderInputs/RenderInputs.tsx","../src/form/RenderForm/RenderForm.tsx","../src/utils/utils.ts","../src/core/validation/zod-validation.ts","../src/core/utils/zod-resolver-utils.tsx","../src/core/utils/zod-resolver.tsx","../src/core/utils/transform-utils.tsx","../src/core/transformers/transformers.ts"],"sourcesContent":["import { isEmpty } from 'lodash-es'\n\nimport type { InputComponent } from '../components/InputComponent'\n\nexport interface IInputFactoryProps {\n allowOverride: boolean\n}\n\nexport class InputOverrideError extends Error {\n constructor(inputType: string) {\n super(`Input component '${inputType}' is already registered.`)\n }\n}\n\nexport class InputFactory {\n private componentBank: Map<string, InputComponent<unknown>>\n private allowOverride: boolean\n\n constructor(options?: IInputFactoryProps) {\n this.allowOverride = options?.allowOverride ?? false\n this.componentBank = new Map()\n }\n\n /**\n * Register input\n *\n * @param component - instance of input component\n * @throws Throws `InputOverrideError` if register two component with the same inputType (and if allowOverride is false)\n */\n registerComponent<T>(component: InputComponent<T>): void {\n if (!this.allowOverride && !!this.getComponent(component.internalType)) {\n throw new InputOverrideError(component.internalType)\n }\n\n this.componentBank.set(component.internalType, component as InputComponent<unknown>)\n }\n\n getComponent<T>(internalType?: string): InputComponent<T> | undefined {\n if (internalType && !isEmpty(internalType)) {\n return this.componentBank.get(internalType) as InputComponent<T>\n }\n return\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\n\nimport { cloneDeep, set } from 'lodash-es'\n\n//import { useRootFormikContext } from '../context/RootFormikContext'\nimport type { InputProps } from './InputComponent'\n\nexport interface InputComponentRendererProps<T = unknown> extends InputProps<T> {\n children?: React.ReactNode\n}\n\nexport function InputComponentRenderer<T = unknown>({\n path,\n factory,\n onUpdate,\n onChange,\n readonly,\n initialValues,\n input\n}: InputComponentRendererProps<T>): JSX.Element | null {\n const { formState, watch } = useFormContext()\n const { metadata = {}, fixedValues = {} /*getValuesWithDependencies*/ } = {} as any // useRootFormikContext()\n\n const inputComponent = factory?.getComponent<T>(input.inputType as string)\n\n const commonProps = useMemo(\n () => ({\n path,\n initialValues,\n onUpdate,\n onChange,\n factory,\n readonly,\n input\n }),\n [factory, initialValues, input, onChange, onUpdate, path, readonly, formState.errors]\n )\n\n const values = watch()\n const valuesWithDependenciesAndStepPaths = cloneDeep(values) //getValuesWithDependencies(values, input as IInputDefinition)\n\n if (fixedValues) {\n Object.keys(fixedValues).forEach(path => {\n const fixedValue = fixedValues[path]\n set(valuesWithDependenciesAndStepPaths, path, fixedValue)\n })\n }\n\n const isVisible = !input.isVisible || input?.isVisible(valuesWithDependenciesAndStepPaths, metadata)\n\n const component = useMemo(() => {\n if (isVisible) {\n return (\n <>\n {input.before ? input.before : null}\n {inputComponent?.renderComponent(commonProps)}\n {input.after ? input.after : null}\n </>\n )\n }\n return null\n }, [commonProps, input.after, input.before, inputComponent, isVisible, formState.errors])\n\n if (!inputComponent) {\n return <p>Input component not found (internal type: {input.inputType as string})</p>\n }\n\n if (isVisible) {\n return component\n }\n\n return null\n}\n","import type { IInputDefinition } from '../../types/types'\nimport type { InputFactory } from '../factory/InputFactory'\n\nexport interface InputProps<T, K extends { inputConfig?: unknown } = { inputConfig?: unknown }> {\n initialValues?: T\n onUpdate?: (data: T) => void\n onChange?: (data: T) => void\n factory: InputFactory\n path: string\n readonly?: boolean\n input: IInputDefinition<K['inputConfig']>\n}\n\nexport abstract class InputComponent<T> {\n public abstract internalType: string\n\n getType(): string {\n return this.internalType\n }\n\n abstract renderComponent(props: InputProps<T>): JSX.Element\n}\n","import { ReactElement, useEffect, useRef, type Attributes } from 'react'\nimport {\n DeepPartial,\n DefaultValues,\n FieldValues,\n FormProvider,\n Path,\n Resolver,\n useForm,\n UseFormReturn\n} from 'react-hook-form'\n\ninterface RootFormProps<TFieldValues extends FieldValues = FieldValues, TContext = any> {\n defaultValues?: DefaultValues<TFieldValues>\n resolver: Resolver<TFieldValues, TContext> | undefined\n onValuesChange?: (values: DeepPartial<TFieldValues>, formState: { isValid?: boolean }) => void\n onSubmit?: (values: FieldValues) => void\n shouldFocusError?: boolean\n mode: 'onBlur' | 'onChange' | 'onSubmit' | 'onTouched' | 'all' | undefined\n children:\n | JSX.Element\n | ((props: UseFormReturn<TFieldValues, any, undefined> & { submitForm: () => void }) => JSX.Element)\n validateAfterFirstSubmit?: boolean\n /**\n * This is passed to input handlers\n *\n * For visible function second argument is metadata.\n *\n * ```isVisible?: (values: AnyFormikValue, metadata: any) => boolean```\n */\n metadata?: any\n\n /**\n * Provide fixed value that are required for defined inputs\n */\n fixedValues?: { [path: string]: any }\n /**\n * Prefix to target nested structure\n */\n prefix?: string\n key?: Attributes['key']\n /**\n * auto focus input\n */\n autoFocusPath?: Path<TFieldValues>\n}\n\nexport function RootForm<TFieldValues extends FieldValues = FieldValues, TContext = any>(\n props: RootFormProps<TFieldValues, TContext>\n): ReactElement {\n const {\n mode = 'onSubmit',\n resolver,\n defaultValues,\n shouldFocusError,\n // validateAfterFirstSubmit,\n onValuesChange,\n onSubmit,\n // validate,\n // validateDebounceInterval,\n // validationConfig,\n // metadata,\n children,\n // fixedValues\n autoFocusPath\n } = props\n\n const methods = useForm<TFieldValues>({\n mode: mode ?? 'onSubmit',\n reValidateMode: 'onChange',\n defaultValues,\n shouldFocusError,\n resolver\n })\n\n const submittedRef = useRef(false)\n\n useEffect(() => {\n methods.reset(defaultValues, {})\n }, [methods.reset, defaultValues])\n\n // reset defaultValues to prevent default on recreated (deleted then created) array/list items\n useEffect(() => {\n requestIdleCallback(() => {\n methods.reset({} as TFieldValues, {\n keepErrors: true,\n keepDirty: true,\n keepDirtyValues: true,\n keepValues: true,\n keepDefaultValues: false, // RESET default values\n keepIsSubmitted: true,\n keepTouched: true,\n keepIsValid: true,\n keepSubmitCount: true\n })\n })\n }, [])\n\n const { getValues, handleSubmit } = methods\n const values = getValues()\n\n // trigger validation on value change\n useEffect(() => {\n onValuesChange?.({ ...(values as any) }, { isValid: methods.formState.isValid })\n\n if (submittedRef.current === true) {\n methods.trigger()\n }\n }, [JSON.stringify(values)])\n\n // auto focus\n useEffect(() => {\n if (autoFocusPath) {\n if ('requestIdleCallback' in window) {\n const handle = requestIdleCallback(() => {\n methods.setFocus(autoFocusPath)\n })\n return () => cancelIdleCallback(handle)\n }\n // fallback for safari\n else {\n const handle = setTimeout(() => {\n methods.setFocus(autoFocusPath)\n }, 100)\n return () => clearTimeout(handle)\n }\n }\n }, [methods])\n\n return (\n <FormProvider {...methods}>\n {typeof children === 'function'\n ? children({\n ...methods,\n submitForm: async () => {\n if (onSubmit) {\n submittedRef.current = true\n handleSubmit(values => {\n onSubmit(values)\n })()\n }\n }\n })\n : children}\n </FormProvider>\n )\n}\n","import { get, set } from 'lodash-es'\n\nimport type { AnyFormikValue, IFormDefinition, IInputDefinition } from '../../types/types'\n\nexport const getDefaultValuesFromFormDefinition = (inputs: IFormDefinition): AnyFormikValue => {\n const defaultValues: AnyFormikValue = {}\n\n // TODO: add default for nested (group),\n // TODO: this implementation is wrong\n inputs.inputs.forEach(input => {\n if (typeof get(defaultValues, input.path) === 'undefined') {\n set(defaultValues, input.path, input.default)\n }\n })\n\n return defaultValues\n}\n\nexport function overrideFormDefinition(base: IFormDefinition, override: IFormDefinition): IFormDefinition {\n const newInputs = base.inputs.map(input => {\n const overrideInput = findInputByPath(override, input.path)\n return overrideInput ? overrideInput : input\n })\n\n return { ...base, inputs: newInputs }\n}\n\nfunction findInputByPath(formDefinition: IFormDefinition, path: string): IInputDefinition | undefined {\n return formDefinition.inputs.find(input => input.path === path)\n}\n","import { InputComponentRenderer } from '../../core/components/InputComponentRenderer'\nimport type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IInputDefinition } from '../../types/types'\n\n//import { useRootFormikContext } from '../../core/context/RootFormikContext'\n\nexport interface InputRowProps {\n input: IInputDefinition\n factory: InputFactory\n}\n\nexport function Row({ input, factory }: InputRowProps): React.ReactElement {\n const { prefix = '' } = {} //useRootFormikContext()\n\n return (\n <div>\n <InputComponentRenderer path={`${prefix}${input.path}`} factory={factory} readonly={false} input={input} />\n </div>\n )\n}\n","import type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IInputDefinition } from '../../types/types'\nimport { Row } from '../Row/Row'\n\nexport function RenderInputs(props: { items: IInputDefinition[]; factory: InputFactory }): JSX.Element {\n const { items, factory } = props\n\n return (\n <>\n {items.map(input => {\n const key = `${input.inputType}_${input.path}_${input.label}`\n return <Row key={key} input={input} factory={factory} />\n })}\n </>\n )\n}\n","import { forwardRef } from 'react'\n\nimport type { InputFactory } from '../../core/factory/InputFactory'\nimport type { IFormDefinition } from '../../types/types'\nimport { RenderInputs } from '../RenderInputs/RenderInputs'\n\nexport interface RenderFormProps {\n inputs: IFormDefinition\n factory: InputFactory\n className?: string\n}\n\nexport const RenderForm = forwardRef<HTMLDivElement, RenderFormProps>((props, ref): React.ReactElement => {\n const { inputs, className, factory } = props\n\n return (\n <div className={className} ref={ref}>\n {inputs.hero}\n <RenderInputs items={inputs.inputs} factory={factory} />\n </div>\n )\n})\nRenderForm.displayName = 'RenderForm'\n","import { capitalize, forOwn, isNull, isUndefined } from 'lodash-es'\n\nexport function isChildrenEmpty(obj: { [key: string]: unknown }): boolean {\n let empty = true\n forOwn(obj, val => {\n empty = empty && (val === '' || isNull(val) || isUndefined(val))\n })\n\n return empty\n}\n\nexport const generateReadableLabel = (name = ''): string => {\n return capitalize(name.split('_').join(' '))\n}\n","import { get, isArray, isEmpty, isObject, isUndefined, merge, set } from 'lodash-es'\nimport * as zod from 'zod'\n\nimport type { AnyFormikValue, IFormDefinition, IGlobalValidationConfig, IInputDefinition } from '../../types/types'\n\nexport function processValidationParseResponse(anyArray: string | Record<string, unknown>): string | undefined {\n const error = typeof anyArray === 'string' ? JSON.parse(anyArray) : anyArray\n\n if (typeof error === 'string') {\n return error\n }\n\n if (isArray(error)) {\n return processValidationParseResponse(error[0])\n }\n\n const errorObj = error as { message: string }\n if (isObject(errorObj) && errorObj?.message) {\n return error?.message\n }\n\n return 'Unknown error'\n}\n\n/**\n * Internal type used for preparing data model for creating schema\n */\ntype SchemaTreeNode = { [key: string]: SchemaTreeNode } & {\n _input?: IInputDefinition\n _isList?: boolean\n _isArrayItem?: boolean\n _schema?: zod.ZodType<unknown> | ((values: any) => zod.ZodType<unknown>)\n _schemaObj?: { [key: string]: SchemaTreeNode }\n _requiredOnly?: boolean\n}\n\nexport interface IGetValidationSchemaOptions<T = any> {\n /**\n * Metadata is passed down to validation callbacks\n */\n metadata?: T\n /**\n * If formik model is nested, use prefix to extract data form matching.\n *\n * e.g. to get form data form {formData: {...}} use \"formData.\" as prefix\n */\n prefix?: string\n /**\n * global validation configuration applies to all inputs\n */\n validationConfig?: IGlobalValidationConfig\n // TODO: check this\n utils?: {\n getValuesWithDependencies?: (values: AnyFormikValue, input: IInputDefinition) => AnyFormikValue\n }\n}\n\nexport function getValidationSchema<T = any>(\n inputs: IFormDefinition,\n values: AnyFormikValue,\n options?: IGetValidationSchemaOptions<T>\n): zod.ZodObject<zod.ZodRawShape> {\n let schemaTreeNode: SchemaTreeNode = {}\n\n // 1. Prepare three model\n populateSchemaTreeRec(schemaTreeNode, inputs.inputs, values, options)\n\n // console.log('Internal model:')\n // console.log(schemaTreeNode)\n\n if (options?.prefix) {\n const prefixWithoutDot = options?.prefix.replace(/.$/, '')\n schemaTreeNode = set({}, prefixWithoutDot, schemaTreeNode)\n }\n\n // 2. Generate schema from model\n const schema = zod.object(generateSchemaRec(schemaTreeNode, values, options))\n\n // console.log('Schema:')\n // console.log(schema)\n\n return schema\n}\n\nfunction generateSchemaRec(schemaObj: SchemaTreeNode, values: AnyFormikValue, options?: IGetValidationSchemaOptions) {\n const objectSchemas: { [key: string]: zod.Schema<unknown> } = {}\n\n Object.keys(schemaObj).forEach(key => {\n const { _requiredOnly, _schemaObj, _input, _isList, _isArrayItem, _schema /*...nestedSchemaObj*/ } = schemaObj[key]\n if (_isList && _schemaObj && _input) {\n const arraySchema = zod.array(zod.object(generateSchemaRec(_schemaObj, values, options))).optional()\n const enhancedSchema = getSchemaForArray(_schema, _input, values, options, arraySchema)\n objectSchemas[key] = enhancedSchema!\n } else if (_isArrayItem && _input) {\n const innerSchema = _schemaObj?.___array\n ? generateSchemaRec({ ___array: _schemaObj.___array }, values, options)\n : { ___array: zod.any() }\n const arraySchema = zod.array(innerSchema.___array).optional()\n const enhancedSchema = getSchemaForArray(_schema, _input, values, options, arraySchema)\n objectSchemas[key] = enhancedSchema!\n } else if (_schema && _input) {\n const enhancedSchema: zod.Schema<unknown> = getSchemaForPrimitive(_schema, _input, values, options)\n objectSchemas[key] = enhancedSchema\n // TODO check this\n // objectSchemas[key] = !isEmpty(nestedSchemaObj)\n // ? addNestedSchema(nestedSchemaObj, enhancedSchema, options)\n // : enhancedSchema\n } else if (_requiredOnly && _input) {\n objectSchemas[key] = getRequiredSchema(_input, options)\n\n // TODO check this\n // if only required (no schema in place)\n // let requiredSchema = chainRequiredSchema(Yup.mixed(), _input!.inputType, options)\n // requiredSchema =\n // options?.globalValidationConfig?.globalValidation?.(requiredSchema, _input!) ?? requiredSchema\n // requiredSchema.when(_input?.path!, {\n // is: value => {\n // return true\n // },\n // then: (schema2: Yup.MixedSchema) =>\n // options?.globalValidationConfig?.globalValidation?.(schema2, _input!) ?? schema2\n // })\n //const requiredSchema = _input ? composeSchema(, _input, values, options) : Yup.mixed() //getRequiredSchema(_input?.inputType!, options)\n // ovo >>\n // objectSchemas[key] = !isEmpty(nestedSchemaObj)\n // ? addNestedSchema(nestedSchemaObj, requiredSchema, options)\n // : requiredSchema\n } else {\n objectSchemas[key] = zod.object(generateSchemaRec(schemaObj[key], values, options)).optional()\n }\n })\n\n return objectSchemas\n}\n\nfunction getSchemaForPrimitive(\n schema: zod.ZodType<unknown> | ((values: any) => zod.ZodType<unknown>) | undefined,\n input: IInputDefinition,\n values: any,\n options?: IGetValidationSchemaOptions\n) {\n return zod.any().superRefine(async (value, ctx) => {\n // 1. Required validation\n if (input.required) {\n const requiredSchemaResponse = await getRequiredSchema(input, options).safeParseAsync(value)\n if (!requiredSchemaResponse.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: `Required field`\n })\n }\n }\n\n // 2. Global validation\n if (options?.validationConfig?.globalValidation) {\n const validationRes = options?.validationConfig?.globalValidation(value, input!, options.metadata)\n\n if (validationRes.error) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: validationRes.error\n })\n }\n\n if (!validationRes.continue) {\n return true\n }\n }\n\n //3. Input validation\n const schemaInternal = getSchema(schema, values)\n if (schemaInternal) {\n const schemaResponse = await schemaInternal.safeParseAsync(value)\n\n if (!schemaResponse.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(schemaResponse?.error.message)\n })\n }\n }\n })\n}\n\nfunction getSchemaForArray(\n schema: zod.ZodType<unknown> | ((values: any) => zod.ZodType<unknown>) | undefined,\n input: IInputDefinition,\n values: AnyFormikValue,\n options?: IGetValidationSchemaOptions,\n arraySchema?: zod.ZodTypeAny\n) {\n return zod\n .any()\n .superRefine(async (value: any, ctx) => {\n // 1. Required validation\n const requiredSchema = getRequiredSchema(input, options)\n const requiredSchemaResult = await requiredSchema.safeParseAsync(value)\n if (input.required && !requiredSchemaResult.success) {\n // TODO: move this logic to utils. (check if there is better solution)\n const message = processValidationParseResponse(requiredSchemaResult.error.message)\n ctx.addIssue({ code: zod.ZodIssueCode.custom, message: message, fatal: true })\n return zod.NEVER\n }\n if (!input.required && !requiredSchemaResult.success) {\n return zod.NEVER\n }\n\n // 2. Global validation\n if (options?.validationConfig?.globalValidation) {\n const validationRes = options?.validationConfig?.globalValidation(value, input, options.metadata)\n\n if (validationRes.error) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(validationRes.error)\n })\n return zod.NEVER\n } else if (!validationRes.continue) {\n return zod.NEVER\n }\n }\n\n // 3. Prevent more validation if value is not an array\n if (!isArray(value)) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: \"'Value is not array'\"\n })\n return zod.NEVER\n }\n\n // 4. Input validation\n const schemaInternal = getSchema(schema, values)\n if (schemaInternal) {\n const schemaResult = await schemaInternal.safeParseAsync(value)\n\n if (!schemaResult.success) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: processValidationParseResponse(schemaResult.error.message)\n })\n return zod.NEVER\n }\n }\n\n // NOTE: THIS IS MOVED TO pipe(...) - delete following block\n // // 5. Return dynamically created validation for nested inputs\n // const arraySchemaResponse = await arraySchema?.safeParseAsync(value)\n // if (!arraySchemaResponse?.success) {\n // ctx.addIssue({\n // code: zod.ZodIssueCode.custom,\n // message: arraySchemaResponse?.error.message\n // })\n // }\n })\n .pipe(arraySchema ?? zod.any())\n}\n\nfunction populateSchemaTreeRec<T = any>(\n schemaObj: SchemaTreeNode,\n inputsArr: IInputDefinition[],\n values: AnyFormikValue,\n options?: IGetValidationSchemaOptions<T>,\n utils?: {\n getValuesWithDependencies?: (values: AnyFormikValue, input: IInputDefinition) => AnyFormikValue\n }\n): void {\n inputsArr.forEach(input => {\n const valuesWithDependencies = utils?.getValuesWithDependencies\n ? utils?.getValuesWithDependencies(values, input)\n : values\n\n if (!input.isVisible || input.isVisible?.(valuesWithDependencies, options?.metadata)) {\n const existingSchema = get(schemaObj, input.path)\n if (input.validation?.schema) {\n set(\n schemaObj,\n input.path,\n merge(existingSchema, {\n _schema: input.validation?.schema,\n _input: input\n })\n )\n } else if (input.required) {\n set(schemaObj, input.path, merge(existingSchema, { _requiredOnly: true, _input: input }))\n }\n if (input.inputs) {\n populateSchemaTreeRec(schemaObj, input.inputs, values, options, utils)\n }\n\n // handle list\n if (input.inputType === 'list') {\n const listSchemaObj: SchemaTreeNode = {}\n populateSchemaTreeRec(\n listSchemaObj,\n (input.inputConfig as { inputs: (IInputDefinition & { relativePath: string })[] }).inputs.map(item => ({\n ...item,\n path: item.relativePath\n })),\n values,\n options,\n utils\n )\n\n const existingSchema = get(schemaObj, input.path)\n set(schemaObj, input.path, merge(existingSchema, { _schemaObj: listSchemaObj, _isList: true, _input: input }))\n }\n\n // handle array\n if (!input.validation?.schema && (input.inputType as string) === 'array') {\n const arraySchemaObj = {}\n populateSchemaTreeRec(\n arraySchemaObj,\n [{ ...(input.inputConfig as { input: IInputDefinition }).input, path: '___array' }],\n values,\n options,\n utils\n )\n\n set(\n schemaObj,\n input.path,\n merge(existingSchema, {\n _schemaObj: arraySchemaObj,\n _schema: input.validation?.schema,\n _isArrayItem: true,\n _input: input\n })\n )\n }\n }\n })\n}\n\nfunction getRequiredSchema(input: IInputDefinition, options?: IGetValidationSchemaOptions): zod.Schema<unknown> {\n if (options?.validationConfig?.requiredSchemaPerInput?.[input.inputType]) {\n return options?.validationConfig?.requiredSchemaPerInput?.[input.inputType]\n } else if (options?.validationConfig?.requiredSchema) {\n return options?.validationConfig?.requiredSchema\n }\n\n const requiredMessage =\n options?.validationConfig?.requiredMessagePerInput?.[input.inputType] ??\n options?.validationConfig?.requiredMessage ??\n 'Required fields'\n\n // Default \"required value\" validation\n return zod.any().superRefine((value, ctx) => {\n if (typeof value === 'object' && isEmpty(value)) {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: requiredMessage\n })\n }\n if (isUndefined(value) || value === '') {\n ctx.addIssue({\n code: zod.ZodIssueCode.custom,\n message: requiredMessage\n })\n }\n })\n}\n\nfunction getSchema<T>(schema: zod.ZodType<unknown> | ((values: any) => zod.ZodType<unknown>) | undefined, values: T) {\n if (schema instanceof zod.ZodType) {\n return schema\n } else if (typeof schema === 'function') {\n return schema(values)\n }\n return undefined\n}\n","import { appendErrors, type FieldError } from 'react-hook-form'\n\nimport * as zod from 'zod'\n\nexport const isZodError = (error: any): error is zod.ZodError => Array.isArray(error?.errors)\n\nexport const parseErrorSchema = (zodErrors: zod.ZodIssue[], validateAllFieldCriteria: boolean) => {\n const errors: Record<string, FieldError> = {}\n for (; zodErrors.length; ) {\n const error = zodErrors[0]\n const { code, message, path } = error\n const _path = path.join('.')\n\n if (!errors[_path]) {\n if ('unionErrors' in error) {\n const unionError = error.unionErrors[0].errors[0]\n\n errors[_path] = {\n message: unionError.message,\n type: unionError.code\n }\n } else {\n errors[_path] = { message, type: code }\n }\n }\n\n if ('unionErrors' in error) {\n error.unionErrors.forEach(unionError => unionError.errors.forEach(e => zodErrors.push(e)))\n }\n\n if (validateAllFieldCriteria) {\n const types = errors[_path].types\n const messages = types && types[error.code]\n\n errors[_path] = appendErrors(\n _path,\n validateAllFieldCriteria,\n errors,\n code,\n messages ? ([] as string[]).concat(messages as string[], error.message) : error.message\n ) as FieldError\n }\n\n zodErrors.shift()\n }\n\n return errors\n}\n","import { useCallback } from 'react'\nimport type { FieldValues, Resolver, ResolverOptions } from 'react-hook-form'\n\nimport { toNestErrors } from '@hookform/resolvers'\n\nimport type { IFormDefinition } from '../../types/types'\nimport { getValidationSchema, IGetValidationSchemaOptions } from '../validation/zod-validation'\nimport { isZodError, parseErrorSchema } from './zod-resolver-utils'\n\nexport function useZodValidationResolver(\n formDefinition: IFormDefinition,\n options?: IGetValidationSchemaOptions\n): Resolver<any, any> | undefined {\n return useCallback(\n async (data: FieldValues, _: any, resolverOptions: ResolverOptions<FieldValues>) => {\n try {\n const validationSchema = getValidationSchema(formDefinition, data, options)\n\n await validationSchema.parseAsync(data)\n\n return {\n values: data, // TODO: check this - values does not contains all data\n errors: {}\n }\n } catch (error: any) {\n if (isZodError(error)) {\n return {\n values: {},\n errors: toNestErrors(parseErrorSchema(error.errors, true), resolverOptions)\n }\n }\n\n throw error\n }\n },\n [formDefinition]\n )\n}\n","import { cloneDeep, get, pick, set, unset } from 'lodash-es'\n\nimport { IFormDefinition, IInputDefinition } from '../../types/types'\n\ntype TransformItem = {\n path: string\n /** level is used to sort transformers in order to execute them form leaf to root.*/\n level: number\n isPrimitive: boolean\n inputTransform?: IInputDefinition['inputTransform']\n outputTransform?: IInputDefinition['outputTransform']\n}\n\n/** convert data model to form model using input transformer functions */\nexport function inputTransformValues(values: Record<string, any>, transformerItems: TransformItem[]) {\n const retValues = cloneDeep(values)\n transformerItems.forEach(transformItem => {\n if (transformItem.inputTransform) {\n const rawValue = get(retValues, transformItem.path)\n const transformedObj = transformItem.inputTransform(rawValue, retValues)\n if (transformedObj) {\n set(retValues, transformedObj.path ?? transformItem.path, transformedObj.value)\n }\n }\n })\n return retValues\n}\n\n/** convert form model to data model using output transformer functions */\nexport function outputTransformValues(values: Record<string, any>, transformerItems: TransformItem[]) {\n const retValues = cloneDeep(values)\n transformerItems.forEach(transformItem => {\n if (transformItem.outputTransform) {\n const rawValue = get(retValues, transformItem.path)\n const transformedObj = transformItem.outputTransform(rawValue, retValues)\n if (transformedObj) {\n set(retValues, transformedObj.path ?? transformItem.path, transformedObj.value)\n }\n }\n })\n return retValues\n}\n\nfunction flattenInputsRec(inputs: IInputDefinition[]): IInputDefinition[] {\n const flattenInputs = inputs.reduce<IInputDefinition[]>((acc, input) => {\n if (input.inputType === 'group' && input.inputs) {\n return [...acc, input, ...flattenInputsRec(input.inputs)]\n } else {\n return [...acc, input]\n }\n }, [])\n\n return flattenInputs\n}\n\n/** Collect all input/output transformer functions */\nexport function getTransformers(formDefinition: IFormDefinition): TransformItem[] {\n const flattenInputs = flattenInputsRec(formDefinition.inputs)\n\n const ret = flattenInputs.reduce<TransformItem[]>((acc, input) => {\n // TODO: has to be abstracted\n const isPrimitive =\n input.inputType === 'text' ||\n input.inputType === 'boolean' ||\n input.inputType === 'number' ||\n input.inputType === 'textarea' ||\n input.inputType === 'select'\n\n if (input.inputTransform || input.outputTransform) {\n acc.push({\n ...pick(input, 'path', 'inputTransform', 'outputTransform'),\n level: input.path.split('.').length,\n isPrimitive\n })\n }\n\n return acc\n }, [])\n\n ret.sort((a, b) => {\n if (a.level === b.level) return !a.isPrimitive ? -1 : 1\n return a.level > b.level ? -1 : 1\n })\n\n return ret\n}\n\n/** Remove values for inputs that are hidden */\nexport function unsetHiddenInputsValues(\n formDefinition: IFormDefinition,\n values: Record<string, any>,\n metadata?: any\n): Record<string, any> {\n const flattenInputs = flattenInputsRec(formDefinition.inputs)\n\n const retValues = cloneDeep(values)\n\n flattenInputs.forEach(input => {\n if (!!input.isVisible && !input.isVisible(values, metadata)) {\n unset(retValues, input.path)\n }\n })\n\n return retValues\n}\n","import { get, isArray, isEmpty, isObject, isString, isUndefined, omitBy } from 'lodash-es'\n\nexport function objectToArrayInputTransformer() {\n return function (value: Record<string, unknown>, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n return {\n value: Object.getOwnPropertyNames(value).map(key => {\n return { key, value: value[key] }\n })\n }\n }\n}\n\nexport function arrayToObjectOutputTransformer(options?: { unsetIfEmpty?: boolean }) {\n return function (value: { key: string; value: unknown }[], _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const retObj = {\n value: value.reduce((acc, rowValue) => {\n return { ...acc, [rowValue.key]: rowValue.value }\n }, {})\n }\n\n if (options?.unsetIfEmpty && Object.getOwnPropertyNames(retObj.value).length === 0) {\n return { value: undefined }\n }\n\n return retObj\n }\n}\n\nexport function unsetEmptyArrayOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isArray(value) && isEmpty(value)) {\n return { value: undefined }\n }\n\n return { value }\n }\n}\n\nexport function unsetEmptyObjectOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isObject(value)) {\n const cleanObj = omitBy(value, isUndefined)\n if (isEmpty(cleanObj)) {\n return { value: undefined }\n }\n }\n\n return { value }\n }\n}\n\nexport function unsetEmptyStringOutputTransformer() {\n return function (value: unknown, _values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n if (isString(value) && isEmpty(value)) {\n return { value: undefined }\n }\n\n return { value }\n }\n}\n\nexport function shorthandObjectInputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n const parentStr = get(values, parentPath)\n\n if (typeof parentStr === 'string') {\n return { value: parentStr }\n }\n\n return { value }\n }\n}\n\nexport function shorthandObjectOutputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const parentObj = get(values, parentPath)\n\n if (typeof parentObj === 'object') {\n const cleanParentObj = cleanUpObject(parentObj)\n if (Object.getOwnPropertyNames(cleanParentObj).length === 1) {\n return { value, path: parentPath }\n }\n }\n\n return { value }\n }\n}\n\nexport function shorthandArrayInputTransformer(parentPath: string) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n\n const parentStr = get(values, parentPath)\n\n if (typeof parentStr === 'string') {\n return { value: [parentStr] }\n }\n\n return { value }\n }\n}\n\nexport function shorthandArrayOutputTransformer(parentPath: string, options?: { unsetIfEmpty?: boolean }) {\n return function (value: unknown, values: Record<string, unknown>) {\n if (typeof value === 'undefined') return undefined\n if (!value) return { value }\n\n const parentArr = get(values, parentPath)\n\n if (isArray(parentArr)) {\n if (parentArr.length === 1) {\n return { value: parentArr[0], path: parentPath }\n } else if (parentArr.length === 0) {\n if (options?.unsetIfEmpty) {\n return { value: undefined, path: parentPath }\n }\n }\n }\n\n return { value }\n }\n}\n\nfunction isEmptyRec(obj: unknown): boolean {\n if (typeof obj === 'object') {\n return !Object.getOwnPropertyNames(obj).some(item => {\n return !isEmptyRec((obj as Record<string, unknown>)[item])\n })\n } else {\n return isUndefined(obj)\n }\n}\n\nfunction cleanUpObject(obj: object | null) {\n return omitBy(obj, value => {\n if (typeof value === 'object') {\n return isEmptyRec(value)\n }\n return isUndefined(value)\n })\n}\n"],"names":["InputOverrideError","inputType","InputFactory","options","__publicField","component","internalType","isEmpty","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","n","test3","letter","objectAssign","target","source","from","to","symbols","s","key","i","require$$0","f","require$$1","g","reactJsxRuntime_production_min","h","m","p","q","c","a","k","b","d","e","l","jsxRuntimeModule","InputComponentRenderer","path","factory","onUpdate","onChange","readonly","initialValues","input","formState","watch","useFormContext","metadata","fixedValues","inputComponent","commonProps","useMemo","values","valuesWithDependenciesAndStepPaths","cloneDeep","fixedValue","set","isVisible","jsxs","Fragment","InputComponent","RootForm","props","mode","resolver","defaultValues","shouldFocusError","onValuesChange","onSubmit","children","autoFocusPath","methods","useForm","submittedRef","useRef","useEffect","getValues","handleSubmit","handle","FormProvider","getDefaultValuesFromFormDefinition","inputs","get","overrideFormDefinition","base","override","newInputs","overrideInput","findInputByPath","formDefinition","Row","prefix","jsx","RenderInputs","items","RenderForm","forwardRef","ref","className","isChildrenEmpty","obj","empty","forOwn","isNull","isUndefined","generateReadableLabel","name","capitalize","processValidationParseResponse","anyArray","error","isArray","errorObj","isObject","getValidationSchema","schemaTreeNode","populateSchemaTreeRec","prefixWithoutDot","zod","generateSchemaRec","schemaObj","objectSchemas","_requiredOnly","_schemaObj","_input","_isList","_isArrayItem","_schema","arraySchema","enhancedSchema","getSchemaForArray","innerSchema","getSchemaForPrimitive","getRequiredSchema","schema","value","ctx","_a","validationRes","_b","schemaInternal","getSchema","schemaResponse","requiredSchemaResult","message","schemaResult","inputsArr","utils","valuesWithDependencies","existingSchema","merge","_c","listSchemaObj","item","_d","arraySchemaObj","_e","_f","requiredMessage","_h","_g","_i","isZodError","parseErrorSchema","zodErrors","validateAllFieldCriteria","errors","code","_path","unionError","types","messages","appendErrors","useZodValidationResolver","useCallback","data","_","resolverOptions","toNestErrors","inputTransformValues","transformerItems","retValues","transformItem","rawValue","transformedObj","outputTransformValues","flattenInputsRec","acc","getTransformers","ret","isPrimitive","pick","unsetHiddenInputsValues","flattenInputs","unset","objectToArrayInputTransformer","_values","arrayToObjectOutputTransformer","retObj","rowValue","unsetEmptyArrayOutputTransformer","unsetEmptyObjectOutputTransformer","cleanObj","omitBy","unsetEmptyStringOutputTransformer","isString","shorthandObjectInputTransformer","parentPath","parentStr","shorthandObjectOutputTransformer","parentObj","cleanParentObj","cleanUpObject","shorthandArrayInputTransformer","shorthandArrayOutputTransformer","parentArr","isEmptyRec"],"mappings":"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","x_google_ignoreList":[1,2,3]}
@@ -69,7 +69,7 @@ export interface IInputDefinition<T = unknown> {
69
69
  * Note: Validation of complex inputs has to respect its formik structure
70
70
  */
71
71
  validation?: {
72
- schema?: Schema<unknown>;
72
+ schema?: Schema<unknown> | ((values: any) => Schema<unknown>);
73
73
  };
74
74
  before?: JSX.Element | string;
75
75
  after?: JSX.Element | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harnessio/forms",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Harness Forms Library",
5
5
  "private": false,
6
6
  "type": "module",
@@ -63,6 +63,7 @@
63
63
  ]
64
64
  },
65
65
  "scripts": {
66
+ "playground": "vite dev --config vite.config.playground.ts",
66
67
  "dev": "run-p build:watch",
67
68
  "build": "vite build",
68
69
  "build:ci": "vite build",