vee-validate 3.4.5 → 3.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * vee-validate v3.4.5
3
- * (c) 2020 Abdelrahman Awad
2
+ * vee-validate v3.4.9
3
+ * (c) 2021 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
6
6
  (function (global, factory) {
@@ -42,7 +42,7 @@
42
42
  size: "The {_field_} field size must be less than {size}KB",
43
43
  double: "The {_field_} field must be a valid decimal"
44
44
  };
45
- var en = {
45
+ var en$1 = {
46
46
  code: code,
47
47
  messages: messages
48
48
  };
@@ -52,7 +52,7 @@
52
52
  * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js
53
53
  */
54
54
  /* eslint-disable no-misleading-character-class */
55
- var alpha = {
55
+ var alpha$1 = {
56
56
  en: /^[A-Z]*$/i,
57
57
  cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,
58
58
  da: /^[A-ZÆØÅ]*$/i,
@@ -75,7 +75,8 @@
75
75
  uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,
76
76
  ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
77
77
  az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,
78
- el: /^[Α-ώ]*$/i
78
+ el: /^[Α-ώ]*$/i,
79
+ ja: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]/g
79
80
  };
80
81
  var alphaSpaces = {
81
82
  en: /^[A-Z\s]*$/i,
@@ -100,7 +101,8 @@
100
101
  uk: /^[А-ЩЬЮЯЄІЇҐ\s]*$/i,
101
102
  ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\s]*$/,
102
103
  az: /^[A-ZÇƏĞİıÖŞÜ\s]*$/i,
103
- el: /^[Α-ώ\s]*$/i
104
+ el: /^[Α-ώ\s]*$/i,
105
+ ja: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]/g
104
106
  };
105
107
  var alphanumeric = {
106
108
  en: /^[0-9A-Z]*$/i,
@@ -125,7 +127,8 @@
125
127
  uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,
126
128
  ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,
127
129
  az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,
128
- el: /^[0-9Α-ώ]*$/i
130
+ el: /^[0-9Α-ώ]*$/i,
131
+ ja: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]/g
129
132
  };
130
133
  var alphaDash = {
131
134
  en: /^[0-9A-Z_-]*$/i,
@@ -150,34 +153,35 @@
150
153
  uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,
151
154
  ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,
152
155
  az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,
153
- el: /^[0-9Α-ώ_-]*$/i
156
+ el: /^[0-9Α-ώ_-]*$/i,
157
+ ja: /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]/g
154
158
  };
155
159
 
156
- var validate = function (value, _a) {
160
+ var validate$s = function (value, _a) {
157
161
  var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;
158
162
  if (Array.isArray(value)) {
159
- return value.every(function (val) { return validate(val, { locale: locale }); });
163
+ return value.every(function (val) { return validate$s(val, { locale: locale }); });
160
164
  }
161
165
  // Match at least one locale.
162
166
  if (!locale) {
163
- return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });
167
+ return Object.keys(alpha$1).some(function (loc) { return alpha$1[loc].test(value); });
164
168
  }
165
- return (alpha[locale] || alpha.en).test(value);
169
+ return (alpha$1[locale] || alpha$1.en).test(value);
166
170
  };
167
- var params = [
171
+ var params$k = [
168
172
  {
169
173
  name: 'locale'
170
174
  }
171
175
  ];
172
- var alpha$1 = {
173
- validate: validate,
174
- params: params
176
+ var alpha = {
177
+ validate: validate$s,
178
+ params: params$k
175
179
  };
176
180
 
177
- var validate$1 = function (value, _a) {
181
+ var validate$r = function (value, _a) {
178
182
  var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;
179
183
  if (Array.isArray(value)) {
180
- return value.every(function (val) { return validate$1(val, { locale: locale }); });
184
+ return value.every(function (val) { return validate$r(val, { locale: locale }); });
181
185
  }
182
186
  // Match at least one locale.
183
187
  if (!locale) {
@@ -185,20 +189,20 @@
185
189
  }
186
190
  return (alphaDash[locale] || alphaDash.en).test(value);
187
191
  };
188
- var params$1 = [
192
+ var params$j = [
189
193
  {
190
194
  name: 'locale'
191
195
  }
192
196
  ];
193
197
  var alpha_dash = {
194
- validate: validate$1,
195
- params: params$1
198
+ validate: validate$r,
199
+ params: params$j
196
200
  };
197
201
 
198
- var validate$2 = function (value, _a) {
202
+ var validate$q = function (value, _a) {
199
203
  var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;
200
204
  if (Array.isArray(value)) {
201
- return value.every(function (val) { return validate$2(val, { locale: locale }); });
205
+ return value.every(function (val) { return validate$q(val, { locale: locale }); });
202
206
  }
203
207
  // Match at least one locale.
204
208
  if (!locale) {
@@ -206,20 +210,20 @@
206
210
  }
207
211
  return (alphanumeric[locale] || alphanumeric.en).test(value);
208
212
  };
209
- var params$2 = [
213
+ var params$i = [
210
214
  {
211
215
  name: 'locale'
212
216
  }
213
217
  ];
214
218
  var alpha_num = {
215
- validate: validate$2,
216
- params: params$2
219
+ validate: validate$q,
220
+ params: params$i
217
221
  };
218
222
 
219
- var validate$3 = function (value, _a) {
223
+ var validate$p = function (value, _a) {
220
224
  var _b = (_a === void 0 ? {} : _a).locale, locale = _b === void 0 ? '' : _b;
221
225
  if (Array.isArray(value)) {
222
- return value.every(function (val) { return validate$3(val, { locale: locale }); });
226
+ return value.every(function (val) { return validate$p(val, { locale: locale }); });
223
227
  }
224
228
  // Match at least one locale.
225
229
  if (!locale) {
@@ -227,24 +231,24 @@
227
231
  }
228
232
  return (alphaSpaces[locale] || alphaSpaces.en).test(value);
229
233
  };
230
- var params$3 = [
234
+ var params$h = [
231
235
  {
232
236
  name: 'locale'
233
237
  }
234
238
  ];
235
239
  var alpha_spaces = {
236
- validate: validate$3,
237
- params: params$3
240
+ validate: validate$p,
241
+ params: params$h
238
242
  };
239
243
 
240
- var validate$4 = function (value, _a) {
244
+ var validate$o = function (value, _a) {
241
245
  var _b = _a === void 0 ? {} : _a, min = _b.min, max = _b.max;
242
246
  if (Array.isArray(value)) {
243
- return value.every(function (val) { return !!validate$4(val, { min: min, max: max }); });
247
+ return value.every(function (val) { return !!validate$o(val, { min: min, max: max }); });
244
248
  }
245
249
  return Number(min) <= value && Number(max) >= value;
246
250
  };
247
- var params$4 = [
251
+ var params$g = [
248
252
  {
249
253
  name: 'min'
250
254
  },
@@ -253,34 +257,34 @@
253
257
  }
254
258
  ];
255
259
  var between = {
256
- validate: validate$4,
257
- params: params$4
260
+ validate: validate$o,
261
+ params: params$g
258
262
  };
259
263
 
260
- var validate$5 = function (value, _a) {
264
+ var validate$n = function (value, _a) {
261
265
  var target = _a.target;
262
266
  return String(value) === String(target);
263
267
  };
264
- var params$5 = [
268
+ var params$f = [
265
269
  {
266
270
  name: 'target',
267
271
  isTarget: true
268
272
  }
269
273
  ];
270
274
  var confirmed = {
271
- validate: validate$5,
272
- params: params$5
275
+ validate: validate$n,
276
+ params: params$f
273
277
  };
274
278
 
275
- var validate$6 = function (value, _a) {
279
+ var validate$m = function (value, _a) {
276
280
  var length = _a.length;
277
281
  if (Array.isArray(value)) {
278
- return value.every(function (val) { return validate$6(val, { length: length }); });
282
+ return value.every(function (val) { return validate$m(val, { length: length }); });
279
283
  }
280
284
  var strVal = String(value);
281
285
  return /^[0-9]*$/.test(strVal) && strVal.length === length;
282
286
  };
283
- var params$6 = [
287
+ var params$e = [
284
288
  {
285
289
  name: 'length',
286
290
  cast: function (value) {
@@ -289,8 +293,8 @@
289
293
  }
290
294
  ];
291
295
  var digits = {
292
- validate: validate$6,
293
- params: params$6
296
+ validate: validate$m,
297
+ params: params$e
294
298
  };
295
299
 
296
300
  var validateImage = function (file, width, height) {
@@ -302,7 +306,7 @@
302
306
  image.src = URL.createObjectURL(file);
303
307
  });
304
308
  };
305
- var validate$7 = function (files, _a) {
309
+ var validate$l = function (files, _a) {
306
310
  var width = _a.width, height = _a.height;
307
311
  var list = [];
308
312
  files = Array.isArray(files) ? files : [files];
@@ -317,7 +321,7 @@
317
321
  return values.every(function (v) { return v; });
318
322
  });
319
323
  };
320
- var params$7 = [
324
+ var params$d = [
321
325
  {
322
326
  name: 'width',
323
327
  cast: function (value) {
@@ -332,11 +336,11 @@
332
336
  }
333
337
  ];
334
338
  var dimensions = {
335
- validate: validate$7,
336
- params: params$7
339
+ validate: validate$l,
340
+ params: params$d
337
341
  };
338
342
 
339
- var validate$8 = function (value, _a) {
343
+ var validate$k = function (value, _a) {
340
344
  var multiple = (_a === void 0 ? {} : _a).multiple;
341
345
  // eslint-disable-next-line
342
346
  var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
@@ -350,15 +354,15 @@
350
354
  }
351
355
  return re.test(String(value));
352
356
  };
353
- var params$8 = [
357
+ var params$c = [
354
358
  {
355
359
  name: 'multiple',
356
360
  default: false
357
361
  }
358
362
  ];
359
363
  var email = {
360
- validate: validate$8,
361
- params: params$8
364
+ validate: validate$k,
365
+ params: params$c
362
366
  };
363
367
 
364
368
  function isNaN$1(value) {
@@ -384,34 +388,6 @@
384
388
  }
385
389
  return lhs === rhs;
386
390
  }
387
- /**
388
- * Shallow object comparison.
389
- */
390
- function isEqual(lhs, rhs) {
391
- if (lhs instanceof RegExp && rhs instanceof RegExp) {
392
- return isEqual(lhs.source, rhs.source) && isEqual(lhs.flags, rhs.flags);
393
- }
394
- if (Array.isArray(lhs) && Array.isArray(rhs)) {
395
- if (lhs.length !== rhs.length)
396
- return false;
397
- for (var i = 0; i < lhs.length; i++) {
398
- if (!isEqual(lhs[i], rhs[i])) {
399
- return false;
400
- }
401
- }
402
- return true;
403
- }
404
- // if both are objects, compare each key recursively.
405
- if (isObject(lhs) && isObject(rhs)) {
406
- return (Object.keys(lhs).every(function (key) {
407
- return isEqual(lhs[key], rhs[key]);
408
- }) &&
409
- Object.keys(rhs).every(function (key) {
410
- return isEqual(lhs[key], rhs[key]);
411
- }));
412
- }
413
- return isRefEqual(lhs, rhs);
414
- }
415
391
  // Checks if a given value is not an empty string or null or undefined.
416
392
  function isSpecified(val) {
417
393
  if (val === '') {
@@ -419,6 +395,7 @@
419
395
  }
420
396
  return !isNullOrUndefined(val);
421
397
  }
398
+ // eslint-disable-next-line @typescript-eslint/ban-types
422
399
  function isCallable(fn) {
423
400
  return typeof fn === 'function';
424
401
  }
@@ -551,9 +528,9 @@
551
528
  });
552
529
  }
553
530
 
554
- var validate$9 = function (value, options) {
531
+ var validate$j = function (value, options) {
555
532
  if (Array.isArray(value)) {
556
- return value.every(function (val) { return validate$9(val, options); });
533
+ return value.every(function (val) { return validate$j(val, options); });
557
534
  }
558
535
  return toArray(options).some(function (item) {
559
536
  // eslint-disable-next-line
@@ -561,17 +538,17 @@
561
538
  });
562
539
  };
563
540
  var oneOf = {
564
- validate: validate$9
541
+ validate: validate$j
565
542
  };
566
543
 
567
- var validate$a = function (value, args) {
568
- return !validate$9(value, args);
544
+ var validate$i = function (value, args) {
545
+ return !validate$j(value, args);
569
546
  };
570
547
  var excluded = {
571
- validate: validate$a
548
+ validate: validate$i
572
549
  };
573
550
 
574
- var validate$b = function (files, extensions) {
551
+ var validate$h = function (files, extensions) {
575
552
  var regex = new RegExp(".(" + extensions.join('|') + ")$", 'i');
576
553
  if (Array.isArray(files)) {
577
554
  return files.every(function (file) { return regex.test(file.name); });
@@ -579,10 +556,10 @@
579
556
  return regex.test(files.name);
580
557
  };
581
558
  var ext = {
582
- validate: validate$b
559
+ validate: validate$h
583
560
  };
584
561
 
585
- var validate$c = function (files) {
562
+ var validate$g = function (files) {
586
563
  var regex = /\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;
587
564
  if (Array.isArray(files)) {
588
565
  return files.every(function (file) { return regex.test(file.name); });
@@ -590,34 +567,34 @@
590
567
  return regex.test(files.name);
591
568
  };
592
569
  var image = {
593
- validate: validate$c
570
+ validate: validate$g
594
571
  };
595
572
 
596
- var validate$d = function (value) {
573
+ var validate$f = function (value) {
597
574
  if (Array.isArray(value)) {
598
575
  return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });
599
576
  }
600
577
  return /^-?[0-9]+$/.test(String(value));
601
578
  };
602
579
  var integer = {
603
- validate: validate$d
580
+ validate: validate$f
604
581
  };
605
582
 
606
583
  var validate$e = function (value, _a) {
607
584
  var other = _a.other;
608
585
  return value === other;
609
586
  };
610
- var params$9 = [
587
+ var params$b = [
611
588
  {
612
589
  name: 'other'
613
590
  }
614
591
  ];
615
592
  var is = {
616
593
  validate: validate$e,
617
- params: params$9
594
+ params: params$b
618
595
  };
619
596
 
620
- var validate$f = function (value, _a) {
597
+ var validate$d = function (value, _a) {
621
598
  var other = _a.other;
622
599
  return value !== other;
623
600
  };
@@ -627,11 +604,11 @@
627
604
  }
628
605
  ];
629
606
  var is_not = {
630
- validate: validate$f,
607
+ validate: validate$d,
631
608
  params: params$a
632
609
  };
633
610
 
634
- var validate$g = function (value, _a) {
611
+ var validate$c = function (value, _a) {
635
612
  var length = _a.length;
636
613
  if (isNullOrUndefined(value)) {
637
614
  return false;
@@ -647,28 +624,28 @@
647
624
  }
648
625
  return value.length === length;
649
626
  };
650
- var params$b = [
627
+ var params$9 = [
651
628
  {
652
629
  name: 'length',
653
630
  cast: function (value) { return Number(value); }
654
631
  }
655
632
  ];
656
633
  var length = {
657
- validate: validate$g,
658
- params: params$b
634
+ validate: validate$c,
635
+ params: params$9
659
636
  };
660
637
 
661
- var validate$h = function (value, _a) {
638
+ var validate$b = function (value, _a) {
662
639
  var length = _a.length;
663
640
  if (isNullOrUndefined(value)) {
664
641
  return length >= 0;
665
642
  }
666
643
  if (Array.isArray(value)) {
667
- return value.every(function (val) { return validate$h(val, { length: length }); });
644
+ return value.every(function (val) { return validate$b(val, { length: length }); });
668
645
  }
669
646
  return String(value).length <= length;
670
647
  };
671
- var params$c = [
648
+ var params$8 = [
672
649
  {
673
650
  name: 'length',
674
651
  cast: function (value) {
@@ -677,21 +654,21 @@
677
654
  }
678
655
  ];
679
656
  var max = {
680
- validate: validate$h,
681
- params: params$c
657
+ validate: validate$b,
658
+ params: params$8
682
659
  };
683
660
 
684
- var validate$i = function (value, _a) {
661
+ var validate$a = function (value, _a) {
685
662
  var max = _a.max;
686
663
  if (isNullOrUndefined(value) || value === '') {
687
664
  return false;
688
665
  }
689
666
  if (Array.isArray(value)) {
690
- return value.length > 0 && value.every(function (val) { return validate$i(val, { max: max }); });
667
+ return value.length > 0 && value.every(function (val) { return validate$a(val, { max: max }); });
691
668
  }
692
669
  return Number(value) <= max;
693
670
  };
694
- var params$d = [
671
+ var params$7 = [
695
672
  {
696
673
  name: 'max',
697
674
  cast: function (value) {
@@ -700,11 +677,11 @@
700
677
  }
701
678
  ];
702
679
  var max_value = {
703
- validate: validate$i,
704
- params: params$d
680
+ validate: validate$a,
681
+ params: params$7
705
682
  };
706
683
 
707
- var validate$j = function (files, mimes) {
684
+ var validate$9 = function (files, mimes) {
708
685
  var regex = new RegExp(mimes.join('|').replace('*', '.+') + "$", 'i');
709
686
  if (Array.isArray(files)) {
710
687
  return files.every(function (file) { return regex.test(file.type); });
@@ -712,20 +689,20 @@
712
689
  return regex.test(files.type);
713
690
  };
714
691
  var mimes = {
715
- validate: validate$j
692
+ validate: validate$9
716
693
  };
717
694
 
718
- var validate$k = function (value, _a) {
695
+ var validate$8 = function (value, _a) {
719
696
  var length = _a.length;
720
697
  if (isNullOrUndefined(value)) {
721
698
  return false;
722
699
  }
723
700
  if (Array.isArray(value)) {
724
- return value.every(function (val) { return validate$k(val, { length: length }); });
701
+ return value.every(function (val) { return validate$8(val, { length: length }); });
725
702
  }
726
703
  return String(value).length >= length;
727
704
  };
728
- var params$e = [
705
+ var params$6 = [
729
706
  {
730
707
  name: 'length',
731
708
  cast: function (value) {
@@ -734,21 +711,21 @@
734
711
  }
735
712
  ];
736
713
  var min = {
737
- validate: validate$k,
738
- params: params$e
714
+ validate: validate$8,
715
+ params: params$6
739
716
  };
740
717
 
741
- var validate$l = function (value, _a) {
718
+ var validate$7 = function (value, _a) {
742
719
  var min = _a.min;
743
720
  if (isNullOrUndefined(value) || value === '') {
744
721
  return false;
745
722
  }
746
723
  if (Array.isArray(value)) {
747
- return value.length > 0 && value.every(function (val) { return validate$l(val, { min: min }); });
724
+ return value.length > 0 && value.every(function (val) { return validate$7(val, { min: min }); });
748
725
  }
749
726
  return Number(value) >= min;
750
727
  };
751
- var params$f = [
728
+ var params$5 = [
752
729
  {
753
730
  name: 'min',
754
731
  cast: function (value) {
@@ -757,16 +734,16 @@
757
734
  }
758
735
  ];
759
736
  var min_value = {
760
- validate: validate$l,
761
- params: params$f
737
+ validate: validate$7,
738
+ params: params$5
762
739
  };
763
740
 
764
741
  var ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;
765
- var en$1 = /^[0-9]+$/;
766
- var validate$m = function (value) {
742
+ var en = /^[0-9]+$/;
743
+ var validate$6 = function (value) {
767
744
  var testValue = function (val) {
768
745
  var strValue = String(val);
769
- return en$1.test(strValue) || ar.test(strValue);
746
+ return en.test(strValue) || ar.test(strValue);
770
747
  };
771
748
  if (Array.isArray(value)) {
772
749
  return value.every(testValue);
@@ -774,17 +751,17 @@
774
751
  return testValue(value);
775
752
  };
776
753
  var numeric = {
777
- validate: validate$m
754
+ validate: validate$6
778
755
  };
779
756
 
780
- var validate$n = function (value, _a) {
757
+ var validate$5 = function (value, _a) {
781
758
  var regex = _a.regex;
782
759
  if (Array.isArray(value)) {
783
- return value.every(function (val) { return validate$n(val, { regex: regex }); });
760
+ return value.every(function (val) { return validate$5(val, { regex: regex }); });
784
761
  }
785
762
  return regex.test(String(value));
786
763
  };
787
- var params$g = [
764
+ var params$4 = [
788
765
  {
789
766
  name: 'regex',
790
767
  cast: function (value) {
@@ -796,11 +773,11 @@
796
773
  }
797
774
  ];
798
775
  var regex = {
799
- validate: validate$n,
800
- params: params$g
776
+ validate: validate$5,
777
+ params: params$4
801
778
  };
802
779
 
803
- var validate$o = function (value, _a) {
780
+ var validate$4 = function (value, _a) {
804
781
  var allowFalse = (_a === void 0 ? { allowFalse: true } : _a).allowFalse;
805
782
  var result = {
806
783
  valid: false,
@@ -816,23 +793,23 @@
816
793
  result.valid = !!String(value).trim().length;
817
794
  return result;
818
795
  };
819
- var computesRequired = true;
820
- var params$h = [
796
+ var computesRequired$1 = true;
797
+ var params$3 = [
821
798
  {
822
799
  name: 'allowFalse',
823
800
  default: true
824
801
  }
825
802
  ];
826
803
  var required = {
827
- validate: validate$o,
828
- params: params$h,
829
- computesRequired: computesRequired
804
+ validate: validate$4,
805
+ params: params$3,
806
+ computesRequired: computesRequired$1
830
807
  };
831
808
 
832
809
  var testEmpty = function (value) {
833
810
  return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;
834
811
  };
835
- var validate$p = function (value, _a) {
812
+ var validate$3 = function (value, _a) {
836
813
  var target = _a.target, values = _a.values;
837
814
  var required;
838
815
  if (values && values.length) {
@@ -856,7 +833,7 @@
856
833
  required: required
857
834
  };
858
835
  };
859
- var params$i = [
836
+ var params$2 = [
860
837
  {
861
838
  name: 'target',
862
839
  isTarget: true
@@ -865,14 +842,14 @@
865
842
  name: 'values'
866
843
  }
867
844
  ];
868
- var computesRequired$1 = true;
845
+ var computesRequired = true;
869
846
  var required_if = {
870
- validate: validate$p,
871
- params: params$i,
872
- computesRequired: computesRequired$1
847
+ validate: validate$3,
848
+ params: params$2,
849
+ computesRequired: computesRequired
873
850
  };
874
851
 
875
- var validate$q = function (files, _a) {
852
+ var validate$2 = function (files, _a) {
876
853
  var size = _a.size;
877
854
  if (isNaN(size)) {
878
855
  return false;
@@ -888,7 +865,7 @@
888
865
  }
889
866
  return true;
890
867
  };
891
- var params$j = [
868
+ var params$1 = [
892
869
  {
893
870
  name: 'size',
894
871
  cast: function (value) {
@@ -897,11 +874,11 @@
897
874
  }
898
875
  ];
899
876
  var size = {
900
- validate: validate$q,
901
- params: params$j
877
+ validate: validate$2,
878
+ params: params$1
902
879
  };
903
880
 
904
- var validate$r = function (value, params) {
881
+ var validate$1 = function (value, params) {
905
882
  var _a = params || {}, _b = _a.decimals, decimals = _b === void 0 ? 0 : _b, _c = _a.separator, separator = _c === void 0 ? 'dot' : _c;
906
883
  var separators = {
907
884
  dot: '.',
@@ -911,7 +888,7 @@
911
888
  var regex = new RegExp("^-?\\d+\\" + (separators[separator] || '.') + "\\d" + regexPart + "$");
912
889
  return Array.isArray(value) ? value.every(function (val) { return regex.test(String(val)); }) : regex.test(String(value));
913
890
  };
914
- var params$k = [
891
+ var params = [
915
892
  {
916
893
  name: 'decimals',
917
894
  default: 0
@@ -922,8 +899,8 @@
922
899
  }
923
900
  ];
924
901
  var double = {
925
- validate: validate$r,
926
- params: params$k
902
+ validate: validate$1,
903
+ params: params
927
904
  };
928
905
 
929
906
  /* eslint-disable camelcase */
@@ -933,7 +910,7 @@
933
910
  alpha_dash: alpha_dash,
934
911
  alpha_num: alpha_num,
935
912
  alpha_spaces: alpha_spaces,
936
- alpha: alpha$1,
913
+ alpha: alpha,
937
914
  between: between,
938
915
  confirmed: confirmed,
939
916
  digits: digits,
@@ -1386,7 +1363,7 @@
1386
1363
  /**
1387
1364
  * Validates a value against the rules.
1388
1365
  */
1389
- function validate$s(value, rules, options) {
1366
+ function validate(value, rules, options) {
1390
1367
  if (options === void 0) { options = {}; }
1391
1368
  return __awaiter(this, void 0, void 0, function () {
1392
1369
  var shouldBail, skipIfEmpty, field, result, errors, failedRules, regenerateMap;
@@ -1419,6 +1396,7 @@
1419
1396
  });
1420
1397
  return [2 /*return*/, {
1421
1398
  valid: result.valid,
1399
+ required: result.required,
1422
1400
  errors: errors,
1423
1401
  failedRules: failedRules,
1424
1402
  regenerateMap: regenerateMap
@@ -1433,15 +1411,16 @@
1433
1411
  function _validate(field, value, _a) {
1434
1412
  var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;
1435
1413
  return __awaiter(this, void 0, void 0, function () {
1436
- var _c, shouldSkip, errors, rules, length, i, rule, result;
1414
+ var _c, shouldSkip, required, errors, rules, length, i, rule, result;
1437
1415
  return __generator(this, function (_d) {
1438
1416
  switch (_d.label) {
1439
1417
  case 0: return [4 /*yield*/, _shouldSkip(field, value)];
1440
1418
  case 1:
1441
- _c = _d.sent(), shouldSkip = _c.shouldSkip, errors = _c.errors;
1419
+ _c = _d.sent(), shouldSkip = _c.shouldSkip, required = _c.required, errors = _c.errors;
1442
1420
  if (shouldSkip) {
1443
1421
  return [2 /*return*/, {
1444
1422
  valid: !errors.length,
1423
+ required: required,
1445
1424
  errors: errors
1446
1425
  }];
1447
1426
  }
@@ -1466,6 +1445,7 @@
1466
1445
  if (field.bails) {
1467
1446
  return [2 /*return*/, {
1468
1447
  valid: false,
1448
+ required: required,
1469
1449
  errors: errors
1470
1450
  }];
1471
1451
  }
@@ -1476,6 +1456,7 @@
1476
1456
  return [3 /*break*/, 2];
1477
1457
  case 5: return [2 /*return*/, {
1478
1458
  valid: !errors.length,
1459
+ required: required,
1479
1460
  errors: errors
1480
1461
  }];
1481
1462
  }
@@ -1493,7 +1474,6 @@
1493
1474
  errors = [];
1494
1475
  isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);
1495
1476
  isEmptyAndOptional = isEmpty && field.skipIfEmpty;
1496
- isRequired = false;
1497
1477
  i = 0;
1498
1478
  _a.label = 1;
1499
1479
  case 1:
@@ -1508,8 +1488,8 @@
1508
1488
  if (!isObject(result)) {
1509
1489
  throw new Error('Require rules has to return an object (see docs)');
1510
1490
  }
1511
- if (result.required) {
1512
- isRequired = true;
1491
+ if (result.required !== undefined) {
1492
+ isRequired = result.required;
1513
1493
  }
1514
1494
  if (!result.valid && result.error) {
1515
1495
  errors.push(result.error);
@@ -1517,6 +1497,7 @@
1517
1497
  if (field.bails) {
1518
1498
  return [2 /*return*/, {
1519
1499
  shouldSkip: true,
1500
+ required: result.required,
1520
1501
  errors: errors
1521
1502
  }];
1522
1503
  }
@@ -1529,6 +1510,7 @@
1529
1510
  if (isEmpty && !isRequired && !field.skipIfEmpty) {
1530
1511
  return [2 /*return*/, {
1531
1512
  shouldSkip: false,
1513
+ required: isRequired,
1532
1514
  errors: errors
1533
1515
  }];
1534
1516
  }
@@ -1536,12 +1518,14 @@
1536
1518
  if (!field.bails && !isEmptyAndOptional) {
1537
1519
  return [2 /*return*/, {
1538
1520
  shouldSkip: false,
1521
+ required: isRequired,
1539
1522
  errors: errors
1540
1523
  }];
1541
1524
  }
1542
1525
  // skip if the field is not required and has an empty value.
1543
1526
  return [2 /*return*/, {
1544
1527
  shouldSkip: !isRequired && isEmpty,
1528
+ required: isRequired,
1545
1529
  errors: errors
1546
1530
  }];
1547
1531
  }
@@ -1687,6 +1671,51 @@
1687
1671
  return values;
1688
1672
  }
1689
1673
 
1674
+ // do not edit .js files directly - edit src/index.jst
1675
+
1676
+
1677
+
1678
+ var fastDeepEqual = function equal(a, b) {
1679
+ if (a === b) return true;
1680
+
1681
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
1682
+ if (a.constructor !== b.constructor) return false;
1683
+
1684
+ var length, i, keys;
1685
+ if (Array.isArray(a)) {
1686
+ length = a.length;
1687
+ if (length != b.length) return false;
1688
+ for (i = length; i-- !== 0;)
1689
+ if (!equal(a[i], b[i])) return false;
1690
+ return true;
1691
+ }
1692
+
1693
+
1694
+
1695
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
1696
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
1697
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
1698
+
1699
+ keys = Object.keys(a);
1700
+ length = keys.length;
1701
+ if (length !== Object.keys(b).length) return false;
1702
+
1703
+ for (i = length; i-- !== 0;)
1704
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
1705
+
1706
+ for (i = length; i-- !== 0;) {
1707
+ var key = keys[i];
1708
+
1709
+ if (!equal(a[key], b[key])) return false;
1710
+ }
1711
+
1712
+ return true;
1713
+ }
1714
+
1715
+ // true if both NaN, false otherwise
1716
+ return a!==a && b!==b;
1717
+ };
1718
+
1690
1719
  var isEvent = function (evt) {
1691
1720
  if (!evt) {
1692
1721
  return false;
@@ -2081,7 +2110,7 @@
2081
2110
  }
2082
2111
 
2083
2112
  var PROVIDER_COUNTER = 0;
2084
- function data() {
2113
+ function data$1() {
2085
2114
  var errors = [];
2086
2115
  var fieldName = '';
2087
2116
  var defaultValues = {
@@ -2098,6 +2127,7 @@
2098
2127
  return defaultValues;
2099
2128
  }
2100
2129
  var ValidationProvider = Vue__default['default'].extend({
2130
+ name: 'ValidationProvider',
2101
2131
  inject: {
2102
2132
  $_veeObserver: {
2103
2133
  from: '$_veeObserver',
@@ -2171,11 +2201,11 @@
2171
2201
  rules: {
2172
2202
  deep: true,
2173
2203
  handler: function (val, oldVal) {
2174
- this._needsValidation = !isEqual(val, oldVal);
2204
+ this._needsValidation = !fastDeepEqual(val, oldVal);
2175
2205
  }
2176
2206
  }
2177
2207
  },
2178
- data: data,
2208
+ data: data$1,
2179
2209
  computed: {
2180
2210
  fieldDeps: function () {
2181
2211
  var _this = this;
@@ -2255,7 +2285,7 @@
2255
2285
  return;
2256
2286
  }
2257
2287
  var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
2258
- if (!isEqual(_this._resolvedRules, resolved)) {
2288
+ if (!fastDeepEqual(_this._resolvedRules, resolved)) {
2259
2289
  _this._needsValidation = true;
2260
2290
  }
2261
2291
  if (isHTMLNode(input)) {
@@ -2288,7 +2318,7 @@
2288
2318
  syncValue: function (v) {
2289
2319
  var value = normalizeEventValue(v);
2290
2320
  this.value = value;
2291
- this.flags.changed = this.initialValue !== value;
2321
+ this.flags.changed = !fastDeepEqual(this.initialValue, value);
2292
2322
  },
2293
2323
  reset: function () {
2294
2324
  var _this = this;
@@ -2333,7 +2363,7 @@
2333
2363
  enumerable: false,
2334
2364
  configurable: false
2335
2365
  });
2336
- return [4 /*yield*/, validate$s(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];
2366
+ return [4 /*yield*/, validate(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];
2337
2367
  case 1:
2338
2368
  result = _a.sent();
2339
2369
  this.setFlags({
@@ -2341,6 +2371,11 @@
2341
2371
  valid: result.valid,
2342
2372
  invalid: !result.valid
2343
2373
  });
2374
+ if (result.required !== undefined) {
2375
+ this.setFlags({
2376
+ required: result.required
2377
+ });
2378
+ }
2344
2379
  return [2 /*return*/, result];
2345
2380
  }
2346
2381
  });
@@ -2360,11 +2395,16 @@
2360
2395
  invalid: !!errors.length,
2361
2396
  failed: !!errors.length,
2362
2397
  validated: true,
2363
- changed: this.value !== this.initialValue
2398
+ changed: !fastDeepEqual(this.value, this.initialValue)
2364
2399
  });
2365
2400
  },
2366
2401
  registerField: function () {
2367
2402
  updateRenderingContextRefs(this);
2403
+ },
2404
+ checkComputesRequiredState: function () {
2405
+ var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);
2406
+ var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);
2407
+ return isRequired;
2368
2408
  }
2369
2409
  }
2370
2410
  });
@@ -2465,10 +2505,15 @@
2465
2505
  }
2466
2506
  if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {
2467
2507
  ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {
2508
+ var isComputesRequired = ctx.checkComputesRequiredState();
2468
2509
  if (ctx.flags.validated) {
2469
2510
  ctx._needsValidation = true;
2470
2511
  ctx.validate();
2471
2512
  }
2513
+ // Validate dependent field silently if it has rules with computesRequired
2514
+ if (isComputesRequired && !ctx.flags.validated) {
2515
+ ctx.validateSilent();
2516
+ }
2472
2517
  });
2473
2518
  }
2474
2519
  }
@@ -2487,7 +2532,7 @@
2487
2532
  ['failed', 'some']
2488
2533
  ];
2489
2534
  var OBSERVER_COUNTER = 0;
2490
- function data$1() {
2535
+ function data() {
2491
2536
  var refs = {};
2492
2537
  var errors = {};
2493
2538
  var flags = createObserverFlags();
@@ -2542,7 +2587,7 @@
2542
2587
  default: false
2543
2588
  }
2544
2589
  },
2545
- data: data$1,
2590
+ data: data,
2546
2591
  created: function () {
2547
2592
  var _this = this;
2548
2593
  this.id = this.vid;
@@ -2754,7 +2799,7 @@
2754
2799
  return hoc;
2755
2800
  }
2756
2801
 
2757
- var version = '3.4.5';
2802
+ var version = '3.4.9';
2758
2803
  // Install all rules.
2759
2804
  var RulesAsList = Object.keys(Rules).map(function (key) { return ({ schema: Rules[key], name: key }); });
2760
2805
  RulesAsList.forEach(function (_a) {
@@ -2762,7 +2807,7 @@
2762
2807
  extend(name, schema);
2763
2808
  });
2764
2809
  // Install locale
2765
- localize('en', en);
2810
+ localize('en', en$1);
2766
2811
 
2767
2812
  exports.Rules = Rules;
2768
2813
  exports.ValidationObserver = ValidationObserver;
@@ -2773,7 +2818,7 @@
2773
2818
  exports.localize = localize;
2774
2819
  exports.normalizeRules = normalizeRules;
2775
2820
  exports.setInteractionMode = setInteractionMode;
2776
- exports.validate = validate$s;
2821
+ exports.validate = validate;
2777
2822
  exports.version = version;
2778
2823
  exports.withValidation = withValidation;
2779
2824