@radicalbit/formbit 1.0.0 → 1.2.0

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.
@@ -1,5 +1,7 @@
1
1
  import React, { useRef, useEffect, useCallback, useState, createContext, useContext } from 'react';
2
2
  import { isEmpty, set, cloneDeep, omit, get, once } from 'lodash';
3
+ import isEmpty$1 from 'lodash/isEmpty';
4
+ import { v4 } from 'uuid';
3
5
  import { object } from 'yup';
4
6
 
5
7
  function _extends() {
@@ -174,20 +176,26 @@ var validateSyncAll = function validateSyncAll(paths, schema, form, options) {
174
176
  };
175
177
 
176
178
  var useExecuteCallbacks = (function (writer, setError) {
177
- var callbacksStore = useRef([]);
179
+ var callbacksStore = useRef({});
178
180
  useEffect(function () {
179
- if (callbacksStore.current.length) {
180
- callbacksStore.current.forEach(function (cb) {
181
- if (cb) {
182
- cb(writer, setError);
183
- }
184
- });
185
- callbacksStore.current = [];
181
+ if (isEmpty$1(callbacksStore.current)) {
182
+ return;
186
183
  }
184
+
185
+ Object.entries(callbacksStore.current).forEach(function (_ref) {
186
+ var cb = _ref[1];
187
+
188
+ if (cb) {
189
+ cb(writer, setError);
190
+ }
191
+ });
192
+ callbacksStore.current = {};
187
193
  }, [setError, writer]);
188
- return useCallback(function (cb) {
194
+ return useCallback(function (uuid, cb) {
189
195
  if (cb) {
190
- callbacksStore.current.push(cb);
196
+ var _extends2;
197
+
198
+ callbacksStore.current = _extends({}, callbacksStore.current, (_extends2 = {}, _extends2[uuid] = cb, _extends2));
191
199
  }
192
200
  }, []);
193
201
  });
@@ -209,10 +217,31 @@ var useFormbit = (function (_ref) {
209
217
  setWriter = _useState[1];
210
218
 
211
219
  var initialize = useCallback(function (values) {
220
+ var __metadata = values.__metadata;
221
+
222
+ if (__metadata) {
223
+ setWriter(function (w) {
224
+ return _extends({}, w, {
225
+ initialValues: values,
226
+ form: values,
227
+ errors: {},
228
+ liveValidation: {},
229
+ isDirty: false
230
+ });
231
+ });
232
+ return;
233
+ }
234
+
212
235
  setWriter(function (w) {
236
+ var __metadata = w.form.__metadata;
237
+
238
+ var newValues = _extends({}, values, {
239
+ __metadata: __metadata
240
+ });
241
+
213
242
  return _extends({}, w, {
214
- initialValues: values,
215
- form: values,
243
+ initialValues: newValues,
244
+ form: newValues,
216
245
  errors: {},
217
246
  liveValidation: {},
218
247
  isDirty: false
@@ -242,6 +271,14 @@ var useFormbit = (function (_ref) {
242
271
  _ref2$options = _ref2.options,
243
272
  options = _ref2$options === void 0 ? {} : _ref2$options;
244
273
 
274
+ var newUUID = function getUUID() {
275
+ if (successCallback || errorCallback) {
276
+ return v4();
277
+ }
278
+
279
+ return undefined;
280
+ }();
281
+
245
282
  setWriter(function (w) {
246
283
  var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
247
284
  var paths = pathsToValidate.concat(liveValidationPaths);
@@ -265,7 +302,7 @@ var useFormbit = (function (_ref) {
265
302
  });
266
303
 
267
304
  if (paths.length === 0) {
268
- executeCb(successCallback);
305
+ newUUID && executeCb(newUUID, successCallback);
269
306
  return newWriter;
270
307
  }
271
308
 
@@ -279,7 +316,7 @@ var useFormbit = (function (_ref) {
279
316
  errors: cleanErrors
280
317
  });
281
318
 
282
- executeCb(successCallback);
319
+ newUUID && executeCb(newUUID, successCallback);
283
320
  return _neww;
284
321
  }
285
322
 
@@ -300,7 +337,7 @@ var useFormbit = (function (_ref) {
300
337
  liveValidation: liveValidation
301
338
  });
302
339
 
303
- executeCb(errorCallback);
340
+ newUUID && executeCb(newUUID, errorCallback);
304
341
  return neww;
305
342
  });
306
343
  }, [executeCb]);
@@ -321,6 +358,14 @@ var useFormbit = (function (_ref) {
321
358
  _ref5$options = _ref5.options,
322
359
  options = _ref5$options === void 0 ? {} : _ref5$options;
323
360
 
361
+ var newUUID = function getUUID() {
362
+ if (successCallback || errorCallback) {
363
+ return v4();
364
+ }
365
+
366
+ return undefined;
367
+ }();
368
+
324
369
  setWriter(function (w) {
325
370
  var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
326
371
  var paths = pathsToValidate.concat(liveValidationPaths);
@@ -336,7 +381,7 @@ var useFormbit = (function (_ref) {
336
381
  });
337
382
 
338
383
  if (paths.length === 0) {
339
- executeCb(successCallback);
384
+ newUUID && executeCb(newUUID, successCallback);
340
385
  return newWriter;
341
386
  }
342
387
 
@@ -350,7 +395,7 @@ var useFormbit = (function (_ref) {
350
395
  errors: cleanErrors
351
396
  });
352
397
 
353
- executeCb(successCallback);
398
+ newUUID && executeCb(newUUID, successCallback);
354
399
  return _neww2;
355
400
  }
356
401
 
@@ -373,85 +418,122 @@ var useFormbit = (function (_ref) {
373
418
  liveValidation: liveValidation
374
419
  });
375
420
 
376
- executeCb(errorCallback);
421
+ newUUID && executeCb(newUUID, errorCallback);
377
422
  return neww;
378
423
  });
379
424
  }, [executeCb]);
380
- var validate = useCallback(function (path, _temp3) {
425
+ var removeAll = useCallback(function (arr, _temp3) {
381
426
  var _ref9 = _temp3 === void 0 ? {} : _temp3,
427
+ _ref9$noLiveValidatio = _ref9.noLiveValidation,
428
+ noLiveValidation = _ref9$noLiveValidatio === void 0 ? false : _ref9$noLiveValidatio,
429
+ _ref9$pathsToValidate = _ref9.pathsToValidate,
430
+ pathsToValidate = _ref9$pathsToValidate === void 0 ? [] : _ref9$pathsToValidate,
382
431
  successCallback = _ref9.successCallback,
383
432
  errorCallback = _ref9.errorCallback,
384
- options = _ref9.options;
433
+ _ref9$options = _ref9.options,
434
+ options = _ref9$options === void 0 ? {} : _ref9$options;
435
+
436
+ var newUUID = function getUUID() {
437
+ if (successCallback || errorCallback) {
438
+ return v4();
439
+ }
440
+
441
+ return undefined;
442
+ }();
385
443
 
386
444
  setWriter(function (w) {
387
- var cleanErrors = set(cloneDeep(w.errors), path, undefined);
388
- var inner = validateSyncAll([path], schemaRef.current, w.form, options);
445
+ var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
446
+ var paths = pathsToValidate.concat(liveValidationPaths);
447
+ var form = arr.reduce(function (acc, path) {
448
+ return set(acc, path, undefined);
449
+ }, cloneDeep(w.form));
450
+
451
+ var newWriter = _extends({}, w, {
452
+ form: form,
453
+ isDirty: true
454
+ });
455
+
456
+ if (paths.length === 0) {
457
+ newUUID && executeCb(newUUID, successCallback);
458
+ return newWriter;
459
+ }
460
+
461
+ var cleanErrors = pathsToValidate.reduce(function (acc, key) {
462
+ return set(acc, key, undefined);
463
+ }, cloneDeep(newWriter.errors));
464
+ var inner = validateSyncAll(pathsToValidate, schemaRef.current, newWriter.form, options);
389
465
 
390
466
  if (isEmpty(inner)) {
391
- var _neww3 = _extends({}, w, {
467
+ var _neww3 = _extends({}, newWriter, {
392
468
  errors: cleanErrors
393
469
  });
394
470
 
395
- executeCb(successCallback);
471
+ newUUID && executeCb(newUUID, successCallback);
396
472
  return _neww3;
397
473
  }
398
474
 
399
475
  var errors = inner.reduce(function (acc, _ref10) {
400
476
  var _ref10$path = _ref10.path,
401
- errorPath = _ref10$path === void 0 ? '' : _ref10$path,
477
+ path = _ref10$path === void 0 ? '' : _ref10$path,
402
478
  message = _ref10.message;
403
- return set(acc, errorPath, message);
479
+ return set(acc, path, message);
404
480
  }, cleanErrors);
405
481
  var liveValidation = inner.reduce(function (acc, _ref11) {
406
482
  var _extends4;
407
483
 
408
484
  var _ref11$path = _ref11.path,
409
- errorPath = _ref11$path === void 0 ? '' : _ref11$path;
410
- return _extends({}, acc, (_extends4 = {}, _extends4[errorPath] = true, _extends4));
411
- }, w.liveValidation);
485
+ path = _ref11$path === void 0 ? '' : _ref11$path;
486
+ return _extends({}, acc, (_extends4 = {}, _extends4[path] = true, _extends4));
487
+ }, newWriter.liveValidation);
412
488
 
413
- var neww = _extends({}, w, {
489
+ var neww = _extends({}, newWriter, {
414
490
  errors: errors,
415
491
  liveValidation: liveValidation
416
492
  });
417
493
 
418
- executeCb(errorCallback);
494
+ newUUID && executeCb(newUUID, errorCallback);
419
495
  return neww;
420
496
  });
421
497
  }, [executeCb]);
422
- var validateAll = useCallback(function (paths, _temp4) {
498
+ var validate = useCallback(function (path, _temp4) {
423
499
  var _ref12 = _temp4 === void 0 ? {} : _temp4,
424
500
  successCallback = _ref12.successCallback,
425
501
  errorCallback = _ref12.errorCallback,
426
502
  options = _ref12.options;
427
503
 
504
+ var newUUID = function getUUID() {
505
+ if (successCallback || errorCallback) {
506
+ return v4();
507
+ }
508
+
509
+ return undefined;
510
+ }();
511
+
428
512
  setWriter(function (w) {
429
- var cleanErrors = paths.reduce(function (acc, path) {
430
- return set(acc, path, undefined);
431
- }, cloneDeep(w.errors));
432
- var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
513
+ var cleanErrors = set(cloneDeep(w.errors), path, undefined);
514
+ var inner = validateSyncAll([path], schemaRef.current, w.form, options);
433
515
 
434
516
  if (isEmpty(inner)) {
435
517
  var _neww4 = _extends({}, w, {
436
518
  errors: cleanErrors
437
519
  });
438
520
 
439
- executeCb(successCallback);
521
+ newUUID && executeCb(newUUID, successCallback);
440
522
  return _neww4;
441
523
  }
442
524
 
443
525
  var errors = inner.reduce(function (acc, _ref13) {
444
526
  var _ref13$path = _ref13.path,
445
- path = _ref13$path === void 0 ? '' : _ref13$path,
527
+ errorPath = _ref13$path === void 0 ? '' : _ref13$path,
446
528
  message = _ref13.message;
447
- return set(acc, path, message);
529
+ return set(acc, errorPath, message);
448
530
  }, cleanErrors);
449
531
  var liveValidation = inner.reduce(function (acc, _ref14) {
450
532
  var _extends5;
451
533
 
452
534
  var _ref14$path = _ref14.path,
453
- path = _ref14$path === void 0 ? '' : _ref14$path;
454
- return _extends({}, acc, (_extends5 = {}, _extends5[path] = true, _extends5));
535
+ errorPath = _ref14$path === void 0 ? '' : _ref14$path;
536
+ return _extends({}, acc, (_extends5 = {}, _extends5[errorPath] = true, _extends5));
455
537
  }, w.liveValidation);
456
538
 
457
539
  var neww = _extends({}, w, {
@@ -459,16 +541,68 @@ var useFormbit = (function (_ref) {
459
541
  liveValidation: liveValidation
460
542
  });
461
543
 
462
- executeCb(errorCallback);
544
+ newUUID && executeCb(newUUID, errorCallback);
463
545
  return neww;
464
546
  });
465
547
  }, [executeCb]);
466
- var check = useCallback(function (json, _temp5) {
548
+ var validateAll = useCallback(function (paths, _temp5) {
467
549
  var _ref15 = _temp5 === void 0 ? {} : _temp5,
468
550
  successCallback = _ref15.successCallback,
469
551
  errorCallback = _ref15.errorCallback,
470
552
  options = _ref15.options;
471
553
 
554
+ var newUUID = function getUUID() {
555
+ if (successCallback || errorCallback) {
556
+ return v4();
557
+ }
558
+
559
+ return undefined;
560
+ }();
561
+
562
+ setWriter(function (w) {
563
+ var cleanErrors = paths.reduce(function (acc, path) {
564
+ return set(acc, path, undefined);
565
+ }, cloneDeep(w.errors));
566
+ var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
567
+
568
+ if (isEmpty(inner)) {
569
+ var _neww5 = _extends({}, w, {
570
+ errors: cleanErrors
571
+ });
572
+
573
+ newUUID && executeCb(newUUID, successCallback);
574
+ return _neww5;
575
+ }
576
+
577
+ var errors = inner.reduce(function (acc, _ref16) {
578
+ var _ref16$path = _ref16.path,
579
+ path = _ref16$path === void 0 ? '' : _ref16$path,
580
+ message = _ref16.message;
581
+ return set(acc, path, message);
582
+ }, cleanErrors);
583
+ var liveValidation = inner.reduce(function (acc, _ref17) {
584
+ var _extends6;
585
+
586
+ var _ref17$path = _ref17.path,
587
+ path = _ref17$path === void 0 ? '' : _ref17$path;
588
+ return _extends({}, acc, (_extends6 = {}, _extends6[path] = true, _extends6));
589
+ }, w.liveValidation);
590
+
591
+ var neww = _extends({}, w, {
592
+ errors: errors,
593
+ liveValidation: liveValidation
594
+ });
595
+
596
+ newUUID && executeCb(newUUID, errorCallback);
597
+ return neww;
598
+ });
599
+ }, [executeCb]);
600
+ var check = useCallback(function (json, _temp6) {
601
+ var _ref18 = _temp6 === void 0 ? {} : _temp6,
602
+ successCallback = _ref18.successCallback,
603
+ errorCallback = _ref18.errorCallback,
604
+ options = _ref18.options;
605
+
472
606
  try {
473
607
  schema.validateSync(json, _extends({
474
608
  abortEarly: false
@@ -485,16 +619,24 @@ var useFormbit = (function (_ref) {
485
619
  return undefined;
486
620
  }
487
621
  }, [schema, setError, writer]);
488
- var privateValidateForm = useCallback(function (successCallback, errorCallback, _temp6) {
489
- var _ref16 = _temp6 === void 0 ? {} : _temp6,
490
- options = _ref16.options;
622
+ var privateValidateForm = useCallback(function (successCallback, errorCallback, _temp7) {
623
+ var _ref19 = _temp7 === void 0 ? {} : _temp7,
624
+ options = _ref19.options;
625
+
626
+ var newUUID = function getUUID() {
627
+ if (successCallback || errorCallback) {
628
+ return v4();
629
+ }
630
+
631
+ return undefined;
632
+ }();
491
633
 
492
634
  setWriter(function (w) {
493
635
  try {
494
636
  schemaRef.current.validateSync(w.form, _extends({
495
637
  abortEarly: false
496
638
  }, options));
497
- executeCb(successCallback);
639
+ newUUID && executeCb(newUUID, successCallback);
498
640
  return _extends({}, w, {
499
641
  errors: {}
500
642
  });
@@ -505,19 +647,19 @@ var useFormbit = (function (_ref) {
505
647
  }
506
648
 
507
649
  var inner = e.inner;
508
- var errors = inner.reduce(function (acc, _ref17) {
509
- var message = _ref17.message,
510
- _ref17$path = _ref17.path,
511
- path = _ref17$path === void 0 ? '' : _ref17$path;
650
+ var errors = inner.reduce(function (acc, _ref20) {
651
+ var message = _ref20.message,
652
+ _ref20$path = _ref20.path,
653
+ path = _ref20$path === void 0 ? '' : _ref20$path;
512
654
  return set(acc, path, message);
513
655
  }, {});
514
656
 
515
- var _liveValidation = inner.reduce(function (acc, _ref18) {
516
- var _extends6;
657
+ var _liveValidation = inner.reduce(function (acc, _ref21) {
658
+ var _extends7;
517
659
 
518
- var _ref18$path = _ref18.path,
519
- path = _ref18$path === void 0 ? '' : _ref18$path;
520
- return _extends({}, acc, (_extends6 = {}, _extends6[path] = true, _extends6));
660
+ var _ref21$path = _ref21.path,
661
+ path = _ref21$path === void 0 ? '' : _ref21$path;
662
+ return _extends({}, acc, (_extends7 = {}, _extends7[path] = true, _extends7));
521
663
  }, w.liveValidation);
522
664
 
523
665
  var newWriter = _extends({}, w, {
@@ -525,7 +667,7 @@ var useFormbit = (function (_ref) {
525
667
  liveValidation: _liveValidation
526
668
  });
527
669
 
528
- executeCb(errorCallback);
670
+ newUUID && executeCb(newUUID, errorCallback);
529
671
  return newWriter;
530
672
  }
531
673
  });
@@ -610,6 +752,7 @@ var useFormbit = (function (_ref) {
610
752
  isFormValid: isFormValid,
611
753
  liveValidation: liveValidation,
612
754
  remove: remove,
755
+ removeAll: removeAll,
613
756
  resetForm: resetForm,
614
757
  setError: setError,
615
758
  setSchema: setSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/helpers/obj-leaves.ts","../src/helpers/constants.ts","../src/types/helpers.ts","../src/validate-sync-all.ts","../src/use-execute-callbacks.ts","../src/use-formbit.ts","../src/formbit-context.tsx"],"sourcesContent":["type ObjectLeaves = (obj: unknown, acc?: string[]) => string[]\n\nfunction isObject(val: unknown): val is Record<string, unknown> {\n return val != null && typeof val === 'object' && Array.isArray(val) === false\n}\n\nconst objLeaves: ObjectLeaves = (obj, acc = []) => {\n const fn = (o: unknown, s?: string) => {\n if (Array.isArray(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}[${k}]` : k\n\n const isLeaf = fn(o[+k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n if (isObject(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}.${k}` : k\n\n const isLeaf = fn(o[k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n return false\n }\n\n fn(obj)\n return acc\n}\n\nexport default objLeaves\n","export const TEST_ERROR_MESSAGES = {\n MIN: 'must be greater than or equal',\n REQUIRED: 'is a required field'\n}\n\nexport enum ACTIONS {\n write = 'write',\n remove = 'remove'\n}\n\nexport const MISSING_CONTEXT_ERROR =\n 'No FormbitContext.Provider found, useFormbitContext can only be called inside proper context'\n","import { ValidationError } from 'yup'\n\nexport const isValidationError = (error: unknown): error is ValidationError => {\n if (error && typeof error === 'object' && 'message' in error && 'path' in error && 'inner' in error) {\n const { path, message, inner } = error\n\n return (typeof path === 'string' || path === undefined) &&\n (typeof message === 'string' || path === undefined) &&\n Array.isArray(inner)\n }\n\n return false\n}\n","import { isEmpty } from 'lodash'\nimport { Form, InitialValues, ValidateOptions, ValidationFormbitError, ValidationSchema } from './types'\nimport { isValidationError } from './types/helpers'\n\n/* We implement the validateSyncAll because yup.pick won't work with\n * schema with nested values: https://github.com/jquense/yup/issues/1269 */\nexport const validateSyncAll = <Values extends InitialValues> (\n paths:string[],\n schema:ValidationSchema<Values>,\n form: Form,\n options: ValidateOptions = {}\n): ValidationFormbitError[] => {\n let errors: ValidationFormbitError[] = []\n\n if (isEmpty(paths)) {\n return errors\n }\n\n for (const pathToValidate of paths) {\n try {\n schema.validateSyncAt(pathToValidate, form, options)\n } catch (e) {\n if (isValidationError(e)) {\n const { message, path } = e\n\n errors = errors.concat({ message, path })\n }\n\n if (options?.abortEarly) {\n break\n }\n }\n }\n\n return errors\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport { GenericCallback, InitialValues, SetError, Writer } from './types'\n\ntype CbTypes<Values extends InitialValues> = GenericCallback<Values> | undefined\n\ntype RefsStore<Values extends InitialValues> = CbTypes<Values>[]\n\n/**\n * useExecuteCallbacks\n *\n * This hook is meant to give a simple way to make sure that callbacks are called only once,\n * even if they are called inside React hooks like useEffect or setState.\n *\n *\n */\nexport default <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => {\n const callbacksStore = useRef<RefsStore<Partial<Values>>>([])\n\n useEffect(() => {\n if (callbacksStore.current.length) {\n callbacksStore.current.forEach((cb) => {\n if (cb) {\n cb(writer, setError)\n }\n })\n callbacksStore.current = []\n }\n }, [setError, writer])\n\n /**\n * executeCallbacks\n * @param cb Callback that needs to be executed.\n *\n */\n return useCallback((cb?: GenericCallback<Partial<Values>>) => {\n if (cb) {\n callbacksStore.current.push(cb)\n }\n }, [])\n}\n","import objLeaves from './helpers/obj-leaves'\nimport {\n useCallback, useRef, useState\n} from 'react'\nimport { ACTIONS } from './helpers/constants'\nimport {\n Check,\n ErrorFn,\n FormbitObject,\n InitialValues,\n IsFormInvalid,\n IsFormValid,\n LiveValidation,\n LiveValidationFn,\n PrivateValidateForm,\n Remove,\n SetError,\n SubmitForm,\n SuccessCallback,\n Validate,\n ValidateAll,\n ValidateForm,\n ValidationSchema,\n Write,\n WriteAll,\n WriteOrRemove,\n Writer\n} from './types'\nimport { isValidationError } from './types/helpers'\nimport { validateSyncAll } from './validate-sync-all'\nimport useExecuteCallbacks from './use-execute-callbacks'\nimport { cloneDeep, get, isEmpty, omit, set } from 'lodash'\n\ntype UseFormbitParams<Values extends InitialValues> = {\n initialValues?: Partial<Values>,\n yup: ValidationSchema<Values>\n}\n\nexport default <Values extends InitialValues>({\n initialValues = {},\n yup: schema\n}: UseFormbitParams<Values>): FormbitObject<Values> => {\n const schemaRef = useRef<ValidationSchema<Values>>(schema)\n\n const [writer, setWriter] = useState<Writer<Partial<Values>>>({\n form: initialValues,\n initialValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n })\n\n const initialize = useCallback((values: Partial<Values>) => {\n setWriter((w) => ({\n ...w,\n initialValues: values,\n form: values,\n errors: {},\n liveValidation: {},\n isDirty: false\n }))\n }, [])\n\n const setSchema = useCallback((newSchema: ValidationSchema<Values>) => { schemaRef.current = newSchema }, [])\n\n const setError: SetError = useCallback((path, value) => {\n setWriter((w) => {\n const errors = set(cloneDeep(w.errors), path, value)\n\n return { ...w, errors }\n })\n }, [])\n\n const executeCb = useExecuteCallbacks<Partial<Values>>(writer, setError)\n\n const writeOrRemove: WriteOrRemove<Values> = useCallback((\n path,\n value,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {},\n action\n ) => {\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = (function execute() {\n switch (action) {\n case ACTIONS.write: return set(cloneDeep(w.form), path, value)\n\n case ACTIONS.remove: return omit<Partial<Values>>(cloneDeep(w.form), path)\n\n default: return cloneDeep(w.form)\n }\n }())\n\n const newWriter: Writer<Partial<Values>> = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n executeCb(successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: innerPath, message }) => innerPath ? set(acc, innerPath, message) : acc,\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: innerPath }) => innerPath ? ({ ...acc, [innerPath]: true }) : acc,\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const write: Write<Values> = useCallback((path, value, options) =>\n writeOrRemove(path, value, options, ACTIONS.write), [writeOrRemove])\n\n const remove: Remove<Values> = useCallback((path, options) =>\n writeOrRemove(path, undefined, options, ACTIONS.remove), [writeOrRemove])\n\n const writeAll: WriteAll<Values> = useCallback((\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, [key, val]) => set(acc, key, val),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n executeCb(successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validate: Validate<Values> = useCallback((\n path,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = set(cloneDeep(w.errors), path, undefined)\n\n // VALIDATE\n const inner = validateSyncAll([path], schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: errorPath = '', message }) => set(acc, errorPath, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: errorPath = '' }) => ({ ...acc, [errorPath]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validateAll: ValidateAll<Values> = useCallback((\n paths,\n { successCallback, errorCallback, options } = {}\n ) => {\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n executeCb(successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const check: Check<Partial<Values>> = useCallback((\n json,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n try {\n schema.validateSync(json, { abortEarly: false, ...options })\n successCallback?.(json, writer, setError)\n\n return undefined\n } catch (e) {\n if (isValidationError(e)) {\n const { inner } = e\n\n errorCallback?.(json, inner, writer, setError)\n\n return inner\n }\n\n return undefined\n }\n }, [schema, setError, writer])\n\n const privateValidateForm: PrivateValidateForm<Partial<Values>> = useCallback((\n successCallback,\n errorCallback,\n { isDirty: _, options } = {}\n ) => {\n setWriter((w) => {\n try {\n // abortEarly: false as default is to be retrocompatible\n schemaRef.current.validateSync(w.form, { abortEarly: false, ...options })\n\n executeCb(successCallback)\n\n return { ...w, errors: {} }\n } catch (e) {\n if (!isValidationError(e)) {\n // Checking if error is not formbit-related (e.g. a bug inside the successCallback)\n console.error(e)\n return w\n }\n\n const { inner } = e\n\n const errors = inner.reduce(\n (acc, { message, path = '' }) => set(acc, path, message),\n {}\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const newWriter = { ...w, errors, liveValidation }\n\n executeCb(errorCallback)\n\n return newWriter\n }\n })\n }, [executeCb])\n\n const validateForm: ValidateForm<Partial<Values>> = useCallback((successCallback, errorCallback, options = {}) =>\n privateValidateForm(\n successCallback,\n errorCallback,\n { options }\n ), [privateValidateForm])\n\n const submitForm: SubmitForm<Values> =\n useCallback((successCallback, errorCallback, options = {}) => {\n const fn = () => setWriter((w) => ({ ...w, isDirty: false }))\n\n const successCallbackAndClearIsDirty: SuccessCallback<Partial<Values>> = (a, b) => {\n // Success callback is called only if the form is valid so we can safely cast a as Writer<Values>\n const writer = a as Writer<Values>\n\n // __metadata is a field used to store metadata about the form and should not be submitted\n const { __metadata: _, ...form } = writer.form\n\n return successCallback({ ...writer, form }, b, fn)\n }\n\n return privateValidateForm(\n successCallbackAndClearIsDirty,\n errorCallback,\n { options }\n )\n }, [privateValidateForm])\n\n const resetForm = useCallback(() => {\n setWriter((w) => ({\n ...w,\n form: w.initialValues,\n errors: {},\n isDirty: false,\n liveValidation: {}\n }))\n }, [])\n\n const isFormValid: IsFormValid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).every((leaf) => !get(e, leaf))\n }, [writer.errors])\n\n const isFormInvalid: IsFormInvalid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).some((leaf) => get(e, leaf))\n }, [writer.errors])\n\n const error: ErrorFn = useCallback((path: string) => get(writer.errors, path, undefined), [writer.errors])\n\n const liveValidation: LiveValidationFn = useCallback(\n (path: string) => get(writer.liveValidation, path, undefined),\n [writer.liveValidation]\n )\n\n return {\n check,\n error,\n errors: writer.errors,\n form: writer.form,\n initialize,\n isDirty: writer.isDirty,\n isFormInvalid,\n isFormValid,\n liveValidation,\n remove,\n resetForm,\n setError,\n setSchema,\n submitForm,\n validate,\n validateAll,\n validateForm,\n write,\n writeAll\n }\n}\n","import React, { useContext, createContext, PropsWithChildren } from 'react'\nimport useFormbit from './use-formbit'\nimport * as yup from 'yup'\nimport { FormbitObject, InitialValues, ValidationSchema } from './types'\nimport { MISSING_CONTEXT_ERROR } from './helpers/constants'\nimport { once } from 'lodash'\n\ntype Props<Values extends InitialValues> = {\n initialValues?: Partial<Values> | {}\n schema: ValidationSchema<Values>\n} & PropsWithChildren\n\nconst createFormbitContext =\n once(<Values extends InitialValues>() => createContext<FormbitObject<Values> | undefined>(undefined))\n\nexport default function FormbitContextProvider<Values extends InitialValues>({\n initialValues = {},\n schema,\n children\n}: Props<Values>) {\n const FormbitContext = createFormbitContext<Values>()\n\n const value = useFormbit({ initialValues, yup: schema || yup.object() })\n\n return (\n <FormbitContext.Provider value={value}>{children}</FormbitContext.Provider>\n )\n}\n\nexport const useFormbitContext = <Values extends InitialValues>() => {\n const context = useContext(createFormbitContext<Values>())\n\n if (!context) {\n // This error can only be thrown if this hook is called outside the context,\n // and it should only happen during develop.\n throw new Error(MISSING_CONTEXT_ERROR)\n }\n\n return context\n}\n"],"names":["isObject","val","Array","isArray","objLeaves","obj","acc","fn","o","s","Object","keys","forEach","k","path","isLeaf","push","ACTIONS","MISSING_CONTEXT_ERROR","isValidationError","error","message","inner","undefined","validateSyncAll","paths","schema","form","options","errors","isEmpty","pathToValidate","validateSyncAt","e","concat","abortEarly","writer","setError","callbacksStore","useRef","useEffect","current","length","cb","useCallback","initialValues","yup","schemaRef","useState","liveValidation","isDirty","setWriter","initialize","values","w","setSchema","newSchema","value","set","cloneDeep","executeCb","useExecuteCallbacks","writeOrRemove","action","noLiveValidation","pathsToValidate","successCallback","errorCallback","liveValidationPaths","execute","write","remove","omit","newWriter","cleanErrors","reduce","key","neww","innerPath","writeAll","arr","validate","errorPath","validateAll","check","json","validateSync","privateValidateForm","_","console","validateForm","submitForm","successCallbackAndClearIsDirty","a","b","resetForm","isFormValid","every","leaf","get","isFormInvalid","some","createFormbitContext","once","createContext","FormbitContextProvider","children","FormbitContext","useFormbit","useFormbitContext","context","useContext","Error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAASA,QAAT,CAAkBC,GAAlB;AACE,SAAOA,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAA9B,IAA0CC,KAAK,CAACC,OAAN,CAAcF,GAAd,MAAuB,KAAxE;AACD;;AAED,IAAMG,SAAS,GAAiB,SAA1BA,SAA0B,CAACC,GAAD,EAAMC,GAAN;MAAMA;AAAAA,IAAAA,MAAM;;;AAC1C,MAAMC,EAAE,GAAG,SAALA,EAAK,CAACC,CAAD,EAAaC,CAAb;AACT,QAAIP,KAAK,CAACC,OAAN,CAAcK,CAAd,CAAJ,EAAsB;AACpB,aAAOE,MAAM,CAACC,IAAP,CAAYH,CAAZ,EAAeI,OAAf,CAAuB,UAACC,CAAD;AAC5B,YAAMC,IAAI,GAAGL,CAAC,GAAMA,CAAN,SAAWI,CAAX,SAAkBA,CAAhC;AAEA,YAAME,MAAM,GAAGR,EAAE,CAACC,CAAC,CAAC,CAACK,CAAF,CAAF,EAAQC,IAAR,CAAF,KAAoB,KAAnC;;AACA,YAAIC,MAAJ,EAAY;AACVT,UAAAA,GAAG,CAACU,IAAJ,CAASF,IAAT;AACD;AACF,OAPM,CAAP;AAQD;;AAED,QAAId,QAAQ,CAACQ,CAAD,CAAZ,EAAiB;AACf,aAAOE,MAAM,CAACC,IAAP,CAAYH,CAAZ,EAAeI,OAAf,CAAuB,UAACC,CAAD;AAC5B,YAAMC,IAAI,GAAGL,CAAC,GAAMA,CAAN,SAAWI,CAAX,GAAiBA,CAA/B;AAEA,YAAME,MAAM,GAAGR,EAAE,CAACC,CAAC,CAACK,CAAD,CAAF,EAAOC,IAAP,CAAF,KAAmB,KAAlC;;AACA,YAAIC,MAAJ,EAAY;AACVT,UAAAA,GAAG,CAACU,IAAJ,CAASF,IAAT;AACD;AACF,OAPM,CAAP;AAQD;;AAED,WAAO,KAAP;AACD,GAxBD;;AA0BAP,EAAAA,EAAE,CAACF,GAAD,CAAF;AACA,SAAOC,GAAP;AACD,CA7BD;;ACDA,IAAYW,OAAZ;;AAAA,WAAYA;AACVA,EAAAA,gBAAA,UAAA;AACAA,EAAAA,iBAAA,WAAA;AACD,CAHD,EAAYA,OAAO,KAAPA,OAAO,KAAA,CAAnB;;AAKA,AAAO,IAAMC,qBAAqB,GAChC,8FADK;;ACRA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD;AAC/B,MAAIA,KAAK,IAAI,OAAOA,KAAP,KAAiB,QAA1B,IAAsC,aAAaA,KAAnD,IAA4D,UAAUA,KAAtE,IAA+E,WAAWA,KAA9F,EAAqG;AAAA,QAC3FN,IAD2F,GAClEM,KADkE,CAC3FN,IAD2F;AAAA,QACrFO,OADqF,GAClED,KADkE,CACrFC,OADqF;AAAA,QAC5EC,KAD4E,GAClEF,KADkE,CAC5EE,KAD4E;AAGnG,WAAO,CAAC,OAAOR,IAAP,KAAgB,QAAhB,IAA4BA,IAAI,KAAKS,SAAtC,MACE,OAAOF,OAAP,KAAmB,QAAnB,IAA+BP,IAAI,KAAKS,SAD1C,KAECrB,KAAK,CAACC,OAAN,CAAcmB,KAAd,CAFR;AAGD;;AAED,SAAO,KAAP;AACD,CAVM;;ACIA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAC7BC,KAD6B,EAE7BC,MAF6B,EAG7BC,IAH6B,EAI7BC,OAJ6B;MAI7BA;AAAAA,IAAAA,UAA2B;;;AAE3B,MAAIC,MAAM,GAA6B,EAAvC;;AAEA,MAAIC,OAAO,CAACL,KAAD,CAAX,EAAoB;AAClB,WAAOI,MAAP;AACD;;AAED,uDAA6BJ,KAA7B,wCAAoC;AAAA,QAAzBM,cAAyB;;AAClC,QAAI;AACFL,MAAAA,MAAM,CAACM,cAAP,CAAsBD,cAAtB,EAAsCJ,IAAtC,EAA4CC,OAA5C;AACD,KAFD,CAEE,OAAOK,CAAP,EAAU;AAAA;;AACV,UAAId,iBAAiB,CAACc,CAAD,CAArB,EAA0B;AAAA,YAChBZ,OADgB,GACEY,CADF,CAChBZ,OADgB;AAAA,YACPP,IADO,GACEmB,CADF,CACPnB,IADO;AAGxBe,QAAAA,MAAM,GAAGA,MAAM,CAACK,MAAP,CAAc;AAAEb,UAAAA,OAAO,EAAPA,OAAF;AAAWP,UAAAA,IAAI,EAAJA;AAAX,SAAd,CAAT;AACD;;AAED,sBAAIc,OAAJ,qCAAI,SAASO,UAAb,EAAyB;AACvB;AACD;AACF;AACF;;AAED,SAAON,MAAP;AACD,CA7BM;;ACSP,2BAAe,UAA+BO,MAA/B,EAAuDC,QAAvD;AACb,MAAMC,cAAc,GAAGC,MAAM,CAA6B,EAA7B,CAA7B;AAEAC,EAAAA,SAAS,CAAC;AACR,QAAIF,cAAc,CAACG,OAAf,CAAuBC,MAA3B,EAAmC;AACjCJ,MAAAA,cAAc,CAACG,OAAf,CAAuB7B,OAAvB,CAA+B,UAAC+B,EAAD;AAC7B,YAAIA,EAAJ,EAAQ;AACNA,UAAAA,EAAE,CAACP,MAAD,EAASC,QAAT,CAAF;AACD;AACF,OAJD;AAKAC,MAAAA,cAAc,CAACG,OAAf,GAAyB,EAAzB;AACD;AACF,GATQ,EASN,CAACJ,QAAD,EAAWD,MAAX,CATM,CAAT;AAgBA,SAAOQ,WAAW,CAAC,UAACD,EAAD;AACjB,QAAIA,EAAJ,EAAQ;AACNL,MAAAA,cAAc,CAACG,OAAf,CAAuBzB,IAAvB,CAA4B2B,EAA5B;AACD;AACF,GAJiB,EAIf,EAJe,CAAlB;AAKD,CAxBD;;ACuBA,kBAAe;gCACbE;MAAAA,gDAAgB;MACXnB,cAALoB;AAEA,MAAMC,SAAS,GAAGR,MAAM,CAA2Bb,MAA3B,CAAxB;;kBAE4BsB,QAAQ,CAA0B;AAC5DrB,IAAAA,IAAI,EAAEkB,aADsD;AAE5DA,IAAAA,aAAa,EAAbA,aAF4D;AAG5DhB,IAAAA,MAAM,EAAE,EAHoD;AAI5DoB,IAAAA,cAAc,EAAE,EAJ4C;AAK5DC,IAAAA,OAAO,EAAE;AALmD,GAA1B;MAA7Bd;MAAQe;;AAQf,MAAMC,UAAU,GAAGR,WAAW,CAAC,UAACS,MAAD;AAC7BF,IAAAA,SAAS,CAAC,UAACG,CAAD;AAAA,0BACLA,CADK;AAERT,QAAAA,aAAa,EAAEQ,MAFP;AAGR1B,QAAAA,IAAI,EAAE0B,MAHE;AAIRxB,QAAAA,MAAM,EAAE,EAJA;AAKRoB,QAAAA,cAAc,EAAE,EALR;AAMRC,QAAAA,OAAO,EAAE;AAND;AAAA,KAAD,CAAT;AAQD,GAT6B,EAS3B,EAT2B,CAA9B;AAWA,MAAMK,SAAS,GAAGX,WAAW,CAAC,UAACY,SAAD;AAA2CT,IAAAA,SAAS,CAACN,OAAV,GAAoBe,SAApB;AAA+B,GAA3E,EAA6E,EAA7E,CAA7B;AAEA,MAAMnB,QAAQ,GAAaO,WAAW,CAAC,UAAC9B,IAAD,EAAO2C,KAAP;AACrCN,IAAAA,SAAS,CAAC,UAACG,CAAD;AACR,UAAMzB,MAAM,GAAG6B,GAAG,CAACC,SAAS,CAACL,CAAC,CAACzB,MAAH,CAAV,EAAsBf,IAAtB,EAA4B2C,KAA5B,CAAlB;AAEA,0BAAYH,CAAZ;AAAezB,QAAAA,MAAM,EAANA;AAAf;AACD,KAJQ,CAAT;AAKD,GANqC,EAMnC,EANmC,CAAtC;AAQA,MAAM+B,SAAS,GAAGC,mBAAmB,CAAkBzB,MAAlB,EAA0BC,QAA1B,CAArC;AAEA,MAAMyB,aAAa,GAA0BlB,WAAW,CAAC,UACvD9B,IADuD,EAEvD2C,KAFuD,SAUvDM,MAVuD;mCASnD;sCALFC;QAAAA,sDAAmB;sCACnBC;QAAAA,qDAAkB;QAClBC,wBAAAA;QACAC,sBAAAA;8BACAvC;QAAAA,qCAAU;;AAIZuB,IAAAA,SAAS,CAAC,UAACG,CAAD;AACR,UAAMc,mBAAmB,GAAGJ,gBAAgB,GAAG,EAAH,GAAQtD,MAAM,CAACC,IAAP,CAAY2C,CAAC,CAACL,cAAd,CAApD;AACA,UAAMxB,KAAK,GAAGwC,eAAe,CAAC/B,MAAhB,CAAuBkC,mBAAvB,CAAd;;AAEA,UAAMzC,IAAI,GAAI,SAAS0C,OAAT;AACZ,gBAAQN,MAAR;AACE,eAAK9C,OAAO,CAACqD,KAAb;AAAoB,mBAAOZ,GAAG,CAACC,SAAS,CAACL,CAAC,CAAC3B,IAAH,CAAV,EAAoBb,IAApB,EAA0B2C,KAA1B,CAAV;;AAEpB,eAAKxC,OAAO,CAACsD,MAAb;AAAqB,mBAAOC,IAAI,CAAkBb,SAAS,CAACL,CAAC,CAAC3B,IAAH,CAA3B,EAAqCb,IAArC,CAAX;;AAErB;AAAS,mBAAO6C,SAAS,CAACL,CAAC,CAAC3B,IAAH,CAAhB;AALX;AAOD,OARa,EAAd;;AAUA,UAAM8C,SAAS,gBAAiCnB,CAAjC;AAAoC3B,QAAAA,IAAI,EAAJA,IAApC;AAA0CuB,QAAAA,OAAO,EAAE;AAAnD,QAAf;;AAEA,UAAIzB,KAAK,CAACiB,MAAN,KAAiB,CAArB,EAAwB;AACtBkB,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOO,SAAP;AACD;;AAGD,UAAMC,WAAW,GAAGjD,KAAK,CAACkD,MAAN,CAClB,UAACrE,GAAD,EAAMsE,GAAN;AAAA,eAAclB,GAAG,CAACpD,GAAD,EAAMsE,GAAN,EAAWrD,SAAX,CAAjB;AAAA,OADkB,EAElBoC,SAAS,CAACc,SAAS,CAAC5C,MAAX,CAFS,CAApB;AAMA,UAAMP,KAAK,GAAGE,eAAe,CAACC,KAAD,EAAQsB,SAAS,CAACN,OAAlB,EAA2BgC,SAAS,CAAC9C,IAArC,EAA2CC,OAA3C,CAA7B;;AAEA,UAAIE,OAAO,CAACR,KAAD,CAAX,EAAoB;AAClB,YAAMuD,KAAI,gBAAQJ,SAAR;AAAmB5C,UAAAA,MAAM,EAAE6C;AAA3B,UAAV;;AAEAd,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOW,KAAP;AACD;;AAED,UAAMhD,MAAM,GAAGP,KAAK,CAACqD,MAAN,CACb,UAACrE,GAAD;AAAA,YAAcwE,SAAd,SAAQhE,IAAR;AAAA,YAAyBO,OAAzB,SAAyBA,OAAzB;AAAA,eAAuCyD,SAAS,GAAGpB,GAAG,CAACpD,GAAD,EAAMwE,SAAN,EAAiBzD,OAAjB,CAAN,GAAkCf,GAAlF;AAAA,OADa,EAEboE,WAFa,CAAf;AAKA,UAAMzB,cAAc,GAAmB3B,KAAK,CAACqD,MAAN,CACrC,UAACrE,GAAD;AAAA;;AAAA,YAAcwE,SAAd,SAAQhE,IAAR;AAAA,eAA8BgE,SAAS,gBAASxE,GAAT,6BAAewE,SAAf,IAA2B,IAA3B,gBAAqCxE,GAA5E;AAAA,OADqC,EAErCmE,SAAS,CAACxB,cAF2B,CAAvC;;AAKA,UAAM4B,IAAI,gBAAQJ,SAAR;AAAmB5C,QAAAA,MAAM,EAANA,MAAnB;AAA2BoB,QAAAA,cAAc,EAAdA;AAA3B,QAAV;;AAEAW,MAAAA,SAAS,CAACO,aAAD,CAAT;AAEA,aAAOU,IAAP;AACD,KAtDQ,CAAT;AAuDD,GAnEuD,EAmErD,CAACjB,SAAD,CAnEqD,CAAxD;AAqEA,MAAMU,KAAK,GAAkB1B,WAAW,CAAC,UAAC9B,IAAD,EAAO2C,KAAP,EAAc7B,OAAd;AAAA,WACvCkC,aAAa,CAAChD,IAAD,EAAO2C,KAAP,EAAc7B,OAAd,EAAuBX,OAAO,CAACqD,KAA/B,CAD0B;AAAA,GAAD,EACc,CAACR,aAAD,CADd,CAAxC;AAGA,MAAMS,MAAM,GAAmB3B,WAAW,CAAC,UAAC9B,IAAD,EAAOc,OAAP;AAAA,WACzCkC,aAAa,CAAChD,IAAD,EAAOS,SAAP,EAAkBK,OAAlB,EAA2BX,OAAO,CAACsD,MAAnC,CAD4B;AAAA,GAAD,EACiB,CAACT,aAAD,CADjB,CAA1C;AAGA,MAAMiB,QAAQ,GAAqBnC,WAAW,CAAC,UAC7CoC,GAD6C;oCAQzC;sCALFhB;QAAAA,sDAAmB;sCACnBC;QAAAA,qDAAkB;QAClBC,wBAAAA;QACAC,sBAAAA;8BACAvC;QAAAA,qCAAU;;AAGZuB,IAAAA,SAAS,CAAC,UAACG,CAAD;AACR,UAAMc,mBAAmB,GAAGJ,gBAAgB,GAAG,EAAH,GAAQtD,MAAM,CAACC,IAAP,CAAY2C,CAAC,CAACL,cAAd,CAApD;AACA,UAAMxB,KAAK,GAAGwC,eAAe,CAAC/B,MAAhB,CAAuBkC,mBAAvB,CAAd;AAEA,UAAMzC,IAAI,GAAGqD,GAAG,CAACL,MAAJ,CACX,UAACrE,GAAD;AAAA,YAAOsE,GAAP;AAAA,YAAY3E,GAAZ;AAAA,eAAqByD,GAAG,CAACpD,GAAD,EAAMsE,GAAN,EAAW3E,GAAX,CAAxB;AAAA,OADW,EAEX0D,SAAS,CAACL,CAAC,CAAC3B,IAAH,CAFE,CAAb;;AAKA,UAAM8C,SAAS,gBAAQnB,CAAR;AAAW3B,QAAAA,IAAI,EAAJA,IAAX;AAAiBuB,QAAAA,OAAO,EAAE;AAA1B,QAAf;;AAEA,UAAIzB,KAAK,CAACiB,MAAN,KAAiB,CAArB,EAAwB;AACtBkB,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOO,SAAP;AACD;;AAGD,UAAMC,WAAW,GAAGjD,KAAK,CAACkD,MAAN,CAClB,UAACrE,GAAD,EAAMsE,GAAN;AAAA,eAAclB,GAAG,CAACpD,GAAD,EAAMsE,GAAN,EAAWrD,SAAX,CAAjB;AAAA,OADkB,EAElBoC,SAAS,CAACc,SAAS,CAAC5C,MAAX,CAFS,CAApB;AAMA,UAAMP,KAAK,GAAGE,eAAe,CAACC,KAAD,EAAQsB,SAAS,CAACN,OAAlB,EAA2BgC,SAAS,CAAC9C,IAArC,EAA2CC,OAA3C,CAA7B;;AAEA,UAAIE,OAAO,CAACR,KAAD,CAAX,EAAoB;AAClB,YAAMuD,MAAI,gBAAQJ,SAAR;AAAmB5C,UAAAA,MAAM,EAAE6C;AAA3B,UAAV;;AAEAd,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOW,MAAP;AACD;;AAED,UAAMhD,MAAM,GAAGP,KAAK,CAACqD,MAAN,CACb,UAACrE,GAAD;AAAA,+BAAQQ,IAAR;AAAA,YAAQA,IAAR,2BAAe,EAAf;AAAA,YAAmBO,OAAnB,SAAmBA,OAAnB;AAAA,eAAiCqC,GAAG,CAACpD,GAAD,EAAMQ,IAAN,EAAYO,OAAZ,CAApC;AAAA,OADa,EAEbqD,WAFa,CAAf;AAKA,UAAMzB,cAAc,GAAmB3B,KAAK,CAACqD,MAAN,CACrC,UAACrE,GAAD;AAAA;;AAAA,+BAAQQ,IAAR;AAAA,YAAQA,IAAR,2BAAe,EAAf;AAAA,4BAA8BR,GAA9B,6BAAoCQ,IAApC,IAA2C,IAA3C;AAAA,OADqC,EAErC2D,SAAS,CAACxB,cAF2B,CAAvC;;AAKA,UAAM4B,IAAI,gBAAQJ,SAAR;AAAmB5C,QAAAA,MAAM,EAANA,MAAnB;AAA2BoB,QAAAA,cAAc,EAAdA;AAA3B,QAAV;;AAEAW,MAAAA,SAAS,CAACO,aAAD,CAAT;AAEA,aAAOU,IAAP;AACD,KAjDQ,CAAT;AAkDD,GA5D6C,EA4D3C,CAACjB,SAAD,CA5D2C,CAA9C;AA8DA,MAAMqB,QAAQ,GAAqBrC,WAAW,CAAC,UAC7C9B,IAD6C;oCAMzC;QAHFoD,wBAAAA;QACAC,sBAAAA;QACAvC,gBAAAA;;AAGFuB,IAAAA,SAAS,CAAC,UAACG,CAAD;AAER,UAAMoB,WAAW,GAAGhB,GAAG,CAACC,SAAS,CAACL,CAAC,CAACzB,MAAH,CAAV,EAAsBf,IAAtB,EAA4BS,SAA5B,CAAvB;AAGA,UAAMD,KAAK,GAAGE,eAAe,CAAC,CAACV,IAAD,CAAD,EAASiC,SAAS,CAACN,OAAnB,EAA4Ba,CAAC,CAAC3B,IAA9B,EAAoCC,OAApC,CAA7B;;AAEA,UAAIE,OAAO,CAACR,KAAD,CAAX,EAAoB;AAClB,YAAMuD,MAAI,gBAAQvB,CAAR;AAAWzB,UAAAA,MAAM,EAAE6C;AAAnB,UAAV;;AAEAd,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOW,MAAP;AACD;;AAED,UAAMhD,MAAM,GAAGP,KAAK,CAACqD,MAAN,CACb,UAACrE,GAAD;AAAA,iCAAQQ,IAAR;AAAA,YAAcoE,SAAd,4BAA0B,EAA1B;AAAA,YAA8B7D,OAA9B,UAA8BA,OAA9B;AAAA,eAA4CqC,GAAG,CAACpD,GAAD,EAAM4E,SAAN,EAAiB7D,OAAjB,CAA/C;AAAA,OADa,EAEbqD,WAFa,CAAf;AAKA,UAAMzB,cAAc,GAAmB3B,KAAK,CAACqD,MAAN,CACrC,UAACrE,GAAD;AAAA;;AAAA,iCAAQQ,IAAR;AAAA,YAAcoE,SAAd,4BAA0B,EAA1B;AAAA,4BAAyC5E,GAAzC,6BAA+C4E,SAA/C,IAA2D,IAA3D;AAAA,OADqC,EAErC5B,CAAC,CAACL,cAFmC,CAAvC;;AAKA,UAAM4B,IAAI,gBAAQvB,CAAR;AAAWzB,QAAAA,MAAM,EAANA,MAAX;AAAmBoB,QAAAA,cAAc,EAAdA;AAAnB,QAAV;;AAEAW,MAAAA,SAAS,CAACO,aAAD,CAAT;AAEA,aAAOU,IAAP;AACD,KA9BQ,CAAT;AA+BD,GAvC6C,EAuC3C,CAACjB,SAAD,CAvC2C,CAA9C;AAyCA,MAAMuB,WAAW,GAAwBvC,WAAW,CAAC,UACnDnB,KADmD;qCAEL;QAA5CyC,yBAAAA;QAAiBC,uBAAAA;QAAevC,iBAAAA;;AAElCuB,IAAAA,SAAS,CAAC,UAACG,CAAD;AAER,UAAMoB,WAAW,GAAGjD,KAAK,CAACkD,MAAN,CAClB,UAACrE,GAAD,EAAMQ,IAAN;AAAA,eAAe4C,GAAG,CAACpD,GAAD,EAAMQ,IAAN,EAAYS,SAAZ,CAAlB;AAAA,OADkB,EAElBoC,SAAS,CAACL,CAAC,CAACzB,MAAH,CAFS,CAApB;AAMA,UAAMP,KAAK,GAAGE,eAAe,CAACC,KAAD,EAAQsB,SAAS,CAACN,OAAlB,EAA2Ba,CAAC,CAAC3B,IAA7B,EAAmCC,OAAnC,CAA7B;;AAEA,UAAIE,OAAO,CAACR,KAAD,CAAX,EAAoB;AAClB,YAAMuD,MAAI,gBAAQvB,CAAR;AAAWzB,UAAAA,MAAM,EAAE6C;AAAnB,UAAV;;AAEAd,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,eAAOW,MAAP;AACD;;AAED,UAAMhD,MAAM,GAAGP,KAAK,CAACqD,MAAN,CACb,UAACrE,GAAD;AAAA,iCAAQQ,IAAR;AAAA,YAAQA,IAAR,4BAAe,EAAf;AAAA,YAAmBO,OAAnB,UAAmBA,OAAnB;AAAA,eAAiCqC,GAAG,CAACpD,GAAD,EAAMQ,IAAN,EAAYO,OAAZ,CAApC;AAAA,OADa,EAEbqD,WAFa,CAAf;AAKA,UAAMzB,cAAc,GAAmB3B,KAAK,CAACqD,MAAN,CACrC,UAACrE,GAAD;AAAA;;AAAA,iCAAQQ,IAAR;AAAA,YAAQA,IAAR,4BAAe,EAAf;AAAA,4BAA8BR,GAA9B,6BAAoCQ,IAApC,IAA2C,IAA3C;AAAA,OADqC,EAErCwC,CAAC,CAACL,cAFmC,CAAvC;;AAKA,UAAM4B,IAAI,gBAAQvB,CAAR;AAAWzB,QAAAA,MAAM,EAANA,MAAX;AAAmBoB,QAAAA,cAAc,EAAdA;AAAnB,QAAV;;AAEAW,MAAAA,SAAS,CAACO,aAAD,CAAT;AAEA,aAAOU,IAAP;AACD,KAjCQ,CAAT;AAkCD,GAtCmD,EAsCjD,CAACjB,SAAD,CAtCiD,CAApD;AAwCA,MAAMwB,KAAK,GAA2BxC,WAAW,CAAC,UAChDyC,IADgD;qCAM5C;QAHFnB,yBAAAA;QACAC,uBAAAA;QACAvC,iBAAAA;;AAGF,QAAI;AACFF,MAAAA,MAAM,CAAC4D,YAAP,CAAoBD,IAApB;AAA4BlD,QAAAA,UAAU,EAAE;AAAxC,SAAkDP,OAAlD;AACAsC,MAAAA,eAAe,SAAf,IAAAA,eAAe,WAAf,YAAAA,eAAe,CAAGmB,IAAH,EAASjD,MAAT,EAAiBC,QAAjB,CAAf;AAEA,aAAOd,SAAP;AACD,KALD,CAKE,OAAOU,CAAP,EAAU;AACV,UAAId,iBAAiB,CAACc,CAAD,CAArB,EAA0B;AAAA,YAChBX,KADgB,GACNW,CADM,CAChBX,KADgB;AAGxB6C,QAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAGkB,IAAH,EAAS/D,KAAT,EAAgBc,MAAhB,EAAwBC,QAAxB,CAAb;AAEA,eAAOf,KAAP;AACD;;AAED,aAAOC,SAAP;AACD;AACF,GAxBgD,EAwB9C,CAACG,MAAD,EAASW,QAAT,EAAmBD,MAAnB,CAxB8C,CAAjD;AA0BA,MAAMmD,mBAAmB,GAAyC3C,WAAW,CAAC,UAC5EsB,eAD4E,EAE5EC,aAF4E;qCAGlD;QAAfqB,AAAG5D,iBAAAA;;AAEduB,IAAAA,SAAS,CAAC,UAACG,CAAD;AACR,UAAI;AAEFP,QAAAA,SAAS,CAACN,OAAV,CAAkB6C,YAAlB,CAA+BhC,CAAC,CAAC3B,IAAjC;AAAyCQ,UAAAA,UAAU,EAAE;AAArD,WAA+DP,OAA/D;AAEAgC,QAAAA,SAAS,CAACM,eAAD,CAAT;AAEA,4BAAYZ,CAAZ;AAAezB,UAAAA,MAAM,EAAE;AAAvB;AACD,OAPD,CAOE,OAAOI,CAAP,EAAU;AACV,YAAI,CAACd,iBAAiB,CAACc,CAAD,CAAtB,EAA2B;AAEzBwD,UAAAA,OAAO,CAACrE,KAAR,CAAca,CAAd;AACA,iBAAOqB,CAAP;AACD;;AALS,YAOFhC,KAPE,GAOQW,CAPR,CAOFX,KAPE;AASV,YAAMO,MAAM,GAAGP,KAAK,CAACqD,MAAN,CACb,UAACrE,GAAD;AAAA,cAAQe,OAAR,UAAQA,OAAR;AAAA,mCAAiBP,IAAjB;AAAA,cAAiBA,IAAjB,4BAAwB,EAAxB;AAAA,iBAAiC4C,GAAG,CAACpD,GAAD,EAAMQ,IAAN,EAAYO,OAAZ,CAApC;AAAA,SADa,EAEb,EAFa,CAAf;;AAKA,YAAM4B,eAAc,GAAmB3B,KAAK,CAACqD,MAAN,CACrC,UAACrE,GAAD;AAAA;;AAAA,mCAAQQ,IAAR;AAAA,cAAQA,IAAR,4BAAe,EAAf;AAAA,8BAA8BR,GAA9B,6BAAoCQ,IAApC,IAA2C,IAA3C;AAAA,SADqC,EAErCwC,CAAC,CAACL,cAFmC,CAAvC;;AAKA,YAAMwB,SAAS,gBAAQnB,CAAR;AAAWzB,UAAAA,MAAM,EAANA,MAAX;AAAmBoB,UAAAA,cAAc,EAAdA;AAAnB,UAAf;;AAEAW,QAAAA,SAAS,CAACO,aAAD,CAAT;AAEA,eAAOM,SAAP;AACD;AACF,KAjCQ,CAAT;AAkCD,GAvC4E,EAuC1E,CAACb,SAAD,CAvC0E,CAA7E;AAyCA,MAAM8B,YAAY,GAAkC9C,WAAW,CAAC,UAACsB,eAAD,EAAkBC,aAAlB,EAAiCvC,OAAjC;AAAA,QAAiCA,OAAjC;AAAiCA,MAAAA,OAAjC,GAA2C,EAA3C;AAAA;;AAAA,WAC9D2D,mBAAmB,CACjBrB,eADiB,EAEjBC,aAFiB,EAGjB;AAAEvC,MAAAA,OAAO,EAAPA;AAAF,KAHiB,CAD2C;AAAA,GAAD,EAK1D,CAAC2D,mBAAD,CAL0D,CAA/D;AAOA,MAAMI,UAAU,GACd/C,WAAW,CAAC,UAACsB,eAAD,EAAkBC,aAAlB,EAAiCvC,OAAjC;QAAiCA;AAAAA,MAAAA,UAAU;;;AACrD,QAAMrB,EAAE,GAAG,SAALA,EAAK;AAAA,aAAM4C,SAAS,CAAC,UAACG,CAAD;AAAA,4BAAaA,CAAb;AAAgBJ,UAAAA,OAAO,EAAE;AAAzB;AAAA,OAAD,CAAf;AAAA,KAAX;;AAEA,QAAM0C,8BAA8B,GAAqC,SAAnEA,8BAAmE,CAACC,CAAD,EAAIC,CAAJ;AAEvE,UAAM1D,MAAM,GAAGyD,CAAf;;yBAGmCzD,MAAM,CAACT;UAAtB6D,AAAM7D;;AAE1B,aAAOuC,eAAe,cAAM9B,MAAN;AAAcT,QAAAA,IAAI,EAAJA;AAAd,UAAsBmE,CAAtB,EAAyBvF,EAAzB,CAAtB;AACD,KARD;;AAUA,WAAOgF,mBAAmB,CACxBK,8BADwB,EAExBzB,aAFwB,EAGxB;AAAEvC,MAAAA,OAAO,EAAPA;AAAF,KAHwB,CAA1B;AAKD,GAlBU,EAkBR,CAAC2D,mBAAD,CAlBQ,CADb;AAqBA,MAAMQ,SAAS,GAAGnD,WAAW,CAAC;AAC5BO,IAAAA,SAAS,CAAC,UAACG,CAAD;AAAA,0BACLA,CADK;AAER3B,QAAAA,IAAI,EAAE2B,CAAC,CAACT,aAFA;AAGRhB,QAAAA,MAAM,EAAE,EAHA;AAIRqB,QAAAA,OAAO,EAAE,KAJD;AAKRD,QAAAA,cAAc,EAAE;AALR;AAAA,KAAD,CAAT;AAOD,GAR4B,EAQ1B,EAR0B,CAA7B;AAUA,MAAM+C,WAAW,GAAgBpD,WAAW,CAAC;yBACfR,MAAM,CAACP;QAAnB2D,AAAMvD;;AACtB,WAAO7B,SAAS,CAAC6B,CAAD,CAAT,CAAagE,KAAb,CAAmB,UAACC,IAAD;AAAA,aAAU,CAACC,GAAG,CAAClE,CAAD,EAAIiE,IAAJ,CAAd;AAAA,KAAnB,CAAP;AACD,GAH2C,EAGzC,CAAC9D,MAAM,CAACP,MAAR,CAHyC,CAA5C;AAKA,MAAMuE,aAAa,GAAkBxD,WAAW,CAAC;0BACnBR,MAAM,CAACP;QAAnB2D,AAAMvD;;AACtB,WAAO7B,SAAS,CAAC6B,CAAD,CAAT,CAAaoE,IAAb,CAAkB,UAACH,IAAD;AAAA,aAAUC,GAAG,CAAClE,CAAD,EAAIiE,IAAJ,CAAb;AAAA,KAAlB,CAAP;AACD,GAH+C,EAG7C,CAAC9D,MAAM,CAACP,MAAR,CAH6C,CAAhD;AAKA,MAAMT,KAAK,GAAYwB,WAAW,CAAC,UAAC9B,IAAD;AAAA,WAAkBqF,GAAG,CAAC/D,MAAM,CAACP,MAAR,EAAgBf,IAAhB,EAAsBS,SAAtB,CAArB;AAAA,GAAD,EAAwD,CAACa,MAAM,CAACP,MAAR,CAAxD,CAAlC;AAEA,MAAMoB,cAAc,GAAqBL,WAAW,CAClD,UAAC9B,IAAD;AAAA,WAAkBqF,GAAG,CAAC/D,MAAM,CAACa,cAAR,EAAwBnC,IAAxB,EAA8BS,SAA9B,CAArB;AAAA,GADkD,EAElD,CAACa,MAAM,CAACa,cAAR,CAFkD,CAApD;AAKA,SAAO;AACLmC,IAAAA,KAAK,EAALA,KADK;AAELhE,IAAAA,KAAK,EAALA,KAFK;AAGLS,IAAAA,MAAM,EAAEO,MAAM,CAACP,MAHV;AAILF,IAAAA,IAAI,EAAES,MAAM,CAACT,IAJR;AAKLyB,IAAAA,UAAU,EAAVA,UALK;AAMLF,IAAAA,OAAO,EAAEd,MAAM,CAACc,OANX;AAOLkD,IAAAA,aAAa,EAAbA,aAPK;AAQLJ,IAAAA,WAAW,EAAXA,WARK;AASL/C,IAAAA,cAAc,EAAdA,cATK;AAULsB,IAAAA,MAAM,EAANA,MAVK;AAWLwB,IAAAA,SAAS,EAATA,SAXK;AAYL1D,IAAAA,QAAQ,EAARA,QAZK;AAaLkB,IAAAA,SAAS,EAATA,SAbK;AAcLoC,IAAAA,UAAU,EAAVA,UAdK;AAeLV,IAAAA,QAAQ,EAARA,QAfK;AAgBLE,IAAAA,WAAW,EAAXA,WAhBK;AAiBLO,IAAAA,YAAY,EAAZA,YAjBK;AAkBLpB,IAAAA,KAAK,EAALA,KAlBK;AAmBLS,IAAAA,QAAQ,EAARA;AAnBK,GAAP;AAqBD,CA9YD;;AC1BA,IAAMuB,oBAAoB,GACxBC,IAAI,CAAC;AAAA,SAAoCC,aAAa,CAAoCjF,SAApC,CAAjD;AAAA,CAAD,CADN;AAGA,SAAwBkF;gCACtB5D;MAAAA,gDAAgB;MAChBnB,cAAAA;MACAgF,gBAAAA;AAEA,MAAMC,cAAc,GAAGL,oBAAoB,EAA3C;AAEA,MAAM7C,KAAK,GAAGmD,UAAU,CAAC;AAAE/D,IAAAA,aAAa,EAAbA,aAAF;AAAiBC,IAAAA,GAAG,EAAEpB,MAAM,IAAIoB,MAAA;AAAhC,GAAD,CAAxB;AAEA,sBACE,oBAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAEW;AAAhC,KAAwCiD,QAAxC,CADF;AAGD;AAED,IAAaG,iBAAiB,GAAG,SAApBA,iBAAoB;AAC/B,MAAMC,OAAO,GAAGC,UAAU,CAACT,oBAAoB,EAArB,CAA1B;;AAEA,MAAI,CAACQ,OAAL,EAAc;AAGZ,UAAM,IAAIE,KAAJ,CAAU9F,qBAAV,CAAN;AACD;;AAED,SAAO4F,OAAP;AACD,CAVM;;;;;"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/helpers/obj-leaves.ts","../src/helpers/constants.ts","../src/types/helpers.ts","../src/validate-sync-all.ts","../src/use-execute-callbacks.ts","../src/use-formbit.ts","../src/formbit-context.tsx"],"sourcesContent":["type ObjectLeaves = (obj: unknown, acc?: string[]) => string[]\n\nfunction isObject(val: unknown): val is Record<string, unknown> {\n return val != null && typeof val === 'object' && Array.isArray(val) === false\n}\n\nconst objLeaves: ObjectLeaves = (obj, acc = []) => {\n const fn = (o: unknown, s?: string) => {\n if (Array.isArray(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}[${k}]` : k\n\n const isLeaf = fn(o[+k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n if (isObject(o)) {\n return Object.keys(o).forEach((k) => {\n const path = s ? `${s}.${k}` : k\n\n const isLeaf = fn(o[k], path) === false\n if (isLeaf) {\n acc.push(path)\n }\n })\n }\n\n return false\n }\n\n fn(obj)\n return acc\n}\n\nexport default objLeaves\n","export const TEST_ERROR_MESSAGES = {\n MIN: 'must be greater than or equal',\n REQUIRED: 'is a required field'\n}\n\nexport enum ACTIONS {\n write = 'write',\n remove = 'remove'\n}\n\nexport const MISSING_CONTEXT_ERROR =\n 'No FormbitContext.Provider found, useFormbitContext can only be called inside proper context'\n","import { ValidationError } from 'yup'\n\nexport const isValidationError = (error: unknown): error is ValidationError => {\n if (error && typeof error === 'object' && 'message' in error && 'path' in error && 'inner' in error) {\n const { path, message, inner } = error\n\n return (typeof path === 'string' || path === undefined) &&\n (typeof message === 'string' || path === undefined) &&\n Array.isArray(inner)\n }\n\n return false\n}\n","import { isEmpty } from 'lodash'\nimport { Form, InitialValues, ValidateOptions, ValidationFormbitError, ValidationSchema } from './types'\nimport { isValidationError } from './types/helpers'\n\n/* We implement the validateSyncAll because yup.pick won't work with\n * schema with nested values: https://github.com/jquense/yup/issues/1269 */\nexport const validateSyncAll = <Values extends InitialValues> (\n paths:string[],\n schema:ValidationSchema<Values>,\n form: Form,\n options: ValidateOptions = {}\n): ValidationFormbitError[] => {\n let errors: ValidationFormbitError[] = []\n\n if (isEmpty(paths)) {\n return errors\n }\n\n for (const pathToValidate of paths) {\n try {\n schema.validateSyncAt(pathToValidate, form, options)\n } catch (e) {\n if (isValidationError(e)) {\n const { message, path } = e\n\n errors = errors.concat({ message, path })\n }\n\n if (options?.abortEarly) {\n break\n }\n }\n }\n\n return errors\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport { GenericCallback, InitialValues, SetError, Writer } from './types'\nimport isEmpty from 'lodash/isEmpty'\n\n/**\n * useExecuteCallbacks\n *\n * This hook is meant to give a simple way to make sure that callbacks are called only once,\n * even if they are called inside React hooks like useEffect or setState.\n *\n *\n */\nexport default <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => {\n const callbacksStore = useRef<Object>({})\n\n useEffect(() => {\n if (isEmpty(callbacksStore.current)) {\n return\n }\n\n Object.entries(callbacksStore.current).forEach(([, cb]) => {\n if (cb) {\n cb(writer, setError)\n }\n })\n\n callbacksStore.current = {}\n }, [setError, writer])\n\n /**\n * executeCallbacks\n * @param cb Callback that needs to be executed.\n *\n */\n return useCallback((uuid: string, cb?: GenericCallback<Partial<Values>>) => {\n if (cb) {\n callbacksStore.current = { ...callbacksStore.current, [uuid]: cb }\n }\n }, [])\n}\n","import objLeaves from './helpers/obj-leaves'\nimport {\n useCallback, useRef, useState\n} from 'react'\nimport { ACTIONS } from './helpers/constants'\nimport {\n Check,\n ErrorFn,\n FormbitObject,\n InitialValues,\n IsFormInvalid,\n IsFormValid,\n LiveValidation,\n LiveValidationFn,\n PrivateValidateForm,\n Remove,\n RemoveAll,\n SetError,\n SubmitForm,\n SuccessCallback,\n Validate,\n ValidateAll,\n ValidateForm,\n ValidationSchema,\n Write,\n WriteAll,\n WriteOrRemove,\n Writer\n} from './types'\nimport { isValidationError } from './types/helpers'\nimport { validateSyncAll } from './validate-sync-all'\nimport useExecuteCallbacks from './use-execute-callbacks'\nimport { cloneDeep, get, isEmpty, omit, set } from 'lodash'\nimport { v4 as uuidv4 } from 'uuid'\n\ntype UseFormbitParams<Values extends InitialValues> = {\n initialValues?: Partial<Values>,\n yup: ValidationSchema<Values>\n}\n\nexport default <Values extends InitialValues>({\n initialValues = {},\n yup: schema\n}: UseFormbitParams<Values>): FormbitObject<Values> => {\n const schemaRef = useRef<ValidationSchema<Values>>(schema)\n\n const [writer, setWriter] = useState<Writer<Partial<Values>>>({\n form: initialValues,\n initialValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n })\n\n const initialize = useCallback((values: Partial<Values>) => {\n const { __metadata } = values\n\n if (__metadata) {\n setWriter((w) => ({\n ...w,\n initialValues: values,\n form: values,\n errors: {},\n liveValidation: {},\n isDirty: false\n }))\n\n return\n }\n\n setWriter((w) => {\n const { form: { __metadata } } = w\n const newValues = { ...values, __metadata }\n\n return {\n ...w,\n initialValues: newValues,\n form: newValues,\n errors: {},\n liveValidation: {},\n isDirty: false\n }\n })\n }, [])\n\n const setSchema = useCallback((newSchema: ValidationSchema<Values>) => { schemaRef.current = newSchema }, [])\n\n const setError: SetError = useCallback((path, value) => {\n setWriter((w) => {\n const errors = set(cloneDeep(w.errors), path, value)\n\n return { ...w, errors }\n })\n }, [])\n\n const executeCb = useExecuteCallbacks<Partial<Values>>(writer, setError)\n\n const writeOrRemove: WriteOrRemove<Values> = useCallback((\n path,\n value,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {},\n action\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = (function execute() {\n switch (action) {\n case ACTIONS.write: return set(cloneDeep(w.form), path, value)\n\n case ACTIONS.remove: return omit<Partial<Values>>(cloneDeep(w.form), path)\n\n default: return cloneDeep(w.form)\n }\n }())\n\n const newWriter: Writer<Partial<Values>> = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: innerPath, message }) => innerPath ? set(acc, innerPath, message) : acc,\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: innerPath }) => innerPath ? ({ ...acc, [innerPath]: true }) : acc,\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const write: Write<Values> = useCallback((path, value, options) =>\n writeOrRemove(path, value, options, ACTIONS.write), [writeOrRemove])\n\n const remove: Remove<Values> = useCallback((path, options) =>\n writeOrRemove(path, undefined, options, ACTIONS.remove), [writeOrRemove])\n\n const writeAll: WriteAll<Values> = useCallback((\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, [key, val]) => set(acc, key, val),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n\n return newWriter\n }\n\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const removeAll: RemoveAll<Values> = useCallback(\n (\n arr,\n {\n noLiveValidation = false,\n pathsToValidate = [],\n successCallback,\n errorCallback,\n options = {}\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n const liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation)\n const paths = pathsToValidate.concat(liveValidationPaths)\n\n const form = arr.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.form)\n )\n\n const newWriter = { ...w, form, isDirty: true }\n\n if (paths.length === 0) {\n newUUID && executeCb(newUUID, successCallback)\n return newWriter\n }\n\n const cleanErrors = pathsToValidate.reduce(\n (acc, key) => set(acc, key, undefined),\n cloneDeep(newWriter.errors)\n )\n\n const inner = validateSyncAll(pathsToValidate, schemaRef.current, newWriter.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...newWriter, errors: cleanErrors }\n newUUID && executeCb(newUUID, successCallback)\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n newWriter.liveValidation\n )\n\n const neww = { ...newWriter, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n },\n [executeCb]\n )\n\n const validate: Validate<Values> = useCallback((\n path,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = set(cloneDeep(w.errors), path, undefined)\n\n // VALIDATE\n const inner = validateSyncAll([path], schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path: errorPath = '', message }) => set(acc, errorPath, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path: errorPath = '' }) => ({ ...acc, [errorPath]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const validateAll: ValidateAll<Values> = useCallback((\n paths,\n { successCallback, errorCallback, options } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n // Teardown errors\n const cleanErrors = paths.reduce(\n (acc, path) => set(acc, path, undefined),\n cloneDeep(w.errors)\n )\n\n // VALIDATE ALL\n const inner = validateSyncAll(paths, schemaRef.current, w.form, options)\n\n if (isEmpty(inner)) {\n const neww = { ...w, errors: cleanErrors }\n\n newUUID && executeCb(newUUID, successCallback)\n\n return neww\n }\n\n const errors = inner.reduce(\n (acc, { path = '', message }) => set(acc, path, message),\n cleanErrors\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const neww = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return neww\n })\n }, [executeCb])\n\n const check: Check<Partial<Values>> = useCallback((\n json,\n {\n successCallback,\n errorCallback,\n options\n } = {}\n ) => {\n try {\n schema.validateSync(json, { abortEarly: false, ...options })\n successCallback?.(json, writer, setError)\n\n return undefined\n } catch (e) {\n if (isValidationError(e)) {\n const { inner } = e\n\n errorCallback?.(json, inner, writer, setError)\n\n return inner\n }\n\n return undefined\n }\n }, [schema, setError, writer])\n\n const privateValidateForm: PrivateValidateForm<Partial<Values>> = useCallback((\n successCallback,\n errorCallback,\n { isDirty: _, options } = {}\n ) => {\n const newUUID = (function getUUID() {\n if (successCallback || errorCallback) {\n return uuidv4()\n }\n\n return undefined\n })()\n\n setWriter((w) => {\n try {\n // abortEarly: false as default is to be retrocompatible\n schemaRef.current.validateSync(w.form, { abortEarly: false, ...options })\n\n newUUID && executeCb(newUUID, successCallback)\n\n return { ...w, errors: {} }\n } catch (e) {\n if (!isValidationError(e)) {\n // Checking if error is not formbit-related (e.g. a bug inside the successCallback)\n console.error(e)\n return w\n }\n\n const { inner } = e\n\n const errors = inner.reduce(\n (acc, { message, path = '' }) => set(acc, path, message),\n {}\n )\n\n const liveValidation: LiveValidation = inner.reduce(\n (acc, { path = '' }) => ({ ...acc, [path]: true }),\n w.liveValidation\n )\n\n const newWriter = { ...w, errors, liveValidation }\n\n newUUID && executeCb(newUUID, errorCallback)\n\n return newWriter\n }\n })\n }, [executeCb])\n\n const validateForm: ValidateForm<Partial<Values>> = useCallback((successCallback, errorCallback, options = {}) =>\n privateValidateForm(\n successCallback,\n errorCallback,\n { options }\n ), [privateValidateForm])\n\n const submitForm: SubmitForm<Values> =\n useCallback((successCallback, errorCallback, options = {}) => {\n const fn = () => setWriter((w) => ({ ...w, isDirty: false }))\n\n const successCallbackAndClearIsDirty: SuccessCallback<Partial<Values>> = (a, b) => {\n // Success callback is called only if the form is valid so we can safely cast a as Writer<Values>\n const writer = a as Writer<Values>\n\n // __metadata is a field used to store metadata about the form and should not be submitted\n const { __metadata: _, ...form } = writer.form\n\n return successCallback({ ...writer, form }, b, fn)\n }\n\n return privateValidateForm(\n successCallbackAndClearIsDirty,\n errorCallback,\n { options }\n )\n }, [privateValidateForm])\n\n const resetForm = useCallback(() => {\n setWriter((w) => ({\n ...w,\n form: w.initialValues,\n errors: {},\n isDirty: false,\n liveValidation: {}\n }))\n }, [])\n\n const isFormValid: IsFormValid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).every((leaf) => !get(e, leaf))\n }, [writer.errors])\n\n const isFormInvalid: IsFormInvalid = useCallback(() => {\n const { silent: _, ...e } = writer.errors\n return objLeaves(e).some((leaf) => get(e, leaf))\n }, [writer.errors])\n\n const error: ErrorFn = useCallback((path: string) => get(writer.errors, path, undefined), [writer.errors])\n\n const liveValidation: LiveValidationFn = useCallback(\n (path: string) => get(writer.liveValidation, path, undefined),\n [writer.liveValidation]\n )\n\n return {\n check,\n error,\n errors: writer.errors,\n form: writer.form,\n initialize,\n isDirty: writer.isDirty,\n isFormInvalid,\n isFormValid,\n liveValidation,\n remove,\n removeAll,\n resetForm,\n setError,\n setSchema,\n submitForm,\n validate,\n validateAll,\n validateForm,\n write,\n writeAll\n }\n}\n","import React, { useContext, createContext, PropsWithChildren } from 'react'\nimport useFormbit from './use-formbit'\nimport * as yup from 'yup'\nimport { FormbitObject, InitialValues, ValidationSchema } from './types'\nimport { MISSING_CONTEXT_ERROR } from './helpers/constants'\nimport { once } from 'lodash'\n\ntype Props<Values extends InitialValues> = {\n initialValues?: Partial<Values> | {}\n schema: ValidationSchema<Values>\n} & PropsWithChildren\n\nconst createFormbitContext =\n once(<Values extends InitialValues>() => createContext<FormbitObject<Values> | undefined>(undefined))\n\nexport default function FormbitContextProvider<Values extends InitialValues>({\n initialValues = {},\n schema,\n children\n}: Props<Values>) {\n const FormbitContext = createFormbitContext<Values>()\n\n const value = useFormbit({ initialValues, yup: schema || yup.object() })\n\n return (\n <FormbitContext.Provider value={value}>{children}</FormbitContext.Provider>\n )\n}\n\nexport const useFormbitContext = <Values extends InitialValues>() => {\n const context = useContext(createFormbitContext<Values>())\n\n if (!context) {\n // This error can only be thrown if this hook is called outside the context,\n // and it should only happen during develop.\n throw new Error(MISSING_CONTEXT_ERROR)\n }\n\n return context\n}\n"],"names":["isObject","val","Array","isArray","objLeaves","obj","acc","fn","o","s","Object","keys","forEach","k","path","isLeaf","push","ACTIONS","MISSING_CONTEXT_ERROR","isValidationError","error","message","inner","undefined","validateSyncAll","paths","schema","form","options","errors","isEmpty","pathToValidate","validateSyncAt","e","concat","abortEarly","writer","setError","callbacksStore","useRef","useEffect","current","entries","cb","useCallback","uuid","initialValues","yup","schemaRef","useState","liveValidation","isDirty","setWriter","initialize","values","__metadata","w","newValues","setSchema","newSchema","value","set","cloneDeep","executeCb","useExecuteCallbacks","writeOrRemove","action","noLiveValidation","pathsToValidate","successCallback","errorCallback","newUUID","getUUID","uuidv4","liveValidationPaths","execute","write","remove","omit","newWriter","length","cleanErrors","reduce","key","neww","innerPath","writeAll","arr","removeAll","validate","errorPath","validateAll","check","json","validateSync","privateValidateForm","_","console","validateForm","submitForm","successCallbackAndClearIsDirty","a","b","resetForm","isFormValid","every","leaf","get","isFormInvalid","some","createFormbitContext","once","createContext","FormbitContextProvider","children","FormbitContext","useFormbit","useFormbitContext","context","useContext","Error"],"mappings":"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"}
@@ -226,6 +226,12 @@ export type Write<Values extends InitialValues> = (path: keyof Values | string,
226
226
  *
227
227
  */
228
228
  export type WriteAll<Values extends InitialValues> = (arr: WriteAllValue<Values>[], options?: WriteFnOptions<Values>) => void;
229
+ /**
230
+ *
231
+ * This method updates the form state deleting multiple values, setting isDirty to true.
232
+ *
233
+ */
234
+ export type RemoveAll<Values extends InitialValues> = (arr: string[], options?: WriteFnOptions<Values>) => void;
229
235
  /**
230
236
  * Tuple of [key, value] pair.
231
237
  *
@@ -415,4 +421,10 @@ export type FormbitObject<Values extends InitialValues> = {
415
421
  * the fields that have the live validation active.
416
422
  */
417
423
  writeAll: WriteAll<Values>;
424
+ /**
425
+ *
426
+ * This method updates the form state deleting multiple values, setting isDirty to true.
427
+ *
428
+ */
429
+ removeAll: RemoveAll<Values>;
418
430
  };
@@ -7,5 +7,5 @@ import { GenericCallback, InitialValues, SetError, Writer } from './types';
7
7
  *
8
8
  *
9
9
  */
10
- declare const _default: <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => (cb?: GenericCallback<Partial<Values>>) => void;
10
+ declare const _default: <Values extends InitialValues>(writer: Writer<Values>, setError: SetError) => (uuid: string, cb?: GenericCallback<Partial<Values>>) => void;
11
11
  export default _default;