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