@uniquedj95/vform 3.2.0 → 3.3.0
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 +110 -1
- package/dist/components/inputs/BaseInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/CheckboxInput.vue.d.ts +1 -1
- package/dist/components/inputs/CheckboxInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/DateInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/EmailInput.vue.d.ts +3 -3
- package/dist/components/inputs/EmailInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/NumberInput.vue.d.ts +3 -3
- package/dist/components/inputs/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/PasswordInput.vue.d.ts +3 -3
- package/dist/components/inputs/PasswordInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/RadioInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/RepeatInput.vue.d.ts +1 -1
- package/dist/components/inputs/RepeatInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/SelectInput.vue.d.ts +1 -7
- package/dist/components/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/TextAreaInput.vue.d.ts +1 -1
- package/dist/components/inputs/TextAreaInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/TextInput.vue.d.ts +3 -3
- package/dist/components/inputs/TextInput.vue.d.ts.map +1 -1
- package/dist/components/shared/InputLabel.vue.d.ts.map +1 -1
- package/dist/components/vForm.vue.d.ts.map +1 -1
- package/dist/composables/useDataTransformation.d.ts +1 -1
- package/dist/composables/useDataTransformation.d.ts.map +1 -1
- package/dist/composables/useDependentOptions.d.ts.map +1 -1
- package/dist/composables/useInputProps.d.ts.map +1 -1
- package/dist/composables/useInputValidation.d.ts.map +1 -1
- package/dist/composables/useLabelTemplate.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +599 -599
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +7 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/vform.css +1 -1
- package/package.json +5 -1
package/dist/index.umd.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
(function(w,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@ionic/vue"),require("ionicons/icons"),require("@maskito/vue")):typeof define=="function"&&define.amd?define(["exports","vue","@ionic/vue","ionicons/icons","@maskito/vue"],e):(w=typeof globalThis<"u"?globalThis:w||self,e(w.VForm={},w.Vue,w.IonicVue,w.IoniconsIcons,w.MaskitoVue))})(this,function(w,e,y,q,Q){"use strict";function X(n){return new Promise(r=>{requestAnimationFrame(async()=>{const l=await n.getInputElement();r(l)})})}const Y={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},$={d:["1","2","3","4","5","6","7","8","9","0"],a:["A","B","C","x","y","z","D","f"],"*":["A","3","b","8","z","4","D","0"]};function ee(n,r){const l=$[n];return l[r%l.length]}function te(n){const r=[];let l="",t=0,o=0;for(;t<n.length;){const a=n[t];if(["d","a","*"].includes(a)){let u=1;if(n[t+1]==="{"){const i=n.indexOf("}",t+2);if(i!==-1){const p=n.slice(t+2,i);if(p.includes(",")){const[,d]=p.split(",").map(c=>parseInt(c.trim()));u=d||parseInt(p.split(",")[0])}else u=parseInt(p);t=i}}else{let i=t+1;for(;n[i]===a;)u++,i++;t=i-1}for(let i=0;i<u;i++)r.push(Y[a]),l+=ee(a,o++)}else r.push(a),l+=a;t++}return{mask:r,placeholder:l,elementPredicate:X}}function U(n){return n==null||Array.isArray(n)&&!n.length||typeof n=="object"&&!Object.keys(n).length||!n}function D(n,r,l){return typeof n.condition=="function"?n.condition(r,l):!0}function z(n){if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return n.map(l=>z(l));const r={};return Object.entries(n).forEach(([l,t])=>{typeof t=="function"?r[l]=t.bind(r):r[l]=z(t)}),r}function G(n,r){return r.findIndex(l=>l.value===n.value||l.label===n.label||l.value===n.label||l.label===n.value)}function E(n,r){const l=G(n,r);l>=0?r[l].isChecked=!0:r.push({...n,isChecked:!0})}function j(n,r){const l=G(n,r);l>=0&&(r[l].isChecked=!1)}function ne(n,r){return r?n.filter(l=>JSON.stringify(l).toLowerCase().includes(r.toLowerCase())):n}function H(n){const r=n.label||"",l=n.required?" *":"";return r+l}function L(n,r){if(n===r)return!0;if(n==null||r==null||typeof n!=typeof r)return!1;if(typeof n!="object")return n===r;if(Array.isArray(n)&&Array.isArray(r))return n.length!==r.length?!1:n.every((o,a)=>L(o,r[a]));if(Array.isArray(n)!==Array.isArray(r))return!1;const l=Object.keys(n),t=Object.keys(r);return l.length!==t.length?!1:l.every(o=>Object.prototype.hasOwnProperty.call(r,o)&&L(n[o],r[o]))}function v(){const n=e.ref([]);async function r(){console.debug("Validating form inputs");const a=[];for(const u of n.value)if(typeof(u==null?void 0:u.onValueUpdate)=="function"&&await u.onValueUpdate(),typeof(u==null?void 0:u.getErrors)=="function")try{const i=u.getErrors();Array.isArray(i)?a.push(...i):console.warn("getErrors() returned non-array value:",i)}catch(i){console.error("Error calling getErrors on component:",i,u)}else console.warn("Component does not have getErrors function:",u);return a.every(U)}function l(){n.value.forEach(a=>{typeof(a==null?void 0:a.onReset)=="function"&&a.onReset()})}function t(){const a=[];for(const u of n.value)if(typeof(u==null?void 0:u.getErrors)=="function")try{const i=u.getErrors();Array.isArray(i)?a.push(...i):a.push(String(i))}catch(i){console.error("Error calling getErrors on component:",i,u)}return a}async function o(){for(const a of n.value)typeof(a==null?void 0:a.onValueUpdate)=="function"&&await a.onValueUpdate()}return{dynamicRefs:n,isFormValid:r,resetForm:l,getFormErrors:t,updateFormValues:o}}function K(n){const r=e.computed(()=>Object.entries(n.value).reduce((d,[c,f])=>(f.value!==void 0&&(typeof f.onChange=="function"?d[c]=f.onChange(f.value):d[c]=f.value),d),{})),l=e.ref({}),t=(d,c,f)=>{var s;return typeof((s=n.value[d].children[c])==null?void 0:s.computedValue)=="function"?n.value[d].children[c].computedValue(f,n.value):f},o=(d,c,f,s)=>{l.value[d][s]||(l.value[d][s]={}),Object.entries(c.other??{}).forEach(([m,C])=>{var V;!L(C,(V=f.other)==null?void 0:V[m])&&(l.value[d][s][m]=t(d,m,C))})},a=(d,c,f)=>{c.forEach((s,m)=>{const C=f[m]??{other:{}};o(d,s,C,m)})},u=(d,{other:c})=>Object.entries(c??{}).reduce((f,[s,m])=>(f[s]=t(d,s,m),f),{}),i=(d,c,f)=>{l.value[d]||(l.value[d]=[]);const s=c;Array.isArray(f[d])?a(d,s,f[d]):l.value[d]=s.map(m=>u(d,m))},p=(d,c,f)=>{if(!c){delete l.value[d];return}const s=n.value[d];s.children!==void 0?i(d,c,f):typeof s.computedValue=="function"&&(l.value[d]=s.computedValue(c,n.value))};return e.watch(r,(d,c={})=>{Object.keys(d).forEach(f=>{L(d[f],c[f])||p(f,d[f],c)}),Object.keys(c).forEach(f=>{!(f in d)&&f in l.value&&delete l.value[f]})},{immediate:!0,deep:!0}),{formData:r,computedData:l}}function W(n,r,l){const t=e.ref({}),o=e.ref({});function a(c,f,s){o.value[c]=s,f.forEach(m=>{var C;(C=t.value)[m]??(C[m]=[]),t.value[m].includes(c)||t.value[m].push(c)}),d(c)}function u(c){return Object.entries(t.value).filter(([,s])=>s.includes(c)).map(([s])=>s).reduce((s,m)=>(s[m]=r.value[m]??l.value[m],s),{})}function i(c,f){return c?Array.isArray(c)?c.some(s=>f.some(m=>p(s,m.value))):f.some(s=>p(c,s.value)):!1}function p(c,f){return typeof c=="object"&&c!==null?c.value===f:String(c)===String(f)}async function d(c,f){if(!o.value[c])return;const s=u(c),m=Object.keys(s);if(!(m.length===0||!m.every(g=>s[g]!==void 0&&s[g]!==null)))try{const g=o.value[c],V=await g(f,s);if(!n.value[c])return;n.value[c].options=V;const h=n.value[c].value;if(!h)return;i(h,V)||(n.value[c].value=n.value[c].multiple?[]:"")}catch(g){console.error(`Error loading options for ${c}:`,g)}}return e.watch([r,l],()=>{Object.entries(t.value).forEach(([c,f])=>{(r.value[c]!==void 0||l.value[c]!==void 0)&&f.forEach(s=>{d(s)})})},{deep:!0,immediate:!0}),{registerDependency:a,updateOptions:d}}const oe=e.defineComponent({__name:"vForm",props:{schema:{},showLabels:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!0},buttonPlacement:{default:"start"},submitButtonText:{default:"Submit"},clearButtonText:{default:"Reset"},cancelButtonText:{default:"Cancel"},hideButtons:{type:Boolean,default:!1},customButtons:{}},emits:["submit","clear","cancel"],setup(n,{expose:r,emit:l}){const t=n,o=l,a=e.ref(t.schema),{dynamicRefs:u,isFormValid:i,resetForm:p}=v(),{formData:d,computedData:c}=K(a),f=W(a,d,c);async function s(){await i()&&o("submit",d.value,c.value)}function m(){p(),o("clear")}function C(){p(),o("cancel")}return e.watch(d,async()=>{for(const[g,V]of Object.entries(a.value))D(V,d.value,c.value)||(V.value=t.schema[g].value)},{deep:!0,immediate:!0}),e.watch(()=>t.schema,g=>{for(const[V,h]of Object.entries(g))h.value!==void 0&&(a.value[V].value=h.value)},{deep:!0,immediate:!0}),r({resetForm:p,isFormValid:i,resolveData:()=>({formData:d.value,computedData:c.value})}),(g,V)=>(e.openBlock(),e.createBlock(e.unref(y.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(a.value),h=>{var b,O,F,R,M;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(D)(a.value[h],e.unref(d),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:h,size:((b=a.value[h].grid)==null?void 0:b.xs)??"12","size-sm":(O=a.value[h].grid)==null?void 0:O.sm,"size-md":(F=a.value[h].grid)==null?void 0:F.md,"size-lg":(R=a.value[h].grid)==null?void 0:R.lg,"size-xl":(M=a.value[h].grid)==null?void 0:M.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value[h].type),{modelValue:a.value[h],"onUpdate:modelValue":I=>a.value[h]=I,schema:a.value,"dependency-manager":e.unref(f),"form-id":h,ref_for:!0,ref_key:"dynamicRefs",ref:u,"ref-key":h},null,8,["modelValue","onUpdate:modelValue","schema","dependency-manager","form-id","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:1}),g.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:g.buttonPlacement}])},{default:e.withCtx(()=>[g.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:C},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),g.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:m},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.customButtons,h=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:h.label,onClick:h.action,color:h.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(y.IonButton),{onClick:s},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))}});function le(n){return{applyValidationState:async t=>{var o,a,u,i,p;(o=n.value)==null||o.$el.classList.remove("ion-invalid"),(a=n.value)==null||a.$el.classList.remove("ion-valid"),t?(u=n.value)==null||u.$el.classList.add("ion-valid"):(i=n.value)==null||i.$el.classList.add("ion-invalid"),(p=n.value)==null||p.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,o;(t=n.value)==null||t.$el.classList.remove("ion-touched"),(o=n.value)==null||o.$el.classList.remove("ion-invalid")}}}function A(n,r,l,t,o){const{applyValidationState:a,resetValidationState:u}=le(n);async function i(){if(r.value.required&&!l.value)return r.value.error="This field is required",!1;if(o){const s=await o(l.value);if(typeof s=="string")return r.value.error=s,!1;if(s===!1)return!1}if(r.value.validation){const s=await r.value.validation(l.value,t==null?void 0:t.value);if(s&&s.length)return r.value.error=s.join(),!1}return!0}async function p(){const s=await i();s&&(r.value.error="",r.value.value=l.value),await a(s)}function d(){u(),r.value.error=""}function c(s=""){l.value=s,r.value.error="",r.value.value=s}function f(){return r.value.error?[r.value.error]:[]}return{isValid:i,onValueUpdate:p,onFocus:d,onReset:c,getErrors:f,applyValidationState:a,resetValidationState:u}}function ae(n){const r=e.computed(()=>!!n.value.label),l=e.computed(()=>!!n.value.required),t=e.computed(()=>n.value.label||"");return{showLabel:r,showRequired:l,labelText:t}}const P=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(n){const r=n,{showLabel:l,showRequired:t,labelText:o}=ae(e.toRef(r,"model"));return(a,u)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"label",class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>u[0]||(u[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),S=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),u=e.computed(()=>l.schema),{isValid:i,onValueUpdate:p,onFocus:d,onReset:c,getErrors:f}=A(o,t,a,u),s=e.computed(()=>{if(t.value.pattern)return te(t.value.pattern)});return e.watch(()=>t.value.value,m=>a.value=m),r({onValueUpdate:p,onReset:c,getErrors:f,isValid:i}),(m,C)=>{var V;const g=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.IonInput),{ref_key:"inputRef",ref:o,modelValue:a.value,"onUpdate:modelValue":C[0]||(C[0]=h=>a.value=h),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:m.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((V=s.value)==null?void 0:V.placeholder)??t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(d),onIonChange:e.unref(p),onIonBlur:e.unref(p)},{default:e.withCtx(()=>[e.createVNode(P,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),m.type==="password"?(e.openBlock(),e.createBlock(e.unref(y.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[g,s.value]])}}}),re=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(S,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=u=>l.value=u),type:"text",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),se=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(S,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=u=>l.value=u),type:l.value.enableTime?"datetime-local":"date",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),ce=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(S,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=u=>l.value=u),type:"number",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ie=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(S,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=u=>l.value=u),type:"email",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ue=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(S,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=u=>l.value=u),type:"password",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),de=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,dependencyManager:Object,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(null),u=e.ref(!1),i=e.ref([]),p=e.ref(""),d=e.ref(1),c=e.computed(()=>t.value.interface??"popover"),f=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),s=e.computed(()=>i.value.filter(k=>!!k.isChecked)),m=e.computed(()=>!p.value&&U(s.value)&&!u.value?t.value.placeholder??"Select an option":"");e.watch([p,()=>t.value.options],T,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,ge,{immediate:!0,deep:!0});function C(){i.value.forEach(k=>j(k,i.value)),t.value.error="",p.value="",d.value=1,t.value.value=t.value.multiple?[]:""}function g(k){if(k.isChecked)return j(k,i.value);t.value.multiple?E(k,i.value):(C(),E(k,i.value),I()),p.value=""}function V(){switch(c.value){case"action-sheet":h();break;case"alert":b();break;case"popover":default:u.value=!0;break}}async function h(){if(await T(),t.value.multiple){u.value=!0;return}await(await y.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...i.value.map(B=>({text:B.label,cssClass:B.isChecked?"selected-option":"",handler:()=>(g(B),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function b(){await T();const k=i.value.map(x=>({label:x.label,type:t.value.multiple?"checkbox":"radio",value:x,checked:x.isChecked}));await(await y.alertController.create({header:t.value.label||"Select an option",inputs:k,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:x=>{if(t.value.multiple)i.value.forEach(_=>j(_,i.value)),x.forEach(_=>{const N=i.value.find(Ce=>Ce.value===_.value);N&&E(N,i.value)});else{C();const _=i.value.find(N=>N.value===x.value);_&&E(_,i.value)}I()}}]})).present()}async function O(){if(t.value.required&&U(s.value))return"This field is required";if(t.value.validation){const k=await t.value.validation(s.value,l==null?void 0:l.schema);if(k&&k.length)return k.join()}return!0}const{onFocus:F,applyValidationState:R}=A(o,t,e.computed(()=>t.value.multiple?s.value:s.value[0]),e.computed(()=>l==null?void 0:l.schema),O);function M(k){var B;k.target===((B=o.value)==null?void 0:B.$el)&&(F(),c.value==="popover"&&(u.value=!0))}async function I(k){var x;if((x=k==null?void 0:k.relatedTarget)!=null&&x.closest(".suggestions-list"))return;u.value=!1;const B=await O();B===!0?(t.value.error="",t.value.value=t.value.multiple?s.value:s.value[0]):t.value.error=typeof B=="string"?B:"Validation failed",await R(B===!0)}async function T(){const k=[];if(l.dependencyManager&&l.formId&&t.value.dependsOn)l.dependencyManager.updateOptions(l.formId,p.value),Array.isArray(t.value.options)&&k.push(...t.value.options.filter(B=>!!B.label));else if(typeof t.value.options=="function"){const B=await t.value.options(p.value);k.push(...B.filter(x=>!!x.label))}else k.push(...ne(t.value.options??[],p.value));s.value.forEach(B=>E(B,k)),i.value=k}function ge(){const k=t.value.value;k&&(Array.isArray(k)?k.forEach(B=>E(B,i.value)):E(typeof k=="object"?k:{value:k,label:k},i.value))}return e.onMounted(()=>{if(l.dependencyManager&&l.formId&&t.value.dependsOn&&typeof l.dependencyManager.registerDependency=="function"){const k=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];l.dependencyManager.registerDependency(l.formId,k,async(B,x)=>{if(Array.isArray(t.value.options))return t.value.options;if(typeof t.value.options=="function")try{const _=B!==void 0?B:p.value,N=await t.value.options(_,x);return Array.isArray(N)?N:[]}catch(_){return console.error(`Error loading options for ${l.formId}:`,_),[]}return[]})}}),r({onValueUpdate:I,onReset:C,getErrors:()=>t.value.error?[t.value.error]:[]}),(k,B)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:I,ref_key:"containerRef",ref:a},[e.createVNode(e.unref(y.IonInput),{ref_key:"inputRef",ref:o,modelValue:p.value,"onUpdate:modelValue":B[0]||(B[0]=x=>p.value=x),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:n.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:m.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:M,debounce:300,onClick:V},{default:e.withCtx(()=>[e.createVNode(P,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(x,_)=>(e.openBlock(),e.createBlock(e.unref(y.IonChip),{key:_},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var x;return[e.createTextVNode(e.toDisplayString(((x=s.value[0])==null?void 0:x.label)??""),1)]}),_:1})),e.createVNode(e.unref(y.IonIcon),{slot:"end",icon:e.unref(q.chevronDown)},null,8,["icon"]),s.value.length>0||p.value?(e.openBlock(),e.createBlock(e.unref(y.IonIcon),{key:2,slot:"end",icon:e.unref(q.close),onClick:C,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),u.value&&i.value.length>0&&c.value==="popover"?(e.openBlock(),e.createBlock(e.unref(y.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,x=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{button:"",key:x.label,onClick:_=>g(x)},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{key:0,slot:"start",checked:x.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),Z=(n,r)=>{const l=n.__vccOpts||n;for(const[t,o]of r)l[t]=o;return l},fe=Z(de,[["__scopeId","data-v-439c5bca"]]),pe=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),u=e.computed(()=>l.schema),{onValueUpdate:i,onFocus:p,onReset:d,getErrors:c}=A(o,t,a,u);return e.watch(()=>t.value.value,f=>a.value=f),r({onReset:d,onValueUpdate:i,getErrors:c}),(f,s)=>(e.openBlock(),e.createBlock(e.unref(y.IonTextarea),{ref_key:"inputRef",ref:o,modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=m=>a.value=m),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,rows:t.value.rows,cols:t.value.cols,"auto-grow":t.value.autoGrow,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(p),onIonChange:e.unref(i),onIonBlur:e.unref(i)},{default:e.withCtx(()=>[e.createVNode(P,{model:t.value},null,8,["model"])]),_:1},8,["modelValue","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),me={class:"ion-margin-end",style:{"flex-grow":"1"}},he={style:{display:"flex","justify-content":"flex-end"}},ye=Z(e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref([]),{dynamicRefs:o,resetForm:a,getFormErrors:u,updateFormValues:i}=v(),p=e.computed(()=>t.value.map((C,g)=>({label:`Set ${g+1}`,value:g,other:Object.entries(C).reduce((V,[h,b])=>(V[h]=b.value,V),{})})));e.watch(p,C=>{l.value.value=C},{deep:!0,immediate:!0}),e.onMounted(d);function d(){l.value.children&&t.value.push(z(l.value.children))}function c(C){t.value.splice(C,1)}function f(){a()}function s(){return u()}async function m(){await i()}return r({onValueUpdate:m,onReset:f,getErrors:s}),(C,g)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(V,h)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:h},[e.createElementVNode("div",me,[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(V),b=>{var O,F,R,M,I;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(D)(V[b],C.data,C.computedData)?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:`${h}-${b}`,size:((O=V[b].grid)==null?void 0:O.xs)??"12","size-sm":(F=V[b].grid)==null?void 0:F.sm,"size-md":(R=V[b].grid)==null?void 0:R.md,"size-lg":(M=V[b].grid)==null?void 0:M.lg,"size-xl":(I=V[b].grid)==null?void 0:I.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(V[b].type),{modelValue:V[b],"onUpdate:modelValue":T=>V[b]=T,schema:V,"ref-key":`${h}-${b}`,ref_for:!0,ref_key:"dynamicRefs",ref:o},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",he,[h===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:d,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(q.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:b=>c(h),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(q.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),[["__scopeId","data-v-402695fe"]]),ke=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),u=e.computed(()=>l.schema),i=e.computed(()=>H(t.value)),{onValueUpdate:p,onFocus:d,getErrors:c}=A(o,t,a,u);function f(){a.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,s=>a.value=s),r({onValueUpdate:p,onReset:f,getErrors:c}),(s,m)=>(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=C=>a.value=C),ref_key:"inputRef",ref:o,required:t.value.required,"error-text":t.value.error,disabled:t.value.disabled,onIonFocus:e.unref(d),onIonChange:e.unref(p),onIonBlur:e.unref(p)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value),1)]),_:1},8,["modelValue","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Ve=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),u=e.computed(()=>l.schema),i=e.ref([]),p=e.computed(()=>H(t.value)),{onValueUpdate:d,onFocus:c,getErrors:f}=A(o,t,a,u);function s(){t.value.error="",a.value=void 0,t.value.value=void 0}function m(g,V){return g.value===V.value}async function C(){typeof t.value.options=="function"?i.value=await t.value.options():i.value=t.value.options}return e.watch(()=>t.value.value,g=>a.value=g),r({onValueUpdate:d,onReset:s,getErrors:f}),e.onMounted(C),(g,V)=>(e.openBlock(),e.createBlock(e.unref(y.IonRadioGroup),{modelValue:a.value,"onUpdate:modelValue":V[0]||(V[0]=h=>a.value=h),ref_key:"inputRef",ref:o,required:t.value.required,"helper-text":p.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:m,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(c),onIonChange:e.unref(d),onIonBlur:e.unref(d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,h=>(e.openBlock(),e.createBlock(e.unref(y.IonRadio),{key:h.value,value:h,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["modelValue","required","helper-text","error-text","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"]))}}),J={install(n){n.component("VForm",oe),n.component("TextInput",re),n.component("DateInput",se),n.component("NumberInput",ce),n.component("EmailInput",ie),n.component("PasswordInput",ue),n.component("SelectInput",fe),n.component("TextAreaInput",pe),n.component("RepeatInput",ye),n.component("CheckboxInput",ke),n.component("RadioInput",Ve),n.directive("maskito",Q.maskito)}};w.VForm=J,w.default=J,w.useDataTransformation=K,w.useDependentOptions=W,w.useFormValidation=v,w.useInputValidation=A,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
1
|
+
(function(w,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@ionic/vue"),require("ionicons/icons"),require("@maskito/vue")):typeof define=="function"&&define.amd?define(["exports","vue","@ionic/vue","ionicons/icons","@maskito/vue"],e):(w=typeof globalThis<"u"?globalThis:w||self,e(w.VForm={},w.Vue,w.IonicVue,w.IoniconsIcons,w.MaskitoVue))})(this,function(w,e,k,L,X){"use strict";function Y(n){return new Promise(r=>{requestAnimationFrame(async()=>{const a=await n.getInputElement();r(a)})})}const $={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},ee={d:["1","2","3","4","5","6","7","8","9","0"],a:["A","B","C","x","y","z","D","f"],"*":["A","3","b","8","z","4","D","0"]};function te(n,r){const a=ee[n];return a[r%a.length]}function ne(n){const r=[];let a="",t=0,l=0;for(;t<n.length;){const o=n[t];if(["d","a","*"].includes(o)){let u=1;if(n[t+1]==="{"){const i=n.indexOf("}",t+2);if(i!==-1){const y=n.slice(t+2,i);if(y.includes(",")){const[,d]=y.split(",").map(c=>parseInt(c.trim()));u=d||parseInt(y.split(",")[0])}else u=parseInt(y);t=i}}else{let i=t+1;for(;n[i]===o;)u++,i++;t=i-1}for(let i=0;i<u;i++)r.push($[o]),a+=te(o,l++)}else r.push(o),a+=o;t++}return{mask:r,placeholder:a,elementPredicate:Y}}function D(n){return n==null||Array.isArray(n)&&!n.length||typeof n=="object"&&!Object.keys(n).length||!n}function z(n,r,a){return typeof n.condition=="function"?n.condition(r,a):!0}function j(n){if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return n.map(a=>j(a));const r={};return Object.entries(n).forEach(([a,t])=>{typeof t=="function"?r[a]=t.bind(r):r[a]=j(t)}),r}function G(n,r){return r.findIndex(a=>a.value===n.value||a.label===n.label||a.value===n.label||a.label===n.value)}function E(n,r){const a=G(n,r);a>=0?r[a].isChecked=!0:r.push({...n,isChecked:!0})}function H(n,r){const a=G(n,r);a>=0&&(r[a].isChecked=!1)}function le(n){n.forEach(r=>{r.isChecked=!1})}function oe(n,r){return r?n.filter(a=>JSON.stringify(a).toLowerCase().includes(r.toLowerCase())):n}function K(n){const r=n.label||"",a=n.required?" *":"";return r+a}function M(n,r){if(n===r)return!0;if(n==null||r==null||typeof n!=typeof r)return!1;if(typeof n!="object")return n===r;if(Array.isArray(n)&&Array.isArray(r))return n.length!==r.length?!1:n.every((l,o)=>M(l,r[o]));if(Array.isArray(n)!==Array.isArray(r))return!1;const a=Object.keys(n),t=Object.keys(r);return a.length!==t.length?!1:a.every(l=>Object.prototype.hasOwnProperty.call(r,l)&&M(n[l],r[l]))}function P(){const n=e.ref([]);async function r(){console.debug("Validating form inputs");const o=[];for(const u of n.value)if(typeof(u==null?void 0:u.onValueUpdate)=="function"&&await u.onValueUpdate(),typeof(u==null?void 0:u.getErrors)=="function")try{const i=u.getErrors();Array.isArray(i)?o.push(...i):console.warn("getErrors() returned non-array value:",i)}catch(i){console.error("Error calling getErrors on component:",i,u)}else console.warn("Component does not have getErrors function:",u);return o.every(D)}function a(){n.value.forEach(o=>{typeof(o==null?void 0:o.onReset)=="function"&&o.onReset()})}function t(){const o=[];for(const u of n.value)if(typeof(u==null?void 0:u.getErrors)=="function")try{const i=u.getErrors();Array.isArray(i)?o.push(...i):o.push(String(i))}catch(i){console.error("Error calling getErrors on component:",i,u)}return o}async function l(){for(const o of n.value)typeof(o==null?void 0:o.onValueUpdate)=="function"&&await o.onValueUpdate()}return{dynamicRefs:n,isFormValid:r,resetForm:a,getFormErrors:t,updateFormValues:l}}function W(n){const r=e.computed(()=>Object.entries(n.value).reduce((d,[c,f])=>(f.value!==void 0&&(typeof f.onChange=="function"?d[c]=f.onChange(f.value,n.value):d[c]=f.value),d),{})),a=e.ref({}),t=(d,c,f)=>{var s;return typeof((s=n.value[d].children[c])==null?void 0:s.computedValue)=="function"?n.value[d].children[c].computedValue(f,n.value):f},l=(d,c,f,s)=>{a.value[d][s]||(a.value[d][s]={}),Object.entries(c.other??{}).forEach(([m,h])=>{var p;!M(h,(p=f.other)==null?void 0:p[m])&&(a.value[d][s][m]=t(d,m,h))})},o=(d,c,f)=>{c.forEach((s,m)=>{const h=f[m]??{other:{}};l(d,s,h,m)})},u=(d,{other:c})=>Object.entries(c??{}).reduce((f,[s,m])=>(f[s]=t(d,s,m),f),{}),i=(d,c,f)=>{a.value[d]||(a.value[d]=[]);const s=c;Array.isArray(f[d])?o(d,s,f[d]):a.value[d]=s.map(m=>u(d,m))},y=(d,c,f)=>{if(!c){delete a.value[d];return}const s=n.value[d];s.children!==void 0?i(d,c,f):typeof s.computedValue=="function"&&(a.value[d]=s.computedValue(c,n.value))};return e.watch(r,(d,c={})=>{Object.keys(d).forEach(f=>{M(d[f],c[f])||y(f,d[f],c)}),Object.keys(c).forEach(f=>{!(f in d)&&f in a.value&&delete a.value[f]})},{immediate:!0,deep:!0}),{formData:r,computedData:a}}const ae=e.defineComponent({__name:"vForm",props:{schema:{},showLabels:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!0},buttonPlacement:{default:"start"},submitButtonText:{default:"Submit"},clearButtonText:{default:"Reset"},cancelButtonText:{default:"Cancel"},hideButtons:{type:Boolean,default:!1},customButtons:{}},emits:["submit","clear","cancel"],setup(n,{expose:r,emit:a}){const t=n,l=a,o=e.ref(t.schema),{dynamicRefs:u,isFormValid:i,resetForm:y}=P(),{formData:d,computedData:c}=W(o);async function f(){await i()&&l("submit",d.value,c.value)}function s(){y(),l("clear")}function m(){y(),l("cancel")}return e.watch(d,async()=>{for(const[h,g]of Object.entries(o.value))z(g,d.value,c.value)||(g.value=t.schema[h].value)},{deep:!0,immediate:!0}),e.watch(()=>t.schema,h=>{for(const[g,p]of Object.entries(h))p.value!==void 0&&(o.value[g].value=p.value)},{deep:!0,immediate:!0}),r({resetForm:y,isFormValid:i,resolveData:()=>({formData:d.value,computedData:c.value})}),(h,g)=>(e.openBlock(),e.createBlock(e.unref(k.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(k.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(o.value),p=>{var x,b,I,O,F;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(z)(o.value[p],e.unref(d),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(k.IonCol),{key:p,size:((x=o.value[p].grid)==null?void 0:x.xs)??"12","size-sm":(b=o.value[p].grid)==null?void 0:b.sm,"size-md":(I=o.value[p].grid)==null?void 0:I.md,"size-lg":(O=o.value[p].grid)==null?void 0:O.lg,"size-xl":(F=o.value[p].grid)==null?void 0:F.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value[p].type),{modelValue:o.value[p],"onUpdate:modelValue":T=>o.value[p]=T,schema:o.value,"form-id":p,ref_for:!0,ref_key:"dynamicRefs",ref:u,"ref-key":p},null,8,["modelValue","onUpdate:modelValue","schema","form-id","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:1}),h.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(k.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(k.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:h.buttonPlacement}])},{default:e.withCtx(()=>[h.showCancelButton?(e.openBlock(),e.createBlock(e.unref(k.IonButton),{key:0,onClick:m},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),h.showClearButton?(e.openBlock(),e.createBlock(e.unref(k.IonButton),{key:1,onClick:s},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.customButtons,p=>(e.openBlock(),e.createBlock(e.unref(k.IonButton),{key:p.label,onClick:p.action,color:p.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(k.IonButton),{onClick:f},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))}});function re(n){return{applyValidationState:async t=>{var l,o,u,i,y;(l=n.value)==null||l.$el.classList.remove("ion-invalid"),(o=n.value)==null||o.$el.classList.remove("ion-valid"),t?(u=n.value)==null||u.$el.classList.add("ion-valid"):(i=n.value)==null||i.$el.classList.add("ion-invalid"),(y=n.value)==null||y.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,l;(t=n.value)==null||t.$el.classList.remove("ion-touched"),(l=n.value)==null||l.$el.classList.remove("ion-invalid")}}}function S(n,r,a,t,l){const{applyValidationState:o,resetValidationState:u}=re(n);async function i(){if(r.value.required&&!a.value)return r.value.error="This field is required",!1;if(l){const s=await l(a.value);if(typeof s=="string")return r.value.error=s,!1;if(s===!1)return!1}if(r.value.validation){const s=await r.value.validation(a.value,t==null?void 0:t.value);if(s&&s.length)return r.value.error=s.join(),!1}return!0}async function y(){const s=await i();s&&(r.value.error="",r.value.value=a.value),await o(s)}function d(){u(),r.value.error=""}function c(s=""){a.value=s,r.value.error="",r.value.value=s}function f(){return r.value.error?[r.value.error]:[]}return{isValid:i,onValueUpdate:y,onFocus:d,onReset:c,getErrors:f,applyValidationState:o,resetValidationState:u}}function se(n){const r=e.computed(()=>!!n.value.label),a=e.computed(()=>!!n.value.required),t=e.computed(()=>n.value.label||"");return{showLabel:r,showRequired:a,labelText:t}}const v=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(n){const r=n,{showLabel:a,showRequired:t,labelText:l}=se(e.toRef(r,"model"));return(o,u)=>e.unref(a)?(e.openBlock(),e.createBlock(e.unref(k.IonLabel),{key:0,slot:"label",class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(k.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>u[0]||(u[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),q=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=n,t=e.useModel(n,"modelValue"),l=e.ref(null),o=e.ref(t.value.value),u=e.computed(()=>a.schema),{isValid:i,onValueUpdate:y,onFocus:d,onReset:c,getErrors:f}=S(l,t,o,u),s=e.computed(()=>{if(t.value.pattern)return ne(t.value.pattern)});return e.watch(()=>t.value.value,m=>o.value=m),r({onValueUpdate:y,onReset:c,getErrors:f,isValid:i}),(m,h)=>{var p;const g=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(k.IonInput),{ref_key:"inputRef",ref:l,modelValue:o.value,"onUpdate:modelValue":h[0]||(h[0]=x=>o.value=x),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:m.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((p=s.value)==null?void 0:p.placeholder)??t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(d),onIonChange:e.unref(y),onIonBlur:e.unref(y)},{default:e.withCtx(()=>[e.createVNode(v,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(k.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(k.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),m.type==="password"?(e.openBlock(),e.createBlock(e.unref(k.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[g,s.value]])}}}),ce=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var l;return(l=t.value)==null?void 0:l.onReset()},onValueUpdate:()=>{var l;return(l=t.value)==null?void 0:l.onValueUpdate()},getErrors:()=>{var l,o;return((o=(l=t.value)==null?void 0:l.getErrors)==null?void 0:o.call(l))??[]}}),(l,o)=>(e.openBlock(),e.createBlock(q,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=u=>a.value=u),type:"text",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ie=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref(null);return r({onValueUpdate:()=>{var l;return(l=t.value)==null?void 0:l.onValueUpdate()},onReset:()=>{var l;return(l=t.value)==null?void 0:l.onReset()},getErrors:()=>{var l,o;return((o=(l=t.value)==null?void 0:l.getErrors)==null?void 0:o.call(l))??[]}}),(l,o)=>(e.openBlock(),e.createBlock(q,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=u=>a.value=u),type:a.value.enableTime?"datetime-local":"date",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),ue=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var l;return(l=t.value)==null?void 0:l.onReset()},onValueUpdate:()=>{var l;return(l=t.value)==null?void 0:l.onValueUpdate()},getErrors:()=>{var l,o;return((o=(l=t.value)==null?void 0:l.getErrors)==null?void 0:o.call(l))??[]}}),(l,o)=>(e.openBlock(),e.createBlock(q,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=u=>a.value=u),type:"number",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),de=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var l;return(l=t.value)==null?void 0:l.onReset()},onValueUpdate:()=>{var l;return(l=t.value)==null?void 0:l.onValueUpdate()},getErrors:()=>{var l,o;return((o=(l=t.value)==null?void 0:l.getErrors)==null?void 0:o.call(l))??[]}}),(l,o)=>(e.openBlock(),e.createBlock(q,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=u=>a.value=u),type:"email",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),fe=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var l;return(l=t.value)==null?void 0:l.onReset()},onValueUpdate:()=>{var l;return(l=t.value)==null?void 0:l.onValueUpdate()},getErrors:()=>{var l,o;return((o=(l=t.value)==null?void 0:l.getErrors)==null?void 0:o.call(l))??[]}}),(l,o)=>(e.openBlock(),e.createBlock(q,{modelValue:a.value,"onUpdate:modelValue":o[0]||(o[0]=u=>a.value=u),type:"password",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),pe=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=n,t=e.useModel(n,"modelValue"),l=e.ref(null),o=e.ref(null),u=e.ref(!1),i=e.ref([]),y=e.ref(""),d=e.ref(1),c=e.computed(()=>t.value.interface??"popover"),f=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),s=e.computed(()=>i.value.filter(V=>!!V.isChecked)),m=e.computed(()=>!y.value&&D(s.value)&&!u.value?t.value.placeholder??"Select an option":"");e.watch([y,()=>t.value.options],N,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,xe,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!a.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(C=>{var B;return(B=a.schema[C])==null?void 0:B.value}),async(V,C)=>{V&&C&&!M(V,C)&&(h(),i.value=[],await N())},{deep:!0});function h(){t.value.error="",y.value="",d.value=1,t.value.value=t.value.multiple?[]:"",le(i.value)}function g(V){if(V.isChecked)return H(V,i.value);t.value.multiple?E(V,i.value):(h(),E(V,i.value),R()),y.value=""}function p(){switch(c.value){case"action-sheet":x();break;case"alert":b();break;case"popover":default:u.value=!0;break}}async function x(){if(await N(),t.value.multiple){u.value=!0;return}await(await k.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...i.value.map(C=>({text:C.label,cssClass:C.isChecked?"selected-option":"",handler:()=>(g(C),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function b(){await N();const V=i.value.map(B=>({label:B.label,type:t.value.multiple?"checkbox":"radio",value:B,checked:B.isChecked}));await(await k.alertController.create({header:t.value.label||"Select an option",inputs:V,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:B=>{if(t.value.multiple)i.value.forEach(_=>H(_,i.value)),B.forEach(_=>{const A=i.value.find(U=>U.value===_.value);A&&E(A,i.value)});else{h();const _=i.value.find(A=>A.value===B.value);_&&E(_,i.value)}R()}}]})).present()}async function I(){if(t.value.required&&D(s.value))return"This field is required";if(t.value.validation){const V=await t.value.validation(s.value,a==null?void 0:a.schema);if(V&&V.length)return V.join()}return!0}const{onFocus:O,applyValidationState:F}=S(l,t,e.computed(()=>t.value.multiple?s.value:s.value[0]),e.computed(()=>a==null?void 0:a.schema),I);function T(V){var C;V.target===((C=l.value)==null?void 0:C.$el)&&(O(),c.value==="popover"&&(u.value=!0))}async function R(V){var B;if((B=V==null?void 0:V.relatedTarget)!=null&&B.closest(".suggestions-list"))return;u.value=!1;const C=await I();C===!0?(t.value.error="",t.value.value=t.value.multiple?s.value:s.value[0]):t.value.error=typeof C=="string"?C:"Validation failed",await F(C===!0)}async function N(){const V=[];if(typeof t.value.options=="function"){let C={};t.value.dependsOn&&a.schema&&(C=(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).reduce((A,U)=>{var Q;return A[U]=(Q=a.schema[U])==null?void 0:Q.value,A},{}));const B=await t.value.options(y.value,C);V.push(...B.filter(_=>!!_.label))}else Array.isArray(t.value.options)&&V.push(...oe(t.value.options,y.value));s.value.forEach(C=>E(C,V)),i.value=V}function xe(){const V=t.value.value;V&&(Array.isArray(V)?V.forEach(C=>E(C,i.value)):E(typeof V=="object"?V:{value:V,label:V},i.value))}return e.onMounted(()=>{N()}),r({onValueUpdate:R,onReset:h,getErrors:()=>t.value.error?[t.value.error]:[]}),(V,C)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:R,ref_key:"containerRef",ref:o},[e.createVNode(e.unref(k.IonInput),{ref_key:"inputRef",ref:l,modelValue:y.value,"onUpdate:modelValue":C[0]||(C[0]=B=>y.value=B),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:n.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:m.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:T,debounce:300,onClick:p},{default:e.withCtx(()=>[e.createVNode(v,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(k.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(B,_)=>(e.openBlock(),e.createBlock(e.unref(k.IonChip),{key:_},{default:e.withCtx(()=>[e.createVNode(e.unref(k.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(k.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var B;return[e.createTextVNode(e.toDisplayString(((B=s.value[0])==null?void 0:B.label)??""),1)]}),_:1})),e.createVNode(e.unref(k.IonIcon),{slot:"end",icon:e.unref(L.chevronDown)},null,8,["icon"]),s.value.length>0||y.value?(e.openBlock(),e.createBlock(e.unref(k.IonIcon),{key:2,slot:"end",icon:e.unref(L.close),onClick:h,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),u.value&&i.value.length>0&&c.value==="popover"?(e.openBlock(),e.createBlock(e.unref(k.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,B=>(e.openBlock(),e.createBlock(e.unref(k.IonItem),{button:"",key:B.label,onClick:_=>g(B)},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(k.IonCheckbox),{key:0,slot:"start",checked:B.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(k.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.label),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),Z=(n,r)=>{const a=n.__vccOpts||n;for(const[t,l]of r)a[t]=l;return a},me=Z(pe,[["__scopeId","data-v-4766dec2"]]),he=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=n,t=e.useModel(n,"modelValue"),l=e.ref(null),o=e.ref(t.value.value),u=e.computed(()=>a.schema),{onValueUpdate:i,onFocus:y,onReset:d,getErrors:c}=S(l,t,o,u);return e.watch(()=>t.value.value,f=>o.value=f),r({onReset:d,onValueUpdate:i,getErrors:c}),(f,s)=>(e.openBlock(),e.createBlock(e.unref(k.IonTextarea),{ref_key:"inputRef",ref:l,modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=m=>o.value=m),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,rows:t.value.rows,cols:t.value.cols,"auto-grow":t.value.autoGrow,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(y),onIonChange:e.unref(i),onIonBlur:e.unref(i)},{default:e.withCtx(()=>[e.createVNode(v,{model:t.value},null,8,["model"])]),_:1},8,["modelValue","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),ye={class:"ion-margin-end",style:{"flex-grow":"1"}},ke={style:{display:"flex","justify-content":"flex-end"}},Ve=Z(e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=e.useModel(n,"modelValue"),t=e.ref([]),{dynamicRefs:l,resetForm:o,getFormErrors:u,updateFormValues:i}=P(),y=e.computed(()=>t.value.map((h,g)=>({label:`Set ${g+1}`,value:g,other:Object.entries(h).reduce((p,[x,b])=>(p[x]=b.value,p),{})})));e.watch(y,h=>{a.value.value=h},{deep:!0,immediate:!0}),e.onMounted(d);function d(){a.value.children&&t.value.push(j(a.value.children))}function c(h){t.value.splice(h,1)}function f(){o()}function s(){return u()}async function m(){await i()}return r({onValueUpdate:m,onReset:f,getErrors:s}),(h,g)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(p,x)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:x},[e.createElementVNode("div",ye,[e.createVNode(e.unref(k.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(p),b=>{var I,O,F,T,R;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(z)(p[b],h.data,h.computedData)?(e.openBlock(),e.createBlock(e.unref(k.IonCol),{key:`${x}-${b}`,size:((I=p[b].grid)==null?void 0:I.xs)??"12","size-sm":(O=p[b].grid)==null?void 0:O.sm,"size-md":(F=p[b].grid)==null?void 0:F.md,"size-lg":(T=p[b].grid)==null?void 0:T.lg,"size-xl":(R=p[b].grid)==null?void 0:R.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p[b].type),{modelValue:p[b],"onUpdate:modelValue":N=>p[b]=N,schema:p,"ref-key":`${x}-${b}`,ref_for:!0,ref_key:"dynamicRefs",ref:l},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",ke,[x===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(k.IonButton),{key:0,onClick:d,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.IonIcon),{slot:"icon-only",icon:e.unref(L.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(k.IonButton),{key:1,onClick:b=>c(x),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(k.IonIcon),{slot:"icon-only",icon:e.unref(L.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),[["__scopeId","data-v-060bdf58"]]),ge=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=n,t=e.useModel(n,"modelValue"),l=e.ref(null),o=e.ref(t.value.value),u=e.computed(()=>a.schema),i=e.computed(()=>K(t.value)),{onValueUpdate:y,onFocus:d,getErrors:c}=S(l,t,o,u);function f(){o.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,s=>o.value=s),r({onValueUpdate:y,onReset:f,getErrors:c}),(s,m)=>(e.openBlock(),e.createBlock(e.unref(k.IonCheckbox),{modelValue:o.value,"onUpdate:modelValue":m[0]||(m[0]=h=>o.value=h),ref_key:"inputRef",ref:l,required:t.value.required,"error-text":t.value.error,disabled:t.value.disabled,onIonFocus:e.unref(d),onIonChange:e.unref(y),onIonBlur:e.unref(y)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value),1)]),_:1},8,["modelValue","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Ce=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const a=n,t=e.useModel(n,"modelValue"),l=e.ref(null),o=e.ref(t.value.value),u=e.computed(()=>a.schema),i=e.ref([]),y=e.computed(()=>K(t.value)),{onValueUpdate:d,onFocus:c,getErrors:f}=S(l,t,o,u);function s(){t.value.error="",o.value=void 0,t.value.value=void 0}function m(g,p){return g.value===p.value}async function h(){typeof t.value.options=="function"?i.value=await t.value.options():i.value=t.value.options}return e.watch(()=>t.value.value,g=>o.value=g),r({onValueUpdate:d,onReset:s,getErrors:f}),e.onMounted(h),(g,p)=>(e.openBlock(),e.createBlock(e.unref(k.IonRadioGroup),{modelValue:o.value,"onUpdate:modelValue":p[0]||(p[0]=x=>o.value=x),ref_key:"inputRef",ref:l,required:t.value.required,"helper-text":y.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:m,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(c),onIonChange:e.unref(d),onIonBlur:e.unref(d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,x=>(e.openBlock(),e.createBlock(e.unref(k.IonRadio),{key:x.value,value:x,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["modelValue","required","helper-text","error-text","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"]))}});function Be(n,r,a){const t=e.ref({}),l=e.ref({});function o(c,f,s){l.value[c]=s,f.forEach(m=>{var h;(h=t.value)[m]??(h[m]=[]),t.value[m].includes(c)||t.value[m].push(c)}),d(c)}function u(c){return Object.entries(t.value).filter(([,s])=>s.includes(c)).map(([s])=>s).reduce((s,m)=>(s[m]=r.value[m]??a.value[m],s),{})}function i(c,f){return c?Array.isArray(c)?c.some(s=>f.some(m=>y(s,m.value))):f.some(s=>y(c,s.value)):!1}function y(c,f){return typeof c=="object"&&c!==null?c.value===f:String(c)===String(f)}async function d(c,f){if(!l.value[c])return;const s=u(c),m=Object.keys(s);if(!(m.length===0||!m.every(g=>s[g]!==void 0&&s[g]!==null)))try{const g=l.value[c],p=await g(f,s);if(!n.value[c])return;n.value[c].options=p;const x=n.value[c].value;if(!x)return;i(x,p)||(n.value[c].value=n.value[c].multiple?[]:"")}catch(g){console.error(`Error loading options for ${c}:`,g)}}return e.watch([r,a],()=>{Object.entries(t.value).forEach(([c,f])=>{(r.value[c]!==void 0||a.value[c]!==void 0)&&f.forEach(s=>{d(s)})})},{deep:!0,immediate:!0}),{registerDependency:o,updateOptions:d}}const J={install(n){n.component("VForm",ae),n.component("TextInput",ce),n.component("DateInput",ie),n.component("NumberInput",ue),n.component("EmailInput",de),n.component("PasswordInput",fe),n.component("SelectInput",me),n.component("TextAreaInput",he),n.component("RepeatInput",Ve),n.component("CheckboxInput",ge),n.component("RadioInput",Ce),n.directive("maskito",X.maskito)}};w.VForm=J,w.default=J,w.useDataTransformation=W,w.useDependentOptions=Be,w.useFormValidation=P,w.useInputValidation=S,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|