1
0
mirror of synced 2024-11-28 16:16:09 +03:00
vue-formulario/dist/formulario.min.js
2021-09-30 13:51:12 +03:00

35 lines
28 KiB
JavaScript

var VueFormulario=function(t){"use strict";
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
function e(t){return!0==(null!=(e=t)&&"object"==typeof e&&!1===Array.isArray(e))&&"[object Object]"===Object.prototype.toString.call(t);
/*!
* isobject <https://github.com/jonschlinkert/isobject>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
var e}function r(t){var r,o;return!1!==e(t)&&("function"==typeof(r=t.constructor)&&(!1!==e(o=r.prototype)&&!1!==o.hasOwnProperty("isPrototypeOf")))}function o(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function n(t,e,i=!0){const a={};for(const s in t)o(e,s)?r(e[s])&&r(t[s])?a[s]=n(t[s],e[s],i):i&&Array.isArray(t[s])&&Array.isArray(e[s])?a[s]=t[s].concat(e[s]):a[s]=e[s]:a[s]=t[s];for(const t in e)o(a,t)||(a[t]=e[t]);return a}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i=function(t){if("string"!=typeof t)return!1;var e=t.match(a);if(!e)return!1;var r=e[1];if(!r)return!1;if(s.test(r)||l.test(r))return!0;return!1},a=/^(?:\w+:)?\/\/(\S+)$/,s=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,l=/^[^\s\.]+\.\S{2,}$/;const u=new Map;var c;!function(t){t.ARRAY="ARRAY",t.BIGINT="BIGINT",t.BOOLEAN="BOOLEAN",t.DATE="DATE",t.FUNCTION="FUNCTION",t.NUMBER="NUMBER",t.RECORD="RECORD",t.STRING="STRING",t.SYMBOL="SYMBOL",t.UNDEFINED="UNDEFINED",t.NULL="NULL"}(c||(c={}));const f=t=>Object.getPrototypeOf(t).constructor;function d(t){return f(t)===Object&&0===Object.keys(Object.getPrototypeOf(t)).length}function p(t){return"object"==typeof t&&null!==t&&(d(t)||Array.isArray(t))}function h(t){switch(typeof t){case"bigint":return c.BIGINT;case"boolean":return c.BOOLEAN;case"function":return c.FUNCTION;case"number":return c.NUMBER;case"string":return c.STRING;case"symbol":return c.SYMBOL;case"undefined":return c.UNDEFINED;case"object":return null===t?c.NULL:t instanceof Date?c.DATE:Array.isArray(t)?c.ARRAY:d(t)?c.RECORD:"InstanceOf<"+f(t).name+">"}throw new Error}function m(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"symbol":case"undefined":return!0;default:return null===t}}function y(t){if(m(t))return t;if(t instanceof Date)return new Date(t);if(!p(t))return e=t,Object.assign(Object.create(Object.getPrototypeOf(e)),e);var e;if(Array.isArray(t))return t.slice().map(y);const r=t;return Object.keys(r).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:y(r[e])})),{})}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function v(t,e,r,o){var n,i=arguments.length,a=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,r,o);else for(var s=t.length-1;s>=0;s--)(n=t[s])&&(a=(i<3?n(a):i>3?n(e,r,a):n(e,r))||a);return i>3&&a&&Object.defineProperty(e,r,a),a}const g=t=>{const e=parseInt(t);return e.toString()===t?e:NaN},_=t=>{const e=[];return t.split(".").forEach((t=>{/(.*)\[(\d+)]$/.test(t)?e.push(...t.substr(0,t.length-1).split("[").filter((t=>t.length))):e.push(t)})),e};function b(t,e,r){const n="string"==typeof e?_(e):e;if(m(t)||0===n.length)return r;const i=n.shift(),a=g(i);if(!isNaN(a))return Array.isArray(t)&&a>=0&&a<t.length?0===n.length?t[a]:b(t[a],n,r):void 0;if(o(t,i)){const e=t;return 0===n.length?e[i]:b(e[i],n,r)}}function O(t,e,r){const o="string"==typeof e?_(e):e;if(0===o.length)return r;const n=o.shift(),i=g(n);if(!p(t))return O(isNaN(i)?{}:[],[n,...o],r);if(!isNaN(i)&&Array.isArray(t)){const e=[...t];return e[i]=0===o.length?r:O(e[i],o,r),e}const a=Object.assign({},t);return a[n]=0===o.length?r:O(a[n],o,r),a}const F=(t,e)=>{const r=t,o=e;r[o];return function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]])}return r}(r,["symbol"==typeof o?o:o+""])};function N(t,e){if(!p(t))return t;const r="string"==typeof e?_(e):e;if(0===r.length)return t;const n=r.shift(),i=g(n);if(!isNaN(i)&&Array.isArray(t)&&i>=0&&i<t.length){const e=[...t];return 0===r.length?e.splice(i,1):e[i]=N(e[i],r),e}if(o(t,n)){const e=Object.assign({},t);return 0===r.length?F(e,n):Object.assign(Object.assign({},e),{[n]:N(e[n],r)})}return t}function E(t,e){return t===e}function $(t,e,r){const n=h(t);return n===h(e)&&(n===c.ARRAY&&function(t,e,r){if(t.length!==e.length)return!1;for(let o=0;o<t.length;o++)if(!r(t[o],e[o]))return!1;return!0}(t,e,r)||n===c.DATE&&function(t,e){return t.getTime()===e.getTime()}(t,e)||n===c.RECORD&&function(t,e,r){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const n in t)if(!o(e,n)||!r(t[n],e[n]))return!1;return!0}(t,e,r)||n.includes("InstanceOf")&&$(Object.entries(t),Object.entries(e),r))}function j(t,e){return t===e||$(t,e,j)}function w(t,e){return t===e||$(t,e,E)}function R(t){return t.replace(/([_][a-z0-9])/gi,(e=>0!==t.indexOf(e)&&"_"!==t[t.indexOf(e)-1]?e.toUpperCase().replace("_",""):e))}const A={accepted:({value:t})=>["yes","on","1",1,!0,"true"].includes(t),after({value:t},e=!1){const r=!1!==e?Date.parse(e):Date.now(),o=t instanceof Date?t.getTime():Date.parse(t);return!isNaN(o)&&o>r},alpha({value:t},e="default"){const r={default:/^[a-zA-ZÀ-ÖØ-öø-ÿ]+$/,latin:/^[a-zA-Z]+$/};return"string"==typeof t&&r[o(r,e)?e:"default"].test(t)},alphanumeric({value:t},e="default"){const r={default:/^[a-zA-Z0-9À-ÖØ-öø-ÿ]+$/,latin:/^[a-zA-Z0-9]+$/};return"string"==typeof t&&r[o(r,e)?e:"default"].test(t)},before({value:t},e=!1){const r=!1!==e?Date.parse(e):Date.now(),o=t instanceof Date?t.getTime():Date.parse(t);return!isNaN(o)&&o<r},between:({value:t},e=0,r=10,o)=>null!==e&&null!==r&&!isNaN(e)&&!isNaN(r)&&(!isNaN(Number(t))&&"length"!==o||"value"===o?(t=Number(t))>Number(e)&&t<Number(r):("string"==typeof t||"length"===o)&&((t=isNaN(Number(t))?t:t.toString()).length>e&&t.length<r)),confirm({value:t,formValues:e,name:r},o){let n=o;return n||(n=/_confirm$/.test(r)?r.substr(0,r.length-8):r+"_confirm"),e[n]===t},date:({value:t},e=!1)=>e?function(t){const e=`^${r=t,r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`;var r;const o={MM:"(0[1-9]|1[012])",M:"([1-9]|1[012])",DD:"([012][1-9]|3[01])",D:"([012]?[1-9]|3[01])",YYYY:"\\d{4}",YY:"\\d{2}"};return new RegExp(Object.keys(o).reduce(((t,e)=>t.replace(e,o[e])),e))}(e).test(t):!isNaN(Date.parse(t)),email({value:t}){if(!t)return!0;return/^(([^<>()\[\].,;:\s@"]+(\.[^<>()\[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/i.test(t)},endsWith:({value:t},...e)=>!t||"string"==typeof t&&(0===e.length||e.some((e=>t.endsWith(e)))),in:({value:t},...e)=>e.some((e=>w(e,t))),matches:({value:t},...e)=>!!e.find((e=>("string"==typeof e&&"/"===e.substr(0,1)&&"/"===e.substr(-1)&&(e=new RegExp(e.substr(1,e.length-2))),e instanceof RegExp?e.test(t):e===t))),max:({value:t},e=10,r)=>Array.isArray(t)?(e=isNaN(Number(e))?e:Number(e),t.length<=e):!isNaN(t)&&"length"!==r||"value"===r?(t=isNaN(t)?t:Number(t))<=e:("string"==typeof t||"length"===r)&&(t=isNaN(t)?t:t.toString()).length<=e,min:({value:t},e=1,r)=>Array.isArray(t)?(e=isNaN(e)?e:Number(e),t.length>=e):!isNaN(t)&&"length"!==r||"value"===r?(t=isNaN(t)?t:Number(t))>=e:("string"==typeof t||"length"===r)&&(t=isNaN(t)?t:t.toString()).length>=e,not:({value:t},...e)=>!e.some((e=>w(e,t))),number:({value:t})=>String(t).length>0&&!isNaN(Number(t)),required:({value:t},e=!0)=>!(e&&!["no","false"].includes(e))||(Array.isArray(t)?!!t.length:"string"==typeof t?!!t:"object"!=typeof t||!!t&&!!Object.keys(t).length),startsWith:({value:t},...e)=>!t||"string"==typeof t&&(0===e.length||e.some((e=>t.startsWith(e)))),url:({value:t})=>!t||i(t),bail:()=>!0},x={default:(t,e)=>t.$t("validation.default",e),accepted:(t,e)=>t.$t("validation.accepted",e),after:(t,e,r=!1)=>"string"==typeof r&&r.length?t.$t("validation.after.compare",e):t.$t("validation.after.default",e),alpha:(t,e)=>t.$t("validation.alpha",e),alphanumeric:(t,e)=>t.$t("validation.alphanumeric",e),before:(t,e,r=!1)=>"string"==typeof r&&r.length?t.$t("validation.before.compare",e):t.$t("validation.before.default",e),between(t,e,r=0,o=10,n){const i=Object.assign(Object.assign({},e),{from:r,to:o});return!isNaN(e.value)&&"length"!==n||"value"===n?t.$t("validation.between.force",i):t.$t("validation.between.default",i)},confirm:(t,e)=>t.$t("validation.confirm",e),date:(t,e,r=!1)=>"string"==typeof r&&r.length?t.$t("validation.date.format",e):t.$t("validation.date.default",e),email:(t,e)=>t.$t("validation.email.default",e),endsWith:(t,e)=>t.$t("validation.endsWith.default",e),in:(t,e)=>"string"==typeof e.value&&e.value?t.$t("validation.in.string",e):t.$t("validation.in.default",e),matches:(t,e)=>t.$t("validation.matches.default",e),max:(t,e,r=10,o)=>Array.isArray(e.value)?t.$tc("validation.max.array",r,e):!isNaN(e.value)&&"length"!==o||"value"===o?t.$tc("validation.max.force",r,e):t.$tc("validation.max.default",r,e),min:(t,e,r=1,o)=>Array.isArray(e.value)?t.$tc("validation.min.array",r,e):!isNaN(e.value)&&"length"!==o||"value"===o?t.$tc("validation.min.force",r,e):t.$tc("validation.min.default",r,e),not:(t,e)=>t.$t("validation.not.default",e),number:(t,e)=>t.$t("validation.number.default",e),required:(t,e)=>t.$t("validation.required.default",e),startsWith:(t,e)=>t.$t("validation.startsWith.default",e),url:(t,e)=>t.$t("validation.url.default",e)};class V{constructor(t){this.validationRules={},this.validationMessages={},this.registry=new Map,this.validationRules=A,this.validationMessages=x,this.extend(t||{})}extend(t){if("object"==typeof t)return this.validationRules=n(this.validationRules,t.validationRules||{}),this.validationMessages=n(this.validationMessages,t.validationMessages||{}),this;throw new Error(`[Formulario]: Formulario.extend(): should be passed an object (was ${typeof t})`)}runValidation(t){if(!this.registry.has(t))throw new Error(`[Formulario]: Formulario.runValidation(): no forms with id "${t}"`);return this.registry.get(t).runValidation()}resetValidation(t){if(!this.registry.has(t))return;this.registry.get(t).resetValidation()}register(t,e){if(this.registry.has(t))throw new Error(`[Formulario]: Formulario.register(): id "${t}" is already in use`);this.registry.set(t,e)}unregister(t){this.registry.has(t)&&this.registry.delete(t)}getRules(t={}){return n(this.validationRules,t)}getMessages(t,e){const r=n(this.validationMessages||{},e),o={};for(const e in r)o[e]=(o,...n)=>"string"==typeof r[e]?r[e]:r[e](t,o,...n);return o}}
/**
* vue-class-component v7.2.3
* (c) 2015-present Evan You
* @license MIT
*/function P(t){return(P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function D(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function S(t){return function(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e<t.length;e++)r[e]=t[e];return r}}(t)||function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function C(){return"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function M(t,e){I(t,e),Object.getOwnPropertyNames(e.prototype).forEach((function(r){I(t.prototype,e.prototype,r)})),Object.getOwnPropertyNames(e).forEach((function(r){I(t,e,r)}))}function I(t,e,r){(r?Reflect.getOwnMetadataKeys(e,r):Reflect.getOwnMetadataKeys(e)).forEach((function(o){var n=r?Reflect.getOwnMetadata(o,e,r):Reflect.getOwnMetadata(o,e);r?Reflect.defineMetadata(o,n,t,r):Reflect.defineMetadata(o,n,t)}))}var T={__proto__:[]}instanceof Array;function B(t){return function(e,r,o){var n="function"==typeof e?e:e.constructor;n.__decorators__||(n.__decorators__=[]),"number"!=typeof o&&(o=void 0),n.__decorators__.push((function(e){return t(e,r,o)}))}}function U(t){"undefined"!=typeof console&&console.warn("[vue-class-component] "+t)}function L(e,r){var o=r.prototype._init;r.prototype._init=function(){var t=this,r=Object.getOwnPropertyNames(e);if(e.$options.props)for(var o in e.$options.props)e.hasOwnProperty(o)||r.push(o);r.forEach((function(r){"_"!==r.charAt(0)&&Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){e[r]=t},configurable:!0})}))};var n=new r;r.prototype._init=o;var i={};return Object.keys(n).forEach((function(t){void 0!==n[t]&&(i[t]=n[t])})),"production"!==process.env.NODE_ENV&&!(r.prototype instanceof t)&&Object.keys(i).length>0&&U("Component class must inherit Vue or its descendant class when class property is used."),i}var k=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function Y(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r.name=r.name||e._componentTag||e.name;var o=e.prototype;Object.getOwnPropertyNames(o).forEach((function(t){if("constructor"!==t)if(k.indexOf(t)>-1)r[t]=o[t];else{var e=Object.getOwnPropertyDescriptor(o,t);void 0!==e.value?"function"==typeof e.value?(r.methods||(r.methods={}))[t]=e.value:(r.mixins||(r.mixins=[])).push({data:function(){return D({},t,e.value)}}):(e.get||e.set)&&((r.computed||(r.computed={}))[t]={get:e.get,set:e.set})}})),(r.mixins||(r.mixins=[])).push({data:function(){return L(this,e)}});var n=e.__decorators__;n&&(n.forEach((function(t){return t(r)})),delete e.__decorators__);var i=Object.getPrototypeOf(e.prototype),a=i instanceof t?i.constructor:t,s=a.extend(r);return W(s,e,a),C()&&M(s,e),s}var G=["cid","super","options","superOptions","extendOptions","sealedOptions","component","directive","filter"],z={prototype:!0,arguments:!0,callee:!0,caller:!0};function W(t,e,r){Object.getOwnPropertyNames(e).forEach((function(o){if(!z[o]){var n=Object.getOwnPropertyDescriptor(t,o);if(!n||n.configurable){var i,a,s=Object.getOwnPropertyDescriptor(e,o);if(!T){if("cid"===o)return;var l=Object.getOwnPropertyDescriptor(r,o);if(i=s.value,a=P(i),null!=i&&("object"===a||"function"===a)&&l&&l.value===s.value)return}"production"!==process.env.NODE_ENV&&G.indexOf(o)>=0&&U("Static property name '".concat(o,"' declared on class '").concat(e.name,"' ")+"conflicts with reserved property name of Vue internal. It may cause unexpected behavior of the component. Consider renaming the property."),Object.defineProperty(t,o,s)}}}))}function q(t){return"function"==typeof t?Y(t):function(e){return Y(e,t)}}q.registerHooks=function(t){k.push.apply(k,S(t))};function Z(t){return B((function(e,r){void 0===e.inject&&(e.inject={}),Array.isArray(e.inject)||(e.inject[r]=t||r)}))}function K(t){return B((function(e,r){var o,n=e.provide;("function"!=typeof(o=n)||!o.managed&&!o.managedReactive)&&(n=e.provide=function(t){var e=function(){var r=this,o="function"==typeof t?t.call(this):t;for(var n in(o=Object.create(o||null)).__reactiveInject__=this.__reactiveInject__||{},e.managed)o[e.managed[n]]=this[n];var i=function(t){o[e.managedReactive[t]]=a[t],Object.defineProperty(o.__reactiveInject__,e.managedReactive[t],{enumerable:!0,get:function(){return r[t]}})},a=this;for(var n in e.managedReactive)i(n);return o};return e.managed={},e.managedReactive={},e}(n)),n.managed[r]=t||r}))}var X="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function H(t,e,r){if(X&&!Array.isArray(t)&&"function"!=typeof t&&void 0===t.type){var o=Reflect.getMetadata("design:type",e,r);o!==Object&&(t.type=o)}}function J(t,e){return void 0===e&&(e={}),function(r,o){H(e,r,o),B((function(r,o){(r.props||(r.props={}))[o]=e,r.model={prop:o,event:t||o}}))(r,o)}}function Q(t){return void 0===t&&(t={}),function(e,r){H(t,e,r),B((function(e,r){(e.props||(e.props={}))[r]=t}))(e,r)}}function tt(t,e){void 0===e&&(e={});var r=e.deep,o=void 0!==r&&r,n=e.immediate,i=void 0!==n&&n;return B((function(e,r){"object"!=typeof e.watch&&(e.watch=Object.create(null));var n=e.watch;"object"!=typeof n[t]||Array.isArray(n[t])?void 0===n[t]&&(n[t]=[]):n[t]=[n[t]],n[t].push({handler:r,deep:o,immediate:i})}))}function et(t,e,r,o){return n=>Promise.resolve(t(n,...r)).then((t=>t?null:{rule:e,args:r,context:n,message:o(n,...r)}))}function rt(t){return/^[\^]/.test(t.charAt(0))?[R(t.substr(1)),t.charAt(0)]:[R(t),null]}function ot(t,e,r){return"function"==typeof t?[t,null,null]:Array.isArray(t)&&t.length?function(t,e,r){const n=t.slice(),i=n.shift();if("function"==typeof i)return[i,null,null];if("string"!=typeof i)throw new Error("[Formulario]: For array constraint first element must be rule name or Validator function");const[a,s]=rt(i);if(o(e,a))return[et(e[a],a,n,r[a]||r.default),a,s];throw new Error("[Formulario] Can't create validator for constraint: "+JSON.stringify(t))}(t,e,r):"string"==typeof t?function(t,e,r){const n=t.split(":"),[i,a]=rt(n.shift()||"");if(o(e,i))return[et(e[i],i,n.length?n.join(":").split(","):[],r[i]||r.default),i,a];throw new Error("[Formulario] Can't create validator for constraint: "+t)}(t,e,r):[()=>Promise.resolve(null),null,null]}function nt(t,e,r){return"string"==typeof t?nt(t.split("|").filter((t=>t.length)),e,r):Array.isArray(t)?t.map((t=>ot(t,e,r))):[]}function it(t){const e=[];if(t.length){let r=t.shift();e.push(r),t.forEach((t=>{t.bail||t.bail!==r.bail?(r=Object.assign({},t),e.push(r)):r.validators.push(...t.validators)}))}return e}function at(t,e){return new Promise((r=>{const o=(t,n=[])=>{if(t.length){const i=t.shift();(function(t,e){return Promise.all(t.validators.map((t=>t(e)))).then((t=>t.filter((t=>null!==t))))})(i,e).then((e=>0!==e.length&&i.bail||!t.length?r(n.concat(e)):o(t,n.concat(e))))}else r([])};o(function(t){const e=([t,,e])=>({validators:[t],bail:"^"===e}),r=[],o=t.findIndex((([,t])=>t&&"bail"===t.toLowerCase()));return o>=0?(r.push(...it(t.splice(0,o+1).slice(0,-1).map(e))),r.push(...t.map((([t])=>({validators:[t],bail:!0}))))):r.push(...it(t.map(e))),r}(t))}))}const st="none",lt="unset",ut={DEMAND:"demand",LIVE:"live",SUBMIT:"submit"};let ct=class extends t{constructor(){super(...arguments),this.proxy=this.hasModel?this.value:"",this.localErrors=[],this.violations=[],this.validationRun=Promise.resolve([])}get fullPath(){return""!==this.__Formulario_path?`${this.__Formulario_path}.${this.name}`:this.name}get hasModel(){return o(this.$options.propsData||{},"value")}get context(){return Object.defineProperty({name:this.fullPath,path:this.fullPath,runValidation:this.runValidation.bind(this),violations:this.violations,errors:this.localErrors,allErrors:[...this.localErrors,...this.violations.map((t=>t.message))]},"model",{get:()=>this.modelGetConverter(this.proxy),set:t=>{this.syncProxy(this.modelSetConverter(t,this.proxy))}})}get normalizedValidationRules(){const t={};return Object.keys(this.validationRules).forEach((e=>{t[R(e)]=this.validationRules[e]})),t}get normalizedValidationMessages(){const t={};return Object.keys(this.validationMessages).forEach((e=>{t[R(e)]=this.validationMessages[e]})),t}onValueChange(){this.syncProxy(this.value)}onProxyChange(){this.validationBehavior===ut.LIVE?this.runValidation():this.resetValidation()}created(){"function"==typeof this.__FormularioForm_register&&this.__FormularioForm_register(this.fullPath,this),this.validationBehavior===ut.LIVE&&this.runValidation()}beforeDestroy(){"function"==typeof this.__FormularioForm_unregister&&this.__FormularioForm_unregister(this.fullPath,this.unregisterBehavior)}syncProxy(t){j(t,this.proxy)||(this.proxy=t,this.$emit("input",t),"function"==typeof this.__FormularioForm_set&&(this.__FormularioForm_set(this.fullPath,t),this.__FormularioForm_emitInput()))}runValidation(){return this.validationRun=this.validate().then((t=>(this.violations=t,this.emitValidation(this.fullPath,t),this.violations))),this.validationRun}validate(){return at(nt(this.validation,this.$formulario.getRules(this.normalizedValidationRules),this.$formulario.getMessages(this,this.normalizedValidationMessages)),{value:this.proxy,name:this.fullPath,formValues:this.__FormularioForm_getState()})}emitValidation(t,e){this.$emit("validation",{path:t,violations:e}),"function"==typeof this.__FormularioForm_emitValidation&&this.__FormularioForm_emitValidation(t,e)}hasValidationErrors(){return new Promise((t=>{this.$nextTick((()=>{this.validationRun.then((()=>t(this.violations.length>0)))}))}))}setErrors(t){this.errorsDisabled||(this.localErrors=t)}resetValidation(){this.localErrors=[],this.violations=[]}};function ft(t,e,r,o,n,i,a,s,l,u){"boolean"!=typeof a&&(l=s,s=a,a=!1);const c="function"==typeof r?r.options:r;let f;if(t&&t.render&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0,n&&(c.functional=!0)),o&&(c._scopeId=o),i?(f=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,l(t)),t&&t._registeredComponents&&t._registeredComponents.add(i)},c._ssrRegister=f):e&&(f=a?function(t){e.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),f)if(c.functional){const t=c.render;c.render=function(e,r){return f.call(r),t(e,r)}}else{const t=c.beforeCreate;c.beforeCreate=t?[].concat(t,f):[f]}return r}v([Z({default:""})],ct.prototype,"__Formulario_path",void 0),v([Z({default:void 0})],ct.prototype,"__FormularioForm_set",void 0),v([Z({default:()=>()=>{}})],ct.prototype,"__FormularioForm_emitInput",void 0),v([Z({default:()=>()=>{}})],ct.prototype,"__FormularioForm_emitValidation",void 0),v([Z({default:void 0})],ct.prototype,"__FormularioForm_register",void 0),v([Z({default:void 0})],ct.prototype,"__FormularioForm_unregister",void 0),v([Z({default:()=>()=>({})})],ct.prototype,"__FormularioForm_getState",void 0),v([J("input",{default:""})],ct.prototype,"value",void 0),v([Q({required:!0,validator:t=>"string"==typeof t&&t.length>0})],ct.prototype,"name",void 0),v([Q({default:""})],ct.prototype,"validation",void 0),v([Q({default:()=>({})})],ct.prototype,"validationRules",void 0),v([Q({default:()=>({})})],ct.prototype,"validationMessages",void 0),v([Q({default:ut.DEMAND,validator:t=>Object.values(ut).includes(t)})],ct.prototype,"validationBehavior",void 0),v([Q({default:!1})],ct.prototype,"errorsDisabled",void 0),v([Q({default:()=>t=>t})],ct.prototype,"modelGetConverter",void 0),v([Q({default:()=>t=>t})],ct.prototype,"modelSetConverter",void 0),v([Q({default:"div"})],ct.prototype,"tag",void 0),v([Q({default:st})],ct.prototype,"unregisterBehavior",void 0),v([tt("value")],ct.prototype,"onValueChange",null),v([tt("proxy")],ct.prototype,"onProxyChange",null),ct=v([q({name:"FormularioField",inheritAttrs:!1})],ct);const dt=ct;var pt=function(){var t=this,e=t.$createElement;return(t._self._c||e)(t.tag,t._b({tag:"component"},"component",t.$attrs,!1),[t._t("default",null,{context:t.context})],2)};pt._withStripped=!0;const ht=ft({render:pt,staticRenderFns:[]},undefined,dt,undefined,false,undefined,!1,void 0,void 0,void 0);let mt=class extends t{get fullPath(){const t=""+this.name;return parseInt(t).toString()===t?`${this.__Formulario_path}[${t}]`:""===this.__Formulario_path?t:`${this.__Formulario_path}.${t}`}};v([Z({default:""})],mt.prototype,"__Formulario_path",void 0),v([Q({required:!0})],mt.prototype,"name",void 0),v([K("__Formulario_path")],mt.prototype,"fullPath",null),mt=v([q({name:"FormularioFieldGroup"})],mt);const yt=mt;var vt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",[t._t("default")],2)};vt._withStripped=!0;const gt=ft({render:vt,staticRenderFns:[]},undefined,yt,undefined,false,undefined,!1,void 0,void 0,void 0),_t=(t,e,r)=>void 0===r?N(t,e):O(t,e,r);let bt=class extends t{constructor(){super(...arguments),this.proxy={},this.registry=new Map,this.localFieldsErrors={},this.localFormErrors=[]}get fieldsErrorsComputed(){return n(this.fieldsErrors||{},this.localFieldsErrors)}get formErrorsComputed(){return[...this.formErrors,...this.localFormErrors]}register(t,e){this.registry.has(t)||this.registry.set(t,e);const r=b(this.proxy,t);e.hasModel?j(e.proxy,r)||(this.setFieldValue(t,e.proxy),this.emitInput()):void 0!==r?e.proxy=r:(this.setFieldValue(t,null),this.emitInput()),o(this.fieldsErrorsComputed,t)&&e.setErrors(this.fieldsErrorsComputed[t])}unregister(t,e){this.registry.has(t)&&(this.registry.delete(t),e===lt&&(this.proxy=N(this.proxy,t),this.emitInput()))}getState(){return this.proxy}setFieldValue(t,e){this.proxy=_t(this.proxy,t,e)}emitInput(){this.$emit("input",y(this.proxy))}emitValidation(t,e){this.$emit("validation",{path:t,violations:e})}onStateChange(t){const e=y(t),r=this.proxy;let o=!1;this.registry.forEach(((n,i)=>{const a=b(t,i,null),s=b(r,i,null);n.proxy=a,j(a,s)||(n.$emit("input",a),_t(e,i,a),o=!0)})),this.proxy=e,o&&this.emitInput()}onFieldsErrorsChange(t){this.registry.forEach(((e,r)=>{e.setErrors(t[r]||[])}))}created(){this.$formulario.register(this.id,this),"object"==typeof this.state&&(this.proxy=y(this.state))}beforeDestroy(){this.$formulario.unregister(this.id)}runValidation(){const t=[],e={};return this.registry.forEach(((r,o)=>{t.push(r.runValidation().then((t=>{e[o]=t})))})),Promise.all(t).then((()=>e))}hasValidationErrors(){return this.runValidation().then((t=>Object.keys(t).some((e=>t[e].length>0))))}setErrors({fieldsErrors:t,formErrors:e}){this.localFieldsErrors=t||{},this.localFormErrors=e||[]}resetValidation(){this.localFieldsErrors={},this.localFormErrors=[],this.registry.forEach((t=>{t.resetValidation()}))}onSubmit(){return this.runValidation().then((t=>{Object.keys(t).some((e=>t[e].length>0))?this.$emit("error",t):this.$emit("submit",y(this.proxy))}))}};v([J("input",{default:()=>({})})],bt.prototype,"state",void 0),v([Q({default:()=>(t=>{const e=(u.get(t)||0)+1;return u.set(t,e),`${t}-${e}`})("formulario-form")})],bt.prototype,"id",void 0),v([Q({default:()=>({})})],bt.prototype,"fieldsErrors",void 0),v([Q({default:()=>[]})],bt.prototype,"formErrors",void 0),v([K("__FormularioForm_register")],bt.prototype,"register",null),v([K("__FormularioForm_unregister")],bt.prototype,"unregister",null),v([K("__FormularioForm_getState")],bt.prototype,"getState",null),v([K("__FormularioForm_set")],bt.prototype,"setFieldValue",null),v([K("__FormularioForm_emitInput")],bt.prototype,"emitInput",null),v([K("__FormularioForm_emitValidation")],bt.prototype,"emitValidation",null),v([tt("state",{deep:!0})],bt.prototype,"onStateChange",null),v([tt("fieldsErrorsComputed",{deep:!0,immediate:!0})],bt.prototype,"onFieldsErrorsChange",null),bt=v([q({name:"FormularioForm"})],bt);const Ot=bt;var Ft=function(){var t=this,e=t.$createElement;return(t._self._c||e)("form",{on:{submit:function(e){return e.preventDefault(),t.onSubmit(e)}}},[t._t("default",null,{errors:t.formErrorsComputed})],2)};Ft._withStripped=!0;const Nt=ft({render:Ft,staticRenderFns:[]},undefined,Ot,undefined,false,undefined,!1,void 0,void 0,void 0);return{Formulario:V,install(t,e){t.component("FormularioField",ht),t.component("FormularioFieldGroup",gt),t.component("FormularioForm",Nt),t.component("FormularioInput",ht),t.component("FormularioGrouping",gt),t.mixin({beforeCreate(){const t=this.$options;"function"==typeof t.formulario?this.$formulario=t.formulario():t.parent&&t.parent.$formulario?this.$formulario=t.parent.$formulario:this.$formulario=new V(e)}})}}}(Vue);