1
0
mirror of synced 2024-12-22 03:28:46 +03:00
vue-formulario/dist/formulario.min.js
Kirill Zaytsev 92a3f8cc60 fix: build
2023-12-28 13:11:07 +04:00

21 lines
27 KiB
JavaScript

var VueFormulario=function(t,e){"use strict";e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;var r=function(t){if("string"!=typeof t)return!1;var e=t.match(o);if(!e)return!1;var r=e[1];if(!r)return!1;if(i.test(r)||n.test(r))return!0;return!1},o=/^(?:\w+:)?\/\/(\S+)$/,i=/^localhost[\:?\d]*(?:[^\:?\d]\S*)?$/,n=/^[^\s\.]+\.\S{2,}$/;const a=new Map;var s;!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"}(s||(s={}));const l=t=>Object.getPrototypeOf(t).constructor;function u(t){return l(t)===Object&&0===Object.keys(Object.getPrototypeOf(t)).length}function c(t){return"object"==typeof t&&null!==t&&(u(t)||Array.isArray(t))}function f(t){switch(typeof t){case"bigint":return s.BIGINT;case"boolean":return s.BOOLEAN;case"function":return s.FUNCTION;case"number":return s.NUMBER;case"string":return s.STRING;case"symbol":return s.SYMBOL;case"undefined":return s.UNDEFINED;case"object":return null===t?s.NULL:t instanceof Date?s.DATE:Array.isArray(t)?s.ARRAY:u(t)?s.RECORD:"InstanceOf<"+l(t).name+">"}throw new Error("[Formulario] typeOf - unknown type detected")}function d(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"symbol":case"undefined":return!0;default:return null===t}}function p(t){if(d(t)||t instanceof Blob)return t;if(t instanceof Date)return new Date(t);if(!c(t))return e=t,Object.assign(Object.create(Object.getPrototypeOf(e)),e);var e;if(Array.isArray(t))return t.slice().map(p);const r=t;return Object.keys(r).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:p(r[e])})),{})}function h(t,e){return Object.prototype.hasOwnProperty.call(t,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 m(t,e,r,o){var i,n=arguments.length,a=n<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--)(i=t[s])&&(a=(n<3?i(a):n>3?i(e,r,a):i(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a}const y=t=>{const e=parseInt(t);return e.toString()===t?e:NaN},v=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 g(t,e,r){const o="string"==typeof e?v(e):e;if(d(t)||0===o.length)return r;const i=o.shift(),n=y(i);if(!isNaN(n))return Array.isArray(t)&&n>=0&&n<t.length?0===o.length?t[n]:g(t[n],o,r):void 0;if(h(t,i)){const e=t;return 0===o.length?e[i]:g(e[i],o,r)}}function _(t,e,r){const o="string"==typeof e?v(e):e;if(0===o.length)return r;const i=o.shift(),n=y(i);if(!c(t))return _(isNaN(n)?{}:[],[i,...o],r);if(!isNaN(n)&&Array.isArray(t)){const e=[...t];return e[n]=0===o.length?r:_(e[n],o,r),e}const a=Object.assign({},t);return a[i]=0===o.length?r:_(a[i],o,r),a}const b=(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 i=0;for(o=Object.getOwnPropertySymbols(t);i<o.length;i++)e.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(t,o[i])&&(r[o[i]]=t[o[i]])}return r}(r,["symbol"==typeof o?o:o+""])};function O(t,e){if(!c(t))return t;const r="string"==typeof e?v(e):e;if(0===r.length)return t;const o=r.shift(),i=y(o);if(!isNaN(i)&&Array.isArray(t)&&i>=0&&i<t.length){const e=[...t];return 0===r.length?e.splice(i,1):e[i]=O(e[i],r),e}if(h(t,o)){const e=Object.assign({},t);return 0===r.length?b(e,o):Object.assign(Object.assign({},e),{[o]:O(e[o],r)})}return t}function F(t,e){return t===e}function N(t,e,r){const o=f(t);return o===f(e)&&(o===s.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)||o===s.DATE&&function(t,e){return t.getTime()===e.getTime()}(t,e)||o===s.RECORD&&function(t,e,r){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const o in t)if(!h(e,o)||!r(t[o],e[o]))return!1;return!0}(t,e,r)||o.includes("InstanceOf")&&N(Object.entries(t),Object.entries(e),r))}function E(t,e){return t===e||N(t,e,E)}function j(t,e){return t===e||N(t,e,F)}function $(t){return t.replace(/([_][a-z0-9])/gi,(e=>0!==t.indexOf(e)&&"_"!==t[t.indexOf(e)-1]?e.toUpperCase().replace("_",""):e))}const w={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[h(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[h(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 i=o;return i||(i=/_confirm$/.test(r)?r.substr(0,r.length-8):r+"_confirm"),e[i]===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=>j(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:String(t)).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:String(t)).length>=e,not:({value:t},...e)=>!e.some((e=>j(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||r(t),bail:()=>!0},R={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,i){const n=Object.assign(Object.assign({},e),{from:r,to:o});return!isNaN(e.value)&&"length"!==i||"value"===i?t.$t("validation.between.force",n):t.$t("validation.between.default",n)},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 x{constructor(t){this.validationRules={},this.validationMessages={},this._registry=new Map,this.validationRules=w,this.validationMessages=R,this.extend(t||{})}extend(t){if("object"==typeof t)return this.validationRules=Object.assign(Object.assign({},this.validationRules),t.validationRules||{}),this.validationMessages=Object.assign(Object.assign({},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 Object.assign(Object.assign({},this.validationRules),t)}getMessages(t,e){const r=Object.assign(Object.assign({},this.validationMessages),e),o={};for(const e in r)o[e]=(o,...i)=>{const n=r[e];return"string"==typeof n?n:n(t,o,...i)};return o}}
/**
* vue-class-component v7.2.3
* (c) 2015-present Evan You
* @license MIT
*/function A(t){return(A="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 P(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function V(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 S(){return"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function D(t,e){C(t,e),Object.getOwnPropertyNames(e.prototype).forEach((function(r){C(t.prototype,e.prototype,r)})),Object.getOwnPropertyNames(e).forEach((function(r){C(t,e,r)}))}function C(t,e,r){(r?Reflect.getOwnMetadataKeys(e,r):Reflect.getOwnMetadataKeys(e)).forEach((function(o){var i=r?Reflect.getOwnMetadata(o,e,r):Reflect.getOwnMetadata(o,e);r?Reflect.defineMetadata(o,i,t,r):Reflect.defineMetadata(o,i,t)}))}var M={__proto__:[]}instanceof Array;function I(t){return function(e,r,o){var i="function"==typeof e?e:e.constructor;i.__decorators__||(i.__decorators__=[]),"number"!=typeof o&&(o=void 0),i.__decorators__.push((function(e){return t(e,r,o)}))}}function T(t){"undefined"!=typeof console&&console.warn("[vue-class-component] "+t)}function B(t,r){var o=r.prototype._init;r.prototype._init=function(){var e=this,r=Object.getOwnPropertyNames(t);if(t.$options.props)for(var o in t.$options.props)t.hasOwnProperty(o)||r.push(o);r.forEach((function(r){"_"!==r.charAt(0)&&Object.defineProperty(e,r,{get:function(){return t[r]},set:function(e){t[r]=e},configurable:!0})}))};var i=new r;r.prototype._init=o;var n={};return Object.keys(i).forEach((function(t){void 0!==i[t]&&(n[t]=i[t])})),"production"!==process.env.NODE_ENV&&!(r.prototype instanceof e)&&Object.keys(n).length>0&&T("Component class must inherit Vue or its descendant class when class property is used."),n}var U=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function k(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r.name=r.name||t._componentTag||t.name;var o=t.prototype;Object.getOwnPropertyNames(o).forEach((function(t){if("constructor"!==t)if(U.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 P({},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 B(this,t)}});var i=t.__decorators__;i&&(i.forEach((function(t){return t(r)})),delete t.__decorators__);var n=Object.getPrototypeOf(t.prototype),a=n instanceof e?n.constructor:e,s=a.extend(r);return G(s,t,a),S()&&D(s,t),s}var L=["cid","super","options","superOptions","extendOptions","sealedOptions","component","directive","filter"],Y={prototype:!0,arguments:!0,callee:!0,caller:!0};function G(t,e,r){Object.getOwnPropertyNames(e).forEach((function(o){if(!Y[o]){var i=Object.getOwnPropertyDescriptor(t,o);if(!i||i.configurable){var n,a,s=Object.getOwnPropertyDescriptor(e,o);if(!M){if("cid"===o)return;var l=Object.getOwnPropertyDescriptor(r,o);if(n=s.value,a=A(n),null!=n&&("object"===a||"function"===a)&&l&&l.value===s.value)return}"production"!==process.env.NODE_ENV&&L.indexOf(o)>=0&&T("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 z(t){return"function"==typeof t?k(t):function(e){return k(e,t)}}z.registerHooks=function(t){U.push.apply(U,V(t))};function W(t){return I((function(e,r){void 0===e.inject&&(e.inject={}),Array.isArray(e.inject)||(e.inject[r]=t||r)}))}function q(t){return I((function(e,r){var o,i=e.provide;("function"!=typeof(o=i)||!o.managed&&!o.managedReactive)&&(i=e.provide=function(t){var e=function(){var r=this,o="function"==typeof t?t.call(this):t;for(var i in(o=Object.create(o||null)).__reactiveInject__=this.__reactiveInject__||{},e.managed)o[e.managed[i]]=this[i];var n=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 i in e.managedReactive)n(i);return o};return e.managed={},e.managedReactive={},e}(i)),i.managed[r]=t||r}))}var Z="undefined"!=typeof Reflect&&void 0!==Reflect.getMetadata;function K(t,e,r){if(Z&&!Array.isArray(t)&&"function"!=typeof t&&void 0===t.type){var o=Reflect.getMetadata("design:type",e,r);o!==Object&&(t.type=o)}}function X(t,e){return void 0===e&&(e={}),function(r,o){K(e,r,o),I((function(r,o){(r.props||(r.props={}))[o]=e,r.model={prop:o,event:t||o}}))(r,o)}}function H(t){return void 0===t&&(t={}),function(e,r){K(t,e,r),I((function(e,r){(e.props||(e.props={}))[r]=t}))(e,r)}}function J(t,e){void 0===e&&(e={});var r=e.deep,o=void 0!==r&&r,i=e.immediate,n=void 0!==i&&i;return I((function(e,r){"object"!=typeof e.watch&&(e.watch=Object.create(null));var i=e.watch;"object"!=typeof i[t]||Array.isArray(i[t])?void 0===i[t]&&(i[t]=[]):i[t]=[i[t]],i[t].push({handler:r,deep:o,immediate:n})}))}function Q(t,e,r,o){return i=>Promise.resolve(t(i,...r)).then((t=>t?null:{rule:e,args:r,context:i,message:o(i,...r)}))}function tt(t){return/^[\^]/.test(t.charAt(0))?[$(t.substr(1)),t.charAt(0)]:[$(t),null]}function et(t,e,r){return"function"==typeof t?[t,null,null]:Array.isArray(t)&&t.length?function(t,e,r){const o=t.slice(),i=o.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[n,a]=tt(i);if(h(e,n))return[Q(e[n],n,o,r[n]||r.default),n,a];throw new Error("[Formulario] Can't create validator for constraint: "+JSON.stringify(t))}(t,e,r):"string"==typeof t?function(t,e,r){const o=t.split(":"),[i,n]=tt(o.shift()||"");if(h(e,i))return[Q(e[i],i,o.length?o.join(":").split(","):[],r[i]||r.default),i,n];throw new Error("[Formulario] Can't create validator for constraint: "+t)}(t,e,r):[()=>Promise.resolve(null),null,null]}function rt(t,e,r){return"string"==typeof t?rt(t.split("|").filter((t=>t.length)),e,r):Array.isArray(t)?t.map((t=>et(t,e,r))):[]}function ot(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 it(t,e){return new Promise((r=>{const o=(t,i=[])=>{if(t.length){const n=t.shift();(function(t,e){return Promise.all(t.validators.map((t=>t(e)))).then((t=>t.filter((t=>null!==t))))})(n,e).then((e=>0!==e.length&&n.bail||!t.length?r(i.concat(e)):o(t,i.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(...ot(t.splice(0,o+1).slice(0,-1).map(e))),r.push(...t.map((([t])=>({validators:[t],bail:!0}))))):r.push(...ot(t.map(e))),r}(t))}))}let nt=class extends e{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 h(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[$(e)]=this.validationRules[e]})),t}get _normalizedValidationMessages(){const t={};return Object.keys(this.validationMessages).forEach((e=>{t[$(e)]=this.validationMessages[e]})),t}_onValueChange(){this._syncProxy(this.value)}_onProxyChange(){"live"===this.validationBehavior?this.runValidation():this.resetValidation()}created(){"function"==typeof this.__FormularioForm_register&&this.__FormularioForm_register(this.fullPath,this),"live"===this.validationBehavior&&this.runValidation()}beforeDestroy(){"function"==typeof this.__FormularioForm_unregister&&this.__FormularioForm_unregister(this.fullPath,this.unregisterBehavior)}runValidation(){return this.validationRun=this._validate().then((t=>(this.violations=t,this._emitValidation(this.fullPath,t),this.violations))),this.validationRun}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=[]}_syncProxy(t){E(t,this.proxy)||(this.proxy=t,this.$emit("input",t),"function"==typeof this.__FormularioForm_set&&(this.__FormularioForm_set(this.fullPath,t),this.__FormularioForm_emitInput()))}_validate(){return it(rt(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)}};function at(t,e,r,o,i,n,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,i&&(c.functional=!0)),o&&(c._scopeId=o),n?(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(n)},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}m([W({default:""})],nt.prototype,"__Formulario_path",void 0),m([W({default:void 0})],nt.prototype,"__FormularioForm_set",void 0),m([W({default:()=>()=>{}})],nt.prototype,"__FormularioForm_emitInput",void 0),m([W({default:()=>()=>{}})],nt.prototype,"__FormularioForm_emitValidation",void 0),m([W({default:void 0})],nt.prototype,"__FormularioForm_register",void 0),m([W({default:void 0})],nt.prototype,"__FormularioForm_unregister",void 0),m([W({default:()=>()=>({})})],nt.prototype,"__FormularioForm_getState",void 0),m([X("input",{default:""})],nt.prototype,"value",void 0),m([H({required:!0,validator:t=>"string"==typeof t&&t.length>0})],nt.prototype,"name",void 0),m([H({default:""})],nt.prototype,"validation",void 0),m([H({default:()=>({})})],nt.prototype,"validationRules",void 0),m([H({default:()=>({})})],nt.prototype,"validationMessages",void 0),m([H({default:"demand",validator:t=>["demand","live","submit"].includes(t)})],nt.prototype,"validationBehavior",void 0),m([H({default:!1})],nt.prototype,"errorsDisabled",void 0),m([H({default:()=>t=>t})],nt.prototype,"modelGetConverter",void 0),m([H({default:()=>t=>t})],nt.prototype,"modelSetConverter",void 0),m([H({default:"div"})],nt.prototype,"tag",void 0),m([H({default:"none"})],nt.prototype,"unregisterBehavior",void 0),m([J("value")],nt.prototype,"_onValueChange",null),m([J("proxy")],nt.prototype,"_onProxyChange",null),nt=m([z({name:"FormularioField",inheritAttrs:!1})],nt);const st=nt;var lt=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)};lt._withStripped=!0;const ut=at({render:lt,staticRenderFns:[]},undefined,st,undefined,false,undefined,!1,void 0,void 0,void 0);let ct=class extends e{get fullPath(){const t=""+this.name;return parseInt(t).toString()===t?`${this.__Formulario_path}[${t}]`:""===this.__Formulario_path?t:`${this.__Formulario_path}.${t}`}};m([W({default:""})],ct.prototype,"__Formulario_path",void 0),m([H({required:!0})],ct.prototype,"name",void 0),m([q("__Formulario_path")],ct.prototype,"fullPath",null),ct=m([z({name:"FormularioFieldGroup"})],ct);const ft=ct;var dt=function(){var t=this,e=t.$createElement;return(t._self._c||e)("div",[t._t("default")],2)};dt._withStripped=!0;const pt=at({render:dt,staticRenderFns:[]},undefined,ft,undefined,false,undefined,!1,void 0,void 0,void 0),ht=(t,e,r)=>void 0===r?O(t,e):_(t,e,r);let mt=class extends e{constructor(){super(...arguments),this.proxy={},this.registry=new Map,this.localFieldsErrors={},this.localFormErrors=[]}get fieldsErrorsComputed(){return Object.assign(Object.assign({},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=g(this.proxy,t);e.hasModel?E(e.proxy,r)||(this.setFieldValue(t,e.proxy),this.emitInput()):void 0!==r?e.proxy=r:(this.setFieldValue(t,null),this.emitInput()),h(this.fieldsErrorsComputed,t)&&e.setErrors(this.fieldsErrorsComputed[t])}unregister(t,e){this.registry.has(t)&&(this.registry.delete(t),"unset"===e&&(this.proxy=O(this.proxy,t),this.emitInput()))}getState(){return this.proxy}setFieldValue(t,e){this.proxy=ht(this.proxy,t,e)}emitInput(){this.$emit("input",p(this.proxy))}emitValidation(t,e){this.$emit("validation",{path:t,violations:e})}onStateChange(t){const e=p(t),r=this.proxy;let o=!1;this.registry.forEach(((i,n)=>{const a=g(t,n,null),s=g(r,n,null);i.proxy=a,E(a,s)||(i.$emit("input",a),ht(e,n,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=p(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({formErrors:t,fieldsErrors:e}){this.localFormErrors=t||[],this.localFieldsErrors=e||{}}resetValidation(){this.localFormErrors=[],this.localFieldsErrors={},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",p(this.proxy))}))}};m([X("input",{default:()=>({})})],mt.prototype,"state",void 0),m([H({default:()=>(t=>{const e=(a.get(t)||0)+1;return a.set(t,e),`${t}-${e}`})("formulario-form")})],mt.prototype,"id",void 0),m([H({default:()=>({})})],mt.prototype,"fieldsErrors",void 0),m([H({default:()=>[]})],mt.prototype,"formErrors",void 0),m([q("__FormularioForm_register")],mt.prototype,"register",null),m([q("__FormularioForm_unregister")],mt.prototype,"unregister",null),m([q("__FormularioForm_getState")],mt.prototype,"getState",null),m([q("__FormularioForm_set")],mt.prototype,"setFieldValue",null),m([q("__FormularioForm_emitInput")],mt.prototype,"emitInput",null),m([q("__FormularioForm_emitValidation")],mt.prototype,"emitValidation",null),m([J("state",{deep:!0})],mt.prototype,"onStateChange",null),m([J("fieldsErrorsComputed",{deep:!0,immediate:!0})],mt.prototype,"onFieldsErrorsChange",null),mt=m([z({name:"FormularioForm"})],mt);const yt=mt;var vt=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)};vt._withStripped=!0;const gt=at({render:vt,staticRenderFns:[]},undefined,yt,undefined,false,undefined,!1,void 0,void 0,void 0);var _t={Formulario:x,install(t,e){t.component("FormularioField",ut),t.component("FormularioFieldGroup",pt),t.component("FormularioForm",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 x(e)}})}};return t.Formulario=x,t.FormularioField=ut,t.FormularioFieldGroup=pt,t.FormularioForm=gt,t.default=_t,t}({},Vue);