vee-validate 3.3.7 → 3.3.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <a href="https://logaretm.github.io/vee-validate/" target="_blank">
3
- <img width="200" src="https://github.com/logaretm/vee-validate/blob/master/logo.svg">
3
+ <img width="200" src="https://github.com/logaretm/vee-validate/blob/master/logo.png">
4
4
  </a>
5
5
  </p>
6
6
 
@@ -14,9 +14,9 @@
14
14
  [![npm](https://img.shields.io/npm/v/vee-validate.svg)](https://www.npmjs.com/package/vee-validate)
15
15
  [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/logaretm/vee-validate.svg)](http://isitmaintained.com/project/logaretm/vee-validate 'Average time to resolve an issue')
16
16
  [![Percentage of issues still open](http://isitmaintained.com/badge/open/logaretm/vee-validate.svg)](http://isitmaintained.com/project/logaretm/vee-validate 'Percentage of issues still open')
17
- [![xscode](https://img.shields.io/badge/Available%20on-xs%3Acode-blue?style=?style=plastic&logo=appveyor&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////////VXz1bAAAAAJ0Uk5T/wDltzBKAAAAlUlEQVR42uzXSwqAMAwE0Mn9L+3Ggtgkk35QwcnSJo9S+yGwM9DCooCbgn4YrJ4CIPUcQF7/XSBbx2TEz4sAZ2q1RAECBAiYBlCtvwN+KiYAlG7UDGj59MViT9hOwEqAhYCtAsUZvL6I6W8c2wcbd+LIWSCHSTeSAAECngN4xxIDSK9f4B9t377Wd7H5Nt7/Xz8eAgwAvesLRjYYPuUAAAAASUVORK5CYII=)](https://xscode.com/logaretm/vee-validate)
18
17
 
19
18
  </p>
19
+
20
20
  <br>
21
21
 
22
22
  vee-validate is a template-based validation framework for [Vue.js](https://vuejs.org/) that allows you to validate inputs and display errors.
@@ -147,6 +147,7 @@ You are welcome to contribute to this project, but before you do, please make su
147
147
  ### Credits
148
148
 
149
149
  - Inspired by Laravel's [validation syntax](https://laravel.com/docs/5.4/validation).
150
+ - Logo by @baianat design team.
150
151
 
151
152
  ### License
152
153
 
@@ -0,0 +1,30 @@
1
+ {
2
+ "code": "ckb",
3
+ "messages": {
4
+ "alpha": " {_field_} دەکرێت تەنها کاراکتەرە ئەفابێتیکەکانی تێدا بێت",
5
+ "alpha_num": "{_field_} پێویستە تەنها کاراکتەری ئەفابێتیکی ژمارەیی بێت",
6
+ "alpha_dash": "{_field_} پێویستە تەنها ژمارەی یاخود داش و ئەندەرسکۆر بێت",
7
+ "alpha_spaces": "{_field_} پێویستە تەنها کاراکتەری ئەلفابێتیک و بۆشایی لەخۆبگرێت",
8
+ "between": "بەهای {_field_} پێویستە لە نێوان {min} و {max} بێت",
9
+ "confirmed": "دووپاتکردنەوەی {_field_} پەسەند نەکراوە",
10
+ "digits": "بەهای {_field_} پێویستە ژمارە بێت و {length} دیجیت بێت",
11
+ "dimensions": "{_field_} پێویستە {width} پیکسڵ بە {height} پیکسڵ بێت",
12
+ "email": "{_field_} پێویستە لە جۆری ئیمەیڵی دروست بێت",
13
+ "excluded": "بەهای {_field_} لە بەهایەکی دروست نییە",
14
+ "ext": "جۆری {_field_} لە فایلێکی دروست نییە",
15
+ "image": "{_field_} پێویستە لە جۆری وێنە بێت",
16
+ "integer": "بەهای {_field_} پێویستە ژمارە بێت",
17
+ "length": "درێژی {_field_} پێویستە {length} بێت",
18
+ "max_value": "بەهای {_field_} پێویستە {max} یان کەمتر بێت",
19
+ "max": "بەهای {_field_} نابێت زیاتر بێت لە {length} کاراکتەر",
20
+ "mimes": "{_field_} پێویستە جۆرێک لە فایلە دروستەکان بێت",
21
+ "min_value": "بەهای {_field_} پێویستە {min} یان زیاتر بێت",
22
+ "min": "درێژی {_field_} پێویستە کەمتر نەبێت لە {length} کاراکتەر",
23
+ "numeric": "{_field_} پێویستە تەنها ژمارە لەخۆبگرێت",
24
+ "oneOf": "{_field_} یەکێک نییە لە بەها دروستەکان",
25
+ "regex": "جۆری {_field_} دروست نییە",
26
+ "required_if": "{_field_} داواکراوە",
27
+ "required": "{_field_} داواکراوە",
28
+ "size": "{_field_} پێویستە لە {size}KB کەمتربێت"
29
+ }
30
+ }
@@ -15,6 +15,7 @@
15
15
  "image": "{_field_}は有効な画像形式ではありません",
16
16
  "integer": "{_field_}は整数のみ使用できます",
17
17
  "is": "{_field_}が一致しません",
18
+ "is_not": "{_field_}は無効です ",
18
19
  "length": "{_field_}は{length}文字でなければなりません",
19
20
  "max_value": "{_field_}は{max}以下でなければなりません",
20
21
  "max": "{_field_}は{length}文字以内にしてください",
@@ -6,8 +6,8 @@
6
6
  "alpha_num": "Поле {_field_} может содержать только буквы и цифры",
7
7
  "alpha_spaces": "Поле {_field_} может содержать только буквы и пробелы",
8
8
  "between": "Поле {_field_} должно быть между {min} и {max}",
9
- "confirmed": "Поле {_field_} не совпадает Подтверждение",
10
- "digits": "Поле {_field_} должно быть числовым и точно содержать {length} цифры",
9
+ "confirmed": "Поле {_field_} не совпадает с {target}",
10
+ "digits": "Поле {_field_} должно быть числовым и длиной {length}",
11
11
  "dimensions": "Поле {_field_} должно быть {width} пикселей на {height} пикселей",
12
12
  "email": "Поле {_field_} должно быть действительным электронным адресом",
13
13
  "excluded": "Поле {_field_} должно быть допустимым значением",
@@ -21,8 +21,8 @@
21
21
  "min_value": "Поле {_field_} повинно бути {min} або більше",
22
22
  "numeric": "Поле {_field_} може містить лише цифри",
23
23
  "regex": "Поле {_field_} має невірний формат",
24
- "required": "Поле {_field_} повинно мати значення",
25
- "required_if": "Поле {_field_} повинно мати значення",
24
+ "required": "Поле {_field_} повинно бути заповнене",
25
+ "required_if": "Поле {_field_} повинно бути заповнене",
26
26
  "size": "Поле {_field_} повинно бути менше {size}KB"
27
27
  }
28
28
  }
package/dist/rules.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v3.3.7
2
+ * vee-validate v3.3.11
3
3
  * (c) 2020 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -435,6 +435,9 @@ var validate$g = function (value, _a) {
435
435
  if (isNullOrUndefined(value)) {
436
436
  return false;
437
437
  }
438
+ if (typeof value === 'string') {
439
+ value = toArray(value);
440
+ }
438
441
  if (typeof value === 'number') {
439
442
  value = String(value);
440
443
  }
package/dist/rules.umd.js CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * vee-validate v3.3.7
2
+ * vee-validate v3.3.11
3
3
  * (c) 2020 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
8
8
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
9
- (global = global || self, factory(global.VeeValidateRules = {}));
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.VeeValidateRules = {}));
10
10
  }(this, (function (exports) { 'use strict';
11
11
 
12
12
  /**
@@ -441,6 +441,9 @@
441
441
  if (isNullOrUndefined(value)) {
442
442
  return false;
443
443
  }
444
+ if (typeof value === 'string') {
445
+ value = toArray(value);
446
+ }
444
447
  if (typeof value === 'number') {
445
448
  value = String(value);
446
449
  }
@@ -1 +1 @@
1
- !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r=r||self).VeeValidateRules={})}(this,function(r){"use strict";var i={en:/^[A-Z]*$/i,cs:/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,da:/^[A-ZÆØÅ]*$/i,de:/^[A-ZÄÖÜß]*$/i,es:/^[A-ZÁÉÍÑÓÚÜ]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,it:/^[A-Z\xC0-\xFF]*$/i,lt:/^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,nl:/^[A-ZÉËÏÓÖÜ]*$/i,hu:/^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,pl:/^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,pt:/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,ro:/^[A-ZĂÂÎŞŢ]*$/i,ru:/^[А-ЯЁ]*$/i,sk:/^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,sr:/^[A-ZČĆŽŠĐ]*$/i,sv:/^[A-ZÅÄÖ]*$/i,tr:/^[A-ZÇĞİıÖŞÜ]*$/i,uk:/^[А-ЩЬЮЯЄІЇҐ]*$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,az:/^[A-ZÇƏĞİıÖŞÜ]*$/i,el:/^[Α-ώ]*$/i},a={en:/^[A-Z\s]*$/i,cs:/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\s]*$/i,da:/^[A-ZÆØÅ\s]*$/i,de:/^[A-ZÄÖÜß\s]*$/i,es:/^[A-ZÁÉÍÑÓÚÜ\s]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\s]*$/i,it:/^[A-Z\xC0-\xFF\s]*$/i,lt:/^[A-ZĄČĘĖĮŠŲŪŽ\s]*$/i,nl:/^[A-ZÉËÏÓÖÜ\s]*$/i,hu:/^[A-ZÁÉÍÓÖŐÚÜŰ\s]*$/i,pl:/^[A-ZĄĆĘŚŁŃÓŻŹ\s]*$/i,pt:/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\s]*$/i,ro:/^[A-ZĂÂÎŞŢ\s]*$/i,ru:/^[А-ЯЁ\s]*$/i,sk:/^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\s]*$/i,sr:/^[A-ZČĆŽŠĐ\s]*$/i,sv:/^[A-ZÅÄÖ\s]*$/i,tr:/^[A-ZÇĞİıÖŞÜ\s]*$/i,uk:/^[А-ЩЬЮЯЄІЇҐ\s]*$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\s]*$/,az:/^[A-ZÇƏĞİıÖŞÜ\s]*$/i,el:/^[Α-ώ\s]*$/i},u={en:/^[0-9A-Z]*$/i,cs:/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,da:/^[0-9A-ZÆØÅ]$/i,de:/^[0-9A-ZÄÖÜß]*$/i,es:/^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,it:/^[0-9A-Z\xC0-\xFF]*$/i,lt:/^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,hu:/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,nl:/^[0-9A-ZÉËÏÓÖÜ]*$/i,pl:/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,pt:/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,ro:/^[0-9A-ZĂÂÎŞŢ]*$/i,ru:/^[0-9А-ЯЁ]*$/i,sk:/^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,sr:/^[0-9A-ZČĆŽŠĐ]*$/i,sv:/^[0-9A-ZÅÄÖ]*$/i,tr:/^[0-9A-ZÇĞİıÖŞÜ]*$/i,uk:/^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,az:/^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,el:/^[0-9Α-ώ]*$/i},s={en:/^[0-9A-Z_-]*$/i,cs:/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,da:/^[0-9A-ZÆØÅ_-]*$/i,de:/^[0-9A-ZÄÖÜß_-]*$/i,es:/^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,it:/^[0-9A-Z\xC0-\xFF_-]*$/i,lt:/^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,nl:/^[0-9A-ZÉËÏÓÖÜ_-]*$/i,hu:/^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,pl:/^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,pt:/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,ro:/^[0-9A-ZĂÂÎŞŢ_-]*$/i,ru:/^[0-9А-ЯЁ_-]*$/i,sk:/^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,sr:/^[0-9A-ZČĆŽŠĐ_-]*$/i,sv:/^[0-9A-ZÅÄÖ_-]*$/i,tr:/^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,uk:/^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,az:/^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,el:/^[0-9Α-ώ_-]*$/i},o=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return o(r,{locale:n})}):n?(i[n]||i.en).test(e):Object.keys(i).some(function(r){return i[r].test(e)})},e={validate:o,params:[{name:"locale"}]},l=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return l(r,{locale:n})}):n?(s[n]||s.en).test(e):Object.keys(s).some(function(r){return s[r].test(e)})},t={validate:l,params:[{name:"locale"}]},A=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return A(r,{locale:n})}):n?(u[n]||u.en).test(e):Object.keys(u).some(function(r){return u[r].test(e)})},n={validate:A,params:[{name:"locale"}]},c=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return c(r,{locale:n})}):n?(a[n]||a.en).test(e):Object.keys(a).some(function(r){return a[r].test(e)})},f={validate:c,params:[{name:"locale"}]},m=function(r,e){var t=void 0===e?{}:e,n=t.min,i=t.max;return Array.isArray(r)?r.every(function(r){return!!m(r,{min:n,max:i})}):Number(n)<=r&&Number(i)>=r},v={validate:m,params:[{name:"min"},{name:"max"}]},$={validate:function(r,e){var t=e.target;return String(r)===String(t)},params:[{name:"target",isTarget:!0}]},d=function(r,e){var t=e.length;if(Array.isArray(r))return r.every(function(r){return d(r,{length:t})});var n=String(r);return/^[0-9]*$/.test(n)&&n.length===t},y={validate:d,params:[{name:"length",cast:function(r){return Number(r)}}]},g={validate:function(r,e){var u=e.width,s=e.height,t=[];r=Array.isArray(r)?r:[r];for(var n=0;n<r.length;n++){if(!/\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(r[n].name))return Promise.resolve(!1);t.push(r[n])}return Promise.all(t.map(function(r){return t=r,n=u,i=s,a=window.URL||window.webkitURL,new Promise(function(r){var e=new Image;e.onerror=function(){return r(!1)},e.onload=function(){return r(e.width===n&&e.height===i)},e.src=a.createObjectURL(t)});var t,n,i,a})).then(function(r){return r.every(function(r){return r})})},params:[{name:"width",cast:function(r){return Number(r)}},{name:"height",cast:function(r){return Number(r)}}]},Z={validate:function(r,e){var t=(void 0===e?{}:e).multiple,n=/^(([^<>()\[\]\\.,;:\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,}))$/;return t&&!Array.isArray(r)&&(r=String(r).split(",").map(function(r){return r.trim()})),Array.isArray(r)?r.every(function(r){return n.test(String(r))}):n.test(String(r))},params:[{name:"multiple",default:!1}]};function p(r){return null==r}function h(r){return Array.isArray(r)&&0===r.length}function _(r){return"function"==typeof Array.from?Array.from(r):function(r){for(var e=[],t=r.length,n=0;n<t;n++)e.push(r[n]);return e}(r)}function x(r){return h(r)||-1!==[!1,null,void 0].indexOf(r)||!String(r).trim().length}var b=function(e,t){return Array.isArray(e)?e.every(function(r){return b(r,t)}):_(t).some(function(r){return r==e})},w={validate:b},S={validate:function(r,e){return!b(r,e)}},N={validate:function(r,e){var t=new RegExp(".("+e.join("|")+")$","i");return Array.isArray(r)?r.every(function(r){return t.test(r.name)}):t.test(r.name)}},j={validate:function(r){var e=/\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;return Array.isArray(r)?r.every(function(r){return e.test(r.name)}):e.test(r.name)}},k={validate:function(r){return Array.isArray(r)?r.every(function(r){return/^-?[0-9]+$/.test(String(r))}):/^-?[0-9]+$/.test(String(r))}},z={validate:function(r,e){return r===e.other},params:[{name:"other"}]},F={validate:function(r,e){return r!==e.other},params:[{name:"other"}]},R={validate:function(r,e){var t=e.length;return!p(r)&&("number"==typeof r&&(r=String(r)),r.length||(r=_(r)),r.length===t)},params:[{name:"length",cast:function(r){return Number(r)}}]},O=function(r,e){var t=e.length;return p(r)?0<=t:Array.isArray(r)?r.every(function(r){return O(r,{length:t})}):String(r).length<=t},q={validate:O,params:[{name:"length",cast:function(r){return Number(r)}}]},C=function(r,e){var t=e.max;return!p(r)&&""!==r&&(Array.isArray(r)?0<r.length&&r.every(function(r){return C(r,{max:t})}):Number(r)<=t)},P={validate:C,params:[{name:"max",cast:function(r){return Number(r)}}]},E={validate:function(r,e){var t=new RegExp(e.join("|").replace("*",".+")+"$","i");return Array.isArray(r)?r.every(function(r){return t.test(r.type)}):t.test(r.type)}},L=function(r,e){var t=e.length;return!p(r)&&(Array.isArray(r)?r.every(function(r){return L(r,{length:t})}):String(r).length>=t)},U={validate:L,params:[{name:"length",cast:function(r){return Number(r)}}]},T=function(r,e){var t=e.min;return!p(r)&&""!==r&&(Array.isArray(r)?0<r.length&&r.every(function(r){return T(r,{min:t})}):Number(r)>=t)},V={validate:T,params:[{name:"min",cast:function(r){return Number(r)}}]},I=/^[٠١٢٣٤٥٦٧٨٩]+$/,M=/^[0-9]+$/,B={validate:function(r){function e(r){var e=String(r);return M.test(e)||I.test(e)}return Array.isArray(r)?r.every(e):e(r)}},D=function(r,e){var t=e.regex;return Array.isArray(r)?r.every(function(r){return D(r,{regex:t})}):t.test(String(r))},G={validate:D,params:[{name:"regex",cast:function(r){return"string"==typeof r?new RegExp(r):r}}]},H={validate:function(r,e){var t=(void 0===e?{allowFalse:!0}:e).allowFalse,n={valid:!1,required:!0};return p(r)||h(r)||!1===r&&!t||(n.valid=!!String(r).trim().length),n},params:[{name:"allowFalse",default:!0}],computesRequired:!0},J={validate:function(r,e){var t=e.target,n=e.values,i=n&&n.length?(Array.isArray(n)||"string"!=typeof n||(n=[n]),n.some(function(r){return r==String(t).trim()})):!x(t);return i?{valid:!x(r),required:i}:{valid:!0,required:i}},params:[{name:"target",isTarget:!0},{name:"values"}],computesRequired:!0},K={validate:function(r,e){var t=e.size;if(isNaN(t))return!1;var n=1024*t;if(!Array.isArray(r))return r.size<=n;for(var i=0;i<r.length;i++)if(r[i].size>n)return!1;return!0},params:[{name:"size",cast:function(r){return Number(r)}}]};r.alpha=e,r.alpha_dash=t,r.alpha_num=n,r.alpha_spaces=f,r.between=v,r.confirmed=$,r.digits=y,r.dimensions=g,r.email=Z,r.excluded=S,r.ext=N,r.image=j,r.integer=k,r.is=z,r.is_not=F,r.length=R,r.max=q,r.max_value=P,r.mimes=E,r.min=U,r.min_value=V,r.numeric=B,r.oneOf=w,r.regex=G,r.required=H,r.required_if=J,r.size=K,Object.defineProperty(r,"__esModule",{value:!0})});
1
+ !function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((r="undefined"!=typeof globalThis?globalThis:r||self).VeeValidateRules={})}(this,function(r){"use strict";var i={en:/^[A-Z]*$/i,cs:/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,da:/^[A-ZÆØÅ]*$/i,de:/^[A-ZÄÖÜß]*$/i,es:/^[A-ZÁÉÍÑÓÚÜ]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,it:/^[A-Z\xC0-\xFF]*$/i,lt:/^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,nl:/^[A-ZÉËÏÓÖÜ]*$/i,hu:/^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,pl:/^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,pt:/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,ro:/^[A-ZĂÂÎŞŢ]*$/i,ru:/^[А-ЯЁ]*$/i,sk:/^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,sr:/^[A-ZČĆŽŠĐ]*$/i,sv:/^[A-ZÅÄÖ]*$/i,tr:/^[A-ZÇĞİıÖŞÜ]*$/i,uk:/^[А-ЩЬЮЯЄІЇҐ]*$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,az:/^[A-ZÇƏĞİıÖŞÜ]*$/i,el:/^[Α-ώ]*$/i},a={en:/^[A-Z\s]*$/i,cs:/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\s]*$/i,da:/^[A-ZÆØÅ\s]*$/i,de:/^[A-ZÄÖÜß\s]*$/i,es:/^[A-ZÁÉÍÑÓÚÜ\s]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\s]*$/i,it:/^[A-Z\xC0-\xFF\s]*$/i,lt:/^[A-ZĄČĘĖĮŠŲŪŽ\s]*$/i,nl:/^[A-ZÉËÏÓÖÜ\s]*$/i,hu:/^[A-ZÁÉÍÓÖŐÚÜŰ\s]*$/i,pl:/^[A-ZĄĆĘŚŁŃÓŻŹ\s]*$/i,pt:/^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\s]*$/i,ro:/^[A-ZĂÂÎŞŢ\s]*$/i,ru:/^[А-ЯЁ\s]*$/i,sk:/^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\s]*$/i,sr:/^[A-ZČĆŽŠĐ\s]*$/i,sv:/^[A-ZÅÄÖ\s]*$/i,tr:/^[A-ZÇĞİıÖŞÜ\s]*$/i,uk:/^[А-ЩЬЮЯЄІЇҐ\s]*$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\s]*$/,az:/^[A-ZÇƏĞİıÖŞÜ\s]*$/i,el:/^[Α-ώ\s]*$/i},u={en:/^[0-9A-Z]*$/i,cs:/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,da:/^[0-9A-ZÆØÅ]$/i,de:/^[0-9A-ZÄÖÜß]*$/i,es:/^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,it:/^[0-9A-Z\xC0-\xFF]*$/i,lt:/^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,hu:/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,nl:/^[0-9A-ZÉËÏÓÖÜ]*$/i,pl:/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,pt:/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,ro:/^[0-9A-ZĂÂÎŞŢ]*$/i,ru:/^[0-9А-ЯЁ]*$/i,sk:/^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,sr:/^[0-9A-ZČĆŽŠĐ]*$/i,sv:/^[0-9A-ZÅÄÖ]*$/i,tr:/^[0-9A-ZÇĞİıÖŞÜ]*$/i,uk:/^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,az:/^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,el:/^[0-9Α-ώ]*$/i},s={en:/^[0-9A-Z_-]*$/i,cs:/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,da:/^[0-9A-ZÆØÅ_-]*$/i,de:/^[0-9A-ZÄÖÜß_-]*$/i,es:/^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,fa:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,fr:/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,it:/^[0-9A-Z\xC0-\xFF_-]*$/i,lt:/^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,nl:/^[0-9A-ZÉËÏÓÖÜ_-]*$/i,hu:/^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,pl:/^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,pt:/^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,ro:/^[0-9A-ZĂÂÎŞŢ_-]*$/i,ru:/^[0-9А-ЯЁ_-]*$/i,sk:/^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,sr:/^[0-9A-ZČĆŽŠĐ_-]*$/i,sv:/^[0-9A-ZÅÄÖ_-]*$/i,tr:/^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,uk:/^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,az:/^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,el:/^[0-9Α-ώ_-]*$/i},o=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return o(r,{locale:n})}):n?(i[n]||i.en).test(e):Object.keys(i).some(function(r){return i[r].test(e)})},e={validate:o,params:[{name:"locale"}]},l=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return l(r,{locale:n})}):n?(s[n]||s.en).test(e):Object.keys(s).some(function(r){return s[r].test(e)})},t={validate:l,params:[{name:"locale"}]},A=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return A(r,{locale:n})}):n?(u[n]||u.en).test(e):Object.keys(u).some(function(r){return u[r].test(e)})},n={validate:A,params:[{name:"locale"}]},c=function(e,r){var t=(void 0===r?{}:r).locale,n=void 0===t?"":t;return Array.isArray(e)?e.every(function(r){return c(r,{locale:n})}):n?(a[n]||a.en).test(e):Object.keys(a).some(function(r){return a[r].test(e)})},f={validate:c,params:[{name:"locale"}]},m=function(r,e){var t=void 0===e?{}:e,n=t.min,i=t.max;return Array.isArray(r)?r.every(function(r){return!!m(r,{min:n,max:i})}):Number(n)<=r&&Number(i)>=r},v={validate:m,params:[{name:"min"},{name:"max"}]},$={validate:function(r,e){var t=e.target;return String(r)===String(t)},params:[{name:"target",isTarget:!0}]},d=function(r,e){var t=e.length;if(Array.isArray(r))return r.every(function(r){return d(r,{length:t})});var n=String(r);return/^[0-9]*$/.test(n)&&n.length===t},y={validate:d,params:[{name:"length",cast:function(r){return Number(r)}}]},g={validate:function(r,e){var u=e.width,s=e.height,t=[];r=Array.isArray(r)?r:[r];for(var n=0;n<r.length;n++){if(!/\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(r[n].name))return Promise.resolve(!1);t.push(r[n])}return Promise.all(t.map(function(r){return t=r,n=u,i=s,a=window.URL||window.webkitURL,new Promise(function(r){var e=new Image;e.onerror=function(){return r(!1)},e.onload=function(){return r(e.width===n&&e.height===i)},e.src=a.createObjectURL(t)});var t,n,i,a})).then(function(r){return r.every(function(r){return r})})},params:[{name:"width",cast:function(r){return Number(r)}},{name:"height",cast:function(r){return Number(r)}}]},Z={validate:function(r,e){var t=(void 0===e?{}:e).multiple,n=/^(([^<>()\[\]\\.,;:\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,}))$/;return t&&!Array.isArray(r)&&(r=String(r).split(",").map(function(r){return r.trim()})),Array.isArray(r)?r.every(function(r){return n.test(String(r))}):n.test(String(r))},params:[{name:"multiple",default:!1}]};function p(r){return null==r}function h(r){return Array.isArray(r)&&0===r.length}function _(r){return"function"==typeof Array.from?Array.from(r):function(r){for(var e=[],t=r.length,n=0;n<t;n++)e.push(r[n]);return e}(r)}function x(r){return h(r)||-1!==[!1,null,void 0].indexOf(r)||!String(r).trim().length}var b=function(e,t){return Array.isArray(e)?e.every(function(r){return b(r,t)}):_(t).some(function(r){return r==e})},w={validate:b},S={validate:function(r,e){return!b(r,e)}},N={validate:function(r,e){var t=new RegExp(".("+e.join("|")+")$","i");return Array.isArray(r)?r.every(function(r){return t.test(r.name)}):t.test(r.name)}},j={validate:function(r){var e=/\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;return Array.isArray(r)?r.every(function(r){return e.test(r.name)}):e.test(r.name)}},k={validate:function(r){return Array.isArray(r)?r.every(function(r){return/^-?[0-9]+$/.test(String(r))}):/^-?[0-9]+$/.test(String(r))}},z={validate:function(r,e){return r===e.other},params:[{name:"other"}]},F={validate:function(r,e){return r!==e.other},params:[{name:"other"}]},R={validate:function(r,e){var t=e.length;return!p(r)&&("string"==typeof r&&(r=_(r)),"number"==typeof r&&(r=String(r)),r.length||(r=_(r)),r.length===t)},params:[{name:"length",cast:function(r){return Number(r)}}]},O=function(r,e){var t=e.length;return p(r)?0<=t:Array.isArray(r)?r.every(function(r){return O(r,{length:t})}):String(r).length<=t},q={validate:O,params:[{name:"length",cast:function(r){return Number(r)}}]},C=function(r,e){var t=e.max;return!p(r)&&""!==r&&(Array.isArray(r)?0<r.length&&r.every(function(r){return C(r,{max:t})}):Number(r)<=t)},P={validate:C,params:[{name:"max",cast:function(r){return Number(r)}}]},T={validate:function(r,e){var t=new RegExp(e.join("|").replace("*",".+")+"$","i");return Array.isArray(r)?r.every(function(r){return t.test(r.type)}):t.test(r.type)}},E=function(r,e){var t=e.length;return!p(r)&&(Array.isArray(r)?r.every(function(r){return E(r,{length:t})}):String(r).length>=t)},L={validate:E,params:[{name:"length",cast:function(r){return Number(r)}}]},U=function(r,e){var t=e.min;return!p(r)&&""!==r&&(Array.isArray(r)?0<r.length&&r.every(function(r){return U(r,{min:t})}):Number(r)>=t)},V={validate:U,params:[{name:"min",cast:function(r){return Number(r)}}]},I=/^[٠١٢٣٤٥٦٧٨٩]+$/,M=/^[0-9]+$/,B={validate:function(r){function e(r){var e=String(r);return M.test(e)||I.test(e)}return Array.isArray(r)?r.every(e):e(r)}},D=function(r,e){var t=e.regex;return Array.isArray(r)?r.every(function(r){return D(r,{regex:t})}):t.test(String(r))},G={validate:D,params:[{name:"regex",cast:function(r){return"string"==typeof r?new RegExp(r):r}}]},H={validate:function(r,e){var t=(void 0===e?{allowFalse:!0}:e).allowFalse,n={valid:!1,required:!0};return p(r)||h(r)||!1===r&&!t||(n.valid=!!String(r).trim().length),n},params:[{name:"allowFalse",default:!0}],computesRequired:!0},J={validate:function(r,e){var t=e.target,n=e.values,i=n&&n.length?(Array.isArray(n)||"string"!=typeof n||(n=[n]),n.some(function(r){return r==String(t).trim()})):!x(t);return i?{valid:!x(r),required:i}:{valid:!0,required:i}},params:[{name:"target",isTarget:!0},{name:"values"}],computesRequired:!0},K={validate:function(r,e){var t=e.size;if(isNaN(t))return!1;var n=1024*t;if(!Array.isArray(r))return r.size<=n;for(var i=0;i<r.length;i++)if(r[i].size>n)return!1;return!0},params:[{name:"size",cast:function(r){return Number(r)}}]};r.alpha=e,r.alpha_dash=t,r.alpha_num=n,r.alpha_spaces=f,r.between=v,r.confirmed=$,r.digits=y,r.dimensions=g,r.email=Z,r.excluded=S,r.ext=N,r.image=j,r.integer=k,r.is=z,r.is_not=F,r.length=R,r.max=q,r.max_value=P,r.mimes=T,r.min=L,r.min_value=V,r.numeric=B,r.oneOf=w,r.regex=G,r.required=H,r.required_if=J,r.size=K,Object.defineProperty(r,"__esModule",{value:!0})});
@@ -1,3 +1,4 @@
1
+ import { Locator } from '../types';
1
2
  /**
2
3
  * Normalizes the given rules expression.
3
4
  */
@@ -11,4 +12,4 @@ export declare const parseRule: (rule: string) => {
11
12
  name: string;
12
13
  params: string[];
13
14
  };
14
- export declare function extractLocators(params: Record<string, string> | string[]): string[];
15
+ export declare function extractLocators(params: Record<string, string> | string[]): (string | Locator)[];
@@ -4,7 +4,7 @@ export declare function findModel(vnode: VNode): VNodeDirective | undefined;
4
4
  export declare function findValue(vnode: VNode): {
5
5
  value: any;
6
6
  } | undefined;
7
- export declare function findInputNode(vnode: VNode | VNode[]): VNode | null;
7
+ export declare function findInputNodes(vnode: VNode | VNode[]): VNode[];
8
8
  export declare function findModelConfig(vnode: VNode): {
9
9
  prop: string;
10
10
  event: string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v3.3.7
2
+ * vee-validate v3.3.11
3
3
  * (c) 2020 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -514,7 +514,9 @@ function createLocator(value, castFn) {
514
514
  }
515
515
  function extractLocators(params) {
516
516
  if (Array.isArray(params)) {
517
- return params.filter(isLocator);
517
+ return params.filter(function (param) {
518
+ return isLocator(param) || (typeof param === 'string' && param[0] === '@');
519
+ });
518
520
  }
519
521
  return Object.keys(params)
520
522
  .filter(function (key) { return isLocator(params[key]); })
@@ -804,7 +806,13 @@ function _normalizeMessage(template, field, values) {
804
806
  }
805
807
  function fillTargetValues(params, crossTable) {
806
808
  if (Array.isArray(params)) {
807
- return params;
809
+ return params.map(function (param) {
810
+ var targetPart = typeof param === 'string' && param[0] === '@' ? param.slice(1) : param;
811
+ if (targetPart in crossTable) {
812
+ return crossTable[targetPart];
813
+ }
814
+ return param;
815
+ });
808
816
  }
809
817
  var values = {};
810
818
  var normalize = function (value) {
@@ -823,7 +831,7 @@ var aggressive = function () { return ({
823
831
  on: ['input', 'blur']
824
832
  }); };
825
833
  var lazy = function () { return ({
826
- on: ['change']
834
+ on: ['change', 'blur']
827
835
  }); };
828
836
  var eager = function (_a) {
829
837
  var errors = _a.errors;
@@ -1014,17 +1022,18 @@ function extractChildren(vnode) {
1014
1022
  }
1015
1023
  return [];
1016
1024
  }
1017
- function findInputNode(vnode) {
1025
+ function findInputNodes(vnode) {
1018
1026
  if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {
1019
- return vnode;
1027
+ return [vnode];
1020
1028
  }
1021
1029
  var children = extractChildren(vnode);
1022
- return children.reduce(function (candidate, node) {
1023
- if (candidate) {
1024
- return candidate;
1030
+ return children.reduce(function (nodes, node) {
1031
+ var candidates = findInputNodes(node);
1032
+ if (candidates.length) {
1033
+ nodes.push.apply(nodes, candidates);
1025
1034
  }
1026
- return findInputNode(node);
1027
- }, null);
1035
+ return nodes;
1036
+ }, []);
1028
1037
  }
1029
1038
  // Resolves v-model config if exists.
1030
1039
  function findModelConfig(vnode) {
@@ -1400,7 +1409,9 @@ var ValidationProvider = Vue.extend({
1400
1409
  fieldDeps: function () {
1401
1410
  var _this = this;
1402
1411
  return Object.keys(this.normalizedRules).reduce(function (acc, rule) {
1403
- var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) { return dep.__locatorRef; });
1412
+ var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) {
1413
+ return isLocator(dep) ? dep.__locatorRef : dep.slice(1);
1414
+ });
1404
1415
  acc.push.apply(acc, deps);
1405
1416
  deps.forEach(function (depName) {
1406
1417
  watchCrossFieldDep(_this, depName);
@@ -1458,24 +1469,31 @@ var ValidationProvider = Vue.extend({
1458
1469
  });
1459
1470
  },
1460
1471
  render: function (h) {
1461
- var _a, _b, _c, _d;
1472
+ var _this = this;
1462
1473
  this.registerField();
1463
1474
  var ctx = createValidationCtx(this);
1464
1475
  var children = normalizeChildren(this, ctx);
1465
- var input = findInputNode(children);
1466
- if (!input) {
1476
+ var inputs = findInputNodes(children);
1477
+ if (!inputs.length) {
1467
1478
  // Silent exit if no input was found.
1468
1479
  return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);
1469
1480
  }
1470
- var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
1471
- if (!isEqual(this._resolvedRules, resolved)) {
1472
- this._needsValidation = true;
1473
- }
1474
- if (isHTMLNode(input)) {
1475
- this.fieldName = ((_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.name) || ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.id);
1476
- }
1477
- this._resolvedRules = resolved;
1478
- addListeners(this, input);
1481
+ inputs.forEach(function (input, idx) {
1482
+ var _a, _b, _c, _d, _e, _f;
1483
+ // If the elements are not checkboxes and there are more input nodes
1484
+ if (!includes(['checkbox', 'radio'], (_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) && idx > 0) {
1485
+ return;
1486
+ }
1487
+ var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
1488
+ if (!isEqual(_this._resolvedRules, resolved)) {
1489
+ _this._needsValidation = true;
1490
+ }
1491
+ if (isHTMLNode(input)) {
1492
+ _this.fieldName = ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.name) || ((_f = (_e = input.data) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.id);
1493
+ }
1494
+ _this._resolvedRules = resolved;
1495
+ addListeners(_this, input);
1496
+ });
1479
1497
  return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);
1480
1498
  },
1481
1499
  beforeDestroy: function () {
@@ -1933,12 +1951,13 @@ function withValidation(component, mapProps) {
1933
1951
  return h(options, {
1934
1952
  attrs: this.$attrs,
1935
1953
  props: props,
1936
- on: listeners
1954
+ on: listeners,
1955
+ scopedSlots: this.$scopedSlots
1937
1956
  }, normalizeSlots(this.$slots, this.$vnode.context));
1938
1957
  };
1939
1958
  return hoc;
1940
1959
  }
1941
1960
 
1942
- var version = '3.3.7';
1961
+ var version = '3.3.11';
1943
1962
 
1944
1963
  export { ValidationObserver, ValidationProvider, configure, extend, localeChanged, localize, normalizeRules, setInteractionMode, validate, version, withValidation };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * vee-validate v3.3.7
2
+ * vee-validate v3.3.11
3
3
  * (c) 2020 Abdelrahman Awad
4
4
  * @license MIT
5
5
  */
@@ -627,6 +627,9 @@ var validate$g = function (value, _a) {
627
627
  if (isNullOrUndefined(value)) {
628
628
  return false;
629
629
  }
630
+ if (typeof value === 'string') {
631
+ value = toArray(value);
632
+ }
630
633
  if (typeof value === 'number') {
631
634
  value = String(value);
632
635
  }
@@ -1145,7 +1148,7 @@ var aggressive = function () { return ({
1145
1148
  on: ['input', 'blur']
1146
1149
  }); };
1147
1150
  var lazy = function () { return ({
1148
- on: ['change']
1151
+ on: ['change', 'blur']
1149
1152
  }); };
1150
1153
  var eager = function (_a) {
1151
1154
  var errors = _a.errors;
@@ -1332,7 +1335,9 @@ function createLocator(value, castFn) {
1332
1335
  }
1333
1336
  function extractLocators(params) {
1334
1337
  if (Array.isArray(params)) {
1335
- return params.filter(isLocator);
1338
+ return params.filter(function (param) {
1339
+ return isLocator(param) || (typeof param === 'string' && param[0] === '@');
1340
+ });
1336
1341
  }
1337
1342
  return Object.keys(params)
1338
1343
  .filter(function (key) { return isLocator(params[key]); })
@@ -1622,7 +1627,13 @@ function _normalizeMessage(template, field, values) {
1622
1627
  }
1623
1628
  function fillTargetValues(params, crossTable) {
1624
1629
  if (Array.isArray(params)) {
1625
- return params;
1630
+ return params.map(function (param) {
1631
+ var targetPart = typeof param === 'string' && param[0] === '@' ? param.slice(1) : param;
1632
+ if (targetPart in crossTable) {
1633
+ return crossTable[targetPart];
1634
+ }
1635
+ return param;
1636
+ });
1626
1637
  }
1627
1638
  var values = {};
1628
1639
  var normalize = function (value) {
@@ -1739,17 +1750,18 @@ function extractChildren(vnode) {
1739
1750
  }
1740
1751
  return [];
1741
1752
  }
1742
- function findInputNode(vnode) {
1753
+ function findInputNodes(vnode) {
1743
1754
  if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {
1744
- return vnode;
1755
+ return [vnode];
1745
1756
  }
1746
1757
  var children = extractChildren(vnode);
1747
- return children.reduce(function (candidate, node) {
1748
- if (candidate) {
1749
- return candidate;
1758
+ return children.reduce(function (nodes, node) {
1759
+ var candidates = findInputNodes(node);
1760
+ if (candidates.length) {
1761
+ nodes.push.apply(nodes, candidates);
1750
1762
  }
1751
- return findInputNode(node);
1752
- }, null);
1763
+ return nodes;
1764
+ }, []);
1753
1765
  }
1754
1766
  // Resolves v-model config if exists.
1755
1767
  function findModelConfig(vnode) {
@@ -2125,7 +2137,9 @@ var ValidationProvider = Vue.extend({
2125
2137
  fieldDeps: function () {
2126
2138
  var _this = this;
2127
2139
  return Object.keys(this.normalizedRules).reduce(function (acc, rule) {
2128
- var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) { return dep.__locatorRef; });
2140
+ var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) {
2141
+ return isLocator(dep) ? dep.__locatorRef : dep.slice(1);
2142
+ });
2129
2143
  acc.push.apply(acc, deps);
2130
2144
  deps.forEach(function (depName) {
2131
2145
  watchCrossFieldDep(_this, depName);
@@ -2183,24 +2197,31 @@ var ValidationProvider = Vue.extend({
2183
2197
  });
2184
2198
  },
2185
2199
  render: function (h) {
2186
- var _a, _b, _c, _d;
2200
+ var _this = this;
2187
2201
  this.registerField();
2188
2202
  var ctx = createValidationCtx(this);
2189
2203
  var children = normalizeChildren(this, ctx);
2190
- var input = findInputNode(children);
2191
- if (!input) {
2204
+ var inputs = findInputNodes(children);
2205
+ if (!inputs.length) {
2192
2206
  // Silent exit if no input was found.
2193
2207
  return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);
2194
2208
  }
2195
- var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
2196
- if (!isEqual(this._resolvedRules, resolved)) {
2197
- this._needsValidation = true;
2198
- }
2199
- if (isHTMLNode(input)) {
2200
- this.fieldName = ((_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.name) || ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.id);
2201
- }
2202
- this._resolvedRules = resolved;
2203
- addListeners(this, input);
2209
+ inputs.forEach(function (input, idx) {
2210
+ var _a, _b, _c, _d, _e, _f;
2211
+ // If the elements are not checkboxes and there are more input nodes
2212
+ if (!includes(['checkbox', 'radio'], (_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) && idx > 0) {
2213
+ return;
2214
+ }
2215
+ var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};
2216
+ if (!isEqual(_this._resolvedRules, resolved)) {
2217
+ _this._needsValidation = true;
2218
+ }
2219
+ if (isHTMLNode(input)) {
2220
+ _this.fieldName = ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.name) || ((_f = (_e = input.data) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.id);
2221
+ }
2222
+ _this._resolvedRules = resolved;
2223
+ addListeners(_this, input);
2224
+ });
2204
2225
  return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);
2205
2226
  },
2206
2227
  beforeDestroy: function () {
@@ -2658,13 +2679,14 @@ function withValidation(component, mapProps) {
2658
2679
  return h(options, {
2659
2680
  attrs: this.$attrs,
2660
2681
  props: props,
2661
- on: listeners
2682
+ on: listeners,
2683
+ scopedSlots: this.$scopedSlots
2662
2684
  }, normalizeSlots(this.$slots, this.$vnode.context));
2663
2685
  };
2664
2686
  return hoc;
2665
2687
  }
2666
2688
 
2667
- var version = '3.3.7';
2689
+ var version = '3.3.11';
2668
2690
  // Install all rules.
2669
2691
  var RulesAsList = Object.keys(Rules).map(function (key) { return ({ schema: Rules[key], name: key }); });
2670
2692
  RulesAsList.forEach(function (_a) {