@uniquedj95/vform 3.7.0 → 3.7.1

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/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(E,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):(E=typeof globalThis<"u"?globalThis:E||self,e(E.VForm={},E.Vue,E.IonicVue,E.IoniconsIcons,E.MaskitoVue))})(this,function(E,e,C,Z,be){"use strict";function Be(l){return new Promise(r=>{requestAnimationFrame(async()=>{const n=await l.getInputElement();r(n)})})}const we={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},Se={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 _e(l,r){const n=Se[l];return n[r%n.length]}function xe(l){const r=[];let n="",t=0,o=0;for(;t<l.length;){const s=l[t];if(["d","a","*"].includes(s)){let i=1;if(l[t+1]==="{"){const a=l.indexOf("}",t+2);if(a!==-1){const h=l.slice(t+2,a);if(h.includes(",")){const[,p]=h.split(",").map(u=>parseInt(u.trim()));i=p||parseInt(h.split(",")[0])}else i=parseInt(h);t=a}}else{let a=t+1;for(;l[a]===s;)i++,a++;t=a-1}for(let a=0;a<i;a++)r.push(we[s]),n+=_e(s,o++)}else r.push(s),n+=s;t++}return{mask:r,placeholder:n,elementPredicate:Be}}function Y(l){return l==null||Array.isArray(l)&&!l.length||typeof l=="object"&&!Object.keys(l).length||!l}function J(l,r,n){return typeof l.condition=="function"?l.condition(r,n):!0}function ee(l){if(typeof l!="object"||l===null)return l;if(Array.isArray(l))return l.map(n=>ee(n));const r={};return Object.entries(l).forEach(([n,t])=>{typeof t=="function"?r[n]=t.bind(r):r[n]=ee(t)}),r}function te(l,r){return r.findIndex(n=>n.value===l.value||n.label===l.label||n.value===l.label||n.label===l.value)}function L(l,r){const n=te(l,r);n>=0?r[n].isChecked=!0:r.push({...l,isChecked:!0})}function Ne(l,r){const n=te(l,r);n>=0&&(r[n].isChecked=!1)}function Ee(l){l.forEach(r=>{r.isChecked=!1})}function oe(l){return!!l.description}function Ie(l,r){return r?l.filter(n=>JSON.stringify(n).toLowerCase().includes(r.toLowerCase())):l}function ze(l){const r=l.label||"",n=l.required?" *":"";return r+n}function H(l,r){if(l===r)return!0;if(l==null||r==null||typeof l!=typeof r)return!1;if(typeof l!="object")return l===r;if(Array.isArray(l)&&Array.isArray(r))return l.length!==r.length?!1:l.every((o,s)=>H(o,r[s]));if(Array.isArray(l)!==Array.isArray(r))return!1;const n=Object.keys(l),t=Object.keys(r);return n.length!==t.length?!1:n.every(o=>Object.hasOwn(r,o)&&H(l[o],r[o]))}function R(l){return l.type!=="FormSection"}function le(){const l=e.ref([]);async function r(){console.debug("Validating form inputs");const s=[];for(const i of l.value)if(typeof(i==null?void 0:i.onValueUpdate)=="function"&&await i.onValueUpdate(),typeof(i==null?void 0:i.getErrors)=="function")try{const a=i.getErrors();Array.isArray(a)?s.push(...a):console.warn("getErrors() returned non-array value:",a)}catch(a){console.error("Error calling getErrors on component:",a,i)}else console.warn("Component does not have getErrors function:",i);return s.every(Y)}function n(){l.value.forEach(s=>{typeof(s==null?void 0:s.onReset)=="function"&&s.onReset()})}function t(){const s=[];for(const i of l.value)if(typeof(i==null?void 0:i.getErrors)=="function")try{const a=i.getErrors();Array.isArray(a)?s.push(...a):s.push(String(a))}catch(a){console.error("Error calling getErrors on component:",a,i)}return s}async function o(){for(const s of l.value)typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate()}return{dynamicRefs:l,isFormValid:r,resetForm:n,getFormErrors:t,updateFormValues:o}}function ae(l){const r=e.computed(()=>Object.entries(l.value).reduce((p,[u,m])=>(R(m)&&m.value!==void 0&&(p[u]=m.value),p),{})),n=e.ref({}),t=(p,u,m)=>{const f=l.value[p];if(R(f)&&f.children){const d=f.children[u];if(d&&R(d)&&typeof d.computedValue=="function")return d.computedValue(m,l.value)}return m},o=(p,u,m,f)=>{n.value[p][f]||(n.value[p][f]={}),Object.entries(u.other??{}).forEach(([d,V])=>{var B;!H(V,(B=m.other)==null?void 0:B[d])&&(n.value[p][f][d]=t(p,d,V))})},s=(p,u,m)=>{u.forEach((f,d)=>{const V=m[d]??{other:{}};o(p,f,V,d)})},i=(p,{other:u})=>Object.entries(u??{}).reduce((m,[f,d])=>(m[f]=t(p,f,d),m),{}),a=(p,u,m)=>{n.value[p]||(n.value[p]=[]);const f=u;Array.isArray(m[p])?s(p,f,m[p]):n.value[p]=f.map(d=>i(p,d))},h=(p,u,m)=>{if(!u){delete n.value[p];return}const f=l.value[p];R(f)&&(typeof f.onChange=="function"&&f.onChange(u,l.value),f.children!==void 0?a(p,u,m):typeof f.computedValue=="function"&&(n.value[p]=f.computedValue(u,l.value)))};return e.watch(r,(p,u={})=>{Object.keys(p).forEach(m=>{H(p[m],u[m])||h(m,p[m],u)}),Object.keys(u).forEach(m=>{!(m in p)&&m in n.value&&delete n.value[m]})},{immediate:!0,deep:!0}),{formData:r,computedData:n}}function re(l){const r=e.ref(0),n=e.ref({}),t=e.ref({}),o=e.ref({});function s(g){const x={};return g.component||!g.schema||Object.entries(g.schema).forEach(([k,b])=>{R(b)&&(x[k]=b.value)}),x}l.steps.forEach(g=>{n.value[g.id]=s(g),t.value[g.id]={},o.value[g.id]=[]});const i=e.ref(l.steps.map(g=>g.id)),a=e.computed(()=>l.steps.filter(x=>x.condition?x.condition(n.value,t.value):!0));e.watch(a,g=>{const x=g.map(b=>b.id);i.value.filter(b=>!x.includes(b)).forEach(b=>{S(b)}),i.value=x});const h=e.computed(()=>a.value.length>0?r.value>=a.value.length?a.value[a.value.length-1]:a.value[r.value]:l.steps[r.value]),p=e.computed(()=>r.value===0),u=e.computed(()=>r.value===a.value.length-1),m=e.computed(()=>!u.value),f=e.computed(()=>!p.value),d=e.computed(()=>a.value.length),V=e.computed(()=>d.value===0?0:Math.round((r.value+1)/d.value*100));function y(g,x){n.value[g]={...n.value[g],...x}}function B(g,x){t.value[g]={...t.value[g],...x}}function S(g){const x=l.steps.find(k=>k.id===g);x&&(n.value[g]=s(x),t.value[g]={})}async function I(){const g=h.value;if(!g)return!0;const x=[];if(g.validation){const k=await g.validation(n.value[g.id],t.value[g.id]);k&&x.push(...k)}return o.value[g.id]=x,x.length===0}async function O(g){return g<0||g>=a.value.length||g>r.value&&!await I()?!1:(r.value=g,!0)}async function A(){return m.value?O(r.value+1):!1}async function M(){return f.value?O(r.value-1):!1}function P(){r.value=0,o.value={},l.steps.forEach(g=>{S(g.id),o.value[g.id]=[]})}async function U(){let g=!0;for(const x of l.steps)if(x.validation){const k=await x.validation(n.value[x.id],t.value[x.id]);o.value[x.id]=k||[],k&&k.length>0&&(g=!1)}return g}function F(){return{formData:{...n.value},computedData:{...t.value}}}return{currentStepIndex:r,currentStep:h,stepData:n,stepComputedData:t,stepValidationErrors:o,visibleSteps:a,isFirstStep:p,isLastStep:u,canGoNext:m,canGoPrevious:f,totalSteps:d,progressPercentage:V,updateStepData:y,updateStepComputedData:B,clearStepData:S,validateCurrentStep:I,goToStep:O,nextStep:A,previousStep:M,resetForm:P,validateAllSteps:U,getMultiStepFormData:F}}const Oe={class:"step-indicator__container"},Fe=["onClick"],De={class:"step-indicator__step-content"},Re={class:"step-indicator__step-marker"},Te={class:"step-indicator__step-info"},Ae={class:"step-indicator__step-title"},Me={key:0,class:"step-indicator__step-subtitle"},Pe={key:0,class:"step-indicator__progress"},Le={class:"step-indicator__progress-bar"},qe={class:"step-indicator__progress-text"},Ue=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(l,{emit:r}){const n=l,t=r,o=e.computed(()=>n.steps.length===0?0:(n.activeStepIndex+1)/n.steps.length*100);function s(i){n.allowNavigation&&t("step-click",i)}return(i,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${i.position}`,{"step-indicator--clickable":i.allowNavigation}]])},[e.createElementVNode("div",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.steps,(h,p)=>(e.openBlock(),e.createElementBlock("div",{key:h.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":p===i.activeStepIndex,"step-indicator__step--completed":p<i.activeStepIndex,"step-indicator__step--clickable":i.allowNavigation}]),onClick:u=>s(p)},[e.createElementVNode("div",De,[e.createElementVNode("div",Re,[e.createElementVNode("span",null,e.toDisplayString(p+1),1)]),e.createElementVNode("div",Te,[e.createElementVNode("div",Ae,e.toDisplayString(h.title),1),h.subtitle?(e.openBlock(),e.createElementBlock("div",Me,e.toDisplayString(h.subtitle),1)):e.createCommentVNode("",!0)])]),p<i.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":p<i.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,Fe))),128))]),i.showProgress&&(i.position==="top"||i.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("div",Le,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${o.value}%`})},null,4)]),e.createElementVNode("div",qe," Step "+e.toDisplayString(i.activeStepIndex+1)+" of "+e.toDisplayString(i.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),j=(l,r)=>{const n=l.__vccOpts||l;for(const[t,o]of r)n[t]=o;return n},Q=j(Ue,[["__scopeId","data-v-aca1a6d0"]]),q=e.defineComponent({__name:"ActionButton",props:{type:{type:String,default:"submit"},label:{type:String,required:!1}},setup(l){const r=e.inject("globalConfig"),n=l,t=e.computed(()=>{var o,s;return n.label??((s=(o=r==null?void 0:r.buttons)==null?void 0:o[n.type])==null?void 0:s.label)??n.type});return(o,s)=>{var i,a,h,p,u,m,f,d,V,y,B,S;return e.openBlock(),e.createBlock(e.unref(C.IonButton),{color:((h=(a=(i=e.unref(r))==null?void 0:i.buttons)==null?void 0:a[l.type])==null?void 0:h.color)??"primary",fill:((m=(u=(p=e.unref(r))==null?void 0:p.buttons)==null?void 0:u[l.type])==null?void 0:m.fill)??"solid",expand:(V=(d=(f=e.unref(r))==null?void 0:f.buttons)==null?void 0:d[l.type])==null?void 0:V.expand,size:((S=(B=(y=e.unref(r))==null?void 0:y.buttons)==null?void 0:B[l.type])==null?void 0:S.size)??"default"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]),_:1},8,["color","fill","expand","size"])}}}),se=e.defineComponent({__name:"CustomButton",props:{button:{type:Object,required:!0}},setup(l){return(r,n)=>(e.openBlock(),e.createBlock(e.unref(C.IonButton),{onClick:l.button.action,color:l.button.color??"primary",fill:l.button.fill??"solid",size:l.button.size??"default",expand:l.button.expand},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.button.label),1)]),_:1},8,["onClick","color","fill","size","expand"]))}}),ve={class:"v-form-container"},je={key:0,class:"multi-step-form"},Ge={class:"multi-step-form-content"},He={key:3,class:"step-progress-bottom"},$e={class:"step-progress-bar"},Ke={class:"step-progress-text"},ie=j(e.defineComponent({__name:"vForm",props:{schema:{},multiStepConfig:{},showLabels:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!0},buttonPlacement:{default:"start"},submitButtonText:{},clearButtonText:{},cancelButtonText:{},nextButtonText:{},previousButtonText:{},hideButtons:{type:Boolean,default:!1},customButtons:{}},emits:["submit","multi-step-submit","step-change","clear","cancel"],setup(l,{expose:r,emit:n}){const t=l,o=n,s=e.computed(()=>!!t.multiStepConfig),i=e.ref(t.schema||{}),a=t.multiStepConfig?re(t.multiStepConfig):null,{dynamicRefs:h,isFormValid:p,resetForm:u}=le(),{formData:m,computedData:f}=ae(i),d=e.ref(null),V=e.computed(()=>(a==null?void 0:a.currentStepIndex.value)??0),y=e.computed(()=>a==null?void 0:a.currentStep.value),B=e.computed(()=>(a==null?void 0:a.visibleSteps.value)??[]),S=e.computed(()=>(a==null?void 0:a.isLastStep.value)??!0),I=e.computed(()=>(a==null?void 0:a.canGoNext.value)??!1),O=e.computed(()=>(a==null?void 0:a.canGoPrevious.value)??!1),A=e.computed(()=>!s.value||!a?0:a.progressPercentage.value);e.watch(()=>y.value,c=>{c&&s.value&&(i.value=c.schema||{})},{immediate:!0}),e.watch([m,f],([c,_])=>{s.value&&a&&y.value&&(a.updateStepData(y.value.id,c),a.updateStepComputedData(y.value.id,_))},{deep:!0}),e.watch(()=>t.schema,c=>{if(!s.value&&c){i.value=c;for(const[_,N]of Object.entries(c))R(N)&&"value"in N&&N.value!==void 0&&(i.value[_].value=N.value)}},{deep:!0,immediate:!0});async function M(){var c;if(s.value&&a){if((c=y.value)!=null&&c.component&&d.value&&typeof d.value.validate=="function"&&!await d.value.validate()||!await a.validateAllSteps())return;const N=a.getMultiStepFormData();o("multi-step-submit",N)}else{if(!await p())return;o("submit",m.value,f.value)}}function P(){s.value&&a?a.resetForm():u(),o("clear")}function U(){s.value&&a&&y.value&&a.clearStepData(y.value.id)}function F(){s.value&&a?a.resetForm():u(),o("cancel")}async function g(){var c;if(s.value&&a){let _=!0;if((c=y.value)!=null&&c.component&&d.value?typeof d.value.validate=="function"&&(_=await d.value.validate()):_=await p(),!_)return;await a.nextStep()&&y.value&&o("step-change",V.value,y.value.id)}}async function x(){a&&await a.previousStep()&&y.value&&o("step-change",V.value,y.value.id)}async function k(c){var _;if(a){if(c>V.value){let z=!0;if((_=y.value)!=null&&_.component&&d.value?typeof d.value.validate=="function"&&(z=await d.value.validate()):z=await p(),!z)return}await a.goToStep(c)&&y.value&&o("step-change",c,y.value.id)}}e.watch(m,async()=>{var c;for(const[_,N]of Object.entries(i.value))if(!J(N,m.value,f.value)){const z=s.value&&y.value&&y.value.schema?y.value.schema[_]:(c=t.schema)==null?void 0:c[_];z&&R(z)&&"value"in z?N.value=z.value:N.value=void 0}},{deep:!0,immediate:!0});function b(c){s.value&&a&&y.value&&a.updateStepData(y.value.id,c)}return r({resetForm:P,isFormValid:p,resolveData:()=>s.value&&a?a.getMultiStepFormData():{formData:m.value,computedData:f.value},nextStep:g,previousStep:x,goToStep:k,getCurrentStep:()=>y.value,getCurrentStepIndex:()=>V.value}),(c,_)=>{var N,z;return e.openBlock(),e.createElementBlock("div",ve,[s.value?(e.openBlock(),e.createElementBlock("div",je,[c.multiStepConfig&&c.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(Q,{key:0,steps:B.value,"active-step-index":V.value,position:c.multiStepConfig.stepPosition||"top","show-progress":c.multiStepConfig.showProgress,"allow-navigation":c.multiStepConfig.allowStepNavigation,onStepClick:k},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["multi-step-content",`multi-step-content--${((N=c.multiStepConfig)==null?void 0:N.stepPosition)||"top"}`])},[c.multiStepConfig&&c.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(Q,{key:0,steps:B.value,"active-step-index":V.value,position:c.multiStepConfig.stepPosition??"top","show-progress":c.multiStepConfig.showProgress,"allow-navigation":c.multiStepConfig.allowStepNavigation,onStepClick:k,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",Ge,[(z=y.value)!=null&&z.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value.component),e.mergeProps({key:0},y.value.componentProps||{},{"onUpdate:data":b,ref_key:"customComponentRef",ref:d}),null,16)):(e.openBlock(),e.createBlock(e.unref(C.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(i.value),w=>{var D,T,v,K,W;return e.openBlock(),e.createElementBlock(e.Fragment,{key:w},[e.unref(J)(i.value[w],e.unref(m),e.unref(f))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((D=i.value[w].grid)==null?void 0:D.xs)??"12","size-sm":(T=i.value[w].grid)==null?void 0:T.sm,"size-md":(v=i.value[w].grid)==null?void 0:v.md,"size-lg":(K=i.value[w].grid)==null?void 0:K.lg,"size-xl":(W=i.value[w].grid)==null?void 0:W.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value[w].type),{modelValue:i.value[w],"onUpdate:modelValue":ne=>i.value[w]=ne,schema:i.value,"form-id":w,ref_for:!0,ref_key:"dynamicRefs",ref:h,"ref-key":w},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)}),128))]),_:1})]),_:1})),c.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(C.IonRow),{key:2},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:c.buttonPlacement}])},{default:e.withCtx(()=>[O.value?(e.openBlock(),e.createBlock(q,{key:0,type:"previous",label:c.previousButtonText,onClick:x},null,8,["label"])):e.createCommentVNode("",!0),c.showCancelButton?(e.openBlock(),e.createBlock(q,{key:1,type:"cancel",label:c.cancelButtonText,onClick:F},null,8,["label"])):e.createCommentVNode("",!0),c.showClearButton?(e.openBlock(),e.createBlock(q,{key:2,type:"clear",label:c.clearButtonText,onClick:U},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.customButtons,w=>(e.openBlock(),e.createBlock(se,{button:w,key:w.label},null,8,["button"]))),128)),I.value?(e.openBlock(),e.createBlock(q,{key:3,type:"next",label:c.nextButtonText,onClick:g},null,8,["label"])):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createBlock(q,{key:4,type:"submit",label:c.submitButtonText,onClick:M},null,8,["label"])):e.createCommentVNode("",!0)]),_:1},8,["style"])]),_:1})),c.multiStepConfig&&(c.multiStepConfig.stepPosition==="left"||c.multiStepConfig.stepPosition==="right")&&c.multiStepConfig.showProgress?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",$e,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${A.value}%`})},null,4)]),e.createElementVNode("div",Ke," Step "+e.toDisplayString(V.value+1)+" of "+e.toDisplayString(B.value.length),1)])):e.createCommentVNode("",!0)]),c.multiStepConfig&&c.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(Q,{key:1,steps:B.value,"active-step-index":V.value,position:c.multiStepConfig.stepPosition,"show-progress":c.multiStepConfig.showProgress,"allow-navigation":c.multiStepConfig.allowStepNavigation,onStepClick:k,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)],2),c.multiStepConfig&&c.multiStepConfig.stepPosition==="bottom"?(e.openBlock(),e.createBlock(Q,{key:1,steps:B.value,"active-step-index":V.value,position:c.multiStepConfig.stepPosition,"show-progress":c.multiStepConfig.showProgress,"allow-navigation":c.multiStepConfig.allowStepNavigation,onStepClick:k},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(e.unref(C.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(i.value),w=>{var D,T,v,K,W;return e.openBlock(),e.createElementBlock(e.Fragment,{key:w},[e.unref(J)(i.value[w],e.unref(m),e.unref(f))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((D=i.value[w].grid)==null?void 0:D.xs)??"12","size-sm":(T=i.value[w].grid)==null?void 0:T.sm,"size-md":(v=i.value[w].grid)==null?void 0:v.md,"size-lg":(K=i.value[w].grid)==null?void 0:K.lg,"size-xl":(W=i.value[w].grid)==null?void 0:W.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value[w].type),{modelValue:i.value[w],"onUpdate:modelValue":ne=>i.value[w]=ne,schema:i.value,"form-id":w,ref_for:!0,ref_key:"dynamicRefs",ref:h,"ref-key":w,style:{width:"100%"}},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)}),128))]),_:1}),c.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(C.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:c.buttonPlacement}])},{default:e.withCtx(()=>[c.showCancelButton?(e.openBlock(),e.createBlock(q,{key:0,type:"cancel",label:c.cancelButtonText,onClick:F},null,8,["label"])):e.createCommentVNode("",!0),c.showClearButton?(e.openBlock(),e.createBlock(q,{key:1,type:"clear",label:c.clearButtonText,onClick:P},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.customButtons,w=>(e.openBlock(),e.createBlock(se,{button:w,key:w.label},null,8,["button"]))),128)),e.createVNode(q,{type:"submit",label:c.submitButtonText,onClick:M},null,8,["label"])]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),[["__scopeId","data-v-51c0c409"]]);function We(l){return{applyValidationState:async t=>{var o,s,i,a,h;(o=l.value)==null||o.$el.classList.remove("ion-invalid"),(s=l.value)==null||s.$el.classList.remove("ion-valid"),t?(i=l.value)==null||i.$el.classList.add("ion-valid"):(a=l.value)==null||a.$el.classList.add("ion-invalid"),(h=l.value)==null||h.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,o;(t=l.value)==null||t.$el.classList.remove("ion-touched"),(o=l.value)==null||o.$el.classList.remove("ion-invalid")}}}function G(l,r,n,t,o){const{applyValidationState:s,resetValidationState:i}=We(l),a=e.inject("globalConfig");async function h(){var d;if(r.value.required&&!n.value)return r.value.error=((d=a==null?void 0:a.errorMessages)==null?void 0:d.required)??"This field is required",!1;if(o){const V=await o(n.value);if(typeof V=="string")return r.value.error=V,!1;if(V===!1)return!1}if(r.value.validation){const V=await r.value.validation(n.value,t==null?void 0:t.value);if(V!=null&&V.length)return r.value.error=V.join(),!1}return!0}async function p(){const d=await h();d&&(r.value.error="",r.value.value=n.value),await s(d)}function u(){i(),r.value.error=""}function m(d=""){n.value=d,r.value.error="",r.value.value=d}function f(){return r.value.error?[r.value.error]:[]}return{isValid:h,onValueUpdate:p,onFocus:u,onReset:m,getErrors:f,applyValidationState:s,resetValidationState:i}}function Ze(l){const r=e.computed(()=>!!l.value.label),n=e.computed(()=>!!l.value.required),t=e.computed(()=>l.value.label||"");return{showLabel:r,showRequired:n,labelText:t}}const X=e.defineComponent({__name:"InputLabel",props:{model:{},slotName:{}},setup(l){const r=l,{showLabel:n,showRequired:t,labelText:o}=Ze(e.toRef(r,"model"));return(s,i)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:0,slot:s.slotName,class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>i[0]||(i[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1},8,["slot"])):e.createCommentVNode("",!0)}}),$=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),i=e.computed(()=>n.schema),{isValid:a,onValueUpdate:h,onFocus:p,onReset:u,getErrors:m}=G(o,t,s,i),f=e.computed(()=>{if(t.value.pattern)return xe(t.value.pattern)});return e.watch(()=>t.value.value,d=>s.value=d),r({onValueUpdate:h,onReset:u,getErrors:m,isValid:a}),(d,V)=>{var B;const y=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(C.IonInput),{ref_key:"inputRef",ref:o,modelValue:s.value,"onUpdate:modelValue":V[0]||(V[0]=S=>s.value=S),class:e.normalizeClass(t.value.className),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:d.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((B=f.value)==null?void 0:B.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,style:{width:"100%"},onIonFocus:e.unref(p),onIonChange:e.unref(h),onIonBlur:e.unref(h)},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(C.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(C.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),d.type==="password"?(e.openBlock(),e.createBlock(e.unref(C.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","class","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[y,f.value]])}}}),ce=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=e.useModel(l,"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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock($,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),type:"text",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ue=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=e.useModel(l,"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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock($,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),type:n.value.enableTime?"datetime-local":"date",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),de=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=e.useModel(l,"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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock($,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),type:"number",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),pe=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=e.useModel(l,"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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock($,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),type:"email",schema:o.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(l,{expose:r}){const n=e.useModel(l,"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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock($,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=i=>n.value=i),type:"password",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Je={class:"option-content"},me=j(e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(null),i=e.ref(!1),a=e.ref([]),h=e.ref(""),p=e.ref(1),u=e.inject("globalConfig"),m=e.computed(()=>t.value.interface??"popover"),f=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),d=e.computed(()=>a.value.filter(k=>!!k.isChecked)),V=e.computed(()=>!h.value&&Y(d.value)&&!i.value?t.value.placeholder??"Select an option":"");e.watch([h,()=>t.value.options],g,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,x,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!n.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(b=>{const c=n.schema[b];return R(c)?c.value:void 0}),async(k,b)=>{k&&b&&!H(k,b)&&(y(),a.value=[],await g())},{deep:!0});function y(){t.value.error="",h.value="",p.value=1,t.value.value=t.value.multiple?[]:"",Ee(a.value)}function B(k){if(k.disabled)return;const b=a.value.findIndex(c=>c.value===k.value&&c.isChecked);if(b>=0){if(Array.isArray(t.value.value)){const c=te(k,t.value.value);c>=0&&t.value.value.splice(c,1)}a.value[b].isChecked=!1}else t.value.multiple||y(),L(k,a.value);F(),h.value=""}function S(){switch(m.value){case"action-sheet":I();break;case"alert":O();break;case"popover":default:i.value=!0;break}}async function I(){var b,c;if(await g(),t.value.multiple){i.value=!0;return}await(await C.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...a.value.map(_=>{let N="";return _.isChecked?N="selected-option":_.disabled&&(N="disabled-option"),{text:_.label,cssClass:N,handler:()=>(B(_),!1),disabled:_.disabled}}),{text:((c=(b=u==null?void 0:u.buttons)==null?void 0:b.cancel)==null?void 0:c.label)??"Cancel",role:"cancel"}]})).present()}async function O(){var c,_,N,z;await g();const k=a.value.map(w=>({label:w.label,type:t.value.multiple?"checkbox":"radio",value:w,checked:w.isChecked,disabled:w.disabled}));await(await C.alertController.create({header:t.value.label||"Select an option",inputs:k,buttons:[{text:((_=(c=u==null?void 0:u.buttons)==null?void 0:c.cancel)==null?void 0:_.label)??"Cancel",role:"cancel"},{text:((z=(N=u==null?void 0:u.buttons)==null?void 0:N.ok)==null?void 0:z.label)??"OK",handler:w=>{if(t.value.multiple)a.value.forEach(D=>Ne(D,a.value)),w.forEach(D=>{const T=a.value.find(v=>v.value===D.value);T&&L(T,a.value)});else{y();const D=a.value.find(T=>T.value===w.value);D&&L(D,a.value)}F()}}]})).present()}async function A(){var k;if(t.value.required&&Y(d.value))return((k=u==null?void 0:u.errorMessages)==null?void 0:k.required)??"This field is required";if(t.value.validation){const b=await t.value.validation(d.value,n==null?void 0:n.schema);if(b&&b.length)return b.join()}return!0}const{onFocus:M,applyValidationState:P}=G(o,t,e.computed(()=>t.value.multiple?d.value:d.value[0]),e.computed(()=>n==null?void 0:n.schema),A);function U(k){var b;k.target===((b=o.value)==null?void 0:b.$el)&&(M(),m.value==="popover"&&(i.value=!0))}async function F(k){var c;if((c=k==null?void 0:k.relatedTarget)!=null&&c.closest(".suggestions-list"))return;i.value=!1;const b=await A();b===!0?(t.value.error="",t.value.value=t.value.multiple?d.value:d.value[0]):t.value.error=typeof b=="string"?b:"Validation failed",await P(b===!0)}async function g(){const k=[];if(typeof t.value.options=="function"){let b={};if(t.value.dependsOn&&n.schema){const c=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let _=!0;if(b=c.reduce((N,z)=>{const w=n.schema[z];return N[z]=R(w)?w.value:void 0,(N[z]===void 0||N[z]===null||N[z]==="")&&(_=!1),N},{}),_){const N=await t.value.options(h.value,b);k.push(...N.filter(z=>!!z.label))}}else{const c=await t.value.options(h.value,{});k.push(...c.filter(_=>!!_.label))}}else Array.isArray(t.value.options)&&k.push(...Ie(t.value.options,h.value));d.value.forEach(b=>L(b,k)),a.value=k}async function x(){const k=t.value.value;if(k){if(a.value.length===0&&await g(),Array.isArray(k))k.forEach(b=>L(b,a.value));else if(typeof k=="object")L(k,a.value);else{const b=a.value.find(c=>c.value===k);L(b||{value:k,label:k},a.value)}F()}}return e.onMounted(async()=>{await g(),await x()}),r({onValueUpdate:F,onReset:y,getErrors:()=>t.value.error?[t.value.error]:[]}),(k,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["autocomplete-container",t.value.className]),onFocusout:F,ref_key:"containerRef",ref:s},[e.createVNode(e.unref(C.IonInput),{ref_key:"inputRef",ref:o,modelValue:h.value,"onUpdate:modelValue":b[0]||(b[0]=c=>h.value=c),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:l.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:V.value,disabled:t.value.disabled,counter:t.value.counter,debounce:300,onIonFocus:U,onClick:S,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(c,_)=>(e.openBlock(),e.createBlock(e.unref(C.IonChip),{key:_},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var c;return[e.createTextVNode(e.toDisplayString(((c=d.value[0])==null?void 0:c.label)??""),1)]}),_:1})),e.createVNode(e.unref(C.IonIcon),{slot:"end",icon:e.unref(Z.chevronDown)},null,8,["icon"]),d.value.length>0||h.value?(e.openBlock(),e.createBlock(e.unref(C.IonIcon),{key:2,slot:"end",icon:e.unref(Z.close),onClick:y,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),i.value&&a.value.length>0&&m.value==="popover"?(e.openBlock(),e.createBlock(e.unref(C.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,c=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{button:"",key:c.label,onClick:_=>B(c),lines:t.value.showOptionsSeparator?"none":"full",disabled:c.disabled,class:e.normalizeClass({"ion-item-disabled":c.disabled})},{default:e.withCtx(()=>{var _;return[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{key:0,slot:"start",checked:c.isChecked,disabled:c.disabled},null,8,["checked","disabled"])):e.createCommentVNode("",!0),e.createElementVNode("div",Je,[e.createVNode(e.unref(C.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1024),e.unref(oe)(c)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(_=c.description)==null?void 0:_.color,class:"option-description"},{default:e.withCtx(()=>{var N;return[e.createTextVNode(e.toDisplayString((N=c.description)==null?void 0:N.text),1)]}),_:2},1032,["color"])):e.createCommentVNode("",!0)])]}),_:2},1032,["onClick","lines","disabled","class"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],34))}}),[["__scopeId","data-v-312c51dd"]]),he=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),i=e.computed(()=>n.schema),{onValueUpdate:a,onFocus:h,onReset:p,getErrors:u}=G(o,t,s,i);return e.watch(()=>t.value.value,m=>s.value=m),r({onReset:p,onValueUpdate:a,getErrors:u}),(m,f)=>(e.openBlock(),e.createBlock(e.unref(C.IonTextarea),{ref_key:"inputRef",ref:o,modelValue:s.value,"onUpdate:modelValue":f[0]||(f[0]=d=>s.value=d),class:e.normalizeClass(t.value.className),"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(h),onIonChange:e.unref(a),onIonBlur:e.unref(a),style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"])]),_:1},8,["modelValue","class","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),Qe={class:"button-container"},ye=j(e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=e.useModel(l,"modelValue"),t=e.ref([]),{dynamicRefs:o,resetForm:s,getFormErrors:i,updateFormValues:a}=le(),h=e.computed(()=>t.value.map((V,y)=>({label:`Set ${y+1}`,value:y,other:Object.entries(V).reduce((B,[S,I])=>(R(I)&&(B[S]=I.value),B),{})})));e.watch(h,V=>{n.value.value=V},{deep:!0,immediate:!0}),e.onMounted(p);function p(){n.value.children&&t.value.push(ee(n.value.children))}function u(V){t.value.splice(V,1)}function m(){s()}function f(){return i()}async function d(){await a()}return r({onValueUpdate:d,onReset:m,getErrors:f}),(V,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(B,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["repeat-input-wrapper",n.value.className]),key:S},[e.createVNode(e.unref(C.IonRow),{class:"repeat-row"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"11",class:"form-fields-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),{class:"fields-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(B),I=>{var O,A,M,P,U;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(J)(B[I],V.data,V.computedData)?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:`${S}-${I}`,size:((O=B[I].grid)==null?void 0:O.xs)??"12","size-sm":(A=B[I].grid)==null?void 0:A.sm,"size-md":(M=B[I].grid)==null?void 0:M.md,"size-lg":(P=B[I].grid)==null?void 0:P.lg,"size-xl":(U=B[I].grid)==null?void 0:U.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B[I].type),{modelValue:B[I],"onUpdate:modelValue":F=>B[I]=F,schema:B,"ref-key":`${S}-${I}`,ref_for:!0,ref_key:"dynamicRefs",ref:o,style:{width:"100%"}},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)]),_:2},1024),e.createVNode(e.unref(C.IonCol),{size:"1",class:"button-column"},{default:e.withCtx(()=>[e.createElementVNode("div",Qe,[S===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(C.IonButton),{key:0,onClick:p,color:"primary",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonIcon),{slot:"icon-only",icon:e.unref(Z.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(C.IonButton),{key:1,onClick:I=>u(S),color:"warning",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonIcon),{slot:"icon-only",icon:e.unref(Z.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024)],2))),128))}}),[["__scopeId","data-v-0eb7594d"]]),ke=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),i=e.computed(()=>n.schema),a=e.computed(()=>ze(t.value)),{onValueUpdate:h,onFocus:p,getErrors:u}=G(o,t,s,i);function m(){s.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,f=>s.value=f),r({onValueUpdate:h,onReset:m,getErrors:u}),(f,d)=>(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=V=>s.value=V),ref_key:"inputRef",ref:o,justify:"start",class:e.normalizeClass(t.value.className),required:t.value.required,"error-text":t.value.error,disabled:t.value.disabled,onIonFocus:e.unref(p),onIonChange:e.unref(h),onIonBlur:e.unref(h),style:{width:"100%"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["modelValue","class","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Xe={class:"radio-content"},Ye={class:"radio-label"},ge=j(e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),i=e.computed(()=>n.schema),a=e.ref([]),{onValueUpdate:h,onFocus:p,getErrors:u,isValid:m}=G(o,t,s,i);function f(){t.value.error="",s.value=void 0,t.value.value=void 0}function d(y,B){return(y==null?void 0:y.value)===(B==null?void 0:B.value)}async function V(){typeof t.value.options=="function"?a.value=await t.value.options():a.value=t.value.options}return e.watch(()=>t.value.value,y=>s.value=y),r({onValueUpdate:h,onReset:f,getErrors:u,isValid:m}),e.onMounted(V),(y,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(X,{model:t.value},null,8,["model"]),B[1]||(B[1]=e.createElementVNode("br",null,null,-1)),t.value.error?(e.openBlock(),e.createBlock(e.unref(C.IonNote),{key:0,color:"danger"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.error),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(C.IonItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRadioGroup),{modelValue:s.value,"onUpdate:modelValue":B[0]||(B[0]=S=>s.value=S),class:e.normalizeClass(t.value.className),required:t.value.required,disabled:t.value.disabled,compareWith:d,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(p),onIonChange:e.unref(h),onIonBlur:e.unref(h),style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,S=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{key:S.value,lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRadio),{value:S,disabled:t.value.disabled||S.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>{var I;return[e.createElementVNode("div",Xe,[e.createElementVNode("div",Ye,e.toDisplayString(S.label),1),e.unref(oe)(S)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(I=S.description)==null?void 0:I.color,class:"radio-description"},{default:e.withCtx(()=>{var O;return[e.createTextVNode(e.toDisplayString((O=S.description)==null?void 0:O.text),1)]}),_:2},1032,["color"])):e.createCommentVNode("",!0)])]}),_:2},1032,["value","disabled"])]),_:2},1032,["lines"]))),128))]),_:1},8,["modelValue","class","required","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"])]),_:1})],64))}}),[["__scopeId","data-v-a25d68e7"]]),et={class:"form-section-header"},tt={class:"form-section-title"},lt={key:0,class:"form-section-subtitle"},Ce=j(e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(l){const n=l.modelValue;return(t,o)=>{var s,i,a,h,p;return e.openBlock(),e.createBlock(e.unref(C.IonCol),{size:((s=e.unref(n).grid)==null?void 0:s.xs)??"12","size-sm":(i=e.unref(n).grid)==null?void 0:i.sm,"size-md":(a=e.unref(n).grid)==null?void 0:a.md,"size-lg":(h=e.unref(n).grid)==null?void 0:h.lg,"size-xl":(p=e.unref(n).grid)==null?void 0:p.xl,class:e.normalizeClass(["form-section-container",e.unref(n).className])},{default:e.withCtx(()=>[e.createElementVNode("div",et,[e.createElementVNode("h3",tt,e.toDisplayString(e.unref(n).title),1),e.unref(n).subtitle?(e.openBlock(),e.createElementBlock("p",lt,e.toDisplayString(e.unref(n).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),[["__scopeId","data-v-e0bf7af0"]]);function nt(l,r,n){const t=e.ref({}),o=e.ref({});function s(u,m,f){o.value[u]=f,m.forEach(d=>{var V;(V=t.value)[d]??(V[d]=[]),t.value[d].includes(u)||t.value[d].push(u)}),p(u)}function i(u){return Object.entries(t.value).filter(([,f])=>f.includes(u)).map(([f])=>f).reduce((f,d)=>(f[d]=r.value[d]??n.value[d],f),{})}function a(u,m){return u?Array.isArray(u)?u.some(f=>m.some(d=>h(f,d.value))):m.some(f=>h(u,f.value)):!1}function h(u,m){return typeof u=="object"&&u!==null?u.value===m:String(u)===String(m)}async function p(u,m){if(!o.value[u])return;const f=i(u),d=Object.keys(f);if(!(d.length===0||!d.every(y=>f[y]!==void 0&&f[y]!==null)))try{const y=o.value[u],B=await y(m,f);if(!l.value[u])return;const S=l.value[u];if(!R(S))return;S.options=B;const I=S.value;if(!I)return;a(I,B)||(S.value=S.multiple?[]:"")}catch(y){console.error(`Error loading options for ${u}:`,y)}}return e.watch([r,n],()=>{Object.entries(t.value).forEach(([u,m])=>{(r.value[u]!==void 0||n.value[u]!==void 0)&&m.forEach(f=>{p(f)})})},{deep:!0,immediate:!0}),{registerDependency:s,updateOptions:p}}const Ve={install(l,r){r&&l.provide("globalConfig",r),l.component("VForm",ie),l.component("TextInput",ce),l.component("DateInput",ue),l.component("NumberInput",de),l.component("EmailInput",pe),l.component("PasswordInput",fe),l.component("SelectInput",me),l.component("TextAreaInput",he),l.component("RepeatInput",ye),l.component("CheckboxInput",ke),l.component("RadioInput",ge),l.component("FormSection",Ce),l.directive("maskito",be.maskito)}};E.CheckboxInput=ke,E.DateInput=ue,E.EmailInput=pe,E.FormBuilder=ie,E.FormSection=Ce,E.NumberInput=de,E.PasswordInput=fe,E.RadioInput=ge,E.RepeatInput=ye,E.SelectInput=me,E.TextAreaInput=he,E.TextInput=ce,E.VForm=Ve,E.default=Ve,E.useDataTransformation=ae,E.useDependentOptions=nt,E.useFormValidation=le,E.useInputValidation=G,E.useMultiStepForm=re,Object.defineProperties(E,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(z,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):(z=typeof globalThis<"u"?globalThis:z||self,e(z.VForm={},z.Vue,z.IonicVue,z.IoniconsIcons,z.MaskitoVue))})(this,function(z,e,C,Z,Be){"use strict";function we(l){return new Promise(a=>{requestAnimationFrame(async()=>{const n=await l.getInputElement();a(n)})})}const Se={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},_e={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 xe(l,a){const n=_e[l];return n[a%n.length]}function Ne(l){const a=[];let n="",t=0,o=0;for(;t<l.length;){const s=l[t];if(["d","a","*"].includes(s)){let c=1;if(l[t+1]==="{"){const i=l.indexOf("}",t+2);if(i!==-1){const k=l.slice(t+2,i);if(k.includes(",")){const[,f]=k.split(",").map(u=>parseInt(u.trim()));c=f||parseInt(k.split(",")[0])}else c=parseInt(k);t=i}}else{let i=t+1;for(;l[i]===s;)c++,i++;t=i-1}for(let i=0;i<c;i++)a.push(Se[s]),n+=xe(s,o++)}else a.push(s),n+=s;t++}return{mask:a,placeholder:n,elementPredicate:we}}function Y(l){return l==null||Array.isArray(l)&&!l.length||typeof l=="object"&&!Object.keys(l).length||!l}function oe(l,a,n){return l.disabled||l.hidden||typeof l.condition=="function"&&!l.condition(a,n)}function J(l,a,n){return typeof l.condition=="function"?l.condition(a,n):!0}function ee(l){if(typeof l!="object"||l===null)return l;if(Array.isArray(l))return l.map(n=>ee(n));const a={};return Object.entries(l).forEach(([n,t])=>{typeof t=="function"?a[n]=t.bind(a):a[n]=ee(t)}),a}function te(l,a){return a.findIndex(n=>n.value===l.value||n.label===l.label||n.value===l.label||n.label===l.value)}function P(l,a){const n=te(l,a);n>=0?a[n].isChecked=!0:a.push({...l,isChecked:!0})}function Ee(l,a){const n=te(l,a);n>=0&&(a[n].isChecked=!1)}function Ie(l){l.forEach(a=>{a.isChecked=!1})}function ae(l,a){if(!l.description)return!1;const n=l.description.show??"always";return n==="always"?!0:n==="onSelected"?!!a:!1}function ze(l,a){return a?l.filter(n=>JSON.stringify(n).toLowerCase().includes(a.toLowerCase())):l}function Oe(l){const a=l.label||"",n=l.required?" *":"";return a+n}function $(l,a){if(l===a)return!0;if(l==null||a==null||typeof l!=typeof a)return!1;if(typeof l!="object")return l===a;if(Array.isArray(l)&&Array.isArray(a))return l.length!==a.length?!1:l.every((o,s)=>$(o,a[s]));if(Array.isArray(l)!==Array.isArray(a))return!1;const n=Object.keys(l),t=Object.keys(a);return n.length!==t.length?!1:n.every(o=>Object.hasOwn(a,o)&&$(l[o],a[o]))}function A(l){return l.type!=="FormSection"}function le(){const l=e.ref([]);async function a(){console.debug("Validating form inputs");const o=[];for(const s of l.value)if(typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate(),typeof(s==null?void 0:s.getErrors)=="function")try{const c=s.getErrors();Array.isArray(c)?o.push(...c):console.warn("getErrors() returned non-array value:",c)}catch(c){console.error("Error calling getErrors on component:",c,s)}else console.warn("Component does not have getErrors function:",s);return o.every(Y)}function n(){const o=[];for(const s of l.value)if(typeof(s==null?void 0:s.getErrors)=="function")try{const c=s.getErrors();Array.isArray(c)?o.push(...c):o.push(String(c))}catch(c){console.error("Error calling getErrors on component:",c,s)}return o}async function t(){for(const o of l.value)typeof(o==null?void 0:o.onValueUpdate)=="function"&&await o.onValueUpdate()}return{dynamicRefs:l,isFormValid:a,getFormErrors:n,updateFormValues:t}}function re(l){const a=e.computed(()=>Object.entries(l.value).reduce((f,[u,m])=>(A(m)&&m.value!==void 0&&(f[u]=m.value),f),{})),n=e.ref({}),t=(f,u,m)=>{const p=l.value[f];if(A(p)&&p.children){const d=p.children[u];if(d&&A(d)&&typeof d.computedValue=="function")return d.computedValue(m,l.value)}return m},o=(f,u,m,p)=>{n.value[f][p]||(n.value[f][p]={}),Object.entries(u.other??{}).forEach(([d,h])=>{var B;!$(h,(B=m.other)==null?void 0:B[d])&&(n.value[f][p][d]=t(f,d,h))})},s=(f,u,m)=>{u.forEach((p,d)=>{const h=m[d]??{other:{}};o(f,p,h,d)})},c=(f,{other:u})=>Object.entries(u??{}).reduce((m,[p,d])=>(m[p]=t(f,p,d),m),{}),i=(f,u,m)=>{n.value[f]||(n.value[f]=[]);const p=u;Array.isArray(m[f])?s(f,p,m[f]):n.value[f]=p.map(d=>c(f,d))},k=(f,u,m)=>{if(!u){delete n.value[f];return}const p=l.value[f];A(p)&&(typeof p.onChange=="function"&&p.onChange(u,l.value),p.children!==void 0?i(f,u,m):typeof p.computedValue=="function"&&(n.value[f]=p.computedValue(u,l.value)))};return e.watch(a,(f,u={})=>{Object.keys(f).forEach(m=>{$(f[m],u[m])||k(m,f[m],u)}),Object.keys(u).forEach(m=>{!(m in f)&&m in n.value&&delete n.value[m]})},{immediate:!0,deep:!0}),{formData:a,computedData:n}}function se(l){const a=e.ref(0),n=e.ref({}),t=e.ref({}),o=e.ref({});function s(g,I){const y=l.steps.find(b=>b.id===g);if(!(y!=null&&y.schema))return{};const V={},r=Object.values(n.value).reduce((b,N)=>({...b,...N}),{}),S=Object.values(t.value).reduce((b,N)=>({...b,...N}),{});for(const[b,N]of Object.entries(y.schema))A(N)&&(oe(N,r,S)?I&&b in I?V[b]=I[b]:N.value!==void 0&&(V[b]=N.value):V[b]=N.value);return V}l.steps.forEach(g=>{n.value[g.id]=s(g.id),t.value[g.id]={},o.value[g.id]=[]});const c=e.ref(l.steps.map(g=>g.id)),i=e.computed(()=>l.steps.filter(I=>I.condition?I.condition(n.value,t.value):!0));e.watch(i,g=>{const I=g.map(V=>V.id);c.value.filter(V=>!I.includes(V)).forEach(V=>{x(V)}),c.value=I});const k=e.computed(()=>i.value.length>0?a.value>=i.value.length?i.value[i.value.length-1]:i.value[a.value]:l.steps[a.value]),f=e.computed(()=>a.value===0),u=e.computed(()=>a.value===i.value.length-1),m=e.computed(()=>!u.value),p=e.computed(()=>!f.value),d=e.computed(()=>i.value.length),h=e.computed(()=>d.value===0?0:Math.round((a.value+1)/d.value*100));function E(g,I){n.value[g]={...n.value[g],...I}}function B(g,I){t.value[g]={...t.value[g],...I}}function x(g){if(l.steps.find(y=>y.id===g)){const y=n.value[g]||{};n.value[g]=s(g,y),t.value[g]={}}}async function _(){const g=k.value;if(!g)return!0;const I=[];if(g.validation){const y=await g.validation(n.value[g.id],t.value[g.id]);y&&I.push(...y)}return o.value[g.id]=I,I.length===0}async function O(g){return g<0||g>=i.value.length||g>a.value&&!await _()?!1:(a.value=g,!0)}async function F(){return m.value?O(a.value+1):!1}async function M(){return p.value?O(a.value-1):!1}function v(){a.value=0,o.value={},l.steps.forEach(g=>{x(g.id),o.value[g.id]=[]})}async function q(){let g=!0;for(const I of l.steps)if(I.validation){const y=await I.validation(n.value[I.id],t.value[I.id]);o.value[I.id]=y||[],y&&y.length>0&&(g=!1)}return g}function D(){return{formData:{...n.value},computedData:{...t.value}}}return{currentStepIndex:a,currentStep:k,stepData:n,stepComputedData:t,stepValidationErrors:o,visibleSteps:i,isFirstStep:f,isLastStep:u,canGoNext:m,canGoPrevious:p,totalSteps:d,progressPercentage:h,updateStepData:E,updateStepComputedData:B,clearStepData:x,validateCurrentStep:_,goToStep:O,nextStep:F,previousStep:M,resetForm:v,validateAllSteps:q,getMultiStepFormData:D}}const Fe={class:"step-indicator__container"},De=["onClick"],Te={class:"step-indicator__step-content"},Ae={class:"step-indicator__step-marker"},Me={class:"step-indicator__step-info"},Re={class:"step-indicator__step-title"},ve={key:0,class:"step-indicator__step-subtitle"},Pe={key:0,class:"step-indicator__progress"},Le={class:"step-indicator__progress-bar"},qe={class:"step-indicator__progress-text"},Ue=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(l,{emit:a}){const n=l,t=a,o=e.computed(()=>n.steps.length===0?0:(n.activeStepIndex+1)/n.steps.length*100);function s(c){n.allowNavigation&&t("step-click",c)}return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${c.position}`,{"step-indicator--clickable":c.allowNavigation}]])},[e.createElementVNode("div",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.steps,(k,f)=>(e.openBlock(),e.createElementBlock("div",{key:k.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":f===c.activeStepIndex,"step-indicator__step--completed":f<c.activeStepIndex,"step-indicator__step--clickable":c.allowNavigation}]),onClick:u=>s(f)},[e.createElementVNode("div",Te,[e.createElementVNode("div",Ae,[e.createElementVNode("span",null,e.toDisplayString(f+1),1)]),e.createElementVNode("div",Me,[e.createElementVNode("div",Re,e.toDisplayString(k.title),1),k.subtitle?(e.openBlock(),e.createElementBlock("div",ve,e.toDisplayString(k.subtitle),1)):e.createCommentVNode("",!0)])]),f<c.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":f<c.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,De))),128))]),c.showProgress&&(c.position==="top"||c.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("div",Le,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${o.value}%`})},null,4)]),e.createElementVNode("div",qe," Step "+e.toDisplayString(c.activeStepIndex+1)+" of "+e.toDisplayString(c.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),j=(l,a)=>{const n=l.__vccOpts||l;for(const[t,o]of a)n[t]=o;return n},Q=j(Ue,[["__scopeId","data-v-aca1a6d0"]]),L=e.defineComponent({__name:"ActionButton",props:{type:{type:String,default:"submit"},label:{type:String,required:!1}},setup(l){const a=e.inject("globalConfig"),n=l,t=e.computed(()=>{var o,s;return n.label??((s=(o=a==null?void 0:a.buttons)==null?void 0:o[n.type])==null?void 0:s.label)??n.type});return(o,s)=>{var c,i,k,f,u,m,p,d,h,E,B,x;return e.openBlock(),e.createBlock(e.unref(C.IonButton),{color:((k=(i=(c=e.unref(a))==null?void 0:c.buttons)==null?void 0:i[l.type])==null?void 0:k.color)??"primary",fill:((m=(u=(f=e.unref(a))==null?void 0:f.buttons)==null?void 0:u[l.type])==null?void 0:m.fill)??"solid",expand:(h=(d=(p=e.unref(a))==null?void 0:p.buttons)==null?void 0:d[l.type])==null?void 0:h.expand,size:((x=(B=(E=e.unref(a))==null?void 0:E.buttons)==null?void 0:B[l.type])==null?void 0:x.size)??"default"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]),_:1},8,["color","fill","expand","size"])}}}),ie=e.defineComponent({__name:"CustomButton",props:{button:{type:Object,required:!0}},setup(l){return(a,n)=>(e.openBlock(),e.createBlock(e.unref(C.IonButton),{onClick:l.button.action,color:l.button.color??"primary",fill:l.button.fill??"solid",size:l.button.size??"default",expand:l.button.expand},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.button.label),1)]),_:1},8,["onClick","color","fill","size","expand"]))}}),je={class:"v-form-container"},Ge={key:0,class:"multi-step-form"},$e={class:"multi-step-form-content"},He={key:3,class:"step-progress-bottom"},Ke={class:"step-progress-bar"},We={class:"step-progress-text"},ce=j(e.defineComponent({__name:"vForm",props:{schema:{},multiStepConfig:{},showLabels:{type:Boolean,default:!0},showClearButton:{type:Boolean,default:!0},showCancelButton:{type:Boolean,default:!0},buttonPlacement:{default:"start"},submitButtonText:{},clearButtonText:{},cancelButtonText:{},nextButtonText:{},previousButtonText:{},hideButtons:{type:Boolean,default:!1},customButtons:{}},emits:["submit","multi-step-submit","step-change","clear","cancel"],setup(l,{expose:a,emit:n}){const t=l,o=n,s=e.computed(()=>!!t.multiStepConfig),c=e.ref(t.schema||{}),i=t.multiStepConfig?se(t.multiStepConfig):null,{dynamicRefs:k,isFormValid:f}=le(),{formData:u,computedData:m}=re(c),p=e.ref(null),d=e.computed(()=>(i==null?void 0:i.currentStepIndex.value)??0),h=e.computed(()=>i==null?void 0:i.currentStep.value),E=e.computed(()=>(i==null?void 0:i.visibleSteps.value)??[]),B=e.computed(()=>(i==null?void 0:i.isLastStep.value)??!0),x=e.computed(()=>(i==null?void 0:i.canGoNext.value)??!1),_=e.computed(()=>(i==null?void 0:i.canGoPrevious.value)??!1),O=e.computed(()=>!s.value||!i?0:i.progressPercentage.value);e.watch(()=>h.value,r=>{r&&s.value&&(c.value=r.schema||{})},{immediate:!0}),e.watch([u,m],([r,S])=>{s.value&&i&&h.value&&(i.updateStepData(h.value.id,r),i.updateStepComputedData(h.value.id,S))},{deep:!0}),e.watch(()=>t.schema,r=>{if(!s.value&&r){c.value=r;for(const[S,b]of Object.entries(r))A(b)&&"value"in b&&b.value!==void 0&&(c.value[S].value=b.value)}},{deep:!0,immediate:!0});async function F(){var r;if(s.value&&i){if((r=h.value)!=null&&r.component&&p.value&&typeof p.value.validate=="function"&&!await p.value.validate()||!await i.validateAllSteps())return;const b=i.getMultiStepFormData();o("multi-step-submit",b)}else{if(!await f())return;o("submit",u.value,m.value)}}function M(){k.value.forEach(r=>{var S;if(typeof(r==null?void 0:r.onReset)=="function"&&((S=r==null?void 0:r.$attrs)!=null&&S["ref-key"])){const b=r.$attrs["ref-key"];if(b&&c.value[b]){const N=c.value[b];if(oe(N,u.value,m.value))return}r.onReset()}})}function v(){s.value&&i?i.resetForm():M(),o("clear")}function q(){s.value&&i&&h.value&&(i.clearStepData(h.value.id),M(),o("clear"))}function D(){s.value&&i?i.resetForm():M(),o("cancel")}async function g(){var r;if(s.value&&i){let S=!0;if((r=h.value)!=null&&r.component&&p.value?typeof p.value.validate=="function"&&(S=await p.value.validate()):S=await f(),!S)return;await i.nextStep()&&h.value&&o("step-change",d.value,h.value.id)}}async function I(){i&&await i.previousStep()&&h.value&&o("step-change",d.value,h.value.id)}async function y(r){var S;if(i){if(r>d.value){let N=!0;if((S=h.value)!=null&&S.component&&p.value?typeof p.value.validate=="function"&&(N=await p.value.validate()):N=await f(),!N)return}await i.goToStep(r)&&h.value&&o("step-change",r,h.value.id)}}e.watch(u,async()=>{var r;for(const[S,b]of Object.entries(c.value))if(!J(b,u.value,m.value)){const N=s.value&&h.value&&h.value.schema?h.value.schema[S]:(r=t.schema)==null?void 0:r[S];N&&A(N)&&"value"in N?b.value=N.value:b.value=void 0}},{deep:!0,immediate:!0});function V(r){s.value&&i&&h.value&&i.updateStepData(h.value.id,r)}return a({resetForm:v,isFormValid:f,resolveData:()=>s.value&&i?i.getMultiStepFormData():{formData:u.value,computedData:m.value},nextStep:g,previousStep:I,goToStep:y,getCurrentStep:()=>h.value,getCurrentStepIndex:()=>d.value}),(r,S)=>{var b,N;return e.openBlock(),e.createElementBlock("div",je,[s.value?(e.openBlock(),e.createElementBlock("div",Ge,[r.multiStepConfig&&r.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(Q,{key:0,steps:E.value,"active-step-index":d.value,position:r.multiStepConfig.stepPosition||"top","show-progress":r.multiStepConfig.showProgress,"allow-navigation":r.multiStepConfig.allowStepNavigation,onStepClick:y},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["multi-step-content",`multi-step-content--${((b=r.multiStepConfig)==null?void 0:b.stepPosition)||"top"}`])},[r.multiStepConfig&&r.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(Q,{key:0,steps:E.value,"active-step-index":d.value,position:r.multiStepConfig.stepPosition??"top","show-progress":r.multiStepConfig.showProgress,"allow-navigation":r.multiStepConfig.allowStepNavigation,onStepClick:y,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",$e,[(N=h.value)!=null&&N.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value.component),e.mergeProps({key:0},h.value.componentProps||{},{"onUpdate:data":V,ref_key:"customComponentRef",ref:p}),null,16)):(e.openBlock(),e.createBlock(e.unref(C.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(c.value),w=>{var T,R,U,K,W;return e.openBlock(),e.createElementBlock(e.Fragment,{key:w},[e.unref(J)(c.value[w],e.unref(u),e.unref(m))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((T=c.value[w].grid)==null?void 0:T.xs)??"12","size-sm":(R=c.value[w].grid)==null?void 0:R.sm,"size-md":(U=c.value[w].grid)==null?void 0:U.md,"size-lg":(K=c.value[w].grid)==null?void 0:K.lg,"size-xl":(W=c.value[w].grid)==null?void 0:W.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value[w].type),{modelValue:c.value[w],"onUpdate:modelValue":ne=>c.value[w]=ne,schema:c.value,"form-id":w,ref_for:!0,ref_key:"dynamicRefs",ref:k,"ref-key":w},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)}),128))]),_:1})]),_:1})),r.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(C.IonRow),{key:2},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:r.buttonPlacement}])},{default:e.withCtx(()=>[_.value?(e.openBlock(),e.createBlock(L,{key:0,type:"previous",label:r.previousButtonText,onClick:I},null,8,["label"])):e.createCommentVNode("",!0),r.showCancelButton?(e.openBlock(),e.createBlock(L,{key:1,type:"cancel",label:r.cancelButtonText,onClick:D},null,8,["label"])):e.createCommentVNode("",!0),r.showClearButton?(e.openBlock(),e.createBlock(L,{key:2,type:"clear",label:r.clearButtonText,onClick:q},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.customButtons,w=>(e.openBlock(),e.createBlock(ie,{button:w,key:w.label},null,8,["button"]))),128)),x.value?(e.openBlock(),e.createBlock(L,{key:3,type:"next",label:r.nextButtonText,onClick:g},null,8,["label"])):e.createCommentVNode("",!0),B.value?(e.openBlock(),e.createBlock(L,{key:4,type:"submit",label:r.submitButtonText,onClick:F},null,8,["label"])):e.createCommentVNode("",!0)]),_:1},8,["style"])]),_:1})),r.multiStepConfig&&(r.multiStepConfig.stepPosition==="left"||r.multiStepConfig.stepPosition==="right")&&r.multiStepConfig.showProgress?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Ke,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${O.value}%`})},null,4)]),e.createElementVNode("div",We," Step "+e.toDisplayString(d.value+1)+" of "+e.toDisplayString(E.value.length),1)])):e.createCommentVNode("",!0)]),r.multiStepConfig&&r.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(Q,{key:1,steps:E.value,"active-step-index":d.value,position:r.multiStepConfig.stepPosition,"show-progress":r.multiStepConfig.showProgress,"allow-navigation":r.multiStepConfig.allowStepNavigation,onStepClick:y,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)],2),r.multiStepConfig&&r.multiStepConfig.stepPosition==="bottom"?(e.openBlock(),e.createBlock(Q,{key:1,steps:E.value,"active-step-index":d.value,position:r.multiStepConfig.stepPosition,"show-progress":r.multiStepConfig.showProgress,"allow-navigation":r.multiStepConfig.allowStepNavigation,onStepClick:y},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(e.unref(C.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(c.value),w=>{var T,R,U,K,W;return e.openBlock(),e.createElementBlock(e.Fragment,{key:w},[e.unref(J)(c.value[w],e.unref(u),e.unref(m))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((T=c.value[w].grid)==null?void 0:T.xs)??"12","size-sm":(R=c.value[w].grid)==null?void 0:R.sm,"size-md":(U=c.value[w].grid)==null?void 0:U.md,"size-lg":(K=c.value[w].grid)==null?void 0:K.lg,"size-xl":(W=c.value[w].grid)==null?void 0:W.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value[w].type),{modelValue:c.value[w],"onUpdate:modelValue":ne=>c.value[w]=ne,schema:c.value,"form-id":w,ref_for:!0,ref_key:"dynamicRefs",ref:k,"ref-key":w,style:{width:"100%"}},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)}),128))]),_:1}),r.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(C.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:r.buttonPlacement}])},{default:e.withCtx(()=>[r.showCancelButton?(e.openBlock(),e.createBlock(L,{key:0,type:"cancel",label:r.cancelButtonText,onClick:D},null,8,["label"])):e.createCommentVNode("",!0),r.showClearButton?(e.openBlock(),e.createBlock(L,{key:1,type:"clear",label:r.clearButtonText,onClick:v},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.customButtons,w=>(e.openBlock(),e.createBlock(ie,{button:w,key:w.label},null,8,["button"]))),128)),e.createVNode(L,{type:"submit",label:r.submitButtonText,onClick:F},null,8,["label"])]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),[["__scopeId","data-v-a237bbb7"]]);function Ze(l){return{applyValidationState:async t=>{var o,s,c,i,k;(o=l.value)==null||o.$el.classList.remove("ion-invalid"),(s=l.value)==null||s.$el.classList.remove("ion-valid"),t?(c=l.value)==null||c.$el.classList.add("ion-valid"):(i=l.value)==null||i.$el.classList.add("ion-invalid"),(k=l.value)==null||k.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,o;(t=l.value)==null||t.$el.classList.remove("ion-touched"),(o=l.value)==null||o.$el.classList.remove("ion-invalid")}}}function G(l,a,n,t,o){const{applyValidationState:s,resetValidationState:c}=Ze(l),i=e.inject("globalConfig");async function k(){var d;if(a.value.required&&!n.value)return a.value.error=((d=i==null?void 0:i.errorMessages)==null?void 0:d.required)??"This field is required",!1;if(o){const h=await o(n.value);if(typeof h=="string")return a.value.error=h,!1;if(h===!1)return!1}if(a.value.validation){const h=await a.value.validation(n.value,t==null?void 0:t.value);if(h!=null&&h.length)return a.value.error=h.join(),!1}return!0}async function f(){const d=await k();d&&(a.value.error="",a.value.value=n.value),await s(d)}function u(){c(),a.value.error=""}function m(d=""){n.value=d,a.value.error="",a.value.value=d}function p(){return a.value.error?[a.value.error]:[]}return{isValid:k,onValueUpdate:f,onFocus:u,onReset:m,getErrors:p,applyValidationState:s,resetValidationState:c}}function Je(l){const a=e.computed(()=>!!l.value.label),n=e.computed(()=>!!l.value.required),t=e.computed(()=>l.value.label||"");return{showLabel:a,showRequired:n,labelText:t}}const X=e.defineComponent({__name:"InputLabel",props:{model:{},slotName:{}},setup(l){const a=l,{showLabel:n,showRequired:t,labelText:o}=Je(e.toRef(a,"model"));return(s,c)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:0,slot:s.slotName,class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>c[0]||(c[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1},8,["slot"])):e.createCommentVNode("",!0)}}),H=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),c=e.computed(()=>n.schema),{isValid:i,onValueUpdate:k,onFocus:f,onReset:u,getErrors:m}=G(o,t,s,c),p=e.computed(()=>{if(t.value.pattern)return Ne(t.value.pattern)});return e.watch(()=>t.value.value,d=>s.value=d),a({onValueUpdate:k,onReset:u,getErrors:m,isValid:i}),(d,h)=>{var B;const E=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(C.IonInput),{ref_key:"inputRef",ref:o,modelValue:s.value,"onUpdate:modelValue":h[0]||(h[0]=x=>s.value=x),class:e.normalizeClass(t.value.className),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:d.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((B=p.value)==null?void 0:B.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,style:{width:"100%"},onIonFocus:e.unref(f),onIonChange:e.unref(k),onIonBlur:e.unref(k)},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(C.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(C.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),d.type==="password"?(e.openBlock(),e.createBlock(e.unref(C.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","class","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[E,p.value]])}}}),ue=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref(null);return a({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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock(H,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=c=>n.value=c),type:"text",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),de=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref(null);return a({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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock(H,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=c=>n.value=c),type:n.value.enableTime?"datetime-local":"date",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),pe=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref(null);return a({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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock(H,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=c=>n.value=c),type:"number",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),fe=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref(null);return a({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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock(H,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=c=>n.value=c),type:"email",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),me=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref(null);return a({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,s;return((s=(o=t.value)==null?void 0:o.getErrors)==null?void 0:s.call(o))??[]}}),(o,s)=>(e.openBlock(),e.createBlock(H,{modelValue:n.value,"onUpdate:modelValue":s[0]||(s[0]=c=>n.value=c),type:"password",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Qe={class:"option-content"},he=j(e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref([]),k=e.ref(""),f=e.ref(1),u=e.inject("globalConfig"),m=e.computed(()=>t.value.interface??"popover"),p=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),d=e.computed(()=>i.value.filter(y=>!!y.isChecked)),h=e.computed(()=>!k.value&&Y(d.value)&&!c.value?t.value.placeholder??"Select an option":"");e.watch([k,()=>t.value.options],g,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,I,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!n.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(V=>{const r=n.schema[V];return A(r)?r.value:void 0}),async(y,V)=>{y&&V&&!$(y,V)&&(E(),i.value=[],await g())},{deep:!0});function E(){t.value.error="",k.value="",f.value=1,t.value.value=t.value.multiple?[]:"",Ie(i.value)}function B(y){if(y.disabled)return;const V=i.value.findIndex(r=>r.value===y.value&&r.isChecked);if(V>=0){if(Array.isArray(t.value.value)){const r=te(y,t.value.value);r>=0&&t.value.value.splice(r,1)}i.value[V].isChecked=!1}else t.value.multiple||E(),P(y,i.value);D(),k.value=""}function x(){switch(m.value){case"action-sheet":_();break;case"alert":O();break;case"popover":default:c.value=!0;break}}async function _(){var V,r;if(await g(),t.value.multiple){c.value=!0;return}await(await C.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...i.value.map(S=>{let b="";return S.isChecked?b="selected-option":S.disabled&&(b="disabled-option"),{text:S.label,cssClass:b,handler:()=>(B(S),!1),disabled:S.disabled}}),{text:((r=(V=u==null?void 0:u.buttons)==null?void 0:V.cancel)==null?void 0:r.label)??"Cancel",role:"cancel"}]})).present()}async function O(){var r,S,b,N;await g();const y=i.value.map(w=>({label:w.label,type:t.value.multiple?"checkbox":"radio",value:w,checked:w.isChecked,disabled:w.disabled}));await(await C.alertController.create({header:t.value.label||"Select an option",inputs:y,buttons:[{text:((S=(r=u==null?void 0:u.buttons)==null?void 0:r.cancel)==null?void 0:S.label)??"Cancel",role:"cancel"},{text:((N=(b=u==null?void 0:u.buttons)==null?void 0:b.ok)==null?void 0:N.label)??"OK",handler:w=>{if(t.value.multiple)i.value.forEach(T=>Ee(T,i.value)),w.forEach(T=>{const R=i.value.find(U=>U.value===T.value);R&&P(R,i.value)});else{E();const T=i.value.find(R=>R.value===w.value);T&&P(T,i.value)}D()}}]})).present()}async function F(){var y;if(t.value.required&&Y(d.value))return((y=u==null?void 0:u.errorMessages)==null?void 0:y.required)??"This field is required";if(t.value.validation){const V=await t.value.validation(d.value,n==null?void 0:n.schema);if(V&&V.length)return V.join()}return!0}const{onFocus:M,applyValidationState:v}=G(o,t,e.computed(()=>t.value.multiple?d.value:d.value[0]),e.computed(()=>n==null?void 0:n.schema),F);function q(y){var V;y.target===((V=o.value)==null?void 0:V.$el)&&(M(),m.value==="popover"&&(c.value=!0))}async function D(y){var r;if((r=y==null?void 0:y.relatedTarget)!=null&&r.closest(".suggestions-list"))return;c.value=!1;const V=await F();V===!0?(t.value.error="",t.value.value=t.value.multiple?d.value:d.value[0]):t.value.error=typeof V=="string"?V:"Validation failed",await v(V===!0)}async function g(){const y=[];if(typeof t.value.options=="function"){let V={};if(t.value.dependsOn&&n.schema){const r=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let S=!0;if(V=r.reduce((b,N)=>{const w=n.schema[N];return b[N]=A(w)?w.value:void 0,(b[N]===void 0||b[N]===null||b[N]==="")&&(S=!1),b},{}),S){const b=await t.value.options(k.value,V);y.push(...b.filter(N=>!!N.label))}}else{const r=await t.value.options(k.value,{});y.push(...r.filter(S=>!!S.label))}}else Array.isArray(t.value.options)&&y.push(...ze(t.value.options,k.value));d.value.forEach(V=>P(V,y)),i.value=y}async function I(){const y=t.value.value;if(y){if(i.value.length===0&&await g(),Array.isArray(y))y.forEach(V=>P(V,i.value));else if(typeof y=="object")P(y,i.value);else{const V=i.value.find(r=>r.value===y);P(V||{value:y,label:y},i.value)}D()}}return e.onMounted(async()=>{await g(),await I()}),a({onValueUpdate:D,onReset:E,getErrors:()=>t.value.error?[t.value.error]:[]}),(y,V)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["autocomplete-container",t.value.className]),onFocusout:D,ref_key:"containerRef",ref:s},[e.createVNode(e.unref(C.IonInput),{ref_key:"inputRef",ref:o,modelValue:k.value,"onUpdate:modelValue":V[0]||(V[0]=r=>k.value=r),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:l.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:h.value,disabled:t.value.disabled,counter:t.value.counter,debounce:300,onIonFocus:q,onClick:x,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(r,S)=>(e.openBlock(),e.createBlock(e.unref(C.IonChip),{key:S},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var r;return[e.createTextVNode(e.toDisplayString(((r=d.value[0])==null?void 0:r.label)??""),1)]}),_:1})),e.createVNode(e.unref(C.IonIcon),{slot:"end",icon:e.unref(Z.chevronDown)},null,8,["icon"]),d.value.length>0||k.value?(e.openBlock(),e.createBlock(e.unref(C.IonIcon),{key:2,slot:"end",icon:e.unref(Z.close),onClick:E,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),c.value&&i.value.length>0&&m.value==="popover"?(e.openBlock(),e.createBlock(e.unref(C.IonList),{key:0,class:e.normalizeClass(["suggestions-list",p.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,r=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{button:"",key:r.label,onClick:S=>B(r),lines:t.value.showOptionsSeparator?"none":"full",disabled:r.disabled,class:e.normalizeClass({"ion-item-disabled":r.disabled})},{default:e.withCtx(()=>{var S;return[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{key:0,slot:"start",checked:r.isChecked,disabled:r.disabled},null,8,["checked","disabled"])):e.createCommentVNode("",!0),e.createElementVNode("div",Qe,[e.createVNode(e.unref(C.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:2},1024),e.unref(ae)(r,r.isChecked)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(S=r.description)==null?void 0:S.color,class:"option-description"},{default:e.withCtx(()=>{var b;return[e.createTextVNode(e.toDisplayString((b=r.description)==null?void 0:b.text),1)]}),_:2},1032,["color"])):e.createCommentVNode("",!0)])]}),_:2},1032,["onClick","lines","disabled","class"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],34))}}),[["__scopeId","data-v-022ed1e8"]]),ye=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),c=e.computed(()=>n.schema),{onValueUpdate:i,onFocus:k,onReset:f,getErrors:u}=G(o,t,s,c);return e.watch(()=>t.value.value,m=>s.value=m),a({onReset:f,onValueUpdate:i,getErrors:u}),(m,p)=>(e.openBlock(),e.createBlock(e.unref(C.IonTextarea),{ref_key:"inputRef",ref:o,modelValue:s.value,"onUpdate:modelValue":p[0]||(p[0]=d=>s.value=d),class:e.normalizeClass(t.value.className),"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(k),onIonChange:e.unref(i),onIonBlur:e.unref(i),style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value,"slot-name":"label"},null,8,["model"])]),_:1},8,["modelValue","class","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),Xe={class:"button-container"},ke=j(e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=e.useModel(l,"modelValue"),t=e.ref([]),{dynamicRefs:o,resetForm:s,getFormErrors:c,updateFormValues:i}=le(),k=e.computed(()=>t.value.map((h,E)=>({label:`Set ${E+1}`,value:E,other:Object.entries(h).reduce((B,[x,_])=>(A(_)&&(B[x]=_.value),B),{})})));e.watch(k,h=>{n.value.value=h},{deep:!0,immediate:!0}),e.onMounted(f);function f(){n.value.children&&t.value.push(ee(n.value.children))}function u(h){t.value.splice(h,1)}function m(){s()}function p(){return c()}async function d(){await i()}return a({onValueUpdate:d,onReset:m,getErrors:p}),(h,E)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(B,x)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["repeat-input-wrapper",n.value.className]),key:x},[e.createVNode(e.unref(C.IonRow),{class:"repeat-row"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonCol),{size:"11",class:"form-fields-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRow),{class:"fields-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(B),_=>{var O,F,M,v,q;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(J)(B[_],h.data,h.computedData)?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:`${x}-${_}`,size:((O=B[_].grid)==null?void 0:O.xs)??"12","size-sm":(F=B[_].grid)==null?void 0:F.sm,"size-md":(M=B[_].grid)==null?void 0:M.md,"size-lg":(v=B[_].grid)==null?void 0:v.lg,"size-xl":(q=B[_].grid)==null?void 0:q.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B[_].type),{modelValue:B[_],"onUpdate:modelValue":D=>B[_]=D,schema:B,"ref-key":`${x}-${_}`,ref_for:!0,ref_key:"dynamicRefs",ref:o,style:{width:"100%"}},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)]),_:2},1024),e.createVNode(e.unref(C.IonCol),{size:"1",class:"button-column"},{default:e.withCtx(()=>[e.createElementVNode("div",Xe,[x===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(C.IonButton),{key:0,onClick:f,color:"primary",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonIcon),{slot:"icon-only",icon:e.unref(Z.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(C.IonButton),{key:1,onClick:_=>u(x),color:"warning",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonIcon),{slot:"icon-only",icon:e.unref(Z.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024)],2))),128))}}),[["__scopeId","data-v-0eb7594d"]]),ge=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),c=e.computed(()=>n.schema),i=e.computed(()=>Oe(t.value)),{onValueUpdate:k,onFocus:f,getErrors:u}=G(o,t,s,c);function m(){s.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,p=>s.value=p),a({onValueUpdate:k,onReset:m,getErrors:u}),(p,d)=>(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{modelValue:s.value,"onUpdate:modelValue":d[0]||(d[0]=h=>s.value=h),ref_key:"inputRef",ref:o,justify:"start",class:e.normalizeClass(t.value.className),required:t.value.required,"error-text":t.value.error,disabled:t.value.disabled,onIonFocus:e.unref(f),onIonChange:e.unref(k),onIonBlur:e.unref(k),style:{width:"100%"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.value),1)]),_:1},8,["modelValue","class","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Ye={class:"radio-content"},et={class:"radio-label"},Ce=j(e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const n=l,t=e.useModel(l,"modelValue"),o=e.ref(null),s=e.ref(t.value.value),c=e.computed(()=>n.schema),i=e.ref([]),{onValueUpdate:k,onFocus:f,getErrors:u,isValid:m}=G(o,t,s,c);function p(){t.value.error="",s.value=void 0,t.value.value=void 0}function d(B,x){return(B==null?void 0:B.value)===(x==null?void 0:x.value)}function h(B){return s.value?d(s.value,B):!1}async function E(){typeof t.value.options=="function"?i.value=await t.value.options():i.value=t.value.options}return e.watch(()=>t.value.value,B=>s.value=B),a({onValueUpdate:k,onReset:p,getErrors:u,isValid:m}),e.onMounted(E),(B,x)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(X,{model:t.value},null,8,["model"]),x[1]||(x[1]=e.createElementVNode("br",null,null,-1)),t.value.error?(e.openBlock(),e.createBlock(e.unref(C.IonNote),{key:0,color:"danger"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.error),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(C.IonItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRadioGroup),{modelValue:s.value,"onUpdate:modelValue":x[0]||(x[0]=_=>s.value=_),class:e.normalizeClass(t.value.className),required:t.value.required,disabled:t.value.disabled,compareWith:d,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(f),onIonChange:e.unref(k),onIonBlur:e.unref(k),style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,_=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{key:_.value,lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRadio),{value:_,disabled:t.value.disabled||_.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>{var O;return[e.createElementVNode("div",Ye,[e.createElementVNode("div",et,e.toDisplayString(_.label),1),e.unref(ae)(_,h(_))?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(O=_.description)==null?void 0:O.color,class:"radio-description"},{default:e.withCtx(()=>{var F;return[e.createTextVNode(e.toDisplayString((F=_.description)==null?void 0:F.text),1)]}),_:2},1032,["color"])):e.createCommentVNode("",!0)])]}),_:2},1032,["value","disabled"])]),_:2},1032,["lines"]))),128))]),_:1},8,["modelValue","class","required","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"])]),_:1})],64))}}),[["__scopeId","data-v-3dbfeaf7"]]),tt={class:"form-section-header"},lt={class:"form-section-title"},nt={key:0,class:"form-section-subtitle"},Ve=j(e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(l){const n=l.modelValue;return(t,o)=>{var s,c,i,k,f;return e.openBlock(),e.createBlock(e.unref(C.IonCol),{size:((s=e.unref(n).grid)==null?void 0:s.xs)??"12","size-sm":(c=e.unref(n).grid)==null?void 0:c.sm,"size-md":(i=e.unref(n).grid)==null?void 0:i.md,"size-lg":(k=e.unref(n).grid)==null?void 0:k.lg,"size-xl":(f=e.unref(n).grid)==null?void 0:f.xl,class:e.normalizeClass(["form-section-container",e.unref(n).className])},{default:e.withCtx(()=>[e.createElementVNode("div",tt,[e.createElementVNode("h3",lt,e.toDisplayString(e.unref(n).title),1),e.unref(n).subtitle?(e.openBlock(),e.createElementBlock("p",nt,e.toDisplayString(e.unref(n).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),[["__scopeId","data-v-e0bf7af0"]]);function ot(l,a,n){const t=e.ref({}),o=e.ref({});function s(u,m,p){o.value[u]=p,m.forEach(d=>{var h;(h=t.value)[d]??(h[d]=[]),t.value[d].includes(u)||t.value[d].push(u)}),f(u)}function c(u){return Object.entries(t.value).filter(([,p])=>p.includes(u)).map(([p])=>p).reduce((p,d)=>(p[d]=a.value[d]??n.value[d],p),{})}function i(u,m){return u?Array.isArray(u)?u.some(p=>m.some(d=>k(p,d.value))):m.some(p=>k(u,p.value)):!1}function k(u,m){return typeof u=="object"&&u!==null?u.value===m:String(u)===String(m)}async function f(u,m){if(!o.value[u])return;const p=c(u),d=Object.keys(p);if(!(d.length===0||!d.every(E=>p[E]!==void 0&&p[E]!==null)))try{const E=o.value[u],B=await E(m,p);if(!l.value[u])return;const x=l.value[u];if(!A(x))return;x.options=B;const _=x.value;if(!_)return;i(_,B)||(x.value=x.multiple?[]:"")}catch(E){console.error(`Error loading options for ${u}:`,E)}}return e.watch([a,n],()=>{Object.entries(t.value).forEach(([u,m])=>{(a.value[u]!==void 0||n.value[u]!==void 0)&&m.forEach(p=>{f(p)})})},{deep:!0,immediate:!0}),{registerDependency:s,updateOptions:f}}const be={install(l,a){a&&l.provide("globalConfig",a),l.component("VForm",ce),l.component("TextInput",ue),l.component("DateInput",de),l.component("NumberInput",pe),l.component("EmailInput",fe),l.component("PasswordInput",me),l.component("SelectInput",he),l.component("TextAreaInput",ye),l.component("RepeatInput",ke),l.component("CheckboxInput",ge),l.component("RadioInput",Ce),l.component("FormSection",Ve),l.directive("maskito",Be.maskito)}};z.CheckboxInput=ge,z.DateInput=de,z.EmailInput=fe,z.FormBuilder=ce,z.FormSection=Ve,z.NumberInput=pe,z.PasswordInput=me,z.RadioInput=Ce,z.RepeatInput=ke,z.SelectInput=he,z.TextAreaInput=ye,z.TextInput=ue,z.VForm=be,z.default=be,z.useDataTransformation=re,z.useDependentOptions=ot,z.useFormValidation=le,z.useInputValidation=G,z.useMultiStepForm=se,Object.defineProperties(z,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=index.umd.js.map