vee-validate 3.4.7 → 3.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/rules.js +13 -5
- package/dist/rules.umd.js +13 -5
- package/dist/rules.umd.min.js +2 -2
- package/dist/types/components/Observer.d.ts +2 -1
- package/dist/types/components/Provider.d.ts +1 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/vee-validate.esm.js +38 -36
- package/dist/vee-validate.full.esm.js +50 -40
- package/dist/vee-validate.full.js +50 -40
- package/dist/vee-validate.full.min.js +2 -2
- package/dist/vee-validate.js +38 -36
- package/dist/vee-validate.min.js +3 -3
- package/package.json +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vee-validate v3.4.
|
|
2
|
+
* vee-validate v3.4.11
|
|
3
3
|
* (c) 2021 Abdelrahman Awad
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -67,7 +67,9 @@ var alpha$1 = {
|
|
|
67
67
|
uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,
|
|
68
68
|
ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
|
|
69
69
|
az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,
|
|
70
|
-
el: /^[Α-ώ]*$/i
|
|
70
|
+
el: /^[Α-ώ]*$/i,
|
|
71
|
+
ja: /^[A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF]*$/i,
|
|
72
|
+
he: /^[A-Z\u05D0-\u05EA']*$/i
|
|
71
73
|
};
|
|
72
74
|
var alphaSpaces = {
|
|
73
75
|
en: /^[A-Z\s]*$/i,
|
|
@@ -92,7 +94,9 @@ var alphaSpaces = {
|
|
|
92
94
|
uk: /^[А-ЩЬЮЯЄІЇҐ\s]*$/i,
|
|
93
95
|
ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\s]*$/,
|
|
94
96
|
az: /^[A-ZÇƏĞİıÖŞÜ\s]*$/i,
|
|
95
|
-
el: /^[Α-ώ\s]*$/i
|
|
97
|
+
el: /^[Α-ώ\s]*$/i,
|
|
98
|
+
ja: /^[A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\s]*$/i,
|
|
99
|
+
he: /^[A-Z\u05D0-\u05EA'\s]*$/i
|
|
96
100
|
};
|
|
97
101
|
var alphanumeric = {
|
|
98
102
|
en: /^[0-9A-Z]*$/i,
|
|
@@ -117,7 +121,9 @@ var alphanumeric = {
|
|
|
117
121
|
uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,
|
|
118
122
|
ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
|
|
119
123
|
az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,
|
|
120
|
-
el: /^[0-9Α-ώ]*$/i
|
|
124
|
+
el: /^[0-9Α-ώ]*$/i,
|
|
125
|
+
ja: /^[0-9A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF]*$/i,
|
|
126
|
+
he: /^[0-9A-Z\u05D0-\u05EA']*$/i
|
|
121
127
|
};
|
|
122
128
|
var alphaDash = {
|
|
123
129
|
en: /^[0-9A-Z_-]*$/i,
|
|
@@ -142,7 +148,9 @@ var alphaDash = {
|
|
|
142
148
|
uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,
|
|
143
149
|
ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,
|
|
144
150
|
az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,
|
|
145
|
-
el: /^[0-9Α-ώ_-]*$/i
|
|
151
|
+
el: /^[0-9Α-ώ_-]*$/i,
|
|
152
|
+
ja: /^[0-9A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF_-]*$/i,
|
|
153
|
+
he: /^[0-9A-Z\u05D0-\u05EA'_-]*$/i
|
|
146
154
|
};
|
|
147
155
|
|
|
148
156
|
var validate$s = function (value, _a) {
|
|
@@ -1384,6 +1392,7 @@ function validate(value, rules, options) {
|
|
|
1384
1392
|
});
|
|
1385
1393
|
return [2 /*return*/, {
|
|
1386
1394
|
valid: result.valid,
|
|
1395
|
+
required: result.required,
|
|
1387
1396
|
errors: errors,
|
|
1388
1397
|
failedRules: failedRules,
|
|
1389
1398
|
regenerateMap: regenerateMap
|
|
@@ -1398,15 +1407,16 @@ function validate(value, rules, options) {
|
|
|
1398
1407
|
function _validate(field, value, _a) {
|
|
1399
1408
|
var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;
|
|
1400
1409
|
return __awaiter(this, void 0, void 0, function () {
|
|
1401
|
-
var _c, shouldSkip, errors, rules, length, i, rule, result;
|
|
1410
|
+
var _c, shouldSkip, required, errors, rules, length, i, rule, result;
|
|
1402
1411
|
return __generator(this, function (_d) {
|
|
1403
1412
|
switch (_d.label) {
|
|
1404
1413
|
case 0: return [4 /*yield*/, _shouldSkip(field, value)];
|
|
1405
1414
|
case 1:
|
|
1406
|
-
_c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;
|
|
1415
|
+
_c = _d.sent(), shouldSkip = _c.shouldSkip, required = _c.required, errors = _c.errors;
|
|
1407
1416
|
if (shouldSkip) {
|
|
1408
1417
|
return [2 /*return*/, {
|
|
1409
1418
|
valid: !errors.length,
|
|
1419
|
+
required: required,
|
|
1410
1420
|
errors: errors
|
|
1411
1421
|
}];
|
|
1412
1422
|
}
|
|
@@ -1431,6 +1441,7 @@ function _validate(field, value, _a) {
|
|
|
1431
1441
|
if (field.bails) {
|
|
1432
1442
|
return [2 /*return*/, {
|
|
1433
1443
|
valid: false,
|
|
1444
|
+
required: required,
|
|
1434
1445
|
errors: errors
|
|
1435
1446
|
}];
|
|
1436
1447
|
}
|
|
@@ -1441,6 +1452,7 @@ function _validate(field, value, _a) {
|
|
|
1441
1452
|
return [3 /*break*/, 2];
|
|
1442
1453
|
case 5: return [2 /*return*/, {
|
|
1443
1454
|
valid: !errors.length,
|
|
1455
|
+
required: required,
|
|
1444
1456
|
errors: errors
|
|
1445
1457
|
}];
|
|
1446
1458
|
}
|
|
@@ -1458,7 +1470,6 @@ function _shouldSkip(field, value) {
|
|
|
1458
1470
|
errors = [];
|
|
1459
1471
|
isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);
|
|
1460
1472
|
isEmptyAndOptional = isEmpty && field.skipIfEmpty;
|
|
1461
|
-
isRequired = false;
|
|
1462
1473
|
i = 0;
|
|
1463
1474
|
_a.label = 1;
|
|
1464
1475
|
case 1:
|
|
@@ -1473,8 +1484,8 @@ function _shouldSkip(field, value) {
|
|
|
1473
1484
|
if (!isObject(result)) {
|
|
1474
1485
|
throw new Error('Require rules has to return an object (see docs)');
|
|
1475
1486
|
}
|
|
1476
|
-
if (result.required) {
|
|
1477
|
-
isRequired =
|
|
1487
|
+
if (result.required !== undefined) {
|
|
1488
|
+
isRequired = result.required;
|
|
1478
1489
|
}
|
|
1479
1490
|
if (!result.valid && result.error) {
|
|
1480
1491
|
errors.push(result.error);
|
|
@@ -1482,6 +1493,7 @@ function _shouldSkip(field, value) {
|
|
|
1482
1493
|
if (field.bails) {
|
|
1483
1494
|
return [2 /*return*/, {
|
|
1484
1495
|
shouldSkip: true,
|
|
1496
|
+
required: result.required,
|
|
1485
1497
|
errors: errors
|
|
1486
1498
|
}];
|
|
1487
1499
|
}
|
|
@@ -1494,6 +1506,7 @@ function _shouldSkip(field, value) {
|
|
|
1494
1506
|
if (isEmpty && !isRequired && !field.skipIfEmpty) {
|
|
1495
1507
|
return [2 /*return*/, {
|
|
1496
1508
|
shouldSkip: false,
|
|
1509
|
+
required: isRequired,
|
|
1497
1510
|
errors: errors
|
|
1498
1511
|
}];
|
|
1499
1512
|
}
|
|
@@ -1501,12 +1514,14 @@ function _shouldSkip(field, value) {
|
|
|
1501
1514
|
if (!field.bails && !isEmptyAndOptional) {
|
|
1502
1515
|
return [2 /*return*/, {
|
|
1503
1516
|
shouldSkip: false,
|
|
1517
|
+
required: isRequired,
|
|
1504
1518
|
errors: errors
|
|
1505
1519
|
}];
|
|
1506
1520
|
}
|
|
1507
1521
|
// skip if the field is not required and has an empty value.
|
|
1508
1522
|
return [2 /*return*/, {
|
|
1509
1523
|
shouldSkip: !isRequired && isEmpty,
|
|
1524
|
+
required: isRequired,
|
|
1510
1525
|
errors: errors
|
|
1511
1526
|
}];
|
|
1512
1527
|
}
|
|
@@ -1652,7 +1667,11 @@ function fillTargetValues(params, crossTable) {
|
|
|
1652
1667
|
return values;
|
|
1653
1668
|
}
|
|
1654
1669
|
|
|
1655
|
-
|
|
1670
|
+
// do not edit .js files directly - edit src/index.jst
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
|
|
1674
|
+
var fastDeepEqual = function equal(a, b) {
|
|
1656
1675
|
if (a === b) return true;
|
|
1657
1676
|
|
|
1658
1677
|
if (a && b && typeof a == 'object' && typeof b == 'object') {
|
|
@@ -1668,30 +1687,6 @@ var es6 = function equal(a, b) {
|
|
|
1668
1687
|
}
|
|
1669
1688
|
|
|
1670
1689
|
|
|
1671
|
-
if ((a instanceof Map) && (b instanceof Map)) {
|
|
1672
|
-
if (a.size !== b.size) return false;
|
|
1673
|
-
for (i of a.entries())
|
|
1674
|
-
if (!b.has(i[0])) return false;
|
|
1675
|
-
for (i of a.entries())
|
|
1676
|
-
if (!equal(i[1], b.get(i[0]))) return false;
|
|
1677
|
-
return true;
|
|
1678
|
-
}
|
|
1679
|
-
|
|
1680
|
-
if ((a instanceof Set) && (b instanceof Set)) {
|
|
1681
|
-
if (a.size !== b.size) return false;
|
|
1682
|
-
for (i of a.entries())
|
|
1683
|
-
if (!b.has(i[0])) return false;
|
|
1684
|
-
return true;
|
|
1685
|
-
}
|
|
1686
|
-
|
|
1687
|
-
if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
1688
|
-
length = a.length;
|
|
1689
|
-
if (length != b.length) return false;
|
|
1690
|
-
for (i = length; i-- !== 0;)
|
|
1691
|
-
if (a[i] !== b[i]) return false;
|
|
1692
|
-
return true;
|
|
1693
|
-
}
|
|
1694
|
-
|
|
1695
1690
|
|
|
1696
1691
|
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
1697
1692
|
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
@@ -2202,7 +2197,7 @@ var ValidationProvider = Vue.extend({
|
|
|
2202
2197
|
rules: {
|
|
2203
2198
|
deep: true,
|
|
2204
2199
|
handler: function (val, oldVal) {
|
|
2205
|
-
this._needsValidation = !
|
|
2200
|
+
this._needsValidation = !fastDeepEqual(val, oldVal);
|
|
2206
2201
|
}
|
|
2207
2202
|
}
|
|
2208
2203
|
},
|
|
@@ -2286,7 +2281,7 @@ var ValidationProvider = Vue.extend({
|
|
|
2286
2281
|
return;
|
|
2287
2282
|
}
|
|
2288
2283
|
var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
|
|
2289
|
-
if (!
|
|
2284
|
+
if (!fastDeepEqual(_this._resolvedRules, resolved)) {
|
|
2290
2285
|
_this._needsValidation = true;
|
|
2291
2286
|
}
|
|
2292
2287
|
if (isHTMLNode(input)) {
|
|
@@ -2319,7 +2314,7 @@ var ValidationProvider = Vue.extend({
|
|
|
2319
2314
|
syncValue: function (v) {
|
|
2320
2315
|
var value = normalizeEventValue(v);
|
|
2321
2316
|
this.value = value;
|
|
2322
|
-
this.flags.changed = !
|
|
2317
|
+
this.flags.changed = !fastDeepEqual(this.initialValue, value);
|
|
2323
2318
|
},
|
|
2324
2319
|
reset: function () {
|
|
2325
2320
|
var _this = this;
|
|
@@ -2372,6 +2367,11 @@ var ValidationProvider = Vue.extend({
|
|
|
2372
2367
|
valid: result.valid,
|
|
2373
2368
|
invalid: !result.valid
|
|
2374
2369
|
});
|
|
2370
|
+
if (result.required !== undefined) {
|
|
2371
|
+
this.setFlags({
|
|
2372
|
+
required: result.required
|
|
2373
|
+
});
|
|
2374
|
+
}
|
|
2375
2375
|
return [2 /*return*/, result];
|
|
2376
2376
|
}
|
|
2377
2377
|
});
|
|
@@ -2391,11 +2391,16 @@ var ValidationProvider = Vue.extend({
|
|
|
2391
2391
|
invalid: !!errors.length,
|
|
2392
2392
|
failed: !!errors.length,
|
|
2393
2393
|
validated: true,
|
|
2394
|
-
changed: !
|
|
2394
|
+
changed: !fastDeepEqual(this.value, this.initialValue)
|
|
2395
2395
|
});
|
|
2396
2396
|
},
|
|
2397
2397
|
registerField: function () {
|
|
2398
2398
|
updateRenderingContextRefs(this);
|
|
2399
|
+
},
|
|
2400
|
+
checkComputesRequiredState: function () {
|
|
2401
|
+
var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);
|
|
2402
|
+
var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);
|
|
2403
|
+
return isRequired;
|
|
2399
2404
|
}
|
|
2400
2405
|
}
|
|
2401
2406
|
});
|
|
@@ -2496,10 +2501,15 @@ function watchCrossFieldDep(ctx, depName, withHooks) {
|
|
|
2496
2501
|
}
|
|
2497
2502
|
if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {
|
|
2498
2503
|
ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {
|
|
2504
|
+
var isComputesRequired = ctx.checkComputesRequiredState();
|
|
2499
2505
|
if (ctx.flags.validated) {
|
|
2500
2506
|
ctx._needsValidation = true;
|
|
2501
2507
|
ctx.validate();
|
|
2502
2508
|
}
|
|
2509
|
+
// Validate dependent field silently if it has rules with computesRequired
|
|
2510
|
+
if (isComputesRequired && !ctx.flags.validated) {
|
|
2511
|
+
ctx.validateSilent();
|
|
2512
|
+
}
|
|
2503
2513
|
});
|
|
2504
2514
|
}
|
|
2505
2515
|
}
|
|
@@ -2785,7 +2795,7 @@ function withValidation(component, mapProps) {
|
|
|
2785
2795
|
return hoc;
|
|
2786
2796
|
}
|
|
2787
2797
|
|
|
2788
|
-
var version = '3.4.
|
|
2798
|
+
var version = '3.4.11';
|
|
2789
2799
|
// Install all rules.
|
|
2790
2800
|
var RulesAsList = Object.keys(Rules).map(function (key) { return ({ schema: Rules[key], name: key }); });
|
|
2791
2801
|
RulesAsList.forEach(function (_a) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* vee-validate v3.4.
|
|
2
|
+
* vee-validate v3.4.11
|
|
3
3
|
* (c) 2021 Abdelrahman Awad
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -75,7 +75,9 @@
|
|
|
75
75
|
uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,
|
|
76
76
|
ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
|
|
77
77
|
az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,
|
|
78
|
-
el: /^[Α-ώ]*$/i
|
|
78
|
+
el: /^[Α-ώ]*$/i,
|
|
79
|
+
ja: /^[A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF]*$/i,
|
|
80
|
+
he: /^[A-Z\u05D0-\u05EA']*$/i
|
|
79
81
|
};
|
|
80
82
|
var alphaSpaces = {
|
|
81
83
|
en: /^[A-Z\s]*$/i,
|
|
@@ -100,7 +102,9 @@
|
|
|
100
102
|
uk: /^[А-ЩЬЮЯЄІЇҐ\s]*$/i,
|
|
101
103
|
ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\s]*$/,
|
|
102
104
|
az: /^[A-ZÇƏĞİıÖŞÜ\s]*$/i,
|
|
103
|
-
el: /^[Α-ώ\s]*$/i
|
|
105
|
+
el: /^[Α-ώ\s]*$/i,
|
|
106
|
+
ja: /^[A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\s]*$/i,
|
|
107
|
+
he: /^[A-Z\u05D0-\u05EA'\s]*$/i
|
|
104
108
|
};
|
|
105
109
|
var alphanumeric = {
|
|
106
110
|
en: /^[0-9A-Z]*$/i,
|
|
@@ -125,7 +129,9 @@
|
|
|
125
129
|
uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,
|
|
126
130
|
ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
|
|
127
131
|
az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,
|
|
128
|
-
el: /^[0-9Α-ώ]*$/i
|
|
132
|
+
el: /^[0-9Α-ώ]*$/i,
|
|
133
|
+
ja: /^[0-9A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF]*$/i,
|
|
134
|
+
he: /^[0-9A-Z\u05D0-\u05EA']*$/i
|
|
129
135
|
};
|
|
130
136
|
var alphaDash = {
|
|
131
137
|
en: /^[0-9A-Z_-]*$/i,
|
|
@@ -150,7 +156,9 @@
|
|
|
150
156
|
uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,
|
|
151
157
|
ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,
|
|
152
158
|
az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,
|
|
153
|
-
el: /^[0-9Α-ώ_-]*$/i
|
|
159
|
+
el: /^[0-9Α-ώ_-]*$/i,
|
|
160
|
+
ja: /^[0-9A-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF_-]*$/i,
|
|
161
|
+
he: /^[0-9A-Z\u05D0-\u05EA'_-]*$/i
|
|
154
162
|
};
|
|
155
163
|
|
|
156
164
|
var validate$s = function (value, _a) {
|
|
@@ -1392,6 +1400,7 @@
|
|
|
1392
1400
|
});
|
|
1393
1401
|
return [2 /*return*/, {
|
|
1394
1402
|
valid: result.valid,
|
|
1403
|
+
required: result.required,
|
|
1395
1404
|
errors: errors,
|
|
1396
1405
|
failedRules: failedRules,
|
|
1397
1406
|
regenerateMap: regenerateMap
|
|
@@ -1406,15 +1415,16 @@
|
|
|
1406
1415
|
function _validate(field, value, _a) {
|
|
1407
1416
|
var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;
|
|
1408
1417
|
return __awaiter(this, void 0, void 0, function () {
|
|
1409
|
-
var _c, shouldSkip, errors, rules, length, i, rule, result;
|
|
1418
|
+
var _c, shouldSkip, required, errors, rules, length, i, rule, result;
|
|
1410
1419
|
return __generator(this, function (_d) {
|
|
1411
1420
|
switch (_d.label) {
|
|
1412
1421
|
case 0: return [4 /*yield*/, _shouldSkip(field, value)];
|
|
1413
1422
|
case 1:
|
|
1414
|
-
_c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;
|
|
1423
|
+
_c = _d.sent(), shouldSkip = _c.shouldSkip, required = _c.required, errors = _c.errors;
|
|
1415
1424
|
if (shouldSkip) {
|
|
1416
1425
|
return [2 /*return*/, {
|
|
1417
1426
|
valid: !errors.length,
|
|
1427
|
+
required: required,
|
|
1418
1428
|
errors: errors
|
|
1419
1429
|
}];
|
|
1420
1430
|
}
|
|
@@ -1439,6 +1449,7 @@
|
|
|
1439
1449
|
if (field.bails) {
|
|
1440
1450
|
return [2 /*return*/, {
|
|
1441
1451
|
valid: false,
|
|
1452
|
+
required: required,
|
|
1442
1453
|
errors: errors
|
|
1443
1454
|
}];
|
|
1444
1455
|
}
|
|
@@ -1449,6 +1460,7 @@
|
|
|
1449
1460
|
return [3 /*break*/, 2];
|
|
1450
1461
|
case 5: return [2 /*return*/, {
|
|
1451
1462
|
valid: !errors.length,
|
|
1463
|
+
required: required,
|
|
1452
1464
|
errors: errors
|
|
1453
1465
|
}];
|
|
1454
1466
|
}
|
|
@@ -1466,7 +1478,6 @@
|
|
|
1466
1478
|
errors = [];
|
|
1467
1479
|
isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);
|
|
1468
1480
|
isEmptyAndOptional = isEmpty && field.skipIfEmpty;
|
|
1469
|
-
isRequired = false;
|
|
1470
1481
|
i = 0;
|
|
1471
1482
|
_a.label = 1;
|
|
1472
1483
|
case 1:
|
|
@@ -1481,8 +1492,8 @@
|
|
|
1481
1492
|
if (!isObject(result)) {
|
|
1482
1493
|
throw new Error('Require rules has to return an object (see docs)');
|
|
1483
1494
|
}
|
|
1484
|
-
if (result.required) {
|
|
1485
|
-
isRequired =
|
|
1495
|
+
if (result.required !== undefined) {
|
|
1496
|
+
isRequired = result.required;
|
|
1486
1497
|
}
|
|
1487
1498
|
if (!result.valid && result.error) {
|
|
1488
1499
|
errors.push(result.error);
|
|
@@ -1490,6 +1501,7 @@
|
|
|
1490
1501
|
if (field.bails) {
|
|
1491
1502
|
return [2 /*return*/, {
|
|
1492
1503
|
shouldSkip: true,
|
|
1504
|
+
required: result.required,
|
|
1493
1505
|
errors: errors
|
|
1494
1506
|
}];
|
|
1495
1507
|
}
|
|
@@ -1502,6 +1514,7 @@
|
|
|
1502
1514
|
if (isEmpty && !isRequired && !field.skipIfEmpty) {
|
|
1503
1515
|
return [2 /*return*/, {
|
|
1504
1516
|
shouldSkip: false,
|
|
1517
|
+
required: isRequired,
|
|
1505
1518
|
errors: errors
|
|
1506
1519
|
}];
|
|
1507
1520
|
}
|
|
@@ -1509,12 +1522,14 @@
|
|
|
1509
1522
|
if (!field.bails && !isEmptyAndOptional) {
|
|
1510
1523
|
return [2 /*return*/, {
|
|
1511
1524
|
shouldSkip: false,
|
|
1525
|
+
required: isRequired,
|
|
1512
1526
|
errors: errors
|
|
1513
1527
|
}];
|
|
1514
1528
|
}
|
|
1515
1529
|
// skip if the field is not required and has an empty value.
|
|
1516
1530
|
return [2 /*return*/, {
|
|
1517
1531
|
shouldSkip: !isRequired && isEmpty,
|
|
1532
|
+
required: isRequired,
|
|
1518
1533
|
errors: errors
|
|
1519
1534
|
}];
|
|
1520
1535
|
}
|
|
@@ -1660,7 +1675,11 @@
|
|
|
1660
1675
|
return values;
|
|
1661
1676
|
}
|
|
1662
1677
|
|
|
1663
|
-
|
|
1678
|
+
// do not edit .js files directly - edit src/index.jst
|
|
1679
|
+
|
|
1680
|
+
|
|
1681
|
+
|
|
1682
|
+
var fastDeepEqual = function equal(a, b) {
|
|
1664
1683
|
if (a === b) return true;
|
|
1665
1684
|
|
|
1666
1685
|
if (a && b && typeof a == 'object' && typeof b == 'object') {
|
|
@@ -1676,30 +1695,6 @@
|
|
|
1676
1695
|
}
|
|
1677
1696
|
|
|
1678
1697
|
|
|
1679
|
-
if ((a instanceof Map) && (b instanceof Map)) {
|
|
1680
|
-
if (a.size !== b.size) return false;
|
|
1681
|
-
for (i of a.entries())
|
|
1682
|
-
if (!b.has(i[0])) return false;
|
|
1683
|
-
for (i of a.entries())
|
|
1684
|
-
if (!equal(i[1], b.get(i[0]))) return false;
|
|
1685
|
-
return true;
|
|
1686
|
-
}
|
|
1687
|
-
|
|
1688
|
-
if ((a instanceof Set) && (b instanceof Set)) {
|
|
1689
|
-
if (a.size !== b.size) return false;
|
|
1690
|
-
for (i of a.entries())
|
|
1691
|
-
if (!b.has(i[0])) return false;
|
|
1692
|
-
return true;
|
|
1693
|
-
}
|
|
1694
|
-
|
|
1695
|
-
if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
|
|
1696
|
-
length = a.length;
|
|
1697
|
-
if (length != b.length) return false;
|
|
1698
|
-
for (i = length; i-- !== 0;)
|
|
1699
|
-
if (a[i] !== b[i]) return false;
|
|
1700
|
-
return true;
|
|
1701
|
-
}
|
|
1702
|
-
|
|
1703
1698
|
|
|
1704
1699
|
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
1705
1700
|
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
@@ -2210,7 +2205,7 @@
|
|
|
2210
2205
|
rules: {
|
|
2211
2206
|
deep: true,
|
|
2212
2207
|
handler: function (val, oldVal) {
|
|
2213
|
-
this._needsValidation = !
|
|
2208
|
+
this._needsValidation = !fastDeepEqual(val, oldVal);
|
|
2214
2209
|
}
|
|
2215
2210
|
}
|
|
2216
2211
|
},
|
|
@@ -2294,7 +2289,7 @@
|
|
|
2294
2289
|
return;
|
|
2295
2290
|
}
|
|
2296
2291
|
var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
|
|
2297
|
-
if (!
|
|
2292
|
+
if (!fastDeepEqual(_this._resolvedRules, resolved)) {
|
|
2298
2293
|
_this._needsValidation = true;
|
|
2299
2294
|
}
|
|
2300
2295
|
if (isHTMLNode(input)) {
|
|
@@ -2327,7 +2322,7 @@
|
|
|
2327
2322
|
syncValue: function (v) {
|
|
2328
2323
|
var value = normalizeEventValue(v);
|
|
2329
2324
|
this.value = value;
|
|
2330
|
-
this.flags.changed = !
|
|
2325
|
+
this.flags.changed = !fastDeepEqual(this.initialValue, value);
|
|
2331
2326
|
},
|
|
2332
2327
|
reset: function () {
|
|
2333
2328
|
var _this = this;
|
|
@@ -2380,6 +2375,11 @@
|
|
|
2380
2375
|
valid: result.valid,
|
|
2381
2376
|
invalid: !result.valid
|
|
2382
2377
|
});
|
|
2378
|
+
if (result.required !== undefined) {
|
|
2379
|
+
this.setFlags({
|
|
2380
|
+
required: result.required
|
|
2381
|
+
});
|
|
2382
|
+
}
|
|
2383
2383
|
return [2 /*return*/, result];
|
|
2384
2384
|
}
|
|
2385
2385
|
});
|
|
@@ -2399,11 +2399,16 @@
|
|
|
2399
2399
|
invalid: !!errors.length,
|
|
2400
2400
|
failed: !!errors.length,
|
|
2401
2401
|
validated: true,
|
|
2402
|
-
changed: !
|
|
2402
|
+
changed: !fastDeepEqual(this.value, this.initialValue)
|
|
2403
2403
|
});
|
|
2404
2404
|
},
|
|
2405
2405
|
registerField: function () {
|
|
2406
2406
|
updateRenderingContextRefs(this);
|
|
2407
|
+
},
|
|
2408
|
+
checkComputesRequiredState: function () {
|
|
2409
|
+
var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);
|
|
2410
|
+
var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);
|
|
2411
|
+
return isRequired;
|
|
2407
2412
|
}
|
|
2408
2413
|
}
|
|
2409
2414
|
});
|
|
@@ -2504,10 +2509,15 @@
|
|
|
2504
2509
|
}
|
|
2505
2510
|
if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {
|
|
2506
2511
|
ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {
|
|
2512
|
+
var isComputesRequired = ctx.checkComputesRequiredState();
|
|
2507
2513
|
if (ctx.flags.validated) {
|
|
2508
2514
|
ctx._needsValidation = true;
|
|
2509
2515
|
ctx.validate();
|
|
2510
2516
|
}
|
|
2517
|
+
// Validate dependent field silently if it has rules with computesRequired
|
|
2518
|
+
if (isComputesRequired && !ctx.flags.validated) {
|
|
2519
|
+
ctx.validateSilent();
|
|
2520
|
+
}
|
|
2511
2521
|
});
|
|
2512
2522
|
}
|
|
2513
2523
|
}
|
|
@@ -2793,7 +2803,7 @@
|
|
|
2793
2803
|
return hoc;
|
|
2794
2804
|
}
|
|
2795
2805
|
|
|
2796
|
-
var version = '3.4.
|
|
2806
|
+
var version = '3.4.11';
|
|
2797
2807
|
// Install all rules.
|
|
2798
2808
|
var RulesAsList = Object.keys(Rules).map(function (key) { return ({ schema: Rules[key], name: key }); });
|
|
2799
2809
|
RulesAsList.forEach(function (_a) {
|