@thecb/components 3.5.2 → 3.5.3
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/.tool-versions +1 -0
- package/dist/index.cjs.js +389 -628
- package/package.json +1 -1
- package/src/components/atoms/loading/Loading.js +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -215,63 +215,6 @@ function _nonIterableRest() {
|
|
|
215
215
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
219
|
-
var it;
|
|
220
|
-
|
|
221
|
-
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
|
|
222
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
223
|
-
if (it) o = it;
|
|
224
|
-
var i = 0;
|
|
225
|
-
|
|
226
|
-
var F = function () {};
|
|
227
|
-
|
|
228
|
-
return {
|
|
229
|
-
s: F,
|
|
230
|
-
n: function () {
|
|
231
|
-
if (i >= o.length) return {
|
|
232
|
-
done: true
|
|
233
|
-
};
|
|
234
|
-
return {
|
|
235
|
-
done: false,
|
|
236
|
-
value: o[i++]
|
|
237
|
-
};
|
|
238
|
-
},
|
|
239
|
-
e: function (e) {
|
|
240
|
-
throw e;
|
|
241
|
-
},
|
|
242
|
-
f: F
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
var normalCompletion = true,
|
|
250
|
-
didErr = false,
|
|
251
|
-
err;
|
|
252
|
-
return {
|
|
253
|
-
s: function () {
|
|
254
|
-
it = o[Symbol.iterator]();
|
|
255
|
-
},
|
|
256
|
-
n: function () {
|
|
257
|
-
var step = it.next();
|
|
258
|
-
normalCompletion = step.done;
|
|
259
|
-
return step;
|
|
260
|
-
},
|
|
261
|
-
e: function (e) {
|
|
262
|
-
didErr = true;
|
|
263
|
-
err = e;
|
|
264
|
-
},
|
|
265
|
-
f: function () {
|
|
266
|
-
try {
|
|
267
|
-
if (!normalCompletion && it.return != null) it.return();
|
|
268
|
-
} finally {
|
|
269
|
-
if (didErr) throw err;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
|
|
275
218
|
/*! *****************************************************************************
|
|
276
219
|
Copyright (c) Microsoft Corporation.
|
|
277
220
|
|
|
@@ -19128,7 +19071,7 @@ var Loading = function Loading() {
|
|
|
19128
19071
|
return /*#__PURE__*/React__default.createElement(Box, {
|
|
19129
19072
|
key: "spinner-container"
|
|
19130
19073
|
}, /*#__PURE__*/React__default.createElement(Cover, {
|
|
19131
|
-
minHeight: "
|
|
19074
|
+
minHeight: "100vh",
|
|
19132
19075
|
singleChild: true
|
|
19133
19076
|
}, /*#__PURE__*/React__default.createElement(Center, {
|
|
19134
19077
|
intrinsic: true
|
|
@@ -30572,401 +30515,378 @@ var ToggleSwitch = function ToggleSwitch(_ref6) {
|
|
|
30572
30515
|
|
|
30573
30516
|
var ToggleSwitch$1 = themeComponent(ToggleSwitch, "ToggleSwitch", fallbackValues$o);
|
|
30574
30517
|
|
|
30575
|
-
|
|
30576
|
-
|
|
30577
|
-
|
|
30578
|
-
|
|
30579
|
-
}
|
|
30518
|
+
const validatorToPredicate = (validatorFn, emptyCase) => (
|
|
30519
|
+
value,
|
|
30520
|
+
...rest
|
|
30521
|
+
) => (value === "" ? emptyCase : validatorFn(value, ...rest));
|
|
30580
30522
|
|
|
30581
|
-
return value === "" ? emptyCase : validatorFn.apply(void 0, [value].concat(rest));
|
|
30582
|
-
};
|
|
30583
|
-
};
|
|
30584
30523
|
/* eslint-disable no-unused-vars */
|
|
30585
30524
|
|
|
30586
|
-
|
|
30587
|
-
|
|
30588
|
-
var validator = function validator() {
|
|
30589
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
30590
|
-
args[_key2] = arguments[_key2];
|
|
30591
|
-
}
|
|
30592
|
-
|
|
30593
|
-
return {
|
|
30594
|
-
type: type,
|
|
30595
|
-
args: args,
|
|
30596
|
-
error: error
|
|
30597
|
-
};
|
|
30598
|
-
};
|
|
30599
|
-
|
|
30525
|
+
const createValidator = (type, error) => {
|
|
30526
|
+
let validator = (...args) => ({ type, args, error });
|
|
30600
30527
|
validator.error = error;
|
|
30601
30528
|
return validator;
|
|
30602
30529
|
};
|
|
30603
30530
|
|
|
30604
|
-
|
|
30605
|
-
var REQUIRED = "validator/REQUIRED";
|
|
30606
|
-
var REQUIRED_ERROR = "error/REQUIRED";
|
|
30607
|
-
var required = createValidator(REQUIRED, REQUIRED_ERROR);
|
|
30531
|
+
let validatorFns = {};
|
|
30608
30532
|
|
|
30609
|
-
|
|
30610
|
-
|
|
30611
|
-
|
|
30533
|
+
const REQUIRED = "validator/REQUIRED";
|
|
30534
|
+
const REQUIRED_ERROR = "error/REQUIRED";
|
|
30535
|
+
const required = createValidator(REQUIRED, REQUIRED_ERROR);
|
|
30536
|
+
validatorFns[REQUIRED] = (value, args, form) => value !== "";
|
|
30612
30537
|
|
|
30613
|
-
|
|
30614
|
-
|
|
30615
|
-
|
|
30538
|
+
const ONLY_INTEGERS = "validator/ONLY_INTEGERS";
|
|
30539
|
+
const ONLY_INTEGERS_ERROR = "error/ONLY_INTEGERS";
|
|
30540
|
+
const onlyIntegers = createValidator(ONLY_INTEGERS, ONLY_INTEGERS_ERROR);
|
|
30541
|
+
validatorFns[ONLY_INTEGERS] = (value, args, form) => /^(-?\d+)?$/.test(value);
|
|
30616
30542
|
|
|
30617
|
-
|
|
30618
|
-
|
|
30619
|
-
|
|
30543
|
+
const ONLY_NATURALS = "validator/ONLY_NATURALS";
|
|
30544
|
+
const ONLY_NATURALS_ERROR = "error/ONLY_NATURALS";
|
|
30545
|
+
const onlyNaturals = createValidator(ONLY_NATURALS, ONLY_NATURALS_ERROR);
|
|
30546
|
+
validatorFns[ONLY_NATURALS] = (value, args, form) => /^(\d+)?$/.test(value);
|
|
30620
30547
|
|
|
30621
|
-
|
|
30622
|
-
|
|
30623
|
-
|
|
30624
|
-
|
|
30625
|
-
|
|
30626
|
-
|
|
30627
|
-
|
|
30628
|
-
|
|
30629
|
-
var NUMBER_LESS_THAN = "validator/NUMBER_LESS_THAN";
|
|
30630
|
-
var NUMBER_LESS_THAN_ERROR = "error/NUMBER_LESS_THAN";
|
|
30631
|
-
var numberLessThan = createValidator(NUMBER_LESS_THAN, NUMBER_LESS_THAN_ERROR);
|
|
30632
|
-
|
|
30633
|
-
validatorFns[NUMBER_LESS_THAN] = function (value, args, form) {
|
|
30548
|
+
const NUMBER_LESS_THAN = "validator/NUMBER_LESS_THAN";
|
|
30549
|
+
const NUMBER_LESS_THAN_ERROR = "error/NUMBER_LESS_THAN";
|
|
30550
|
+
const numberLessThan = createValidator(
|
|
30551
|
+
NUMBER_LESS_THAN,
|
|
30552
|
+
NUMBER_LESS_THAN_ERROR
|
|
30553
|
+
);
|
|
30554
|
+
validatorFns[NUMBER_LESS_THAN] = (value, args, form) => {
|
|
30634
30555
|
if (value === "") {
|
|
30635
30556
|
return true;
|
|
30636
30557
|
}
|
|
30637
|
-
|
|
30638
30558
|
return Number(value) < args[0];
|
|
30639
30559
|
};
|
|
30640
30560
|
|
|
30641
|
-
|
|
30642
|
-
|
|
30643
|
-
|
|
30644
|
-
|
|
30645
|
-
|
|
30561
|
+
const NUMBER_LESS_THAN_OR_EQUAL_TO =
|
|
30562
|
+
"validator/NUMBER_LESS_THAN_OR_EQUAL_TO";
|
|
30563
|
+
const NUMBER_LESS_THAN_OR_EQUAL_TO_ERROR =
|
|
30564
|
+
"error/NUMBER_LESS_THAN_OR_EQUAL_TO";
|
|
30565
|
+
const numberLessThanOrEqualTo = createValidator(
|
|
30566
|
+
NUMBER_LESS_THAN_OR_EQUAL_TO,
|
|
30567
|
+
NUMBER_LESS_THAN_OR_EQUAL_TO_ERROR
|
|
30568
|
+
);
|
|
30569
|
+
validatorFns[NUMBER_LESS_THAN_OR_EQUAL_TO] = (value, args, form) => {
|
|
30646
30570
|
if (value === "") {
|
|
30647
30571
|
return true;
|
|
30648
30572
|
}
|
|
30649
|
-
|
|
30650
30573
|
return Number(value) <= args[0];
|
|
30651
30574
|
};
|
|
30652
30575
|
|
|
30653
|
-
|
|
30654
|
-
|
|
30655
|
-
|
|
30656
|
-
|
|
30657
|
-
|
|
30576
|
+
const NUMBER_GREATER_THAN = "validator/NUMBER_GREATER_THAN";
|
|
30577
|
+
const NUMBER_GREATER_THAN_ERROR = "error/NUMBER_GREATER_THAN";
|
|
30578
|
+
const numberGreaterThan = createValidator(
|
|
30579
|
+
NUMBER_GREATER_THAN,
|
|
30580
|
+
NUMBER_GREATER_THAN_ERROR
|
|
30581
|
+
);
|
|
30582
|
+
validatorFns[NUMBER_GREATER_THAN] = (value, args, form) => {
|
|
30658
30583
|
if (value === "") {
|
|
30659
30584
|
return true;
|
|
30660
30585
|
}
|
|
30661
|
-
|
|
30662
30586
|
return Number(value) > args[0];
|
|
30663
30587
|
};
|
|
30664
30588
|
|
|
30665
|
-
|
|
30666
|
-
|
|
30667
|
-
|
|
30668
|
-
|
|
30669
|
-
|
|
30589
|
+
const NUMBER_GREATER_THAN_OR_EQUAL_TO =
|
|
30590
|
+
"validator/NUMBER_GREATER_THAN_OR_EQUAL_TO";
|
|
30591
|
+
const NUMBER_GREATER_THAN_OR_EQUAL_TO_ERROR =
|
|
30592
|
+
"error/NUMBER_GREATER_THAN_OR_EQUAL_TO";
|
|
30593
|
+
const numberGreaterThanOrEqualTo = createValidator(
|
|
30594
|
+
NUMBER_GREATER_THAN_OR_EQUAL_TO,
|
|
30595
|
+
NUMBER_GREATER_THAN_OR_EQUAL_TO_ERROR
|
|
30596
|
+
);
|
|
30597
|
+
validatorFns[NUMBER_GREATER_THAN_OR_EQUAL_TO] = (value, args, form) => {
|
|
30670
30598
|
if (value === "") {
|
|
30671
30599
|
return true;
|
|
30672
30600
|
}
|
|
30673
|
-
|
|
30674
30601
|
return Number(value) >= args[0];
|
|
30675
30602
|
};
|
|
30676
30603
|
|
|
30677
|
-
|
|
30678
|
-
|
|
30679
|
-
|
|
30680
|
-
|
|
30681
|
-
validatorFns[MATCHES_FIELD] = function (value, args, form) {
|
|
30604
|
+
const MATCHES_FIELD = "validator/MATCHES_FIELD";
|
|
30605
|
+
const MATCHES_FIELD_ERROR$1 = "error/MATCHES_FIELD";
|
|
30606
|
+
const matchesField = createValidator(MATCHES_FIELD, MATCHES_FIELD_ERROR$1);
|
|
30607
|
+
validatorFns[MATCHES_FIELD] = (value, args, form) => {
|
|
30682
30608
|
if (value === "") {
|
|
30683
30609
|
return true;
|
|
30684
30610
|
}
|
|
30685
|
-
|
|
30686
30611
|
if (form[args[0]] === undefined) {
|
|
30687
|
-
throw new Error(
|
|
30612
|
+
throw new Error(
|
|
30613
|
+
`${args[0]} was passed to matchesField, but that field does not exist in the form`
|
|
30614
|
+
);
|
|
30688
30615
|
}
|
|
30689
|
-
|
|
30690
30616
|
return value === form[args[0]].rawValue;
|
|
30691
30617
|
};
|
|
30692
30618
|
|
|
30693
|
-
|
|
30694
|
-
|
|
30695
|
-
|
|
30696
|
-
|
|
30697
|
-
|
|
30698
|
-
|
|
30699
|
-
|
|
30700
|
-
|
|
30701
|
-
|
|
30702
|
-
|
|
30703
|
-
|
|
30704
|
-
|
|
30705
|
-
|
|
30706
|
-
|
|
30707
|
-
|
|
30619
|
+
const validateWhenErrorMessage = type =>
|
|
30620
|
+
`${type} was passed to validateWhen, but that validator type does not exist.
|
|
30621
|
+
Please check that you are only calling validator creator functions exported from
|
|
30622
|
+
redux-freeform in your form config and that you didn't forget to
|
|
30623
|
+
invoke the validator creator (you cannot pass the functions themselves to
|
|
30624
|
+
createFormState). Also make sure you aren't passing validateWhen() to validateWhen
|
|
30625
|
+
as the primary validator.`;
|
|
30626
|
+
|
|
30627
|
+
const VALIDATE_WHEN = "validator/VALIDATE_WHEN";
|
|
30628
|
+
const VALIDATE_WHEN_ERROR = "error/VALIDATE_WHEN";
|
|
30629
|
+
const validateWhen = (
|
|
30630
|
+
dependentValidator,
|
|
30631
|
+
primaryValidator,
|
|
30632
|
+
optionalFieldName
|
|
30633
|
+
) => ({
|
|
30634
|
+
type: VALIDATE_WHEN,
|
|
30635
|
+
args: [dependentValidator, primaryValidator, optionalFieldName],
|
|
30636
|
+
error: dependentValidator.error
|
|
30637
|
+
});
|
|
30708
30638
|
validateWhen.error = VALIDATE_WHEN_ERROR;
|
|
30639
|
+
validatorFns[VALIDATE_WHEN] = (value, args, form) => {
|
|
30640
|
+
const [dependentValidator, primaryValidator, optionalFieldName] = args;
|
|
30641
|
+
const dependsOnOtherField = typeof optionalFieldName === "string";
|
|
30709
30642
|
|
|
30710
|
-
|
|
30711
|
-
|
|
30712
|
-
|
|
30713
|
-
|
|
30714
|
-
optionalFieldName = _args[2];
|
|
30715
|
-
|
|
30716
|
-
var dependsOnOtherField = typeof optionalFieldName === "string";
|
|
30717
|
-
|
|
30718
|
-
if (primaryValidator.type === undefined || typeof validatorFns[primaryValidator.type] !== "function") {
|
|
30643
|
+
if (
|
|
30644
|
+
primaryValidator.type === undefined ||
|
|
30645
|
+
typeof validatorFns[primaryValidator.type] !== "function"
|
|
30646
|
+
) {
|
|
30719
30647
|
throw new Error(validateWhenErrorMessage(primaryValidator.type));
|
|
30720
30648
|
}
|
|
30721
|
-
|
|
30722
30649
|
if (dependsOnOtherField && form[optionalFieldName] === undefined) {
|
|
30723
|
-
throw new Error(
|
|
30650
|
+
throw new Error(
|
|
30651
|
+
`${args[2]} was passed to matchesField, but that field does not exist in the form`
|
|
30652
|
+
);
|
|
30724
30653
|
}
|
|
30725
30654
|
|
|
30726
|
-
|
|
30727
|
-
|
|
30728
|
-
|
|
30729
|
-
|
|
30730
|
-
|
|
30731
|
-
|
|
30732
|
-
|
|
30733
|
-
|
|
30734
|
-
|
|
30735
|
-
|
|
30736
|
-
|
|
30737
|
-
|
|
30738
|
-
|
|
30739
|
-
var validateSum = function validateSum(validator, fieldNamesArray) {
|
|
30740
|
-
return {
|
|
30741
|
-
type: VALIDATE_SUM,
|
|
30742
|
-
args: [validator, fieldNamesArray],
|
|
30743
|
-
error: validator.error
|
|
30744
|
-
};
|
|
30745
|
-
};
|
|
30655
|
+
const primaryPredicate = validatorToPredicate(
|
|
30656
|
+
validatorFns[primaryValidator.type],
|
|
30657
|
+
false
|
|
30658
|
+
);
|
|
30659
|
+
const primaryValue = dependsOnOtherField
|
|
30660
|
+
? form[optionalFieldName].rawValue
|
|
30661
|
+
: value;
|
|
30662
|
+
const primaryPredicatePassed = primaryPredicate(
|
|
30663
|
+
primaryValue,
|
|
30664
|
+
primaryValidator.args,
|
|
30665
|
+
form
|
|
30666
|
+
);
|
|
30746
30667
|
|
|
30668
|
+
return primaryPredicatePassed
|
|
30669
|
+
? validatorFns[dependentValidator.type](
|
|
30670
|
+
value,
|
|
30671
|
+
dependentValidator.args,
|
|
30672
|
+
form
|
|
30673
|
+
)
|
|
30674
|
+
: true;
|
|
30675
|
+
};
|
|
30676
|
+
|
|
30677
|
+
const validateSumErrorMessage = type =>
|
|
30678
|
+
`${type} was passed to validateSum, but that validator type does not exist.
|
|
30679
|
+
Please check that you are only calling validator creator functions exported from
|
|
30680
|
+
redux-freeform in your form config and that you didn't forget to
|
|
30681
|
+
invoke the validator creator (you cannot pass the functions themselves to
|
|
30682
|
+
createFormState).`;
|
|
30683
|
+
const VALIDATE_SUM = "validator/VALIDATE_SUM";
|
|
30684
|
+
const VALIDATE_SUM_ERROR = "error/VALIDATE_SUM";
|
|
30685
|
+
const validateSum = (validator, fieldNamesArray) => ({
|
|
30686
|
+
type: VALIDATE_SUM,
|
|
30687
|
+
args: [validator, fieldNamesArray],
|
|
30688
|
+
error: validator.error
|
|
30689
|
+
});
|
|
30747
30690
|
validateSum.error = VALIDATE_SUM_ERROR;
|
|
30691
|
+
validatorFns[VALIDATE_SUM] = (value, args, form) => {
|
|
30692
|
+
const [validator, fieldNamesArray] = args;
|
|
30748
30693
|
|
|
30749
|
-
|
|
30750
|
-
|
|
30751
|
-
|
|
30752
|
-
|
|
30753
|
-
|
|
30754
|
-
if (validator.type === undefined || typeof validatorFns[validator.type] !== "function") {
|
|
30694
|
+
if (
|
|
30695
|
+
validator.type === undefined ||
|
|
30696
|
+
typeof validatorFns[validator.type] !== "function"
|
|
30697
|
+
) {
|
|
30755
30698
|
throw new Error(validateSumErrorMessage(validator.type));
|
|
30756
30699
|
}
|
|
30757
30700
|
|
|
30758
|
-
|
|
30759
|
-
|
|
30760
|
-
|
|
30761
|
-
|
|
30762
|
-
|
|
30763
|
-
var fieldName = _step.value;
|
|
30764
|
-
|
|
30765
|
-
if (form[fieldName] === undefined) {
|
|
30766
|
-
throw new Error("".concat(fieldName, " was passed to matchesField, but that field does not exist in the form"));
|
|
30767
|
-
}
|
|
30701
|
+
for (const fieldName of fieldNamesArray) {
|
|
30702
|
+
if (form[fieldName] === undefined) {
|
|
30703
|
+
throw new Error(
|
|
30704
|
+
`${fieldName} was passed to matchesField, but that field does not exist in the form`
|
|
30705
|
+
);
|
|
30768
30706
|
}
|
|
30769
|
-
} catch (err) {
|
|
30770
|
-
_iterator.e(err);
|
|
30771
|
-
} finally {
|
|
30772
|
-
_iterator.f();
|
|
30773
30707
|
}
|
|
30774
30708
|
|
|
30775
|
-
|
|
30776
|
-
|
|
30777
|
-
|
|
30709
|
+
const sum = fieldNamesArray.reduce(
|
|
30710
|
+
(acc, curr) => acc + Number(form[curr].rawValue),
|
|
30711
|
+
Number(value)
|
|
30712
|
+
);
|
|
30713
|
+
|
|
30778
30714
|
return validatorFns[validator.type](sum, validator.args, form);
|
|
30779
30715
|
};
|
|
30780
30716
|
|
|
30781
|
-
|
|
30782
|
-
|
|
30783
|
-
|
|
30784
|
-
|
|
30785
|
-
validatorFns[HAS_LENGTH] = function (value, args, form) {
|
|
30717
|
+
const HAS_LENGTH = "validator/HAS_LENGTH";
|
|
30718
|
+
const HAS_LENGTH_ERROR = "error/HAS_LENGTH";
|
|
30719
|
+
const hasLength = createValidator(HAS_LENGTH, HAS_LENGTH_ERROR);
|
|
30720
|
+
validatorFns[HAS_LENGTH] = (value, args, form) => {
|
|
30786
30721
|
if (value === "") {
|
|
30787
30722
|
return true;
|
|
30788
30723
|
}
|
|
30789
|
-
|
|
30790
|
-
|
|
30791
|
-
var max = args[1];
|
|
30792
|
-
|
|
30724
|
+
const min = args[0];
|
|
30725
|
+
const max = args[1];
|
|
30793
30726
|
if (max == undefined || min == undefined) {
|
|
30794
|
-
throw new Error(
|
|
30727
|
+
throw new Error(
|
|
30728
|
+
"Max and min need to be defined for hasLength, both or one of them is undefined"
|
|
30729
|
+
);
|
|
30795
30730
|
}
|
|
30796
|
-
|
|
30797
30731
|
if (max < min) {
|
|
30798
|
-
throw new Error(
|
|
30732
|
+
throw new Error(
|
|
30733
|
+
"hasLength validator was passed a min greater than the max"
|
|
30734
|
+
);
|
|
30799
30735
|
}
|
|
30800
|
-
|
|
30801
|
-
var valueLength = value.length;
|
|
30736
|
+
const valueLength = value.length;
|
|
30802
30737
|
return max >= valueLength && valueLength >= min;
|
|
30803
30738
|
};
|
|
30804
30739
|
|
|
30805
|
-
|
|
30806
|
-
|
|
30807
|
-
|
|
30808
|
-
|
|
30809
|
-
validatorFns[MATCHES_REGEX] = function (value, args, form) {
|
|
30740
|
+
const MATCHES_REGEX = "validator/MATCHES_REGEX";
|
|
30741
|
+
const MATCHES_REGEX_ERROR = "error/MATCHES_REGEX";
|
|
30742
|
+
const matchesRegex = createValidator(MATCHES_REGEX, MATCHES_REGEX_ERROR);
|
|
30743
|
+
validatorFns[MATCHES_REGEX] = (value, args, form) => {
|
|
30810
30744
|
if (value === "") {
|
|
30811
30745
|
return true;
|
|
30812
30746
|
}
|
|
30813
|
-
|
|
30814
30747
|
return new RegExp(args[0]).test(value); // new RexExp never throws an error, no matter the input
|
|
30815
|
-
};
|
|
30816
|
-
|
|
30817
|
-
|
|
30818
|
-
var IS_ROUTING_NUMBER = "validator/IS_ROUTING_NUMBER";
|
|
30819
|
-
var IS_ROUTING_NUMBER_ERROR = "error/IS_ROUTING_NUMBER";
|
|
30820
|
-
var isRoutingNumber = createValidator(IS_ROUTING_NUMBER, IS_ROUTING_NUMBER_ERROR);
|
|
30748
|
+
};
|
|
30821
30749
|
|
|
30822
|
-
|
|
30750
|
+
// based on http://www.brainjar.com/js/validation/
|
|
30751
|
+
const IS_ROUTING_NUMBER = "validator/IS_ROUTING_NUMBER";
|
|
30752
|
+
const IS_ROUTING_NUMBER_ERROR = "error/IS_ROUTING_NUMBER";
|
|
30753
|
+
const isRoutingNumber = createValidator(
|
|
30754
|
+
IS_ROUTING_NUMBER,
|
|
30755
|
+
IS_ROUTING_NUMBER_ERROR
|
|
30756
|
+
);
|
|
30757
|
+
validatorFns[IS_ROUTING_NUMBER] = (value, args, form) => {
|
|
30823
30758
|
if (value === "") {
|
|
30824
30759
|
return true;
|
|
30825
30760
|
}
|
|
30826
|
-
|
|
30827
30761
|
if (value.length != 9) {
|
|
30828
30762
|
return false;
|
|
30829
30763
|
}
|
|
30830
|
-
|
|
30831
|
-
|
|
30832
|
-
|
|
30833
|
-
|
|
30834
|
-
|
|
30835
|
-
|
|
30836
|
-
|
|
30837
|
-
|
|
30838
|
-
|
|
30839
|
-
|
|
30840
|
-
|
|
30841
|
-
|
|
30842
|
-
|
|
30843
|
-
}
|
|
30844
|
-
}, 0);
|
|
30764
|
+
const sum = value
|
|
30765
|
+
.split("")
|
|
30766
|
+
.map(ch => parseInt(ch))
|
|
30767
|
+
.reduce((acc, cur, idx) => {
|
|
30768
|
+
switch (idx % 3) {
|
|
30769
|
+
case 0:
|
|
30770
|
+
return acc + 3 * cur;
|
|
30771
|
+
case 1:
|
|
30772
|
+
return acc + 7 * cur;
|
|
30773
|
+
case 2:
|
|
30774
|
+
return acc + 1 * cur;
|
|
30775
|
+
}
|
|
30776
|
+
}, 0);
|
|
30845
30777
|
return sum != 0 && sum % 10 == 0;
|
|
30846
30778
|
};
|
|
30847
30779
|
|
|
30848
|
-
|
|
30849
|
-
|
|
30850
|
-
|
|
30851
|
-
|
|
30852
|
-
validatorFns[HAS_NUMBER] = function (value, args, form) {
|
|
30780
|
+
const HAS_NUMBER = "validator/HAS_NUMBER";
|
|
30781
|
+
const HAS_NUMBER_ERROR$1 = "error/HAS_NUMBER";
|
|
30782
|
+
const hasNumber = createValidator(HAS_NUMBER, HAS_NUMBER_ERROR$1);
|
|
30783
|
+
validatorFns[HAS_NUMBER] = (value, args, form) => {
|
|
30853
30784
|
if (value === "") {
|
|
30854
30785
|
return true;
|
|
30855
30786
|
}
|
|
30856
|
-
|
|
30857
30787
|
return new RegExp(/[0-9]/).test(value);
|
|
30858
30788
|
};
|
|
30859
30789
|
|
|
30860
|
-
|
|
30861
|
-
|
|
30862
|
-
|
|
30863
|
-
|
|
30864
|
-
|
|
30790
|
+
const HAS_LOWERCASE_LETTER = "validator/HAS_LOWERCASE_LETTER";
|
|
30791
|
+
const HAS_LOWERCASE_LETTER_ERROR$1 = "error/HAS_LOWERCASE_LETTER";
|
|
30792
|
+
const hasLowercaseLetter = createValidator(
|
|
30793
|
+
HAS_LOWERCASE_LETTER,
|
|
30794
|
+
HAS_LOWERCASE_LETTER_ERROR$1
|
|
30795
|
+
);
|
|
30796
|
+
validatorFns[HAS_LOWERCASE_LETTER] = (value, args, form) => {
|
|
30865
30797
|
if (value === "") {
|
|
30866
30798
|
return true;
|
|
30867
30799
|
}
|
|
30868
|
-
|
|
30869
30800
|
return new RegExp(/[a-z]/).test(value);
|
|
30870
30801
|
};
|
|
30871
30802
|
|
|
30872
|
-
|
|
30873
|
-
|
|
30874
|
-
|
|
30875
|
-
|
|
30876
|
-
|
|
30803
|
+
const HAS_UPPERCASE_LETTER = "validator/HAS_UPPERCASE_LETTER";
|
|
30804
|
+
const HAS_UPPERCASE_LETTER_ERROR$1 = "error/HAS_UPPERCASE_LETTER";
|
|
30805
|
+
const hasUppercaseLetter = createValidator(
|
|
30806
|
+
HAS_UPPERCASE_LETTER,
|
|
30807
|
+
HAS_UPPERCASE_LETTER_ERROR$1
|
|
30808
|
+
);
|
|
30809
|
+
validatorFns[HAS_UPPERCASE_LETTER] = (value, args, form) => {
|
|
30877
30810
|
if (value === "") {
|
|
30878
30811
|
return true;
|
|
30879
30812
|
}
|
|
30880
|
-
|
|
30881
30813
|
return new RegExp(/[A-Z]/).test(value);
|
|
30882
30814
|
};
|
|
30883
30815
|
|
|
30884
|
-
|
|
30885
|
-
|
|
30886
|
-
|
|
30887
|
-
|
|
30888
|
-
|
|
30816
|
+
const HAS_SPECIAL_CHARACTER = "validator/HAS_SPECIAL_CHARACTER";
|
|
30817
|
+
const HAS_SPECIAL_CHARACTER_ERROR$1 = "error/HAS_SPECIAL_CHARACTER";
|
|
30818
|
+
const hasSpecialCharacter = createValidator(
|
|
30819
|
+
HAS_SPECIAL_CHARACTER,
|
|
30820
|
+
HAS_SPECIAL_CHARACTER_ERROR$1
|
|
30821
|
+
);
|
|
30822
|
+
validatorFns[HAS_SPECIAL_CHARACTER] = (value, args, form) => {
|
|
30889
30823
|
if (value === "") {
|
|
30890
30824
|
return true;
|
|
30891
30825
|
}
|
|
30892
|
-
|
|
30893
30826
|
return new RegExp(/[!@#$%^&*.?]/).test(value);
|
|
30894
30827
|
};
|
|
30895
30828
|
|
|
30896
|
-
|
|
30897
|
-
|
|
30898
|
-
|
|
30899
|
-
|
|
30900
|
-
|
|
30829
|
+
const IS_PROBABLY_EMAIL = "validator/IS_PROBABLY_EMAIL";
|
|
30830
|
+
const IS_PROBABLY_EMAIL_ERROR = "error/IS_PROBABLY_EMAIL";
|
|
30831
|
+
const isProbablyEmail = createValidator(
|
|
30832
|
+
IS_PROBABLY_EMAIL,
|
|
30833
|
+
IS_PROBABLY_EMAIL_ERROR
|
|
30834
|
+
);
|
|
30835
|
+
validatorFns[IS_PROBABLY_EMAIL] = (value, args, form) => {
|
|
30901
30836
|
if (value === "") {
|
|
30902
30837
|
return true;
|
|
30903
30838
|
}
|
|
30904
|
-
|
|
30905
30839
|
return new RegExp(/^\S+@\S+\.\S+$/).test(value);
|
|
30906
30840
|
};
|
|
30907
30841
|
|
|
30908
|
-
|
|
30909
|
-
|
|
30910
|
-
|
|
30911
|
-
|
|
30912
|
-
|
|
30913
|
-
|
|
30842
|
+
const runValidatorErrorMessage = type =>
|
|
30843
|
+
`${type} was passed to runValidator, but that validator type does not exist.
|
|
30844
|
+
Please check that you are only calling validator creator functions exported from
|
|
30845
|
+
redux-freeform in your form config and that you didn't forget to
|
|
30846
|
+
invoke the validator creator (you cannot pass the functions themselves to
|
|
30847
|
+
createFormState)`;
|
|
30914
30848
|
|
|
30849
|
+
const runValidator = (validator, value, form) => {
|
|
30850
|
+
const validatorFn = validatorFns[validator.type];
|
|
30915
30851
|
if (validatorFn === undefined) {
|
|
30916
30852
|
throw new Error(runValidatorErrorMessage(validator.type));
|
|
30917
30853
|
}
|
|
30918
|
-
|
|
30919
30854
|
return validatorFn(value, validator.args, form) ? null : validator.error;
|
|
30920
30855
|
};
|
|
30921
30856
|
|
|
30922
|
-
|
|
30923
|
-
return validators
|
|
30924
|
-
|
|
30925
|
-
|
|
30926
|
-
return x !== null;
|
|
30927
|
-
});
|
|
30857
|
+
const _computeErrors = (fieldName, form, validators) => {
|
|
30858
|
+
return validators
|
|
30859
|
+
.map(v => runValidator(v, form[fieldName].rawValue, form))
|
|
30860
|
+
.filter(x => x !== null);
|
|
30928
30861
|
};
|
|
30929
30862
|
|
|
30930
|
-
|
|
30931
|
-
|
|
30863
|
+
const computeConstraints = (fieldName, form) => {
|
|
30864
|
+
const constraints = form[fieldName].constraints;
|
|
30932
30865
|
return _computeErrors(fieldName, form, constraints);
|
|
30933
30866
|
};
|
|
30934
30867
|
|
|
30935
|
-
|
|
30936
|
-
|
|
30868
|
+
const computeErrors = (fieldName, form) => {
|
|
30869
|
+
const validators = form[fieldName].validators;
|
|
30937
30870
|
return _computeErrors(fieldName, form, validators);
|
|
30938
30871
|
};
|
|
30939
30872
|
|
|
30940
30873
|
var obj;
|
|
30941
|
-
var NOTHING = typeof Symbol !== "undefined" ? Symbol("immer-nothing") : (obj = {}, obj["immer-nothing"] = true, obj);
|
|
30942
|
-
var DRAFTABLE = typeof Symbol !== "undefined" && Symbol
|
|
30943
|
-
var DRAFT_STATE = typeof Symbol !== "undefined" && Symbol
|
|
30944
|
-
|
|
30874
|
+
var NOTHING = typeof Symbol !== "undefined" ? Symbol("immer-nothing") : ( obj = {}, obj["immer-nothing"] = true, obj );
|
|
30875
|
+
var DRAFTABLE = typeof Symbol !== "undefined" && Symbol.for ? Symbol.for("immer-draftable") : "__$immer_draftable";
|
|
30876
|
+
var DRAFT_STATE = typeof Symbol !== "undefined" && Symbol.for ? Symbol.for("immer-state") : "__$immer_state";
|
|
30945
30877
|
function isDraft(value) {
|
|
30946
30878
|
return !!value && !!value[DRAFT_STATE];
|
|
30947
30879
|
}
|
|
30948
|
-
|
|
30949
30880
|
function isDraftable(value) {
|
|
30950
|
-
if (!value) {
|
|
30951
|
-
return false;
|
|
30952
|
-
}
|
|
30953
|
-
|
|
30881
|
+
if (!value) { return false; }
|
|
30954
30882
|
return isPlainObject(value) || !!value[DRAFTABLE] || !!value.constructor[DRAFTABLE];
|
|
30955
30883
|
}
|
|
30956
|
-
|
|
30957
30884
|
function isPlainObject(value) {
|
|
30958
|
-
if (!value ||
|
|
30959
|
-
|
|
30960
|
-
}
|
|
30961
|
-
|
|
30962
|
-
if (Array.isArray(value)) {
|
|
30963
|
-
return true;
|
|
30964
|
-
}
|
|
30965
|
-
|
|
30885
|
+
if (!value || typeof value !== "object") { return false; }
|
|
30886
|
+
if (Array.isArray(value)) { return true; }
|
|
30966
30887
|
var proto = Object.getPrototypeOf(value);
|
|
30967
30888
|
return !proto || proto === Object.prototype;
|
|
30968
30889
|
}
|
|
30969
|
-
|
|
30970
30890
|
var assign = Object.assign || function assign(target, value) {
|
|
30971
30891
|
for (var key in value) {
|
|
30972
30892
|
if (has(value, key)) {
|
|
@@ -30976,18 +30896,11 @@ var assign = Object.assign || function assign(target, value) {
|
|
|
30976
30896
|
|
|
30977
30897
|
return target;
|
|
30978
30898
|
};
|
|
30979
|
-
|
|
30980
|
-
var ownKeys$1 = typeof Reflect !== "undefined" && Reflect.ownKeys ? Reflect.ownKeys : typeof Object.getOwnPropertySymbols !== "undefined" ? function (obj) {
|
|
30981
|
-
return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));
|
|
30982
|
-
} : Object.getOwnPropertyNames;
|
|
30983
|
-
|
|
30899
|
+
var ownKeys$1 = typeof Reflect !== "undefined" && Reflect.ownKeys ? Reflect.ownKeys : typeof Object.getOwnPropertySymbols !== "undefined" ? function (obj) { return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)); } : Object.getOwnPropertyNames;
|
|
30984
30900
|
function shallowCopy(base, invokeGetters) {
|
|
30985
|
-
if (invokeGetters === void 0) invokeGetters = false;
|
|
30986
|
-
|
|
30987
|
-
if (Array.isArray(base)) {
|
|
30988
|
-
return base.slice();
|
|
30989
|
-
}
|
|
30901
|
+
if ( invokeGetters === void 0 ) invokeGetters = false;
|
|
30990
30902
|
|
|
30903
|
+
if (Array.isArray(base)) { return base.slice(); }
|
|
30991
30904
|
var clone = Object.create(Object.getPrototypeOf(base));
|
|
30992
30905
|
ownKeys$1(base).forEach(function (key) {
|
|
30993
30906
|
if (key === DRAFT_STATE) {
|
|
@@ -31017,28 +30930,20 @@ function shallowCopy(base, invokeGetters) {
|
|
|
31017
30930
|
});
|
|
31018
30931
|
return clone;
|
|
31019
30932
|
}
|
|
31020
|
-
|
|
31021
30933
|
function each(value, cb) {
|
|
31022
30934
|
if (Array.isArray(value)) {
|
|
31023
|
-
for (var i = 0; i < value.length; i++) {
|
|
31024
|
-
cb(i, value[i], value);
|
|
31025
|
-
}
|
|
30935
|
+
for (var i = 0; i < value.length; i++) { cb(i, value[i], value); }
|
|
31026
30936
|
} else {
|
|
31027
|
-
ownKeys$1(value).forEach(function (key) {
|
|
31028
|
-
return cb(key, value[key], value);
|
|
31029
|
-
});
|
|
30937
|
+
ownKeys$1(value).forEach(function (key) { return cb(key, value[key], value); });
|
|
31030
30938
|
}
|
|
31031
30939
|
}
|
|
31032
|
-
|
|
31033
30940
|
function isEnumerable(base, prop) {
|
|
31034
30941
|
var desc = Object.getOwnPropertyDescriptor(base, prop);
|
|
31035
30942
|
return !!desc && desc.enumerable;
|
|
31036
30943
|
}
|
|
31037
|
-
|
|
31038
30944
|
function has(thing, prop) {
|
|
31039
30945
|
return Object.prototype.hasOwnProperty.call(thing, prop);
|
|
31040
30946
|
}
|
|
31041
|
-
|
|
31042
30947
|
function is(x, y) {
|
|
31043
30948
|
// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
|
|
31044
30949
|
if (x === y) {
|
|
@@ -31047,26 +30952,17 @@ function is(x, y) {
|
|
|
31047
30952
|
return x !== x && y !== y;
|
|
31048
30953
|
}
|
|
31049
30954
|
}
|
|
31050
|
-
|
|
31051
30955
|
function clone(obj) {
|
|
31052
|
-
if (!isDraftable(obj)) {
|
|
31053
|
-
|
|
31054
|
-
}
|
|
31055
|
-
|
|
31056
|
-
if (Array.isArray(obj)) {
|
|
31057
|
-
return obj.map(clone);
|
|
31058
|
-
}
|
|
31059
|
-
|
|
30956
|
+
if (!isDraftable(obj)) { return obj; }
|
|
30957
|
+
if (Array.isArray(obj)) { return obj.map(clone); }
|
|
31060
30958
|
var cloned = Object.create(Object.getPrototypeOf(obj));
|
|
31061
30959
|
|
|
31062
|
-
for (var key in obj) {
|
|
31063
|
-
cloned[key] = clone(obj[key]);
|
|
31064
|
-
}
|
|
30960
|
+
for (var key in obj) { cloned[key] = clone(obj[key]); }
|
|
31065
30961
|
|
|
31066
30962
|
return cloned;
|
|
31067
30963
|
}
|
|
31068
|
-
/** Each scope represents a `produce` call. */
|
|
31069
30964
|
|
|
30965
|
+
/** Each scope represents a `produce` call. */
|
|
31070
30966
|
|
|
31071
30967
|
var ImmerScope = function ImmerScope(parent) {
|
|
31072
30968
|
this.drafts = [];
|
|
@@ -31078,7 +30974,7 @@ var ImmerScope = function ImmerScope(parent) {
|
|
|
31078
30974
|
this.patches = null;
|
|
31079
30975
|
};
|
|
31080
30976
|
|
|
31081
|
-
ImmerScope.prototype.usePatches = function usePatches(patchListener) {
|
|
30977
|
+
ImmerScope.prototype.usePatches = function usePatches (patchListener) {
|
|
31082
30978
|
if (patchListener) {
|
|
31083
30979
|
this.patches = [];
|
|
31084
30980
|
this.inversePatches = [];
|
|
@@ -31086,18 +30982,17 @@ ImmerScope.prototype.usePatches = function usePatches(patchListener) {
|
|
|
31086
30982
|
}
|
|
31087
30983
|
};
|
|
31088
30984
|
|
|
31089
|
-
ImmerScope.prototype.revoke = function revoke$1() {
|
|
30985
|
+
ImmerScope.prototype.revoke = function revoke$1 () {
|
|
31090
30986
|
this.leave();
|
|
31091
30987
|
this.drafts.forEach(revoke);
|
|
31092
30988
|
this.drafts = null; // Make draft-related methods throw.
|
|
31093
30989
|
};
|
|
31094
30990
|
|
|
31095
|
-
ImmerScope.prototype.leave = function leave() {
|
|
30991
|
+
ImmerScope.prototype.leave = function leave () {
|
|
31096
30992
|
if (this === ImmerScope.current) {
|
|
31097
30993
|
ImmerScope.current = this.parent;
|
|
31098
30994
|
}
|
|
31099
30995
|
};
|
|
31100
|
-
|
|
31101
30996
|
ImmerScope.current = null;
|
|
31102
30997
|
|
|
31103
30998
|
ImmerScope.enter = function () {
|
|
@@ -31106,11 +31001,11 @@ ImmerScope.enter = function () {
|
|
|
31106
31001
|
|
|
31107
31002
|
function revoke(draft) {
|
|
31108
31003
|
draft[DRAFT_STATE].revoke();
|
|
31109
|
-
}
|
|
31004
|
+
}
|
|
31110
31005
|
|
|
31006
|
+
// but share them all instead
|
|
31111
31007
|
|
|
31112
31008
|
var descriptors = {};
|
|
31113
|
-
|
|
31114
31009
|
function willFinalize(scope, result, isReplaced) {
|
|
31115
31010
|
scope.drafts.forEach(function (draft) {
|
|
31116
31011
|
draft[DRAFT_STATE].finalizing = true;
|
|
@@ -31128,7 +31023,6 @@ function willFinalize(scope, result, isReplaced) {
|
|
|
31128
31023
|
markChangesSweep(scope.drafts);
|
|
31129
31024
|
}
|
|
31130
31025
|
}
|
|
31131
|
-
|
|
31132
31026
|
function createProxy(base, parent) {
|
|
31133
31027
|
var isArray = Array.isArray(base);
|
|
31134
31028
|
var draft = clonePotentialDraft(base);
|
|
@@ -31182,11 +31076,7 @@ function peek(draft, prop) {
|
|
|
31182
31076
|
function get(state, prop) {
|
|
31183
31077
|
assertUnrevoked(state);
|
|
31184
31078
|
var value = peek(source(state), prop);
|
|
31185
|
-
|
|
31186
|
-
if (state.finalizing) {
|
|
31187
|
-
return value;
|
|
31188
|
-
} // Create a draft if the value is unmodified.
|
|
31189
|
-
|
|
31079
|
+
if (state.finalizing) { return value; } // Create a draft if the value is unmodified.
|
|
31190
31080
|
|
|
31191
31081
|
if (value === peek(state.base, prop) && isDraftable(value)) {
|
|
31192
31082
|
prepareCopy(state);
|
|
@@ -31201,10 +31091,7 @@ function set(state, prop, value) {
|
|
|
31201
31091
|
state.assigned[prop] = true;
|
|
31202
31092
|
|
|
31203
31093
|
if (!state.modified) {
|
|
31204
|
-
if (is(value, peek(source(state), prop))) {
|
|
31205
|
-
return;
|
|
31206
|
-
}
|
|
31207
|
-
|
|
31094
|
+
if (is(value, peek(source(state), prop))) { return; }
|
|
31208
31095
|
markChanged(state);
|
|
31209
31096
|
prepareCopy(state);
|
|
31210
31097
|
}
|
|
@@ -31215,17 +31102,12 @@ function set(state, prop, value) {
|
|
|
31215
31102
|
function markChanged(state) {
|
|
31216
31103
|
if (!state.modified) {
|
|
31217
31104
|
state.modified = true;
|
|
31218
|
-
|
|
31219
|
-
if (state.parent) {
|
|
31220
|
-
markChanged(state.parent);
|
|
31221
|
-
}
|
|
31105
|
+
if (state.parent) { markChanged(state.parent); }
|
|
31222
31106
|
}
|
|
31223
31107
|
}
|
|
31224
31108
|
|
|
31225
31109
|
function prepareCopy(state) {
|
|
31226
|
-
if (!state.copy) {
|
|
31227
|
-
state.copy = clonePotentialDraft(state.base);
|
|
31228
|
-
}
|
|
31110
|
+
if (!state.copy) { state.copy = clonePotentialDraft(state.base); }
|
|
31229
31111
|
}
|
|
31230
31112
|
|
|
31231
31113
|
function clonePotentialDraft(base) {
|
|
@@ -31250,12 +31132,15 @@ function proxyProperty(draft, prop, enumerable) {
|
|
|
31250
31132
|
descriptors[prop] = desc = {
|
|
31251
31133
|
configurable: true,
|
|
31252
31134
|
enumerable: enumerable,
|
|
31135
|
+
|
|
31253
31136
|
get: function get$1() {
|
|
31254
31137
|
return get(this[DRAFT_STATE], prop);
|
|
31255
31138
|
},
|
|
31139
|
+
|
|
31256
31140
|
set: function set$1(value) {
|
|
31257
31141
|
set(this[DRAFT_STATE], prop, value);
|
|
31258
31142
|
}
|
|
31143
|
+
|
|
31259
31144
|
};
|
|
31260
31145
|
}
|
|
31261
31146
|
|
|
@@ -31263,9 +31148,7 @@ function proxyProperty(draft, prop, enumerable) {
|
|
|
31263
31148
|
}
|
|
31264
31149
|
|
|
31265
31150
|
function assertUnrevoked(state) {
|
|
31266
|
-
if (state.revoked === true) {
|
|
31267
|
-
throw new Error("Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + JSON.stringify(source(state)));
|
|
31268
|
-
}
|
|
31151
|
+
if (state.revoked === true) { throw new Error("Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + JSON.stringify(source(state))); }
|
|
31269
31152
|
} // This looks expensive, but only proxies are visited, and only objects without known changes are scanned.
|
|
31270
31153
|
|
|
31271
31154
|
|
|
@@ -31279,27 +31162,16 @@ function markChangesSweep(drafts) {
|
|
|
31279
31162
|
|
|
31280
31163
|
if (!state.modified) {
|
|
31281
31164
|
if (Array.isArray(state.base)) {
|
|
31282
|
-
if (hasArrayChanges(state)) {
|
|
31283
|
-
|
|
31284
|
-
}
|
|
31285
|
-
} else if (hasObjectChanges(state)) {
|
|
31286
|
-
markChanged(state);
|
|
31287
|
-
}
|
|
31165
|
+
if (hasArrayChanges(state)) { markChanged(state); }
|
|
31166
|
+
} else if (hasObjectChanges(state)) { markChanged(state); }
|
|
31288
31167
|
}
|
|
31289
31168
|
}
|
|
31290
31169
|
}
|
|
31291
31170
|
|
|
31292
31171
|
function markChangesRecursively(object) {
|
|
31293
|
-
if (!object ||
|
|
31294
|
-
return;
|
|
31295
|
-
}
|
|
31296
|
-
|
|
31172
|
+
if (!object || typeof object !== "object") { return; }
|
|
31297
31173
|
var state = object[DRAFT_STATE];
|
|
31298
|
-
|
|
31299
|
-
if (!state) {
|
|
31300
|
-
return;
|
|
31301
|
-
}
|
|
31302
|
-
|
|
31174
|
+
if (!state) { return; }
|
|
31303
31175
|
var base = state.base;
|
|
31304
31176
|
var draft = state.draft;
|
|
31305
31177
|
var assigned = state.assigned;
|
|
@@ -31329,20 +31201,14 @@ function markChangesRecursively(object) {
|
|
|
31329
31201
|
assigned.length = true;
|
|
31330
31202
|
|
|
31331
31203
|
if (draft.length < base.length) {
|
|
31332
|
-
for (var i = draft.length; i < base.length; i++) {
|
|
31333
|
-
assigned[i] = false;
|
|
31334
|
-
}
|
|
31204
|
+
for (var i = draft.length; i < base.length; i++) { assigned[i] = false; }
|
|
31335
31205
|
} else {
|
|
31336
|
-
for (var i$1 = base.length; i$1 < draft.length; i$1++) {
|
|
31337
|
-
assigned[i$1] = true;
|
|
31338
|
-
}
|
|
31206
|
+
for (var i$1 = base.length; i$1 < draft.length; i$1++) { assigned[i$1] = true; }
|
|
31339
31207
|
}
|
|
31340
31208
|
|
|
31341
31209
|
for (var i$2 = 0; i$2 < draft.length; i$2++) {
|
|
31342
31210
|
// Only untouched indices trigger recursion.
|
|
31343
|
-
if (assigned[i$2] === undefined) {
|
|
31344
|
-
markChangesRecursively(draft[i$2]);
|
|
31345
|
-
}
|
|
31211
|
+
if (assigned[i$2] === undefined) { markChangesRecursively(draft[i$2]); }
|
|
31346
31212
|
}
|
|
31347
31213
|
}
|
|
31348
31214
|
}
|
|
@@ -31379,10 +31245,7 @@ function hasObjectChanges(state) {
|
|
|
31379
31245
|
|
|
31380
31246
|
function hasArrayChanges(state) {
|
|
31381
31247
|
var draft = state.draft;
|
|
31382
|
-
|
|
31383
|
-
if (draft.length !== state.base.length) {
|
|
31384
|
-
return true;
|
|
31385
|
-
} // See #116
|
|
31248
|
+
if (draft.length !== state.base.length) { return true; } // See #116
|
|
31386
31249
|
// If we first shorten the length, our array interceptors will be removed.
|
|
31387
31250
|
// If after that new items are added, result in the same original length,
|
|
31388
31251
|
// those last items will have no intercepting property.
|
|
@@ -31390,13 +31253,9 @@ function hasArrayChanges(state) {
|
|
|
31390
31253
|
// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check
|
|
31391
31254
|
// the last one
|
|
31392
31255
|
|
|
31393
|
-
|
|
31394
31256
|
var descriptor = Object.getOwnPropertyDescriptor(draft, draft.length - 1); // descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)
|
|
31395
31257
|
|
|
31396
|
-
if (descriptor && !descriptor.get) {
|
|
31397
|
-
return true;
|
|
31398
|
-
} // For all other cases, we don't have to compare, as they would have been picked up by the index setters
|
|
31399
|
-
|
|
31258
|
+
if (descriptor && !descriptor.get) { return true; } // For all other cases, we don't have to compare, as they would have been picked up by the index setters
|
|
31400
31259
|
|
|
31401
31260
|
return false;
|
|
31402
31261
|
}
|
|
@@ -31410,12 +31269,11 @@ function createHiddenProperty(target, prop, value) {
|
|
|
31410
31269
|
}
|
|
31411
31270
|
|
|
31412
31271
|
var legacyProxy = /*#__PURE__*/Object.freeze({
|
|
31413
|
-
|
|
31414
|
-
|
|
31272
|
+
willFinalize: willFinalize,
|
|
31273
|
+
createProxy: createProxy
|
|
31415
31274
|
});
|
|
31416
31275
|
|
|
31417
31276
|
function willFinalize$1() {}
|
|
31418
|
-
|
|
31419
31277
|
function createProxy$1(base, parent) {
|
|
31420
31278
|
var scope = parent ? parent.scope : ImmerScope.current;
|
|
31421
31279
|
var state = {
|
|
@@ -31450,27 +31308,33 @@ function createProxy$1(base, parent) {
|
|
|
31450
31308
|
scope.drafts.push(proxy);
|
|
31451
31309
|
return proxy;
|
|
31452
31310
|
}
|
|
31453
|
-
|
|
31454
31311
|
var objectTraps = {
|
|
31455
31312
|
get: get$1,
|
|
31313
|
+
|
|
31456
31314
|
has: function has(target, prop) {
|
|
31457
31315
|
return prop in source$1(target);
|
|
31458
31316
|
},
|
|
31317
|
+
|
|
31459
31318
|
ownKeys: function ownKeys(target) {
|
|
31460
31319
|
return Reflect.ownKeys(source$1(target));
|
|
31461
31320
|
},
|
|
31321
|
+
|
|
31462
31322
|
set: set$1,
|
|
31463
31323
|
deleteProperty: deleteProperty,
|
|
31464
31324
|
getOwnPropertyDescriptor: getOwnPropertyDescriptor,
|
|
31325
|
+
|
|
31465
31326
|
defineProperty: function defineProperty() {
|
|
31466
31327
|
throw new Error("Object.defineProperty() cannot be used on an Immer draft"); // prettier-ignore
|
|
31467
31328
|
},
|
|
31329
|
+
|
|
31468
31330
|
getPrototypeOf: function getPrototypeOf(target) {
|
|
31469
31331
|
return Object.getPrototypeOf(target.base);
|
|
31470
31332
|
},
|
|
31333
|
+
|
|
31471
31334
|
setPrototypeOf: function setPrototypeOf() {
|
|
31472
31335
|
throw new Error("Object.setPrototypeOf() cannot be used on an Immer draft"); // prettier-ignore
|
|
31473
31336
|
}
|
|
31337
|
+
|
|
31474
31338
|
};
|
|
31475
31339
|
var arrayTraps = {};
|
|
31476
31340
|
each(objectTraps, function (key, fn) {
|
|
@@ -31509,10 +31373,7 @@ function peek$1(draft, prop) {
|
|
|
31509
31373
|
}
|
|
31510
31374
|
|
|
31511
31375
|
function get$1(state, prop) {
|
|
31512
|
-
if (prop === DRAFT_STATE) {
|
|
31513
|
-
return state;
|
|
31514
|
-
}
|
|
31515
|
-
|
|
31376
|
+
if (prop === DRAFT_STATE) { return state; }
|
|
31516
31377
|
var drafts = state.drafts; // Check for existing draft in unmodified state.
|
|
31517
31378
|
|
|
31518
31379
|
if (!state.modified && has(drafts, prop)) {
|
|
@@ -31528,10 +31389,7 @@ function get$1(state, prop) {
|
|
|
31528
31389
|
|
|
31529
31390
|
if (state.modified) {
|
|
31530
31391
|
// Assigned values are never drafted. This catches any drafts we created, too.
|
|
31531
|
-
if (value !== peek$1(state.base, prop)) {
|
|
31532
|
-
return value;
|
|
31533
|
-
} // Store drafts on the copy (when one exists).
|
|
31534
|
-
|
|
31392
|
+
if (value !== peek$1(state.base, prop)) { return value; } // Store drafts on the copy (when one exists).
|
|
31535
31393
|
|
|
31536
31394
|
drafts = state.copy;
|
|
31537
31395
|
}
|
|
@@ -31546,11 +31404,7 @@ function set$1(state, prop, value) {
|
|
|
31546
31404
|
// values may be drafts, but falsy values are never drafts.
|
|
31547
31405
|
|
|
31548
31406
|
var isUnchanged = value ? is(baseValue, value) || value === state.drafts[prop] : is(baseValue, value) && prop in state.base;
|
|
31549
|
-
|
|
31550
|
-
if (isUnchanged) {
|
|
31551
|
-
return true;
|
|
31552
|
-
}
|
|
31553
|
-
|
|
31407
|
+
if (isUnchanged) { return true; }
|
|
31554
31408
|
markChanged$1(state);
|
|
31555
31409
|
}
|
|
31556
31410
|
|
|
@@ -31569,10 +31423,7 @@ function deleteProperty(state, prop) {
|
|
|
31569
31423
|
delete state.assigned[prop];
|
|
31570
31424
|
}
|
|
31571
31425
|
|
|
31572
|
-
if (state.copy) {
|
|
31573
|
-
delete state.copy[prop];
|
|
31574
|
-
}
|
|
31575
|
-
|
|
31426
|
+
if (state.copy) { delete state.copy[prop]; }
|
|
31576
31427
|
return true;
|
|
31577
31428
|
} // Note: We never coerce `desc.value` into an Immer draft, because we can't make
|
|
31578
31429
|
// the same guarantee in ES5 mode.
|
|
@@ -31595,16 +31446,13 @@ function markChanged$1(state) {
|
|
|
31595
31446
|
state.modified = true;
|
|
31596
31447
|
state.copy = assign(shallowCopy(state.base), state.drafts);
|
|
31597
31448
|
state.drafts = null;
|
|
31598
|
-
|
|
31599
|
-
if (state.parent) {
|
|
31600
|
-
markChanged$1(state.parent);
|
|
31601
|
-
}
|
|
31449
|
+
if (state.parent) { markChanged$1(state.parent); }
|
|
31602
31450
|
}
|
|
31603
31451
|
}
|
|
31604
31452
|
|
|
31605
31453
|
var modernProxy = /*#__PURE__*/Object.freeze({
|
|
31606
|
-
|
|
31607
|
-
|
|
31454
|
+
willFinalize: willFinalize$1,
|
|
31455
|
+
createProxy: createProxy$1
|
|
31608
31456
|
});
|
|
31609
31457
|
|
|
31610
31458
|
function generatePatches(state, basePath, patches, inversePatches) {
|
|
@@ -31613,13 +31461,14 @@ function generatePatches(state, basePath, patches, inversePatches) {
|
|
|
31613
31461
|
|
|
31614
31462
|
function generateArrayPatches(state, basePath, patches, inversePatches) {
|
|
31615
31463
|
var assign, assign$1;
|
|
31464
|
+
|
|
31616
31465
|
var base = state.base;
|
|
31617
31466
|
var copy = state.copy;
|
|
31618
31467
|
var assigned = state.assigned; // Reduce complexity by ensuring `base` is never longer.
|
|
31619
31468
|
|
|
31620
31469
|
if (copy.length < base.length) {
|
|
31621
|
-
assign = [copy, base], base = assign[0], copy = assign[1];
|
|
31622
|
-
assign$1 = [inversePatches, patches], patches = assign$1[0], inversePatches = assign$1[1];
|
|
31470
|
+
(assign = [copy, base], base = assign[0], copy = assign[1]);
|
|
31471
|
+
(assign$1 = [inversePatches, patches], patches = assign$1[0], inversePatches = assign$1[1]);
|
|
31623
31472
|
}
|
|
31624
31473
|
|
|
31625
31474
|
var delta = copy.length - base.length; // Find the first replaced index.
|
|
@@ -31677,11 +31526,7 @@ function generateObjectPatches(state, basePath, patches, inversePatches) {
|
|
|
31677
31526
|
var origValue = base[key];
|
|
31678
31527
|
var value = copy[key];
|
|
31679
31528
|
var op = !assignedValue ? "remove" : key in base ? "replace" : "add";
|
|
31680
|
-
|
|
31681
|
-
if (origValue === value && op === "replace") {
|
|
31682
|
-
return;
|
|
31683
|
-
}
|
|
31684
|
-
|
|
31529
|
+
if (origValue === value && op === "replace") { return; }
|
|
31685
31530
|
var path = basePath.concat(key);
|
|
31686
31531
|
patches.push(op === "remove" ? {
|
|
31687
31532
|
op: op,
|
|
@@ -31706,26 +31551,20 @@ function generateObjectPatches(state, basePath, patches, inversePatches) {
|
|
|
31706
31551
|
});
|
|
31707
31552
|
}
|
|
31708
31553
|
|
|
31709
|
-
var applyPatches = function
|
|
31554
|
+
var applyPatches = function (draft, patches) {
|
|
31710
31555
|
for (var i$1 = 0, list = patches; i$1 < list.length; i$1 += 1) {
|
|
31711
31556
|
var patch = list[i$1];
|
|
31557
|
+
|
|
31712
31558
|
var path = patch.path;
|
|
31713
31559
|
var op = patch.op;
|
|
31714
31560
|
var value = clone(patch.value); // used to clone patch to ensure original patch is not modified, see #411
|
|
31715
31561
|
|
|
31716
|
-
if (!path.length) {
|
|
31717
|
-
throw new Error("Illegal state");
|
|
31718
|
-
}
|
|
31719
|
-
|
|
31562
|
+
if (!path.length) { throw new Error("Illegal state"); }
|
|
31720
31563
|
var base = draft;
|
|
31721
31564
|
|
|
31722
31565
|
for (var i = 0; i < path.length - 1; i++) {
|
|
31723
31566
|
base = base[path[i]];
|
|
31724
|
-
|
|
31725
|
-
if (!base || _typeof(base) !== "object") {
|
|
31726
|
-
throw new Error("Cannot apply patch, path doesn't resolve: " + path.join("/"));
|
|
31727
|
-
} // prettier-ignore
|
|
31728
|
-
|
|
31567
|
+
if (!base || typeof base !== "object") { throw new Error("Cannot apply patch, path doesn't resolve: " + path.join("/")); } // prettier-ignore
|
|
31729
31568
|
}
|
|
31730
31569
|
|
|
31731
31570
|
var key = path[path.length - 1];
|
|
@@ -31774,33 +31613,27 @@ var configDefaults = {
|
|
|
31774
31613
|
onDelete: null,
|
|
31775
31614
|
onCopy: null
|
|
31776
31615
|
};
|
|
31777
|
-
|
|
31778
31616
|
var Immer = function Immer(config) {
|
|
31779
31617
|
assign(this, configDefaults, config);
|
|
31780
31618
|
this.setUseProxies(this.useProxies);
|
|
31781
31619
|
this.produce = this.produce.bind(this);
|
|
31782
31620
|
};
|
|
31783
31621
|
|
|
31784
|
-
Immer.prototype.produce = function produce(base, recipe, patchListener) {
|
|
31785
|
-
|
|
31622
|
+
Immer.prototype.produce = function produce (base, recipe, patchListener) {
|
|
31623
|
+
var this$1 = this;
|
|
31786
31624
|
|
|
31625
|
+
// curried invocation
|
|
31787
31626
|
if (typeof base === "function" && typeof recipe !== "function") {
|
|
31788
31627
|
var defaultBase = recipe;
|
|
31789
31628
|
recipe = base;
|
|
31790
31629
|
var self = this;
|
|
31791
31630
|
return function curriedProduce(base) {
|
|
31792
|
-
|
|
31793
|
-
|
|
31794
|
-
|
|
31795
|
-
|
|
31631
|
+
var this$1 = this;
|
|
31632
|
+
if ( base === void 0 ) base = defaultBase;
|
|
31633
|
+
var args = [], len = arguments.length - 1;
|
|
31634
|
+
while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
|
|
31796
31635
|
|
|
31797
|
-
|
|
31798
|
-
args[len] = arguments[len + 1];
|
|
31799
|
-
}
|
|
31800
|
-
|
|
31801
|
-
return self.produce(base, function (draft) {
|
|
31802
|
-
return recipe.call.apply(recipe, [this$1, draft].concat(args));
|
|
31803
|
-
}); // prettier-ignore
|
|
31636
|
+
return self.produce(base, function (draft) { return recipe.call.apply(recipe, [ this$1, draft ].concat( args )); }); // prettier-ignore
|
|
31804
31637
|
};
|
|
31805
31638
|
} // prettier-ignore
|
|
31806
31639
|
|
|
@@ -31826,11 +31659,7 @@ Immer.prototype.produce = function produce(base, recipe, patchListener) {
|
|
|
31826
31659
|
hasError = false;
|
|
31827
31660
|
} finally {
|
|
31828
31661
|
// finally instead of catch + rethrow better preserves original stack
|
|
31829
|
-
if (hasError) {
|
|
31830
|
-
scope.revoke();
|
|
31831
|
-
} else {
|
|
31832
|
-
scope.leave();
|
|
31833
|
-
}
|
|
31662
|
+
if (hasError) { scope.revoke(); }else { scope.leave(); }
|
|
31834
31663
|
}
|
|
31835
31664
|
|
|
31836
31665
|
if (result instanceof Promise) {
|
|
@@ -31847,38 +31676,25 @@ Immer.prototype.produce = function produce(base, recipe, patchListener) {
|
|
|
31847
31676
|
return this.processResult(result, scope);
|
|
31848
31677
|
} else {
|
|
31849
31678
|
result = recipe(base);
|
|
31850
|
-
|
|
31851
|
-
if (result === undefined) {
|
|
31852
|
-
return base;
|
|
31853
|
-
}
|
|
31854
|
-
|
|
31679
|
+
if (result === undefined) { return base; }
|
|
31855
31680
|
return result !== NOTHING ? result : undefined;
|
|
31856
31681
|
}
|
|
31857
31682
|
};
|
|
31858
31683
|
|
|
31859
|
-
Immer.prototype.produceWithPatches = function produceWithPatches(arg1, arg2, arg3) {
|
|
31860
|
-
|
|
31684
|
+
Immer.prototype.produceWithPatches = function produceWithPatches (arg1, arg2, arg3) {
|
|
31685
|
+
var this$1 = this;
|
|
31861
31686
|
|
|
31862
31687
|
if (typeof arg1 === "function") {
|
|
31863
31688
|
return function (state) {
|
|
31864
|
-
|
|
31865
|
-
|
|
31689
|
+
var args = [], len = arguments.length - 1;
|
|
31690
|
+
while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
|
|
31866
31691
|
|
|
31867
|
-
|
|
31868
|
-
|
|
31869
|
-
}
|
|
31870
|
-
|
|
31871
|
-
return this$1.produceWithPatches(state, function (draft) {
|
|
31872
|
-
return arg1.apply(void 0, [draft].concat(args));
|
|
31873
|
-
});
|
|
31874
|
-
};
|
|
31692
|
+
return this$1.produceWithPatches(state, function (draft) { return arg1.apply(void 0, [ draft ].concat( args )); });
|
|
31693
|
+
};
|
|
31875
31694
|
} // non-curried form
|
|
31876
31695
|
|
|
31877
31696
|
|
|
31878
|
-
if (arg3) {
|
|
31879
|
-
throw new Error("A patch listener cannot be passed to produceWithPatches");
|
|
31880
|
-
}
|
|
31881
|
-
|
|
31697
|
+
if (arg3) { throw new Error("A patch listener cannot be passed to produceWithPatches"); }
|
|
31882
31698
|
var patches, inversePatches;
|
|
31883
31699
|
var nextState = this.produce(arg1, arg2, function (p, ip) {
|
|
31884
31700
|
patches = p;
|
|
@@ -31887,7 +31703,7 @@ Immer.prototype.produceWithPatches = function produceWithPatches(arg1, arg2, arg
|
|
|
31887
31703
|
return [nextState, patches, inversePatches];
|
|
31888
31704
|
};
|
|
31889
31705
|
|
|
31890
|
-
Immer.prototype.createDraft = function createDraft(base) {
|
|
31706
|
+
Immer.prototype.createDraft = function createDraft (base) {
|
|
31891
31707
|
if (!isDraftable(base)) {
|
|
31892
31708
|
throw new Error("First argument to `createDraft` must be a plain object, an array, or an immerable object"); // prettier-ignore
|
|
31893
31709
|
}
|
|
@@ -31899,7 +31715,7 @@ Immer.prototype.createDraft = function createDraft(base) {
|
|
|
31899
31715
|
return proxy;
|
|
31900
31716
|
};
|
|
31901
31717
|
|
|
31902
|
-
Immer.prototype.finishDraft = function finishDraft(draft, patchListener) {
|
|
31718
|
+
Immer.prototype.finishDraft = function finishDraft (draft, patchListener) {
|
|
31903
31719
|
var state = draft && draft[DRAFT_STATE];
|
|
31904
31720
|
|
|
31905
31721
|
if (!state || !state.isManual) {
|
|
@@ -31915,16 +31731,16 @@ Immer.prototype.finishDraft = function finishDraft(draft, patchListener) {
|
|
|
31915
31731
|
return this.processResult(undefined, scope);
|
|
31916
31732
|
};
|
|
31917
31733
|
|
|
31918
|
-
Immer.prototype.setAutoFreeze = function setAutoFreeze(value) {
|
|
31734
|
+
Immer.prototype.setAutoFreeze = function setAutoFreeze (value) {
|
|
31919
31735
|
this.autoFreeze = value;
|
|
31920
31736
|
};
|
|
31921
31737
|
|
|
31922
|
-
Immer.prototype.setUseProxies = function setUseProxies(value) {
|
|
31738
|
+
Immer.prototype.setUseProxies = function setUseProxies (value) {
|
|
31923
31739
|
this.useProxies = value;
|
|
31924
31740
|
assign(this, value ? modernProxy : legacyProxy);
|
|
31925
31741
|
};
|
|
31926
31742
|
|
|
31927
|
-
Immer.prototype.applyPatches = function applyPatches$1(base, patches) {
|
|
31743
|
+
Immer.prototype.applyPatches = function applyPatches$1 (base, patches) {
|
|
31928
31744
|
// If a patch replaces the entire state, take that replacement as base
|
|
31929
31745
|
// before applying patches
|
|
31930
31746
|
var i;
|
|
@@ -31944,14 +31760,12 @@ Immer.prototype.applyPatches = function applyPatches$1(base, patches) {
|
|
|
31944
31760
|
} // Otherwise, produce a copy of the base state.
|
|
31945
31761
|
|
|
31946
31762
|
|
|
31947
|
-
return this.produce(base, function (draft) {
|
|
31948
|
-
return applyPatches(draft, patches.slice(i + 1));
|
|
31949
|
-
});
|
|
31763
|
+
return this.produce(base, function (draft) { return applyPatches(draft, patches.slice(i + 1)); });
|
|
31950
31764
|
};
|
|
31951
31765
|
/** @internal */
|
|
31952
31766
|
|
|
31953
31767
|
|
|
31954
|
-
Immer.prototype.processResult = function processResult(result, scope) {
|
|
31768
|
+
Immer.prototype.processResult = function processResult (result, scope) {
|
|
31955
31769
|
var baseDraft = scope.drafts[0];
|
|
31956
31770
|
var isReplaced = result !== undefined && result !== baseDraft;
|
|
31957
31771
|
this.willFinalize(scope, result, isReplaced);
|
|
@@ -31999,15 +31813,13 @@ Immer.prototype.processResult = function processResult(result, scope) {
|
|
|
31999
31813
|
*/
|
|
32000
31814
|
|
|
32001
31815
|
|
|
32002
|
-
Immer.prototype.finalize = function finalize(draft, path, scope) {
|
|
32003
|
-
|
|
31816
|
+
Immer.prototype.finalize = function finalize (draft, path, scope) {
|
|
31817
|
+
var this$1 = this;
|
|
31818
|
+
|
|
32004
31819
|
var state = draft[DRAFT_STATE];
|
|
32005
31820
|
|
|
32006
31821
|
if (!state) {
|
|
32007
|
-
if (Object.isFrozen(draft)) {
|
|
32008
|
-
return draft;
|
|
32009
|
-
}
|
|
32010
|
-
|
|
31822
|
+
if (Object.isFrozen(draft)) { return draft; }
|
|
32011
31823
|
return this.finalizeTree(draft, null, scope);
|
|
32012
31824
|
} // Never finalize drafts owned by another scope.
|
|
32013
31825
|
|
|
@@ -32030,17 +31842,13 @@ Immer.prototype.finalize = function finalize(draft, path, scope) {
|
|
|
32030
31842
|
var assigned = state.assigned;
|
|
32031
31843
|
|
|
32032
31844
|
for (var prop in assigned) {
|
|
32033
|
-
if (!assigned[prop]) {
|
|
32034
|
-
this.onDelete(state, prop);
|
|
32035
|
-
}
|
|
31845
|
+
if (!assigned[prop]) { this.onDelete(state, prop); }
|
|
32036
31846
|
}
|
|
32037
31847
|
} else {
|
|
32038
31848
|
var base = state.base;
|
|
32039
|
-
|
|
31849
|
+
var copy = state.copy;
|
|
32040
31850
|
each(base, function (prop) {
|
|
32041
|
-
if (!has(copy, prop)) {
|
|
32042
|
-
this$1.onDelete(state, prop);
|
|
32043
|
-
}
|
|
31851
|
+
if (!has(copy, prop)) { this$1.onDelete(state, prop); }
|
|
32044
31852
|
});
|
|
32045
31853
|
}
|
|
32046
31854
|
}
|
|
@@ -32068,8 +31876,9 @@ Immer.prototype.finalize = function finalize(draft, path, scope) {
|
|
|
32068
31876
|
*/
|
|
32069
31877
|
|
|
32070
31878
|
|
|
32071
|
-
Immer.prototype.finalizeTree = function finalizeTree(root, rootPath, scope) {
|
|
32072
|
-
|
|
31879
|
+
Immer.prototype.finalizeTree = function finalizeTree (root, rootPath, scope) {
|
|
31880
|
+
var this$1 = this;
|
|
31881
|
+
|
|
32073
31882
|
var state = root[DRAFT_STATE];
|
|
32074
31883
|
|
|
32075
31884
|
if (state) {
|
|
@@ -32083,7 +31892,7 @@ Immer.prototype.finalizeTree = function finalizeTree(root, rootPath, scope) {
|
|
|
32083
31892
|
|
|
32084
31893
|
var needPatches = !!rootPath && !!scope.patches;
|
|
32085
31894
|
|
|
32086
|
-
var finalizeProperty = function
|
|
31895
|
+
var finalizeProperty = function (prop, value, parent) {
|
|
32087
31896
|
if (value === parent) {
|
|
32088
31897
|
throw Error("Immer forbids circular references");
|
|
32089
31898
|
} // In the `finalizeTree` method, only the `root` object may be a draft.
|
|
@@ -32110,9 +31919,7 @@ Immer.prototype.finalizeTree = function finalizeTree(root, rootPath, scope) {
|
|
|
32110
31919
|
} // Unchanged drafts are never passed to the `onAssign` hook.
|
|
32111
31920
|
|
|
32112
31921
|
|
|
32113
|
-
if (isDraftProp && value === state.base[prop]) {
|
|
32114
|
-
return;
|
|
32115
|
-
}
|
|
31922
|
+
if (isDraftProp && value === state.base[prop]) { return; }
|
|
32116
31923
|
} // Unchanged draft properties are ignored.
|
|
32117
31924
|
else if (isDraftProp && is(value, state.base[prop])) {
|
|
32118
31925
|
return;
|
|
@@ -32197,149 +32004,103 @@ var createDraft = immer.createDraft.bind(immer);
|
|
|
32197
32004
|
|
|
32198
32005
|
var finishDraft = immer.finishDraft.bind(immer);
|
|
32199
32006
|
|
|
32200
|
-
|
|
32201
|
-
|
|
32202
|
-
|
|
32203
|
-
|
|
32204
|
-
for (var _i = 0, _formConfigKeys = formConfigKeys; _i < _formConfigKeys.length; _i++) {
|
|
32205
|
-
var formKey = _formConfigKeys[_i];
|
|
32007
|
+
const createInitialState = formConfig => {
|
|
32008
|
+
let initialForm = {};
|
|
32009
|
+
const formConfigKeys = Object.keys(formConfig);
|
|
32010
|
+
for (let formKey of formConfigKeys) {
|
|
32206
32011
|
initialForm[formKey] = {
|
|
32207
32012
|
dirty: false,
|
|
32208
32013
|
rawValue: formConfig[formKey].defaultValue || "",
|
|
32209
32014
|
validators: formConfig[formKey].validators || [],
|
|
32210
32015
|
constraints: formConfig[formKey].constraints || []
|
|
32211
32016
|
};
|
|
32212
|
-
}
|
|
32017
|
+
}
|
|
32018
|
+
// Because validators require the entire form we have to do a
|
|
32213
32019
|
// second pass to add errors once the initial form has been
|
|
32214
32020
|
// constructed
|
|
32215
|
-
|
|
32216
|
-
|
|
32217
|
-
|
|
32218
|
-
|
|
32219
|
-
var errors = computeErrors(_formKey, initialForm);
|
|
32220
|
-
initialForm[_formKey].errors = errors;
|
|
32221
|
-
initialForm[_formKey].hasErrors = errors.length > 0;
|
|
32021
|
+
for (let formKey of formConfigKeys) {
|
|
32022
|
+
let errors = computeErrors(formKey, initialForm);
|
|
32023
|
+
initialForm[formKey].errors = errors;
|
|
32024
|
+
initialForm[formKey].hasErrors = errors.length > 0;
|
|
32222
32025
|
}
|
|
32223
|
-
|
|
32224
32026
|
return initialForm;
|
|
32225
32027
|
};
|
|
32226
32028
|
|
|
32227
|
-
|
|
32228
|
-
|
|
32229
|
-
|
|
32230
|
-
|
|
32231
|
-
|
|
32232
|
-
type: SET,
|
|
32233
|
-
payload: {
|
|
32234
|
-
fieldName: fieldName,
|
|
32235
|
-
value: value
|
|
32236
|
-
}
|
|
32237
|
-
};
|
|
32238
|
-
};
|
|
32239
|
-
};
|
|
32240
|
-
|
|
32241
|
-
var CLEAR = "form/CLEAR";
|
|
32242
|
-
|
|
32243
|
-
var _clear = function clear() {
|
|
32244
|
-
return {
|
|
32245
|
-
type: CLEAR
|
|
32246
|
-
};
|
|
32247
|
-
};
|
|
32248
|
-
|
|
32249
|
-
var createFormReducer = function createFormReducer(formConfig) {
|
|
32250
|
-
return function () {
|
|
32251
|
-
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : createInitialState(formConfig);
|
|
32252
|
-
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
32253
|
-
|
|
32254
|
-
switch (action.type) {
|
|
32255
|
-
case SET:
|
|
32256
|
-
var changedFieldName = action.payload.fieldName;
|
|
32257
|
-
var newRawValue = action.payload.value;
|
|
32258
|
-
return produce(state, function (draftState) {
|
|
32259
|
-
var originalValue = draftState[changedFieldName].rawValue;
|
|
32260
|
-
draftState[changedFieldName].rawValue = newRawValue;
|
|
32261
|
-
|
|
32262
|
-
if (computeConstraints(changedFieldName, draftState).length > 0) {
|
|
32263
|
-
// If the change violates constraints, revert the change
|
|
32264
|
-
draftState[changedFieldName].rawValue = originalValue;
|
|
32265
|
-
return draftState;
|
|
32266
|
-
}
|
|
32267
|
-
|
|
32268
|
-
var fields = Object.entries(draftState);
|
|
32269
|
-
|
|
32270
|
-
for (var _i3 = 0, _fields = fields; _i3 < _fields.length; _i3++) {
|
|
32271
|
-
var entry = _fields[_i3];
|
|
32272
|
-
var fieldName = entry[0];
|
|
32273
|
-
var field = entry[1];
|
|
32274
|
-
var errors = computeErrors(fieldName, draftState);
|
|
32275
|
-
var dirty = fieldName === changedFieldName ? true : field.dirty;
|
|
32276
|
-
draftState[fieldName].errors = errors;
|
|
32277
|
-
draftState[fieldName].dirty = dirty;
|
|
32278
|
-
draftState[fieldName].hasErrors = errors.length > 0;
|
|
32279
|
-
}
|
|
32280
|
-
});
|
|
32029
|
+
const SET = "field/SET";
|
|
32030
|
+
const set$2 = fieldName => value => ({
|
|
32031
|
+
type: SET,
|
|
32032
|
+
payload: { fieldName, value }
|
|
32033
|
+
});
|
|
32281
32034
|
|
|
32282
|
-
|
|
32283
|
-
|
|
32035
|
+
const CLEAR = "form/CLEAR";
|
|
32036
|
+
const clear = () => ({ type: CLEAR });
|
|
32037
|
+
|
|
32038
|
+
const createFormReducer = formConfig => (
|
|
32039
|
+
state = createInitialState(formConfig),
|
|
32040
|
+
action
|
|
32041
|
+
) => {
|
|
32042
|
+
switch (action.type) {
|
|
32043
|
+
case SET:
|
|
32044
|
+
const changedFieldName = action.payload.fieldName;
|
|
32045
|
+
const newRawValue = action.payload.value;
|
|
32046
|
+
|
|
32047
|
+
return produce(state, draftState => {
|
|
32048
|
+
let originalValue = draftState[changedFieldName].rawValue;
|
|
32049
|
+
draftState[changedFieldName].rawValue = newRawValue;
|
|
32050
|
+
if (computeConstraints(changedFieldName, draftState).length > 0) {
|
|
32051
|
+
// If the change violates constraints, revert the change
|
|
32052
|
+
draftState[changedFieldName].rawValue = originalValue;
|
|
32053
|
+
return draftState;
|
|
32054
|
+
}
|
|
32284
32055
|
|
|
32285
|
-
|
|
32286
|
-
|
|
32287
|
-
|
|
32288
|
-
|
|
32056
|
+
const fields = Object.entries(draftState);
|
|
32057
|
+
for (let entry of fields) {
|
|
32058
|
+
let fieldName = entry[0];
|
|
32059
|
+
let field = entry[1];
|
|
32060
|
+
let errors = computeErrors(fieldName, draftState);
|
|
32061
|
+
let dirty = fieldName === changedFieldName ? true : field.dirty;
|
|
32062
|
+
draftState[fieldName].errors = errors;
|
|
32063
|
+
draftState[fieldName].dirty = dirty;
|
|
32064
|
+
draftState[fieldName].hasErrors = errors.length > 0;
|
|
32065
|
+
}
|
|
32066
|
+
});
|
|
32067
|
+
case CLEAR:
|
|
32068
|
+
return createInitialState(formConfig);
|
|
32069
|
+
default:
|
|
32070
|
+
return state;
|
|
32071
|
+
}
|
|
32289
32072
|
};
|
|
32290
32073
|
|
|
32291
|
-
|
|
32074
|
+
const createMapDispatchToProps = formConfig => {
|
|
32292
32075
|
// Do memo-ization
|
|
32293
|
-
|
|
32294
|
-
|
|
32295
|
-
return
|
|
32076
|
+
let cachedDispatch;
|
|
32077
|
+
let cacheValue;
|
|
32078
|
+
return dispatch => {
|
|
32296
32079
|
if (dispatch == cachedDispatch) {
|
|
32297
32080
|
return cacheValue;
|
|
32298
32081
|
}
|
|
32299
|
-
|
|
32300
|
-
var dispatchObj = {};
|
|
32082
|
+
let dispatchObj = {};
|
|
32301
32083
|
dispatchObj.fields = {};
|
|
32302
|
-
|
|
32303
|
-
|
|
32304
|
-
var _loop = function _loop() {
|
|
32305
|
-
var fieldName = _keys[_i4];
|
|
32084
|
+
const keys = Object.keys(formConfig);
|
|
32085
|
+
for (let fieldName of keys) {
|
|
32306
32086
|
dispatchObj.fields[fieldName] = {
|
|
32307
|
-
set:
|
|
32308
|
-
return dispatch(set$2(fieldName)(value));
|
|
32309
|
-
}
|
|
32087
|
+
set: value => dispatch(set$2(fieldName)(value))
|
|
32310
32088
|
};
|
|
32311
|
-
};
|
|
32312
|
-
|
|
32313
|
-
for (var _i4 = 0, _keys = keys; _i4 < _keys.length; _i4++) {
|
|
32314
|
-
_loop();
|
|
32315
32089
|
}
|
|
32316
|
-
|
|
32317
|
-
dispatchObj.form = {
|
|
32318
|
-
clear: function clear() {
|
|
32319
|
-
return dispatch(_clear());
|
|
32320
|
-
}
|
|
32321
|
-
};
|
|
32090
|
+
dispatchObj.form = { clear: () => dispatch(clear()) };
|
|
32322
32091
|
cachedDispatch = dispatch;
|
|
32323
|
-
cacheValue = {
|
|
32324
|
-
actions: dispatchObj
|
|
32325
|
-
};
|
|
32092
|
+
cacheValue = { actions: dispatchObj };
|
|
32326
32093
|
return cacheValue;
|
|
32327
32094
|
};
|
|
32328
32095
|
};
|
|
32329
32096
|
|
|
32330
|
-
|
|
32331
|
-
return {
|
|
32332
|
-
fields: state
|
|
32333
|
-
};
|
|
32334
|
-
};
|
|
32097
|
+
const mapStateToProps = state => ({ fields: state });
|
|
32335
32098
|
|
|
32336
|
-
|
|
32337
|
-
|
|
32338
|
-
|
|
32339
|
-
|
|
32340
|
-
|
|
32341
|
-
};
|
|
32342
|
-
};
|
|
32099
|
+
const createFormState = formConfig => ({
|
|
32100
|
+
reducer: createFormReducer(formConfig),
|
|
32101
|
+
mapDispatchToProps: createMapDispatchToProps(formConfig),
|
|
32102
|
+
mapStateToProps: mapStateToProps
|
|
32103
|
+
});
|
|
32343
32104
|
|
|
32344
32105
|
var formatDelimiter = "_";
|
|
32345
32106
|
var phoneFormats = ["", "_", "__", "(___) ", "(___) _", "(___) __", "(___) ___-", "(___) ___-_", "(___) ___-__", "(___) ___-___", "(___) ___-____"];
|