vue-livr
Version:
Vue LIVR plugin
2 lines (1 loc) • 20.4 kB
JavaScript
let r=null;const t=()=>r;var e=Array.isArray,i="object"==typeof global&&global&&global.Object===Object&&global,n="object"==typeof self&&self&&self.Object===Object&&self,s=i||n||Function("return this")(),o=s.Symbol,u=Object.prototype,a=u.hasOwnProperty,l=u.toString,c=o?o.toStringTag:void 0;var f=function(r){var t=a.call(r,c),e=r[c];try{r[c]=void 0;var i=!0}catch(r){}var n=l.call(r);return i&&(t?r[c]=e:delete r[c]),n},h=Object.prototype.toString;var p=function(r){return h.call(r)},d=o?o.toStringTag:void 0;var v=function(r){return null==r?void 0===r?"[object Undefined]":"[object Null]":d&&d in Object(r)?f(r):p(r)};var _=function(r){return null!=r&&"object"==typeof r};var R=function(r){return"symbol"==typeof r||_(r)&&"[object Symbol]"==v(r)},O=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,g=/^\w*$/;var y=function(r,t){if(e(r))return!1;var i=typeof r;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=r&&!R(r))||(g.test(r)||!O.test(r)||null!=t&&r in Object(t))};var E=function(r){var t=typeof r;return null!=r&&("object"==t||"function"==t)};var m,b=function(r){if(!E(r))return!1;var t=v(r);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},A=s["__core-js_shared__"],T=(m=/[^.]+$/.exec(A&&A.keys&&A.keys.IE_PROTO||""))?"Symbol(src)_1."+m:"";var N=function(r){return!!T&&T in r},V=Function.prototype.toString;var j=function(r){if(null!=r){try{return V.call(r)}catch(r){}try{return r+""}catch(r){}}return""},M=/^\[object .+?Constructor\]$/,P=Function.prototype,w=Object.prototype,$=P.toString,F=w.hasOwnProperty,L=RegExp("^"+$.call(F).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var x=function(r){return!(!E(r)||N(r))&&(b(r)?L:M).test(j(r))};var I=function(r,t){return null==r?void 0:r[t]};var D=function(r,t){var e=I(r,t);return x(e)?e:void 0},k=D(Object,"create");var S=function(){this.__data__=k?k(null):{},this.size=0};var z=function(r){var t=this.has(r)&&delete this.__data__[r];return this.size-=t?1:0,t},B=Object.prototype.hasOwnProperty;var C=function(r){var t=this.__data__;if(k){var e=t[r];return"__lodash_hash_undefined__"===e?void 0:e}return B.call(t,r)?t[r]:void 0},G=Object.prototype.hasOwnProperty;var H=function(r){var t=this.__data__;return k?void 0!==t[r]:G.call(t,r)};var U=function(r,t){var e=this.__data__;return this.size+=this.has(r)?0:1,e[r]=k&&void 0===t?"__lodash_hash_undefined__":t,this};function W(r){var t=-1,e=null==r?0:r.length;for(this.clear();++t<e;){var i=r[t];this.set(i[0],i[1])}}W.prototype.clear=S,W.prototype.delete=z,W.prototype.get=C,W.prototype.has=H,W.prototype.set=U;var q=W;var Y=function(){this.__data__=[],this.size=0};var Q=function(r,t){return r===t||r!=r&&t!=t};var Z=function(r,t){for(var e=r.length;e--;)if(Q(r[e][0],t))return e;return-1},J=Array.prototype.splice;var K=function(r){var t=this.__data__,e=Z(t,r);return!(e<0)&&(e==t.length-1?t.pop():J.call(t,e,1),--this.size,!0)};var X=function(r){var t=this.__data__,e=Z(t,r);return e<0?void 0:t[e][1]};var rr=function(r){return Z(this.__data__,r)>-1};var tr=function(r,t){var e=this.__data__,i=Z(e,r);return i<0?(++this.size,e.push([r,t])):e[i][1]=t,this};function er(r){var t=-1,e=null==r?0:r.length;for(this.clear();++t<e;){var i=r[t];this.set(i[0],i[1])}}er.prototype.clear=Y,er.prototype.delete=K,er.prototype.get=X,er.prototype.has=rr,er.prototype.set=tr;var ir=er,nr=D(s,"Map");var sr=function(){this.size=0,this.__data__={hash:new q,map:new(nr||ir),string:new q}};var or=function(r){var t=typeof r;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==r:null===r};var ur=function(r,t){var e=r.__data__;return or(t)?e["string"==typeof t?"string":"hash"]:e.map};var ar=function(r){var t=ur(this,r).delete(r);return this.size-=t?1:0,t};var lr=function(r){return ur(this,r).get(r)};var cr=function(r){return ur(this,r).has(r)};var fr=function(r,t){var e=ur(this,r),i=e.size;return e.set(r,t),this.size+=e.size==i?0:1,this};function hr(r){var t=-1,e=null==r?0:r.length;for(this.clear();++t<e;){var i=r[t];this.set(i[0],i[1])}}hr.prototype.clear=sr,hr.prototype.delete=ar,hr.prototype.get=lr,hr.prototype.has=cr,hr.prototype.set=fr;var pr=hr;function dr(r,t){if("function"!=typeof r||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var e=function(){var i=arguments,n=t?t.apply(this,i):i[0],s=e.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return e.cache=s.set(n,o)||s,o};return e.cache=new(dr.Cache||pr),e}dr.Cache=pr;var vr=dr;var _r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rr=/\\(\\)?/g,Or=function(r){var t=vr(r,(function(r){return 500===e.size&&e.clear(),r})),e=t.cache;return t}((function(r){var t=[];return 46===r.charCodeAt(0)&&t.push(""),r.replace(_r,(function(r,e,i,n){t.push(i?n.replace(Rr,"$1"):e||r)})),t}));var gr=function(r,t){for(var e=-1,i=null==r?0:r.length,n=Array(i);++e<i;)n[e]=t(r[e],e,r);return n},yr=o?o.prototype:void 0,Er=yr?yr.toString:void 0;var mr=function r(t){if("string"==typeof t)return t;if(e(t))return gr(t,r)+"";if(R(t))return Er?Er.call(t):"";var i=t+"";return"0"==i&&1/t==-1/0?"-0":i};var br=function(r){return null==r?"":mr(r)};var Ar=function(r,t){return e(r)?r:y(r,t)?[r]:Or(br(r))};var Tr=function(r){if("string"==typeof r||R(r))return r;var t=r+"";return"0"==t&&1/r==-1/0?"-0":t};var Nr=function(r,t){for(var e=0,i=(t=Ar(t,r)).length;null!=r&&e<i;)r=r[Tr(t[e++])];return e&&e==i?r:void 0};var Vr=function(r,t,e){var i=null==r?void 0:Nr(r,t);return void 0===i?e:i};let jr={errorBagName:"errors",extendedErrors:!1,extraRules:{},aliasedRules:[]};const Mr=()=>jr,Pr=r=>{const t=Vr(r,"$options.$_livr",{});return{...jr,...t}},wr=r=>{jr={...jr,...r}};var $r={isPrimitiveValue:r=>"string"==typeof r||(!("number"!=typeof r||!isFinite(r))||"boolean"==typeof r),looksLikeNumber:r=>!isNaN(+r),isObject:r=>Object(r)===r&&Object.getPrototypeOf(r)===Object.prototype,isEmptyObject(r){for(const t in r)if(r.hasOwnProperty(t))return!1;return!0},escapeRegExp:r=>r.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),isNoValue:r=>null==r||""===r};const Fr={};let Lr=0;class xr{constructor(r,t){this.isPrepared=!1,this.livrRules=r,this.validators={},this.validatorBuilders={},this.errors=null,this.isAutoTrim=null!=t?t:Lr,this.registerRules(Fr)}static getDefaultRules(){return Fr}static registerAliasedDefaultRule(r){if(!r.name)throw"Alias name required";Fr[r.name]=this._buildAliasedRule(r.rules,r.error)}static registerDefaultRules(r){for(const t in r)Fr[t]=r[t]}static defaultAutoTrim(r){Lr=!!r}static _buildAliasedRule(r,t){if(!r)throw"Alias rules required";const e={value:r};return r=>{const i=new xr(e).registerRules(r).prepare();return(r,e,n)=>{const s=i.validate({value:r});return s?void n.push(s.value):t||i.getErrors().value}}}prepare(){const r=this.livrRules;for(const t in r){let e=r[t];Array.isArray(e)||(e=[e]);const i=[];for(const r of e){const t=this._parseRule(r);i.push(this._buildValidator(t.name,t.args))}this.validators[t]=i}return this.isPrepared=!0,this}validate(r){if(this.isPrepared||this.prepare(),!$r.isObject(r))return void(this.errors="FORMAT_ERROR");this.isAutoTrim&&(r=this._autoTrim(r));const t={},e={};for(const i in this.validators){const n=this.validators[i];if(!n||!n.length)continue;const s=r[i];for(const o of n){const n=[],u=o(e.hasOwnProperty(i)?e[i]:s,r,n);if(u){t[i]=u;break}n.length?e[i]=n[0]:r.hasOwnProperty(i)&&!e.hasOwnProperty(i)&&(e[i]=s)}}return $r.isEmptyObject(t)?(this.errors=null,e):(this.errors=t,!1)}getErrors(){return this.errors}registerRules(r){for(const t in r)this.validatorBuilders[t]=r[t];return this}registerAliasedRule(r){if(!r.name)throw"Alias name required";return this.validatorBuilders[r.name]=this.constructor._buildAliasedRule(r.rules,r.error),this}getRules(){return this.validatorBuilders}_parseRule(r){let t,e;return $r.isObject(r)?(t=Object.keys(r)[0],e=r[t],Array.isArray(e)||(e=[e])):(t=r,e=[]),{name:t,args:e}}_buildValidator(r,t){if(!this.validatorBuilders[r])throw"Rule ["+r+"] not registered";const e=[];return e.push.apply(e,t),e.push(this.getRules()),this.validatorBuilders[r].apply(null,e)}_autoTrim(r){const t=typeof r;if("object"!==t&&r)return r.replace?r.replace(/^\s*/,"").replace(/\s*$/,""):r;if("object"==t&&Array.isArray(r)){const t=[];for(const e of r)t.push(this._autoTrim(e));return t}if("object"==t&&$r.isObject(r)){const t={};for(const e in r)r.hasOwnProperty(e)&&(t[e]=this._autoTrim(r[e]));return t}return r}}var Ir=xr;const Dr={required:function(){return r=>{if($r.isNoValue(r))return"REQUIRED"}},not_empty:function(){return r=>{if(null!=r&&""===r)return"CANNOT_BE_EMPTY"}},not_empty_list:function(){return r=>void 0===r||""===r?"CANNOT_BE_EMPTY":Array.isArray(r)?r.length<1?"CANNOT_BE_EMPTY":void 0:"FORMAT_ERROR"},any_object:function(){return r=>{if(!$r.isNoValue(r))return $r.isObject(r)?void 0:"FORMAT_ERROR"}},string:function(){return(r,t,e)=>{if(!$r.isNoValue(r))return $r.isPrimitiveValue(r)?void e.push(r+""):"FORMAT_ERROR"}},eq:function(r){return(t,e,i)=>{if(!$r.isNoValue(t)){if(!$r.isPrimitiveValue(t))return"FORMAT_ERROR";if(t+""!=r+"")return"NOT_ALLOWED_VALUE";i.push(r)}}},one_of:function(r){return Array.isArray(r)||(r=Array.prototype.slice.call(arguments)).pop(),(t,e,i)=>{if(!$r.isNoValue(t)){if(!$r.isPrimitiveValue(t))return"FORMAT_ERROR";for(const e of r)if(t+""==e+"")return void i.push(e);return"NOT_ALLOWED_VALUE"}}},max_length:function(r){return(t,e,i)=>{if(!$r.isNoValue(t)){if(!$r.isPrimitiveValue(t))return"FORMAT_ERROR";if((t+="").length>r)return"TOO_LONG";i.push(t)}}},min_length:function(r){return(t,e,i)=>{if(!$r.isNoValue(t)){if(!$r.isPrimitiveValue(t))return"FORMAT_ERROR";if((t+="").length<r)return"TOO_SHORT";i.push(t)}}},length_equal:function(r){return(t,e,i)=>{if(!$r.isNoValue(t))return $r.isPrimitiveValue(t)?(t+="").length<r?"TOO_SHORT":t.length>r?"TOO_LONG":void i.push(t):"FORMAT_ERROR"}},length_between:function(r,t){return(e,i,n)=>{if(!$r.isNoValue(e))return $r.isPrimitiveValue(e)?(e+="").length<r?"TOO_SHORT":e.length>t?"TOO_LONG":void n.push(e):"FORMAT_ERROR"}},like:function(r,t){const e=3===arguments.length&&t.match("i"),i=new RegExp(r,e?"i":"");return(r,t,e)=>{if(!$r.isNoValue(r)){if(!$r.isPrimitiveValue(r))return"FORMAT_ERROR";if(!(r+="").match(i))return"WRONG_FORMAT";e.push(r)}}},integer:function(){return(r,t,e)=>{if(!$r.isNoValue(r))return $r.isPrimitiveValue(r)?$r.looksLikeNumber(r)&&Number.isInteger(+r)?void e.push(+r):"NOT_INTEGER":"FORMAT_ERROR"}},positive_integer:function(){return(r,t,e)=>{if(!$r.isNoValue(r))return $r.isPrimitiveValue(r)?$r.looksLikeNumber(r)?!Number.isInteger(+r)||+r<1?"NOT_POSITIVE_INTEGER":void e.push(+r):"NOT_POSITIVE_INTEGER":"FORMAT_ERROR"}},decimal:function(){return(r,t,e)=>{if(!$r.isNoValue(r)){if(!$r.isPrimitiveValue(r))return"FORMAT_ERROR";if(!$r.looksLikeNumber(r))return"NOT_DECIMAL";if(!/^(?:\-?(?:(?:[0-9]+\.[0-9]+)|(?:[0-9]+)))$/.test(r+=""))return"NOT_DECIMAL";e.push(+r)}}},positive_decimal:function(){return(r,t,e)=>{if(!$r.isNoValue(r)){if(!$r.isPrimitiveValue(r))return"FORMAT_ERROR";if(!$r.looksLikeNumber(r))return"NOT_POSITIVE_DECIMAL";if(!/^(?:(?:[0-9]*\.[0-9]+)|(?:[1-9][0-9]*))$/.test(r+=""))return"NOT_POSITIVE_DECIMAL";e.push(+r)}}},max_number:function(r){return(t,e,i)=>{if(!$r.isNoValue(t))return $r.isPrimitiveValue(t)?$r.looksLikeNumber(t)?+t>+r?"TOO_HIGH":void i.push(+t):"NOT_NUMBER":"FORMAT_ERROR"}},min_number:function(r){return(t,e,i)=>{if(!$r.isNoValue(t))return $r.isPrimitiveValue(t)?$r.looksLikeNumber(t)?+t<+r?"TOO_LOW":void i.push(+t):"NOT_NUMBER":"FORMAT_ERROR"}},number_between:function(r,t){return(e,i,n)=>{if(!$r.isNoValue(e))return $r.isPrimitiveValue(e)?$r.looksLikeNumber(e)?+e<+r?"TOO_LOW":+e>+t?"TOO_HIGH":void n.push(+e):"NOT_NUMBER":"FORMAT_ERROR"}},email:function(){var r=/^(([^<>()\[\]\\.,;:\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=>{if(!$r.isNoValue(t))return $r.isPrimitiveValue(t)?(t+="",r.test(t)?/\@.*\@/.test(t)||/\@.*_/.test(t)?"WRONG_EMAIL":void 0:"WRONG_EMAIL"):"FORMAT_ERROR"}},equal_to_field:function(r){return(t,e)=>{if(!$r.isNoValue(t))return $r.isPrimitiveValue(t)?t!=e[r]?"FIELDS_NOT_EQUAL":void 0:"FORMAT_ERROR"}},url:function(){const r=new RegExp("^(?:(?:http|https)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[0-1]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))\\.?|localhost)(?::\\d{2,5})?(?:[/?#]\\S*)?$","i");return t=>{if(!$r.isNoValue(t)){if(!$r.isPrimitiveValue(t))return"FORMAT_ERROR";if(!(t.length<2083&&r.test(t)))return"WRONG_URL"}}},iso_date:function(){return r=>{if($r.isNoValue(r))return;if(!$r.isPrimitiveValue(r))return"FORMAT_ERROR";const t=r.match(/^(\d{4})-([0-1][0-9])-([0-3][0-9])$/);if(t){const e=Date.parse(r);if(!e&&0!==e)return"WRONG_DATE";const i=new Date(e);if(i.setTime(i.getTime()+60*i.getTimezoneOffset()*1e3),i.getFullYear()==t[1]&&i.getMonth()+1==+t[2]&&i.getDate()==+t[3])return}return"WRONG_DATE"}},nested_object:function(r,t){const e=new Ir(r).registerRules(t).prepare();return(r,t,i)=>{if($r.isNoValue(r))return;if(!$r.isObject(r))return"FORMAT_ERROR";const n=e.validate(r);return n?void i.push(n):e.getErrors()}},variable_object:function(r,t,e){const i={};for(const r in t){const n=new Ir(t[r]).registerRules(e).prepare();i[r]=n}return(t,e,n)=>{if($r.isNoValue(t))return;if(!$r.isObject(t)||!t[r]||!i[t[r]])return"FORMAT_ERROR";const s=i[t[r]],o=s.validate(t);return o?void n.push(o):s.getErrors()}},list_of:function(r,t){Array.isArray(r)||(t=(r=Array.prototype.slice.call(arguments)).pop());const e={field:r},i=new Ir(e).registerRules(t).prepare();return(r,t,e)=>{if($r.isNoValue(r))return;if(!Array.isArray(r))return"FORMAT_ERROR";const n=[],s=[];let o=!1;for(const t of r){const r=i.validate({field:t});r?(n.push(r.field),s.push(null)):(o=!0,s.push(i.getErrors().field),n.push(null))}return o?s:void e.push(n)}},list_of_objects:function(r,t){const e=new Ir(r).registerRules(t).prepare();return(r,t,i)=>{if($r.isNoValue(r))return;if(!Array.isArray(r))return"FORMAT_ERROR";const n=[],s=[];let o=!1;for(const t of r){const r=e.validate(t);r?(n.push(r),s.push(null)):(o=!0,s.push(e.getErrors()),n.push(null))}return o?s:void i.push(n)}},or:function(){const r=Array.prototype.slice.call(arguments),t=r.pop(),e=r.map(r=>new Ir({field:r}).registerRules(t).prepare());return(r,t,i)=>{let n;for(const t of e){const e=t.validate({field:r});if(e)return void i.push(e.field);n=t.getErrors().field}return n}},list_of_different_objects:function(r,t,e){const i={};for(const r in t){const n=new Ir(t[r]).registerRules(e).prepare();i[r]=n}return(t,e,n)=>{if($r.isNoValue(t))return;if(!Array.isArray(t))return"FORMAT_ERROR";const s=[],o=[];let u=!1;for(const e of t){if("object"!=typeof e||!e[r]||!i[e[r]]){o.push("FORMAT_ERROR");continue}const t=i[e[r]],n=t.validate(e);n?(s.push(n),o.push(null)):(u=!0,o.push(t.getErrors()),s.push(null))}return u?o:void n.push(s)}},default:r=>(t,e,i)=>{$r.isNoValue(t)&&i.push(r)},trim:function(){return(r,t,e)=>{$r.isNoValue(r)||"object"==typeof r||(r+="",e.push(r.replace(/^\s*/,"").replace(/\s*$/,"")))}},to_lc:function(){return(r,t,e)=>{$r.isNoValue(r)||"object"==typeof r||(r+="",e.push(r.toLowerCase()))}},to_uc:function(){return(r,t,e)=>{$r.isNoValue(r)||"object"==typeof r||(r+="",e.push(r.toUpperCase()))}},remove:function(r){r=$r.escapeRegExp(r);const t=new RegExp("["+r+"]","g");return(r,e,i)=>{$r.isNoValue(r)||"object"==typeof r||(r+="",i.push(r.replace(t,"")))}},leave_only:function(r){r=$r.escapeRegExp(r);const t=new RegExp("[^"+r+"]","g");return(r,e,i)=>{$r.isNoValue(r)||"object"==typeof r||(r+="",i.push(r.replace(t,"")))}}};Ir.registerDefaultRules(Dr);var kr={Validator:Ir,rules:Dr,util:$r},Sr=function(){try{var r=D(Object,"defineProperty");return r({},"",{}),r}catch(r){}}();var zr=function(r,t,e){"__proto__"==t&&Sr?Sr(r,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):r[t]=e},Br=Object.prototype.hasOwnProperty;var Cr=function(r,t,e){var i=r[t];Br.call(r,t)&&Q(i,e)&&(void 0!==e||t in r)||zr(r,t,e)},Gr=/^(?:0|[1-9]\d*)$/;var Hr=function(r,t){var e=typeof r;return!!(t=null==t?9007199254740991:t)&&("number"==e||"symbol"!=e&&Gr.test(r))&&r>-1&&r%1==0&&r<t};var Ur=function(r,t,e,i){if(!E(r))return r;for(var n=-1,s=(t=Ar(t,r)).length,o=s-1,u=r;null!=u&&++n<s;){var a=Tr(t[n]),l=e;if("__proto__"===a||"constructor"===a||"prototype"===a)return r;if(n!=o){var c=u[a];void 0===(l=i?i(c,a,u):void 0)&&(l=E(c)?c:Hr(t[n+1])?[]:{})}Cr(u,a,l),u=u[a]}return r};var Wr=function(r,t,e){return null==r?r:Ur(r,t,e)};const qr=(r={},t,e,i)=>{const n=r[e];return n?n(t,i):""},Yr=(r,t)=>(...e)=>{const i=t(...e),n=e.splice(0,e.length-1);return(...t)=>{const e=i(...t);if(e){const t={[r]:n};return Array.isArray(e)||null!==(s=e)&&s&&"object"==typeof s&&!Array.isArray(s)?e:{code:e,rule:t}}var s;return""}},Qr=(r,t,e=[])=>{const i=Array.isArray(r);return Object.entries(r).reduce((r,[n,s])=>{let o=[].concat(e);if(i||o.push(n),s&&s.code){const[[,r]]=Object.entries(s.rule);Object.assign(s,{msg:qr(t,o.join("."),s.code,r)}),o=[]}else s&&Qr(s,t,o);return Object.assign(r,{[n]:s})},{})};class Zr{constructor(r,t={}){this.errorHandlers=t.errorHandlers,this.extendedErrors=t.extendedErrors,this.msgPath=this.extendedErrors?"msg":"",this.allTouched=!1,r&&r instanceof Zr?(this.items=r.items,this.touchedFields=r.touchedFields):(this.items={},this.touchedFields={})}setTouched(r){Wr(this.touchedFields,r,!0)}setAllTouched(r=!1){this.allTouched=r}setError(r,t){const e=this.extendedErrors?Qr(r,this.errorHandlers):r,i=t?this.items:{};if(this.items={...i,...e},t){Vr(e,t,!1)||Wr(this.items,t,"")}}clearErrors(){this.items={}}clearError(r){this.setError({},r)}getError(r,t=0){if(!this.hasError(r,t))return"";const e=this.getErrors(r);return this.getMessage(e[t])}getMessage(r){return this.msgPath&&r?r[this.msgPath]:r}getErrors(r){return[].concat(Vr(this.items,r,[]))}hasError(r,t=0){const e=this.allTouched||Vr(this.touchedFields,r,!1),i=this.getErrors(r);return e&&!(r=>null==r||""===r)(this.getMessage(i[t]))}}class Jr{constructor(r){this.fields={items:[]},this.extendedErrors=r.extendedErrors,this.errors=new Zr(null,r)}validate(r,t,e){const i=new kr.Validator(r),n=i.validate(t),s=n||i.getErrors();return n?(this.errors.clearError(e),s):(this.errors.setError(Object.assign({},s),e),this.errors.setTouched(e),{errors:this.errors.items})}validateAll(r,t){this.validator=new kr.Validator(r);const e=this.validator.validate(t),i=e||this.validator.getErrors();return e?(this.errors.clearErrors(),i):(this.errors.setError(i),this.errors.setAllTouched(!0),{errors:this.errors.items})}clearErrors(){this.errors.clearErrors()}clearError(r){this.errors.clearError(r)}}var Kr={data:()=>({$livr:t()}),beforeCreate(){if(this.$parent||wr(this.$options.$_livr||{}),this.$livr||(this.$livr=t()),!this.$livr)return;const r=Pr(this);this.$options._base.util.defineReactive(this.$livr,"errors",this.$livr.errors),this.$options.computed||(this.$options.computed={}),this.$options.computed[r.errorBagName||"errors"]=function(){return this.$livr.errors}},methods:{$livrMixin_defineReactive(){const r=Pr(this);this.$options._base.util.defineReactive(this.$livr,"errors",this.$livr.errors),this.$options.computed||(this.$options.computed={}),this.$options.computed[r.errorBagName||"errors"]=function(){return this.$livr.errors}},$livrMixin_setNewValidatorContext(){const r=Pr(this);this.$livr=new Jr(r),this.$livrMixin_defineReactive()}}};function Xr(r){const{extraRules:t,extendedErrors:e,aliasedRules:i=[]}=r;if(kr.Validator.registerDefaultRules(t),i.forEach(r=>kr.Validator.registerAliasedDefaultRule(r)),e){const r=(n=kr.Validator.getDefaultRules(),Object.entries(n).reduce((r,[t,e])=>Object.assign(r,{[t]:Yr(t,e)}),{}));kr.Validator.registerDefaultRules(r)}var n}let rt,tt;class et{constructor(t){var e;this.configure(t),tt=this,this.livrInstance=(e=new Jr(this.config),r=e,e)}configure(r){wr(r)}get config(){return Mr()}static get config(){return Mr()}static get instance(){return tt}}var it={mixin:Kr,install:function(r,t={}){rt&&r===rt?"production"!==process.env.NODE_ENV&&console.warn("already installed, Vue.use(LivrPlugin) should only be called once."):(rt=r,Xr(t),tt=new et(t))}};export default it;