UNPKG

@fifteen/design-system-vue

Version:

Vue 3 (Composition API + Typescript) implementation of the Fifteen Design System

2 lines (1 loc) 1.67 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vee-validate"),t=require("vue"),w=require("../vendor/@fifteen/shared-lib/dist/es/composables/useVModelProxy.js");require("../vendor/countup.js/dist/countUp.min.js");require("@vueuse/core");require("../vendor/@fifteen/shared-lib/dist/es/composables/useLocaleFormat.js");require("../vendor/@fifteen/shared-lib/dist/es/helpers/consoleWatch.js");require("../vendor/@fifteen/shared-lib/dist/es/utils/text.js");function m(e,a){return t.computed(()=>a.value?.length>0?e?.errorMessage||a.value?.[0]:e.hint??"")}function F(e,a,h){const o=t.toRef(e,"name"),r=[...e?.rules?[e.rules]:[],...a?.rules?[a.rules]:[]].flat(1);if(!o.value){const l=w.useVModelProxy({props:e}),i=t.ref(!0),n=t.ref([]);let V=!1;return t.watch(l,async()=>{if(a?.validateOnMount&&!V||a?.validateOnModelValueUpdate){const u=await s.validate(l.value,r);n.value=u.errors,i.value=u.valid,V=!0}},{immediate:a?.validateOnMount}),{validate:async(u,O=!0)=>{const y=u instanceof Event?l.value:u;if(O){const f=await s.validate(y??l.value,r);n.value=f.errors,i.value=f.valid}},resetValidation:()=>{n.value=[],i.value=!0},value:l,hint:m(e,n),isValid:i}}const{value:d,handleChange:c,errors:v}=s.useField(o,r,{initialValue:e?.modelValue??void 0,validateOnValueUpdate:!1,validateOnMount:a?.validateOnMount}),M=t.getCurrentInstance(),g=h||M?.emit;t.watch(d,()=>{g?.("update:modelValue",d.value)}),t.watch(()=>e?.modelValue,l=>{c(l,a?.validateOnModelValueUpdate??!1)});const q=t.computed(()=>v.value.length===0);return{validate:c,resetValidation:()=>{v.value=[]},value:d,hint:m(e,v),isValid:q}}exports.useFieldWithValidation=F;