@radicalbit/formbit 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -46
- package/dist/__tests__/miscellaneous.d.ts +1 -0
- package/dist/__tests__/remove-all.test.d.ts +1 -0
- package/dist/index.js +199 -57
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +199 -57
- package/dist/index.modern.js.map +1 -1
- package/dist/types/index.d.ts +12 -0
- package/dist/use-execute-callbacks.d.ts +1 -1
- package/package.json +3 -1
package/dist/index.modern.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
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 { v4 } from 'uuid';
|
|
3
4
|
import { object } from 'yup';
|
|
4
5
|
|
|
5
6
|
function _extends() {
|
|
@@ -174,20 +175,26 @@ var validateSyncAll = function validateSyncAll(paths, schema, form, options) {
|
|
|
174
175
|
};
|
|
175
176
|
|
|
176
177
|
var useExecuteCallbacks = (function (writer, setError) {
|
|
177
|
-
var callbacksStore = useRef(
|
|
178
|
+
var callbacksStore = useRef({});
|
|
178
179
|
useEffect(function () {
|
|
179
|
-
if (callbacksStore.current
|
|
180
|
-
|
|
181
|
-
if (cb) {
|
|
182
|
-
cb(writer, setError);
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
callbacksStore.current = [];
|
|
180
|
+
if (isEmpty(callbacksStore.current)) {
|
|
181
|
+
return;
|
|
186
182
|
}
|
|
183
|
+
|
|
184
|
+
Object.entries(callbacksStore.current).forEach(function (_ref) {
|
|
185
|
+
var cb = _ref[1];
|
|
186
|
+
|
|
187
|
+
if (cb) {
|
|
188
|
+
cb(writer, setError);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
callbacksStore.current = {};
|
|
187
192
|
}, [setError, writer]);
|
|
188
|
-
return useCallback(function (cb) {
|
|
193
|
+
return useCallback(function (uuid, cb) {
|
|
189
194
|
if (cb) {
|
|
190
|
-
|
|
195
|
+
var _extends2;
|
|
196
|
+
|
|
197
|
+
callbacksStore.current = _extends({}, callbacksStore.current, (_extends2 = {}, _extends2[uuid] = cb, _extends2));
|
|
191
198
|
}
|
|
192
199
|
}, []);
|
|
193
200
|
});
|
|
@@ -209,10 +216,31 @@ var useFormbit = (function (_ref) {
|
|
|
209
216
|
setWriter = _useState[1];
|
|
210
217
|
|
|
211
218
|
var initialize = useCallback(function (values) {
|
|
219
|
+
var __metadata = values.__metadata;
|
|
220
|
+
|
|
221
|
+
if (__metadata) {
|
|
222
|
+
setWriter(function (w) {
|
|
223
|
+
return _extends({}, w, {
|
|
224
|
+
initialValues: values,
|
|
225
|
+
form: values,
|
|
226
|
+
errors: {},
|
|
227
|
+
liveValidation: {},
|
|
228
|
+
isDirty: false
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
|
|
212
234
|
setWriter(function (w) {
|
|
235
|
+
var __metadata = w.form.__metadata;
|
|
236
|
+
|
|
237
|
+
var newValues = _extends({}, values, {
|
|
238
|
+
__metadata: __metadata
|
|
239
|
+
});
|
|
240
|
+
|
|
213
241
|
return _extends({}, w, {
|
|
214
|
-
initialValues:
|
|
215
|
-
form:
|
|
242
|
+
initialValues: newValues,
|
|
243
|
+
form: newValues,
|
|
216
244
|
errors: {},
|
|
217
245
|
liveValidation: {},
|
|
218
246
|
isDirty: false
|
|
@@ -242,6 +270,14 @@ var useFormbit = (function (_ref) {
|
|
|
242
270
|
_ref2$options = _ref2.options,
|
|
243
271
|
options = _ref2$options === void 0 ? {} : _ref2$options;
|
|
244
272
|
|
|
273
|
+
var newUUID = function getUUID() {
|
|
274
|
+
if (successCallback || errorCallback) {
|
|
275
|
+
return v4();
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
return undefined;
|
|
279
|
+
}();
|
|
280
|
+
|
|
245
281
|
setWriter(function (w) {
|
|
246
282
|
var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
|
|
247
283
|
var paths = pathsToValidate.concat(liveValidationPaths);
|
|
@@ -265,7 +301,7 @@ var useFormbit = (function (_ref) {
|
|
|
265
301
|
});
|
|
266
302
|
|
|
267
303
|
if (paths.length === 0) {
|
|
268
|
-
executeCb(successCallback);
|
|
304
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
269
305
|
return newWriter;
|
|
270
306
|
}
|
|
271
307
|
|
|
@@ -279,7 +315,7 @@ var useFormbit = (function (_ref) {
|
|
|
279
315
|
errors: cleanErrors
|
|
280
316
|
});
|
|
281
317
|
|
|
282
|
-
executeCb(successCallback);
|
|
318
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
283
319
|
return _neww;
|
|
284
320
|
}
|
|
285
321
|
|
|
@@ -300,7 +336,7 @@ var useFormbit = (function (_ref) {
|
|
|
300
336
|
liveValidation: liveValidation
|
|
301
337
|
});
|
|
302
338
|
|
|
303
|
-
executeCb(errorCallback);
|
|
339
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
304
340
|
return neww;
|
|
305
341
|
});
|
|
306
342
|
}, [executeCb]);
|
|
@@ -321,6 +357,14 @@ var useFormbit = (function (_ref) {
|
|
|
321
357
|
_ref5$options = _ref5.options,
|
|
322
358
|
options = _ref5$options === void 0 ? {} : _ref5$options;
|
|
323
359
|
|
|
360
|
+
var newUUID = function getUUID() {
|
|
361
|
+
if (successCallback || errorCallback) {
|
|
362
|
+
return v4();
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return undefined;
|
|
366
|
+
}();
|
|
367
|
+
|
|
324
368
|
setWriter(function (w) {
|
|
325
369
|
var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
|
|
326
370
|
var paths = pathsToValidate.concat(liveValidationPaths);
|
|
@@ -336,7 +380,7 @@ var useFormbit = (function (_ref) {
|
|
|
336
380
|
});
|
|
337
381
|
|
|
338
382
|
if (paths.length === 0) {
|
|
339
|
-
executeCb(successCallback);
|
|
383
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
340
384
|
return newWriter;
|
|
341
385
|
}
|
|
342
386
|
|
|
@@ -350,7 +394,7 @@ var useFormbit = (function (_ref) {
|
|
|
350
394
|
errors: cleanErrors
|
|
351
395
|
});
|
|
352
396
|
|
|
353
|
-
executeCb(successCallback);
|
|
397
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
354
398
|
return _neww2;
|
|
355
399
|
}
|
|
356
400
|
|
|
@@ -373,85 +417,122 @@ var useFormbit = (function (_ref) {
|
|
|
373
417
|
liveValidation: liveValidation
|
|
374
418
|
});
|
|
375
419
|
|
|
376
|
-
executeCb(errorCallback);
|
|
420
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
377
421
|
return neww;
|
|
378
422
|
});
|
|
379
423
|
}, [executeCb]);
|
|
380
|
-
var
|
|
424
|
+
var removeAll = useCallback(function (arr, _temp3) {
|
|
381
425
|
var _ref9 = _temp3 === void 0 ? {} : _temp3,
|
|
426
|
+
_ref9$noLiveValidatio = _ref9.noLiveValidation,
|
|
427
|
+
noLiveValidation = _ref9$noLiveValidatio === void 0 ? false : _ref9$noLiveValidatio,
|
|
428
|
+
_ref9$pathsToValidate = _ref9.pathsToValidate,
|
|
429
|
+
pathsToValidate = _ref9$pathsToValidate === void 0 ? [] : _ref9$pathsToValidate,
|
|
382
430
|
successCallback = _ref9.successCallback,
|
|
383
431
|
errorCallback = _ref9.errorCallback,
|
|
384
|
-
options = _ref9.options
|
|
432
|
+
_ref9$options = _ref9.options,
|
|
433
|
+
options = _ref9$options === void 0 ? {} : _ref9$options;
|
|
434
|
+
|
|
435
|
+
var newUUID = function getUUID() {
|
|
436
|
+
if (successCallback || errorCallback) {
|
|
437
|
+
return v4();
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
return undefined;
|
|
441
|
+
}();
|
|
385
442
|
|
|
386
443
|
setWriter(function (w) {
|
|
387
|
-
var
|
|
388
|
-
var
|
|
444
|
+
var liveValidationPaths = noLiveValidation ? [] : Object.keys(w.liveValidation);
|
|
445
|
+
var paths = pathsToValidate.concat(liveValidationPaths);
|
|
446
|
+
var form = arr.reduce(function (acc, path) {
|
|
447
|
+
return set(acc, path, undefined);
|
|
448
|
+
}, cloneDeep(w.form));
|
|
449
|
+
|
|
450
|
+
var newWriter = _extends({}, w, {
|
|
451
|
+
form: form,
|
|
452
|
+
isDirty: true
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
if (paths.length === 0) {
|
|
456
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
457
|
+
return newWriter;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
var cleanErrors = pathsToValidate.reduce(function (acc, key) {
|
|
461
|
+
return set(acc, key, undefined);
|
|
462
|
+
}, cloneDeep(newWriter.errors));
|
|
463
|
+
var inner = validateSyncAll(pathsToValidate, schemaRef.current, newWriter.form, options);
|
|
389
464
|
|
|
390
465
|
if (isEmpty(inner)) {
|
|
391
|
-
var _neww3 = _extends({},
|
|
466
|
+
var _neww3 = _extends({}, newWriter, {
|
|
392
467
|
errors: cleanErrors
|
|
393
468
|
});
|
|
394
469
|
|
|
395
|
-
executeCb(successCallback);
|
|
470
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
396
471
|
return _neww3;
|
|
397
472
|
}
|
|
398
473
|
|
|
399
474
|
var errors = inner.reduce(function (acc, _ref10) {
|
|
400
475
|
var _ref10$path = _ref10.path,
|
|
401
|
-
|
|
476
|
+
path = _ref10$path === void 0 ? '' : _ref10$path,
|
|
402
477
|
message = _ref10.message;
|
|
403
|
-
return set(acc,
|
|
478
|
+
return set(acc, path, message);
|
|
404
479
|
}, cleanErrors);
|
|
405
480
|
var liveValidation = inner.reduce(function (acc, _ref11) {
|
|
406
481
|
var _extends4;
|
|
407
482
|
|
|
408
483
|
var _ref11$path = _ref11.path,
|
|
409
|
-
|
|
410
|
-
return _extends({}, acc, (_extends4 = {}, _extends4[
|
|
411
|
-
},
|
|
484
|
+
path = _ref11$path === void 0 ? '' : _ref11$path;
|
|
485
|
+
return _extends({}, acc, (_extends4 = {}, _extends4[path] = true, _extends4));
|
|
486
|
+
}, newWriter.liveValidation);
|
|
412
487
|
|
|
413
|
-
var neww = _extends({},
|
|
488
|
+
var neww = _extends({}, newWriter, {
|
|
414
489
|
errors: errors,
|
|
415
490
|
liveValidation: liveValidation
|
|
416
491
|
});
|
|
417
492
|
|
|
418
|
-
executeCb(errorCallback);
|
|
493
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
419
494
|
return neww;
|
|
420
495
|
});
|
|
421
496
|
}, [executeCb]);
|
|
422
|
-
var
|
|
497
|
+
var validate = useCallback(function (path, _temp4) {
|
|
423
498
|
var _ref12 = _temp4 === void 0 ? {} : _temp4,
|
|
424
499
|
successCallback = _ref12.successCallback,
|
|
425
500
|
errorCallback = _ref12.errorCallback,
|
|
426
501
|
options = _ref12.options;
|
|
427
502
|
|
|
503
|
+
var newUUID = function getUUID() {
|
|
504
|
+
if (successCallback || errorCallback) {
|
|
505
|
+
return v4();
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
return undefined;
|
|
509
|
+
}();
|
|
510
|
+
|
|
428
511
|
setWriter(function (w) {
|
|
429
|
-
var cleanErrors =
|
|
430
|
-
|
|
431
|
-
}, cloneDeep(w.errors));
|
|
432
|
-
var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
|
|
512
|
+
var cleanErrors = set(cloneDeep(w.errors), path, undefined);
|
|
513
|
+
var inner = validateSyncAll([path], schemaRef.current, w.form, options);
|
|
433
514
|
|
|
434
515
|
if (isEmpty(inner)) {
|
|
435
516
|
var _neww4 = _extends({}, w, {
|
|
436
517
|
errors: cleanErrors
|
|
437
518
|
});
|
|
438
519
|
|
|
439
|
-
executeCb(successCallback);
|
|
520
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
440
521
|
return _neww4;
|
|
441
522
|
}
|
|
442
523
|
|
|
443
524
|
var errors = inner.reduce(function (acc, _ref13) {
|
|
444
525
|
var _ref13$path = _ref13.path,
|
|
445
|
-
|
|
526
|
+
errorPath = _ref13$path === void 0 ? '' : _ref13$path,
|
|
446
527
|
message = _ref13.message;
|
|
447
|
-
return set(acc,
|
|
528
|
+
return set(acc, errorPath, message);
|
|
448
529
|
}, cleanErrors);
|
|
449
530
|
var liveValidation = inner.reduce(function (acc, _ref14) {
|
|
450
531
|
var _extends5;
|
|
451
532
|
|
|
452
533
|
var _ref14$path = _ref14.path,
|
|
453
|
-
|
|
454
|
-
return _extends({}, acc, (_extends5 = {}, _extends5[
|
|
534
|
+
errorPath = _ref14$path === void 0 ? '' : _ref14$path;
|
|
535
|
+
return _extends({}, acc, (_extends5 = {}, _extends5[errorPath] = true, _extends5));
|
|
455
536
|
}, w.liveValidation);
|
|
456
537
|
|
|
457
538
|
var neww = _extends({}, w, {
|
|
@@ -459,16 +540,68 @@ var useFormbit = (function (_ref) {
|
|
|
459
540
|
liveValidation: liveValidation
|
|
460
541
|
});
|
|
461
542
|
|
|
462
|
-
executeCb(errorCallback);
|
|
543
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
463
544
|
return neww;
|
|
464
545
|
});
|
|
465
546
|
}, [executeCb]);
|
|
466
|
-
var
|
|
547
|
+
var validateAll = useCallback(function (paths, _temp5) {
|
|
467
548
|
var _ref15 = _temp5 === void 0 ? {} : _temp5,
|
|
468
549
|
successCallback = _ref15.successCallback,
|
|
469
550
|
errorCallback = _ref15.errorCallback,
|
|
470
551
|
options = _ref15.options;
|
|
471
552
|
|
|
553
|
+
var newUUID = function getUUID() {
|
|
554
|
+
if (successCallback || errorCallback) {
|
|
555
|
+
return v4();
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
return undefined;
|
|
559
|
+
}();
|
|
560
|
+
|
|
561
|
+
setWriter(function (w) {
|
|
562
|
+
var cleanErrors = paths.reduce(function (acc, path) {
|
|
563
|
+
return set(acc, path, undefined);
|
|
564
|
+
}, cloneDeep(w.errors));
|
|
565
|
+
var inner = validateSyncAll(paths, schemaRef.current, w.form, options);
|
|
566
|
+
|
|
567
|
+
if (isEmpty(inner)) {
|
|
568
|
+
var _neww5 = _extends({}, w, {
|
|
569
|
+
errors: cleanErrors
|
|
570
|
+
});
|
|
571
|
+
|
|
572
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
573
|
+
return _neww5;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
var errors = inner.reduce(function (acc, _ref16) {
|
|
577
|
+
var _ref16$path = _ref16.path,
|
|
578
|
+
path = _ref16$path === void 0 ? '' : _ref16$path,
|
|
579
|
+
message = _ref16.message;
|
|
580
|
+
return set(acc, path, message);
|
|
581
|
+
}, cleanErrors);
|
|
582
|
+
var liveValidation = inner.reduce(function (acc, _ref17) {
|
|
583
|
+
var _extends6;
|
|
584
|
+
|
|
585
|
+
var _ref17$path = _ref17.path,
|
|
586
|
+
path = _ref17$path === void 0 ? '' : _ref17$path;
|
|
587
|
+
return _extends({}, acc, (_extends6 = {}, _extends6[path] = true, _extends6));
|
|
588
|
+
}, w.liveValidation);
|
|
589
|
+
|
|
590
|
+
var neww = _extends({}, w, {
|
|
591
|
+
errors: errors,
|
|
592
|
+
liveValidation: liveValidation
|
|
593
|
+
});
|
|
594
|
+
|
|
595
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
596
|
+
return neww;
|
|
597
|
+
});
|
|
598
|
+
}, [executeCb]);
|
|
599
|
+
var check = useCallback(function (json, _temp6) {
|
|
600
|
+
var _ref18 = _temp6 === void 0 ? {} : _temp6,
|
|
601
|
+
successCallback = _ref18.successCallback,
|
|
602
|
+
errorCallback = _ref18.errorCallback,
|
|
603
|
+
options = _ref18.options;
|
|
604
|
+
|
|
472
605
|
try {
|
|
473
606
|
schema.validateSync(json, _extends({
|
|
474
607
|
abortEarly: false
|
|
@@ -485,16 +618,24 @@ var useFormbit = (function (_ref) {
|
|
|
485
618
|
return undefined;
|
|
486
619
|
}
|
|
487
620
|
}, [schema, setError, writer]);
|
|
488
|
-
var privateValidateForm = useCallback(function (successCallback, errorCallback,
|
|
489
|
-
var
|
|
490
|
-
options =
|
|
621
|
+
var privateValidateForm = useCallback(function (successCallback, errorCallback, _temp7) {
|
|
622
|
+
var _ref19 = _temp7 === void 0 ? {} : _temp7,
|
|
623
|
+
options = _ref19.options;
|
|
624
|
+
|
|
625
|
+
var newUUID = function getUUID() {
|
|
626
|
+
if (successCallback || errorCallback) {
|
|
627
|
+
return v4();
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
return undefined;
|
|
631
|
+
}();
|
|
491
632
|
|
|
492
633
|
setWriter(function (w) {
|
|
493
634
|
try {
|
|
494
635
|
schemaRef.current.validateSync(w.form, _extends({
|
|
495
636
|
abortEarly: false
|
|
496
637
|
}, options));
|
|
497
|
-
executeCb(successCallback);
|
|
638
|
+
newUUID && executeCb(newUUID, successCallback);
|
|
498
639
|
return _extends({}, w, {
|
|
499
640
|
errors: {}
|
|
500
641
|
});
|
|
@@ -505,19 +646,19 @@ var useFormbit = (function (_ref) {
|
|
|
505
646
|
}
|
|
506
647
|
|
|
507
648
|
var inner = e.inner;
|
|
508
|
-
var errors = inner.reduce(function (acc,
|
|
509
|
-
var message =
|
|
510
|
-
|
|
511
|
-
path =
|
|
649
|
+
var errors = inner.reduce(function (acc, _ref20) {
|
|
650
|
+
var message = _ref20.message,
|
|
651
|
+
_ref20$path = _ref20.path,
|
|
652
|
+
path = _ref20$path === void 0 ? '' : _ref20$path;
|
|
512
653
|
return set(acc, path, message);
|
|
513
654
|
}, {});
|
|
514
655
|
|
|
515
|
-
var _liveValidation = inner.reduce(function (acc,
|
|
516
|
-
var
|
|
656
|
+
var _liveValidation = inner.reduce(function (acc, _ref21) {
|
|
657
|
+
var _extends7;
|
|
517
658
|
|
|
518
|
-
var
|
|
519
|
-
path =
|
|
520
|
-
return _extends({}, acc, (
|
|
659
|
+
var _ref21$path = _ref21.path,
|
|
660
|
+
path = _ref21$path === void 0 ? '' : _ref21$path;
|
|
661
|
+
return _extends({}, acc, (_extends7 = {}, _extends7[path] = true, _extends7));
|
|
521
662
|
}, w.liveValidation);
|
|
522
663
|
|
|
523
664
|
var newWriter = _extends({}, w, {
|
|
@@ -525,7 +666,7 @@ var useFormbit = (function (_ref) {
|
|
|
525
666
|
liveValidation: _liveValidation
|
|
526
667
|
});
|
|
527
668
|
|
|
528
|
-
executeCb(errorCallback);
|
|
669
|
+
newUUID && executeCb(newUUID, errorCallback);
|
|
529
670
|
return newWriter;
|
|
530
671
|
}
|
|
531
672
|
});
|
|
@@ -610,6 +751,7 @@ var useFormbit = (function (_ref) {
|
|
|
610
751
|
isFormValid: isFormValid,
|
|
611
752
|
liveValidation: liveValidation,
|
|
612
753
|
remove: remove,
|
|
754
|
+
removeAll: removeAll,
|
|
613
755
|
resetForm: resetForm,
|
|
614
756
|
setError: setError,
|
|
615
757
|
setSchema: setSchema,
|
package/dist/index.modern.js.map
CHANGED
|
@@ -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'\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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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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;
|