@uniquedj95/vform 3.5.0 → 3.5.2

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 CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  A dynamic form builder for Vue.js with Ionic components
8
8
 
9
- [![Version](https://img.shields.io/badge/version-3.5.0-blue.svg)](https://github.com/uniquedj95/vform/releases)
9
+ [![Version](https://img.shields.io/badge/version-3.5.2-blue.svg)](https://github.com/uniquedj95/vform/releases)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
11
11
  [![Vue Version](https://img.shields.io/badge/vue-3.5+-brightgreen.svg)](https://vuejs.org/)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue)](https://www.typescriptlang.org/)
@@ -1 +1 @@
1
- {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AA0BA;AAkFA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAKxD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAqCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AAiHhB,wBAUG"}
1
+ {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AAyBA;AAiFA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAKxD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAYhF,iBAAS,OAAO,SAIf;AAqCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;AA6HhB,wBAUG"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AAiDA;AAydA,OAAO,EAAiB,QAAQ,EAA6C,MAAM,KAAK,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAwFxE,iBAAS,OAAO,SAMf;AAkJD,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YAmamB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;YADtB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;AAX1C,wBAiBG"}
1
+ {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AAuDA;AA+dA,OAAO,EAAiB,QAAQ,EAA6C,MAAM,KAAK,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAwFxE,iBAAS,OAAO,SAMf;AAkJD,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YAqamB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;YADtB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;AAX1C,wBAiBG"}
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("@ionic/vue"),G=require("ionicons/icons"),ne=require("@maskito/vue");function le(o){return new Promise(i=>{requestAnimationFrame(async()=>{const n=await o.getInputElement();i(n)})})}const ae={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},re={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 ue(o,i){const n=re[o];return n[i%n.length]}function se(o){const i=[];let n="",t=0,l=0;for(;t<o.length;){const r=o[t];if(["d","a","*"].includes(r)){let s=1;if(o[t+1]==="{"){const a=o.indexOf("}",t+2);if(a!==-1){const g=o.slice(t+2,a);if(g.includes(",")){const[,d]=g.split(",").map(p=>parseInt(p.trim()));s=d||parseInt(g.split(",")[0])}else s=parseInt(g);t=a}}else{let a=t+1;for(;o[a]===r;)s++,a++;t=a-1}for(let a=0;a<s;a++)i.push(ae[r]),n+=ue(r,l++)}else i.push(r),n+=r;t++}return{mask:i,placeholder:n,elementPredicate:le}}function K(o){return o==null||Array.isArray(o)&&!o.length||typeof o=="object"&&!Object.keys(o).length||!o}function W(o,i,n){return typeof o.condition=="function"?o.condition(i,n):!0}function Z(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(n=>Z(n));const i={};return Object.entries(o).forEach(([n,t])=>{typeof t=="function"?i[n]=t.bind(i):i[n]=Z(t)}),i}function J(o,i){return i.findIndex(n=>n.value===o.value||n.label===o.label||n.value===o.label||n.label===o.value)}function T(o,i){const n=J(o,i);n>=0?i[n].isChecked=!0:i.push({...o,isChecked:!0})}function ie(o,i){const n=J(o,i);n>=0&&(i[n].isChecked=!1)}function ce(o){o.forEach(i=>{i.isChecked=!1})}function de(o,i){return i?o.filter(n=>JSON.stringify(n).toLowerCase().includes(i.toLowerCase())):o}function Y(o){const i=o.label||"",n=o.required?" *":"";return i+n}function L(o,i){if(o===i)return!0;if(o==null||i==null||typeof o!=typeof i)return!1;if(typeof o!="object")return o===i;if(Array.isArray(o)&&Array.isArray(i))return o.length!==i.length?!1:o.every((l,r)=>L(l,i[r]));if(Array.isArray(o)!==Array.isArray(i))return!1;const n=Object.keys(o),t=Object.keys(i);return n.length!==t.length?!1:n.every(l=>Object.prototype.hasOwnProperty.call(i,l)&&L(o[l],i[l]))}function O(o){return o.type!=="FormSection"}function pe(o){return o.type==="FormSection"}function Q(){const o=e.ref([]);async function i(){console.debug("Validating form inputs");const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate(),typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.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,s)}else console.warn("Component does not have getErrors function:",s);return r.every(K)}function n(){o.value.forEach(r=>{typeof(r==null?void 0:r.onReset)=="function"&&r.onReset()})}function t(){const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?r.push(...a):r.push(String(a))}catch(a){console.error("Error calling getErrors on component:",a,s)}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:i,resetForm:n,getFormErrors:t,updateFormValues:l}}function ee(o){const i=e.computed(()=>Object.entries(o.value).reduce((d,[p,f])=>(O(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(O(c)&&c.children){const v=c.children[p];if(v&&O(v)&&typeof v.computedValue=="function")return v.computedValue(f,o.value)}return f},l=(d,p,f,c)=>{n.value[d][c]||(n.value[d][c]={}),Object.entries(p.other??{}).forEach(([v,C])=>{var B;!L(C,(B=f.other)==null?void 0:B[v])&&(n.value[d][c][v]=t(d,v,C))})},r=(d,p,f)=>{p.forEach((c,v)=>{const C=f[v]??{other:{}};l(d,c,C,v)})},s=(d,{other:p})=>Object.entries(p??{}).reduce((f,[c,v])=>(f[c]=t(d,c,v),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(v=>s(d,v))},g=(d,p,f)=>{if(!p){delete n.value[d];return}const c=o.value[d];O(c)&&(c.children!==void 0?a(d,p,f):typeof c.computedValue=="function"&&(n.value[d]=c.computedValue(p,o.value)))};return e.watch(i,(d,p={})=>{Object.keys(d).forEach(f=>{L(d[f],p[f])||g(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:i,computedData:n}}function te(o){const i=e.ref(0),n=e.ref({}),t=e.ref({}),l=e.ref({});function r(V){const m={};return Object.entries(V.schema).forEach(([u,h])=>{O(h)&&(m[u]=h.value)}),m}o.steps.forEach(V=>{n.value[V.id]=r(V),t.value[V.id]={},l.value[V.id]=[]});const s=e.computed(()=>o.steps[i.value]),a=e.computed(()=>i.value===0),g=e.computed(()=>i.value===o.steps.length-1),d=e.computed(()=>!g.value),p=e.computed(()=>!a.value),f=e.computed(()=>o.steps.length),c=e.computed(()=>f.value===0?0:Math.round((i.value+1)/f.value*100)),v=e.computed(()=>{const V={};return Object.values(n.value).forEach(m=>{Object.assign(V,m)}),V}),C=e.computed(()=>{const V={};return Object.values(t.value).forEach(m=>{Object.assign(V,m)}),V});function _(V,m){n.value[V]={...n.value[V],...m}}function B(V,m){t.value[V]={...t.value[V],...m}}function S(V){const m=o.steps.find(u=>u.id===V);m&&(n.value[V]=r(m),t.value[V]={})}async function b(){const V=s.value;if(!V)return!0;const m=[];if(V.validation){const u=await V.validation(n.value[V.id],t.value[V.id]);u&&m.push(...u)}return l.value[V.id]=m,m.length===0}async function I(V){return V<0||V>=o.steps.length||V>i.value&&!await b()?!1:(i.value=V,!0)}async function F(){return d.value?I(i.value+1):!1}async function z(){return p.value?I(i.value-1):!1}function D(){i.value=0,l.value={},o.steps.forEach(V=>{S(V.id),l.value[V.id]=[]})}async function E(){let V=!0;for(const m of o.steps)if(m.validation){const u=await m.validation(n.value[m.id],t.value[m.id]);l.value[m.id]=u||[],u&&u.length>0&&(V=!1)}return V}function N(){return{steps:{...n.value},computedSteps:{...t.value},allFormData:v.value,allComputedData:C.value}}return{currentStepIndex:i,currentStep:s,stepData:n,stepComputedData:t,stepValidationErrors:l,isFirstStep:a,isLastStep:g,canGoNext:d,canGoPrevious:p,totalSteps:f,progressPercentage:c,allFormData:v,allComputedData:C,updateStepData:_,updateStepComputedData:B,clearStepData:S,validateCurrentStep:b,goToStep:I,nextStep:F,previousStep:z,resetForm:D,validateAllSteps:E,getMultiStepFormData:N}}const fe={class:"step-indicator__container"},me=["onClick"],ve={class:"step-indicator__step-content"},he={class:"step-indicator__step-marker"},ge={class:"step-indicator__step-info"},ke={class:"step-indicator__step-title"},ye={key:0,class:"step-indicator__step-subtitle"},Ce={key:0,class:"step-indicator__progress"},Ve={class:"step-indicator__progress-bar"},Be={class:"step-indicator__progress-text"},we=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(o,{emit:i}){const n=o,t=i,l=e.computed(()=>n.steps.length===0?0:(n.activeStepIndex+1)/n.steps.length*100);function r(s){n.allowNavigation&&t("step-click",s)}return(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${s.position}`,{"step-indicator--clickable":s.allowNavigation}]])},[e.createElementVNode("div",fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.steps,(g,d)=>(e.openBlock(),e.createElementBlock("div",{key:g.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":d===s.activeStepIndex,"step-indicator__step--completed":d<s.activeStepIndex,"step-indicator__step--clickable":s.allowNavigation}]),onClick:p=>r(d)},[e.createElementVNode("div",ve,[e.createElementVNode("div",he,[e.createElementVNode("span",null,e.toDisplayString(d+1),1)]),e.createElementVNode("div",ge,[e.createElementVNode("div",ke,e.toDisplayString(g.title),1),g.subtitle?(e.openBlock(),e.createElementBlock("div",ye,e.toDisplayString(g.subtitle),1)):e.createCommentVNode("",!0)])]),d<s.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":d<s.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,me))),128))]),s.showProgress&&(s.position==="top"||s.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("div",Ve,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${l.value}%`})},null,4)]),e.createElementVNode("div",Be," Step "+e.toDisplayString(s.activeStepIndex+1)+" of "+e.toDisplayString(s.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),U=(o,i)=>{const n=o.__vccOpts||o;for(const[t,l]of i)n[t]=l;return n},j=U(we,[["__scopeId","data-v-aca1a6d0"]]),Se={class:"v-form-container"},_e={key:0,class:"multi-step-form"},be={class:"multi-step-form-content"},xe={class:"step-nav-buttons"},Ee={class:"step-action-buttons"},Ne={class:"step-nav-buttons"},Ie={key:1,class:"step-progress-bottom"},Oe={class:"step-progress-bar"},Fe={class:"step-progress-text"},De=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:i,emit:n}){const t=o,l=n,r=e.computed(()=>!!t.multiStepConfig),s=e.ref(t.schema||{}),a=t.multiStepConfig?te(t.multiStepConfig):null,{dynamicRefs:g,isFormValid:d,resetForm:p}=Q(),{formData:f,computedData:c}=ee(s),v=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.isLastStep.value)??!0),B=e.computed(()=>(a==null?void 0:a.canGoNext.value)??!1),S=e.computed(()=>(a==null?void 0:a.canGoPrevious.value)??!1),b=e.computed(()=>!r.value||!a?0:a.progressPercentage.value);e.watch(()=>C.value,u=>{u&&r.value&&(s.value=u.schema)},{immediate:!0}),e.watch([f,c],([u,h])=>{r.value&&a&&C.value&&(a.updateStepData(C.value.id,u),a.updateStepComputedData(C.value.id,h))},{deep:!0}),e.watch(()=>t.schema,u=>{if(!r.value&&u){s.value=u;for(const[h,w]of Object.entries(u))O(w)&&"value"in w&&w.value!==void 0&&(s.value[h].value=w.value)}},{deep:!0,immediate:!0});async function I(){if(r.value&&a){if(!await a.validateAllSteps())return;const h=a.getMultiStepFormData();l("multi-step-submit",h)}else{if(!await d())return;l("submit",f.value,c.value)}}function F(){r.value&&a?a.resetForm():p(),l("clear")}function z(){r.value&&a&&C.value&&a.clearStepData(C.value.id)}function D(){r.value&&a?a.resetForm():p(),l("cancel")}async function E(){if(a){if(!await d())return;await a.nextStep()&&C.value&&l("step-change",v.value,C.value.id)}}async function N(){a&&await a.previousStep()&&C.value&&l("step-change",v.value,C.value.id)}async function V(u){if(a){if(u>v.value&&!await d())return;await a.goToStep(u)&&C.value&&l("step-change",u,C.value.id)}}e.watch(f,async()=>{var u;for(const[h,w]of Object.entries(s.value))if(O(w)&&!W(w,f.value,c.value)){const k=r.value&&C.value?C.value.schema[h]:(u=t.schema)==null?void 0:u[h];k&&O(k)&&"value"in k&&(w.value=k.value)}},{deep:!0,immediate:!0});function m(u,h,w){return pe(u)?!0:W(u,h,w)}return i({resetForm:F,isFormValid:d,resolveData:()=>r.value&&a?a.getMultiStepFormData():{formData:f.value,computedData:c.value},nextStep:E,previousStep:N,goToStep:V,getCurrentStep:()=>C.value,getCurrentStepIndex:()=>v.value}),(u,h)=>{var w;return e.openBlock(),e.createElementBlock("div",Se,[r.value?(e.openBlock(),e.createElementBlock("div",_e,[u.multiStepConfig&&u.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(j,{key:0,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition||"top","show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V},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--${((w=u.multiStepConfig)==null?void 0:w.stepPosition)||"top"}`])},[u.multiStepConfig&&u.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(j,{key:0,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition??"top","show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",be,[e.createVNode(e.unref(y.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),k=>{var x,R,A,M,P;return e.openBlock(),e.createElementBlock(e.Fragment,{key:k},[m(s.value[k],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:0,size:((x=s.value[k].grid)==null?void 0:x.xs)??"12","size-sm":(R=s.value[k].grid)==null?void 0:R.sm,"size-md":(A=s.value[k].grid)==null?void 0:A.md,"size-lg":(M=s.value[k].grid)==null?void 0:M.lg,"size-xl":(P=s.value[k].grid)==null?void 0:P.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[k].type),{modelValue:s.value[k],"onUpdate:modelValue":H=>s.value[k]=H,schema:s.value,"form-id":k,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":k},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(y.IonRow),{key:0,class:"multi-step-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",class:"button-container"},{default:e.withCtx(()=>[e.createElementVNode("div",xe,[S.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:N,fill:"outline"},{default:e.withCtx(()=>h[0]||(h[0]=[e.createTextVNode(" Previous ")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ee,[u.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D,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(y.IonButton),{key:1,onClick:z,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,k=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:k.label,onClick:k.action,color:k.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.label),1)]),_:2},1032,["onClick","color"]))),128))]),e.createElementVNode("div",Ne,[B.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:E},{default:e.withCtx(()=>h[1]||(h[1]=[e.createTextVNode(" Next ")])),_:1,__:[1]})):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:I},{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",Ie,[e.createElementVNode("div",Oe,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${b.value}%`})},null,4)]),e.createElementVNode("div",Fe," Step "+e.toDisplayString(v.value+1)+" of "+e.toDisplayString(u.multiStepConfig.steps.length),1)])):e.createCommentVNode("",!0)]),u.multiStepConfig&&u.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(j,{key:1,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition,"show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V,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(j,{key:1,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition,"show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(e.unref(y.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),k=>{var x,R,A,M,P;return e.openBlock(),e.createElementBlock(e.Fragment,{key:k},[m(s.value[k],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:0,size:((x=s.value[k].grid)==null?void 0:x.xs)??"12","size-sm":(R=s.value[k].grid)==null?void 0:R.sm,"size-md":(A=s.value[k].grid)==null?void 0:A.md,"size-lg":(M=s.value[k].grid)==null?void 0:M.lg,"size-xl":(P=s.value[k].grid)==null?void 0:P.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[k].type),{modelValue:s.value[k],"onUpdate:modelValue":H=>s.value[k]=H,schema:s.value,"form-id":k,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":k},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(y.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:u.buttonPlacement}])},{default:e.withCtx(()=>[u.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),u.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:F},{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,k=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:k.label,onClick:k.action,color:k.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(y.IonButton),{onClick:I},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),ze=U(De,[["__scopeId","data-v-74178f58"]]);function Re(o){return{applyValidationState:async t=>{var l,r,s,a,g;(l=o.value)==null||l.$el.classList.remove("ion-invalid"),(r=o.value)==null||r.$el.classList.remove("ion-valid"),t?(s=o.value)==null||s.$el.classList.add("ion-valid"):(a=o.value)==null||a.$el.classList.add("ion-invalid"),(g=o.value)==null||g.$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 $(o,i,n,t,l){const{applyValidationState:r,resetValidationState:s}=Re(o);async function a(){if(i.value.required&&!n.value)return i.value.error="This field is required",!1;if(l){const c=await l(n.value);if(typeof c=="string")return i.value.error=c,!1;if(c===!1)return!1}if(i.value.validation){const c=await i.value.validation(n.value,t==null?void 0:t.value);if(c&&c.length)return i.value.error=c.join(),!1}return!0}async function g(){const c=await a();c&&(i.value.error="",i.value.value=n.value),await r(c)}function d(){s(),i.value.error=""}function p(c=""){n.value=c,i.value.error="",i.value.value=c}function f(){return i.value.error?[i.value.error]:[]}return{isValid:a,onValueUpdate:g,onFocus:d,onReset:p,getErrors:f,applyValidationState:r,resetValidationState:s}}function Te(o){const i=e.computed(()=>!!o.value.label),n=e.computed(()=>!!o.value.required),t=e.computed(()=>o.value.label||"");return{showLabel:i,showRequired:n,labelText:t}}const X=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(o){const i=o,{showLabel:n,showRequired:t,labelText:l}=Te(e.toRef(i,"model"));return(r,s)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(y.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(y.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>s[0]||(s[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:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),{isValid:a,onValueUpdate:g,onFocus:d,onReset:p,getErrors:f}=$(l,t,r,s),c=e.computed(()=>{if(t.value.pattern)return se(t.value.pattern)});return e.watch(()=>t.value.value,v=>r.value=v),i({onValueUpdate:g,onReset:p,getErrors:f,isValid:a}),(v,C)=>{var B;const _=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.IonInput),{ref_key:"inputRef",ref:l,modelValue:r.value,"onUpdate:modelValue":C[0]||(C[0]=S=>r.value=S),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:v.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((B=c.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,onIonFocus:e.unref(d),onIonChange:e.unref(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),v.type==="password"?(e.openBlock(),e.createBlock(e.unref(y.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[_,c.value]])}}}),$e=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"text",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Ae=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:n.value.enableTime?"datetime-local":"date",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),Me=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"number",schema:l.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(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"email",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Le=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"password",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Ue=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(null),s=e.ref(!1),a=e.ref([]),g=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)),v=e.computed(()=>!g.value&&K(c.value)&&!s.value?t.value.placeholder??"Select an option":"");e.watch([g,()=>t.value.options],N,{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(u=>{const h=n.schema[u];return O(h)?h.value:void 0}),async(m,u)=>{m&&u&&!L(m,u)&&(C(),a.value=[],await N())},{deep:!0});function C(){t.value.error="",g.value="",d.value=1,t.value.value=t.value.multiple?[]:"",ce(a.value)}function _(m){const u=a.value.findIndex(h=>h.value===m.value&&h.isChecked);if(u>=0){if(Array.isArray(t.value.value)){const h=J(m,t.value.value);h>=0&&t.value.value.splice(h,1)}a.value[u].isChecked=!1}else t.value.multiple||C(),T(m,a.value);E(),g.value=""}function B(){switch(p.value){case"action-sheet":S();break;case"alert":b();break;case"popover":default:s.value=!0;break}}async function S(){if(await N(),t.value.multiple){s.value=!0;return}await(await y.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...a.value.map(u=>({text:u.label,cssClass:u.isChecked?"selected-option":"",handler:()=>(_(u),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function b(){await N();const m=a.value.map(h=>({label:h.label,type:t.value.multiple?"checkbox":"radio",value:h,checked:h.isChecked}));await(await y.alertController.create({header:t.value.label||"Select an option",inputs:m,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:h=>{if(t.value.multiple)a.value.forEach(w=>ie(w,a.value)),h.forEach(w=>{const k=a.value.find(x=>x.value===w.value);k&&T(k,a.value)});else{C();const w=a.value.find(k=>k.value===h.value);w&&T(w,a.value)}E()}}]})).present()}async function I(){if(t.value.required&&K(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:F,applyValidationState:z}=$(l,t,e.computed(()=>t.value.multiple?c.value:c.value[0]),e.computed(()=>n==null?void 0:n.schema),I);function D(m){var u;m.target===((u=l.value)==null?void 0:u.$el)&&(F(),p.value==="popover"&&(s.value=!0))}async function E(m){var h;if((h=m==null?void 0:m.relatedTarget)!=null&&h.closest(".suggestions-list"))return;s.value=!1;const u=await I();u===!0?(t.value.error="",t.value.value=t.value.multiple?c.value:c.value[0]):t.value.error=typeof u=="string"?u:"Validation failed",await z(u===!0)}async function N(){const m=[];if(typeof t.value.options=="function"){let u={};if(t.value.dependsOn&&n.schema){const h=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let w=!0;if(u=h.reduce((k,x)=>{const R=n.schema[x];return k[x]=O(R)?R.value:void 0,(k[x]===void 0||k[x]===null||k[x]==="")&&(w=!1),k},{}),w){const k=await t.value.options(g.value,u);m.push(...k.filter(x=>!!x.label))}}else{const h=await t.value.options(g.value,{});m.push(...h.filter(w=>!!w.label))}}else Array.isArray(t.value.options)&&m.push(...de(t.value.options,g.value));c.value.forEach(u=>T(u,m)),a.value=m}async function V(){const m=t.value.value;if(m){if(a.value.length===0&&await N(),Array.isArray(m))m.forEach(u=>T(u,a.value));else if(typeof m=="object")T(m,a.value);else{const u=a.value.find(h=>h.value===m);T(u||{value:m,label:m},a.value)}E()}}return e.onMounted(async()=>{await N(),await V()}),i({onValueUpdate:E,onReset:C,getErrors:()=>t.value.error?[t.value.error]:[]}),(m,u)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:E,ref_key:"containerRef",ref:r},[e.createVNode(e.unref(y.IonInput),{ref_key:"inputRef",ref:l,modelValue:g.value,"onUpdate:modelValue":u[0]||(u[0]=h=>g.value=h),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:v.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:D,debounce:300,onClick:B},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(h,w)=>(e.openBlock(),e.createBlock(e.unref(y.IonChip),{key:w},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var h;return[e.createTextVNode(e.toDisplayString(((h=c.value[0])==null?void 0:h.label)??""),1)]}),_:1})),e.createVNode(e.unref(y.IonIcon),{slot:"end",icon:e.unref(G.chevronDown)},null,8,["icon"]),c.value.length>0||g.value?(e.openBlock(),e.createBlock(e.unref(y.IonIcon),{key:2,slot:"end",icon:e.unref(G.close),onClick:C,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),s.value&&a.value.length>0&&p.value==="popover"?(e.openBlock(),e.createBlock(e.unref(y.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,h=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{button:"",key:h.label,onClick:w=>_(h)},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{key:0,slot:"start",checked:h.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),qe=U(Ue,[["__scopeId","data-v-f96dd419"]]),je=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),{onValueUpdate:a,onFocus:g,onReset:d,getErrors:p}=$(l,t,r,s);return e.watch(()=>t.value.value,f=>r.value=f),i({onReset:d,onValueUpdate:a,getErrors:p}),(f,c)=>(e.openBlock(),e.createBlock(e.unref(y.IonTextarea),{ref_key:"inputRef",ref:l,modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=v=>r.value=v),"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(g),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=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref([]),{dynamicRefs:l,resetForm:r,getFormErrors:s,updateFormValues:a}=Q(),g=e.computed(()=>t.value.map((C,_)=>({label:`Set ${_+1}`,value:_,other:Object.entries(C).reduce((B,[S,b])=>(O(b)&&(B[S]=b.value),B),{})})));e.watch(g,C=>{n.value.value=C},{deep:!0,immediate:!0}),e.onMounted(d);function d(){n.value.children&&t.value.push(Z(n.value.children))}function p(C){t.value.splice(C,1)}function f(){r()}function c(){return s()}async function v(){await a()}return i({onValueUpdate:v,onReset:f,getErrors:c}),(C,_)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(B,S)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:S},[e.createElementVNode("div",Ge,[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(B),b=>{var I,F,z,D,E;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(W)(B[b],C.data,C.computedData)?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:`${S}-${b}`,size:((I=B[b].grid)==null?void 0:I.xs)??"12","size-sm":(F=B[b].grid)==null?void 0:F.sm,"size-md":(z=B[b].grid)==null?void 0:z.md,"size-lg":(D=B[b].grid)==null?void 0:D.lg,"size-xl":(E=B[b].grid)==null?void 0:E.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B[b].type),{modelValue:B[b],"onUpdate:modelValue":N=>B[b]=N,schema:B,"ref-key":`${S}-${b}`,ref_for:!0,ref_key:"dynamicRefs",ref:l},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",He,[S===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:d,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(G.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:b=>p(S),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(G.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),We=U(Ke,[["__scopeId","data-v-5bad57e4"]]),Ze=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),a=e.computed(()=>Y(t.value)),{onValueUpdate:g,onFocus:d,getErrors:p}=$(l,t,r,s);function f(){r.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,c=>r.value=c),i({onValueUpdate:g,onReset:f,getErrors:p}),(c,v)=>(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{modelValue:r.value,"onUpdate:modelValue":v[0]||(v[0]=C=>r.value=C),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(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["modelValue","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Je=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),a=e.ref([]),g=e.computed(()=>Y(t.value)),{onValueUpdate:d,onFocus:p,getErrors:f}=$(l,t,r,s);function c(){t.value.error="",r.value=void 0,t.value.value=void 0}function v(_,B){return _.value===B.value}async function C(){typeof t.value.options=="function"?a.value=await t.value.options():a.value=t.value.options}return e.watch(()=>t.value.value,_=>r.value=_),i({onValueUpdate:d,onReset:c,getErrors:f}),e.onMounted(C),(_,B)=>(e.openBlock(),e.createBlock(e.unref(y.IonRadioGroup),{modelValue:r.value,"onUpdate:modelValue":B[0]||(B[0]=S=>r.value=S),ref_key:"inputRef",ref:l,required:t.value.required,"helper-text":g.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:v,"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,S=>(e.openBlock(),e.createBlock(e.unref(y.IonRadio),{key:S.value,value:S,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["modelValue","required","helper-text","error-text","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"]))}}),Qe={class:"form-section-header"},Xe={class:"form-section-title"},Ye={key:0,class:"form-section-subtitle"},et=e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(o){const n=o.modelValue;return(t,l)=>{var r,s,a,g,d;return e.openBlock(),e.createBlock(e.unref(y.IonCol),{size:((r=e.unref(n).grid)==null?void 0:r.xs)??"12","size-sm":(s=e.unref(n).grid)==null?void 0:s.sm,"size-md":(a=e.unref(n).grid)==null?void 0:a.md,"size-lg":(g=e.unref(n).grid)==null?void 0:g.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",Qe,[e.createElementVNode("h3",Xe,e.toDisplayString(e.unref(n).title),1),e.unref(n).subtitle?(e.openBlock(),e.createElementBlock("p",Ye,e.toDisplayString(e.unref(n).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),tt=U(et,[["__scopeId","data-v-cf5d6e04"]]);function ot(o,i,n){const t=e.ref({}),l=e.ref({});function r(p,f,c){l.value[p]=c,f.forEach(v=>{var C;(C=t.value)[v]??(C[v]=[]),t.value[v].includes(p)||t.value[v].push(p)}),d(p)}function s(p){return Object.entries(t.value).filter(([,c])=>c.includes(p)).map(([c])=>c).reduce((c,v)=>(c[v]=i.value[v]??n.value[v],c),{})}function a(p,f){return p?Array.isArray(p)?p.some(c=>f.some(v=>g(c,v.value))):f.some(c=>g(p,c.value)):!1}function g(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=s(p),v=Object.keys(c);if(!(v.length===0||!v.every(_=>c[_]!==void 0&&c[_]!==null)))try{const _=l.value[p],B=await _(f,c);if(!o.value[p])return;const S=o.value[p];if(!O(S))return;S.options=B;const b=S.value;if(!b)return;a(b,B)||(S.value=S.multiple?[]:"")}catch(_){console.error(`Error loading options for ${p}:`,_)}}return e.watch([i,n],()=>{Object.entries(t.value).forEach(([p,f])=>{(i.value[p]!==void 0||n.value[p]!==void 0)&&f.forEach(c=>{d(c)})})},{deep:!0,immediate:!0}),{registerDependency:r,updateOptions:d}}const oe={install(o){o.component("VForm",ze),o.component("TextInput",$e),o.component("DateInput",Ae),o.component("NumberInput",Me),o.component("EmailInput",Pe),o.component("PasswordInput",Le),o.component("SelectInput",qe),o.component("TextAreaInput",je),o.component("RepeatInput",We),o.component("CheckboxInput",Ze),o.component("RadioInput",Je),o.component("FormSection",tt),o.directive("maskito",ne.maskito)}};exports.VForm=oe;exports.default=oe;exports.useDataTransformation=ee;exports.useDependentOptions=ot;exports.useFormValidation=Q;exports.useInputValidation=$;exports.useMultiStepForm=te;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("@ionic/vue"),G=require("ionicons/icons"),ne=require("@maskito/vue");function le(o){return new Promise(i=>{requestAnimationFrame(async()=>{const n=await o.getInputElement();i(n)})})}const ae={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},re={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 ue(o,i){const n=re[o];return n[i%n.length]}function se(o){const i=[];let n="",t=0,l=0;for(;t<o.length;){const r=o[t];if(["d","a","*"].includes(r)){let s=1;if(o[t+1]==="{"){const a=o.indexOf("}",t+2);if(a!==-1){const g=o.slice(t+2,a);if(g.includes(",")){const[,d]=g.split(",").map(p=>parseInt(p.trim()));s=d||parseInt(g.split(",")[0])}else s=parseInt(g);t=a}}else{let a=t+1;for(;o[a]===r;)s++,a++;t=a-1}for(let a=0;a<s;a++)i.push(ae[r]),n+=ue(r,l++)}else i.push(r),n+=r;t++}return{mask:i,placeholder:n,elementPredicate:le}}function K(o){return o==null||Array.isArray(o)&&!o.length||typeof o=="object"&&!Object.keys(o).length||!o}function W(o,i,n){return typeof o.condition=="function"?o.condition(i,n):!0}function Z(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(n=>Z(n));const i={};return Object.entries(o).forEach(([n,t])=>{typeof t=="function"?i[n]=t.bind(i):i[n]=Z(t)}),i}function J(o,i){return i.findIndex(n=>n.value===o.value||n.label===o.label||n.value===o.label||n.label===o.value)}function T(o,i){const n=J(o,i);n>=0?i[n].isChecked=!0:i.push({...o,isChecked:!0})}function ie(o,i){const n=J(o,i);n>=0&&(i[n].isChecked=!1)}function ce(o){o.forEach(i=>{i.isChecked=!1})}function de(o,i){return i?o.filter(n=>JSON.stringify(n).toLowerCase().includes(i.toLowerCase())):o}function Y(o){const i=o.label||"",n=o.required?" *":"";return i+n}function L(o,i){if(o===i)return!0;if(o==null||i==null||typeof o!=typeof i)return!1;if(typeof o!="object")return o===i;if(Array.isArray(o)&&Array.isArray(i))return o.length!==i.length?!1:o.every((l,r)=>L(l,i[r]));if(Array.isArray(o)!==Array.isArray(i))return!1;const n=Object.keys(o),t=Object.keys(i);return n.length!==t.length?!1:n.every(l=>Object.prototype.hasOwnProperty.call(i,l)&&L(o[l],i[l]))}function O(o){return o.type!=="FormSection"}function pe(o){return o.type==="FormSection"}function Q(){const o=e.ref([]);async function i(){console.debug("Validating form inputs");const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate(),typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.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,s)}else console.warn("Component does not have getErrors function:",s);return r.every(K)}function n(){o.value.forEach(r=>{typeof(r==null?void 0:r.onReset)=="function"&&r.onReset()})}function t(){const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?r.push(...a):r.push(String(a))}catch(a){console.error("Error calling getErrors on component:",a,s)}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:i,resetForm:n,getFormErrors:t,updateFormValues:l}}function ee(o){const i=e.computed(()=>Object.entries(o.value).reduce((d,[p,f])=>(O(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(O(c)&&c.children){const v=c.children[p];if(v&&O(v)&&typeof v.computedValue=="function")return v.computedValue(f,o.value)}return f},l=(d,p,f,c)=>{n.value[d][c]||(n.value[d][c]={}),Object.entries(p.other??{}).forEach(([v,C])=>{var B;!L(C,(B=f.other)==null?void 0:B[v])&&(n.value[d][c][v]=t(d,v,C))})},r=(d,p,f)=>{p.forEach((c,v)=>{const C=f[v]??{other:{}};l(d,c,C,v)})},s=(d,{other:p})=>Object.entries(p??{}).reduce((f,[c,v])=>(f[c]=t(d,c,v),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(v=>s(d,v))},g=(d,p,f)=>{if(!p){delete n.value[d];return}const c=o.value[d];O(c)&&(c.children!==void 0?a(d,p,f):typeof c.computedValue=="function"&&(n.value[d]=c.computedValue(p,o.value)))};return e.watch(i,(d,p={})=>{Object.keys(d).forEach(f=>{L(d[f],p[f])||g(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:i,computedData:n}}function te(o){const i=e.ref(0),n=e.ref({}),t=e.ref({}),l=e.ref({});function r(V){const m={};return Object.entries(V.schema).forEach(([u,h])=>{O(h)&&(m[u]=h.value)}),m}o.steps.forEach(V=>{n.value[V.id]=r(V),t.value[V.id]={},l.value[V.id]=[]});const s=e.computed(()=>o.steps[i.value]),a=e.computed(()=>i.value===0),g=e.computed(()=>i.value===o.steps.length-1),d=e.computed(()=>!g.value),p=e.computed(()=>!a.value),f=e.computed(()=>o.steps.length),c=e.computed(()=>f.value===0?0:Math.round((i.value+1)/f.value*100)),v=e.computed(()=>{const V={};return Object.values(n.value).forEach(m=>{Object.assign(V,m)}),V}),C=e.computed(()=>{const V={};return Object.values(t.value).forEach(m=>{Object.assign(V,m)}),V});function _(V,m){n.value[V]={...n.value[V],...m}}function B(V,m){t.value[V]={...t.value[V],...m}}function S(V){const m=o.steps.find(u=>u.id===V);m&&(n.value[V]=r(m),t.value[V]={})}async function b(){const V=s.value;if(!V)return!0;const m=[];if(V.validation){const u=await V.validation(n.value[V.id],t.value[V.id]);u&&m.push(...u)}return l.value[V.id]=m,m.length===0}async function I(V){return V<0||V>=o.steps.length||V>i.value&&!await b()?!1:(i.value=V,!0)}async function F(){return d.value?I(i.value+1):!1}async function z(){return p.value?I(i.value-1):!1}function D(){i.value=0,l.value={},o.steps.forEach(V=>{S(V.id),l.value[V.id]=[]})}async function E(){let V=!0;for(const m of o.steps)if(m.validation){const u=await m.validation(n.value[m.id],t.value[m.id]);l.value[m.id]=u||[],u&&u.length>0&&(V=!1)}return V}function N(){return{steps:{...n.value},computedSteps:{...t.value},allFormData:v.value,allComputedData:C.value}}return{currentStepIndex:i,currentStep:s,stepData:n,stepComputedData:t,stepValidationErrors:l,isFirstStep:a,isLastStep:g,canGoNext:d,canGoPrevious:p,totalSteps:f,progressPercentage:c,allFormData:v,allComputedData:C,updateStepData:_,updateStepComputedData:B,clearStepData:S,validateCurrentStep:b,goToStep:I,nextStep:F,previousStep:z,resetForm:D,validateAllSteps:E,getMultiStepFormData:N}}const fe={class:"step-indicator__container"},me=["onClick"],ve={class:"step-indicator__step-content"},he={class:"step-indicator__step-marker"},ge={class:"step-indicator__step-info"},ke={class:"step-indicator__step-title"},ye={key:0,class:"step-indicator__step-subtitle"},Ce={key:0,class:"step-indicator__progress"},Ve={class:"step-indicator__progress-bar"},Be={class:"step-indicator__progress-text"},we=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(o,{emit:i}){const n=o,t=i,l=e.computed(()=>n.steps.length===0?0:(n.activeStepIndex+1)/n.steps.length*100);function r(s){n.allowNavigation&&t("step-click",s)}return(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${s.position}`,{"step-indicator--clickable":s.allowNavigation}]])},[e.createElementVNode("div",fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.steps,(g,d)=>(e.openBlock(),e.createElementBlock("div",{key:g.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":d===s.activeStepIndex,"step-indicator__step--completed":d<s.activeStepIndex,"step-indicator__step--clickable":s.allowNavigation}]),onClick:p=>r(d)},[e.createElementVNode("div",ve,[e.createElementVNode("div",he,[e.createElementVNode("span",null,e.toDisplayString(d+1),1)]),e.createElementVNode("div",ge,[e.createElementVNode("div",ke,e.toDisplayString(g.title),1),g.subtitle?(e.openBlock(),e.createElementBlock("div",ye,e.toDisplayString(g.subtitle),1)):e.createCommentVNode("",!0)])]),d<s.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":d<s.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,me))),128))]),s.showProgress&&(s.position==="top"||s.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("div",Ve,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${l.value}%`})},null,4)]),e.createElementVNode("div",Be," Step "+e.toDisplayString(s.activeStepIndex+1)+" of "+e.toDisplayString(s.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),U=(o,i)=>{const n=o.__vccOpts||o;for(const[t,l]of i)n[t]=l;return n},j=U(we,[["__scopeId","data-v-aca1a6d0"]]),Se={class:"v-form-container"},_e={key:0,class:"multi-step-form"},be={class:"multi-step-form-content"},xe={class:"step-nav-buttons"},Ee={class:"step-action-buttons"},Ne={class:"step-nav-buttons"},Ie={key:1,class:"step-progress-bottom"},Oe={class:"step-progress-bar"},Fe={class:"step-progress-text"},De=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:i,emit:n}){const t=o,l=n,r=e.computed(()=>!!t.multiStepConfig),s=e.ref(t.schema||{}),a=t.multiStepConfig?te(t.multiStepConfig):null,{dynamicRefs:g,isFormValid:d,resetForm:p}=Q(),{formData:f,computedData:c}=ee(s),v=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.isLastStep.value)??!0),B=e.computed(()=>(a==null?void 0:a.canGoNext.value)??!1),S=e.computed(()=>(a==null?void 0:a.canGoPrevious.value)??!1),b=e.computed(()=>!r.value||!a?0:a.progressPercentage.value);e.watch(()=>C.value,u=>{u&&r.value&&(s.value=u.schema)},{immediate:!0}),e.watch([f,c],([u,h])=>{r.value&&a&&C.value&&(a.updateStepData(C.value.id,u),a.updateStepComputedData(C.value.id,h))},{deep:!0}),e.watch(()=>t.schema,u=>{if(!r.value&&u){s.value=u;for(const[h,w]of Object.entries(u))O(w)&&"value"in w&&w.value!==void 0&&(s.value[h].value=w.value)}},{deep:!0,immediate:!0});async function I(){if(r.value&&a){if(!await a.validateAllSteps())return;const h=a.getMultiStepFormData();l("multi-step-submit",h)}else{if(!await d())return;l("submit",f.value,c.value)}}function F(){r.value&&a?a.resetForm():p(),l("clear")}function z(){r.value&&a&&C.value&&a.clearStepData(C.value.id)}function D(){r.value&&a?a.resetForm():p(),l("cancel")}async function E(){if(a){if(!await d())return;await a.nextStep()&&C.value&&l("step-change",v.value,C.value.id)}}async function N(){a&&await a.previousStep()&&C.value&&l("step-change",v.value,C.value.id)}async function V(u){if(a){if(u>v.value&&!await d())return;await a.goToStep(u)&&C.value&&l("step-change",u,C.value.id)}}e.watch(f,async()=>{var u;for(const[h,w]of Object.entries(s.value))if(O(w)&&!W(w,f.value,c.value)){const k=r.value&&C.value?C.value.schema[h]:(u=t.schema)==null?void 0:u[h];k&&O(k)&&"value"in k&&(w.value=k.value)}},{deep:!0,immediate:!0});function m(u,h,w){return pe(u)?!0:W(u,h,w)}return i({resetForm:F,isFormValid:d,resolveData:()=>r.value&&a?a.getMultiStepFormData():{formData:f.value,computedData:c.value},nextStep:E,previousStep:N,goToStep:V,getCurrentStep:()=>C.value,getCurrentStepIndex:()=>v.value}),(u,h)=>{var w;return e.openBlock(),e.createElementBlock("div",Se,[r.value?(e.openBlock(),e.createElementBlock("div",_e,[u.multiStepConfig&&u.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(j,{key:0,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition||"top","show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V},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--${((w=u.multiStepConfig)==null?void 0:w.stepPosition)||"top"}`])},[u.multiStepConfig&&u.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(j,{key:0,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition??"top","show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",be,[e.createVNode(e.unref(y.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),k=>{var x,R,A,M,P;return e.openBlock(),e.createElementBlock(e.Fragment,{key:k},[m(s.value[k],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:0,size:((x=s.value[k].grid)==null?void 0:x.xs)??"12","size-sm":(R=s.value[k].grid)==null?void 0:R.sm,"size-md":(A=s.value[k].grid)==null?void 0:A.md,"size-lg":(M=s.value[k].grid)==null?void 0:M.lg,"size-xl":(P=s.value[k].grid)==null?void 0:P.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[k].type),{modelValue:s.value[k],"onUpdate:modelValue":H=>s.value[k]=H,schema:s.value,"form-id":k,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":k},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(y.IonRow),{key:0,class:"multi-step-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",class:"button-container"},{default:e.withCtx(()=>[e.createElementVNode("div",xe,[S.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:N,fill:"outline"},{default:e.withCtx(()=>h[0]||(h[0]=[e.createTextVNode(" Previous ")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ee,[u.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D,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(y.IonButton),{key:1,onClick:z,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,k=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:k.label,onClick:k.action,color:k.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.label),1)]),_:2},1032,["onClick","color"]))),128))]),e.createElementVNode("div",Ne,[B.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:E},{default:e.withCtx(()=>h[1]||(h[1]=[e.createTextVNode(" Next ")])),_:1,__:[1]})):e.createCommentVNode("",!0),_.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:I},{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",Ie,[e.createElementVNode("div",Oe,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${b.value}%`})},null,4)]),e.createElementVNode("div",Fe," Step "+e.toDisplayString(v.value+1)+" of "+e.toDisplayString(u.multiStepConfig.steps.length),1)])):e.createCommentVNode("",!0)]),u.multiStepConfig&&u.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(j,{key:1,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition,"show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V,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(j,{key:1,steps:u.multiStepConfig.steps,"active-step-index":v.value,position:u.multiStepConfig.stepPosition,"show-progress":u.multiStepConfig.showProgress,"allow-navigation":u.multiStepConfig.allowStepNavigation,onStepClick:V},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(e.unref(y.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),k=>{var x,R,A,M,P;return e.openBlock(),e.createElementBlock(e.Fragment,{key:k},[m(s.value[k],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:0,size:((x=s.value[k].grid)==null?void 0:x.xs)??"12","size-sm":(R=s.value[k].grid)==null?void 0:R.sm,"size-md":(A=s.value[k].grid)==null?void 0:A.md,"size-lg":(M=s.value[k].grid)==null?void 0:M.lg,"size-xl":(P=s.value[k].grid)==null?void 0:P.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[k].type),{modelValue:s.value[k],"onUpdate:modelValue":H=>s.value[k]=H,schema:s.value,"form-id":k,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":k},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(y.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:u.buttonPlacement}])},{default:e.withCtx(()=>[u.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),u.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:F},{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,k=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:k.label,onClick:k.action,color:k.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(y.IonButton),{onClick:I},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),ze=U(De,[["__scopeId","data-v-74178f58"]]);function Re(o){return{applyValidationState:async t=>{var l,r,s,a,g;(l=o.value)==null||l.$el.classList.remove("ion-invalid"),(r=o.value)==null||r.$el.classList.remove("ion-valid"),t?(s=o.value)==null||s.$el.classList.add("ion-valid"):(a=o.value)==null||a.$el.classList.add("ion-invalid"),(g=o.value)==null||g.$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 $(o,i,n,t,l){const{applyValidationState:r,resetValidationState:s}=Re(o);async function a(){if(i.value.required&&!n.value)return i.value.error="This field is required",!1;if(l){const c=await l(n.value);if(typeof c=="string")return i.value.error=c,!1;if(c===!1)return!1}if(i.value.validation){const c=await i.value.validation(n.value,t==null?void 0:t.value);if(c&&c.length)return i.value.error=c.join(),!1}return!0}async function g(){const c=await a();c&&(i.value.error="",i.value.value=n.value),await r(c)}function d(){s(),i.value.error=""}function p(c=""){n.value=c,i.value.error="",i.value.value=c}function f(){return i.value.error?[i.value.error]:[]}return{isValid:a,onValueUpdate:g,onFocus:d,onReset:p,getErrors:f,applyValidationState:r,resetValidationState:s}}function Te(o){const i=e.computed(()=>!!o.value.label),n=e.computed(()=>!!o.value.required),t=e.computed(()=>o.value.label||"");return{showLabel:i,showRequired:n,labelText:t}}const X=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(o){const i=o,{showLabel:n,showRequired:t,labelText:l}=Te(e.toRef(i,"model"));return(r,s)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(y.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(y.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>s[0]||(s[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:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),{isValid:a,onValueUpdate:g,onFocus:d,onReset:p,getErrors:f}=$(l,t,r,s),c=e.computed(()=>{if(t.value.pattern)return se(t.value.pattern)});return e.watch(()=>t.value.value,v=>r.value=v),i({onValueUpdate:g,onReset:p,getErrors:f,isValid:a}),(v,C)=>{var B;const _=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.IonInput),{ref_key:"inputRef",ref:l,modelValue:r.value,"onUpdate:modelValue":C[0]||(C[0]=S=>r.value=S),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:v.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((B=c.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,onIonFocus:e.unref(d),onIonChange:e.unref(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),v.type==="password"?(e.openBlock(),e.createBlock(e.unref(y.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[_,c.value]])}}}),$e=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"text",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Ae=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:n.value.enableTime?"datetime-local":"date",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),Me=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"number",schema:l.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(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"email",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Le=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref(null);return i({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]=s=>n.value=s),type:"password",schema:l.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Ue=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(null),s=e.ref(!1),a=e.ref([]),g=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)),v=e.computed(()=>!g.value&&K(c.value)&&!s.value?t.value.placeholder??"Select an option":"");e.watch([g,()=>t.value.options],N,{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(u=>{const h=n.schema[u];return O(h)?h.value:void 0}),async(m,u)=>{m&&u&&!L(m,u)&&(C(),a.value=[],await N())},{deep:!0});function C(){t.value.error="",g.value="",d.value=1,t.value.value=t.value.multiple?[]:"",ce(a.value)}function _(m){const u=a.value.findIndex(h=>h.value===m.value&&h.isChecked);if(u>=0){if(Array.isArray(t.value.value)){const h=J(m,t.value.value);h>=0&&t.value.value.splice(h,1)}a.value[u].isChecked=!1}else t.value.multiple||C(),T(m,a.value);E(),g.value=""}function B(){switch(p.value){case"action-sheet":S();break;case"alert":b();break;case"popover":default:s.value=!0;break}}async function S(){if(await N(),t.value.multiple){s.value=!0;return}await(await y.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...a.value.map(u=>({text:u.label,cssClass:u.isChecked?"selected-option":"",handler:()=>(_(u),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function b(){await N();const m=a.value.map(h=>({label:h.label,type:t.value.multiple?"checkbox":"radio",value:h,checked:h.isChecked}));await(await y.alertController.create({header:t.value.label||"Select an option",inputs:m,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:h=>{if(t.value.multiple)a.value.forEach(w=>ie(w,a.value)),h.forEach(w=>{const k=a.value.find(x=>x.value===w.value);k&&T(k,a.value)});else{C();const w=a.value.find(k=>k.value===h.value);w&&T(w,a.value)}E()}}]})).present()}async function I(){if(t.value.required&&K(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:F,applyValidationState:z}=$(l,t,e.computed(()=>t.value.multiple?c.value:c.value[0]),e.computed(()=>n==null?void 0:n.schema),I);function D(m){var u;m.target===((u=l.value)==null?void 0:u.$el)&&(F(),p.value==="popover"&&(s.value=!0))}async function E(m){var h;if((h=m==null?void 0:m.relatedTarget)!=null&&h.closest(".suggestions-list"))return;s.value=!1;const u=await I();u===!0?(t.value.error="",t.value.value=t.value.multiple?c.value:c.value[0]):t.value.error=typeof u=="string"?u:"Validation failed",await z(u===!0)}async function N(){const m=[];if(typeof t.value.options=="function"){let u={};if(t.value.dependsOn&&n.schema){const h=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let w=!0;if(u=h.reduce((k,x)=>{const R=n.schema[x];return k[x]=O(R)?R.value:void 0,(k[x]===void 0||k[x]===null||k[x]==="")&&(w=!1),k},{}),w){const k=await t.value.options(g.value,u);m.push(...k.filter(x=>!!x.label))}}else{const h=await t.value.options(g.value,{});m.push(...h.filter(w=>!!w.label))}}else Array.isArray(t.value.options)&&m.push(...de(t.value.options,g.value));c.value.forEach(u=>T(u,m)),a.value=m}async function V(){const m=t.value.value;if(m){if(a.value.length===0&&await N(),Array.isArray(m))m.forEach(u=>T(u,a.value));else if(typeof m=="object")T(m,a.value);else{const u=a.value.find(h=>h.value===m);T(u||{value:m,label:m},a.value)}E()}}return e.onMounted(async()=>{await N(),await V()}),i({onValueUpdate:E,onReset:C,getErrors:()=>t.value.error?[t.value.error]:[]}),(m,u)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:E,ref_key:"containerRef",ref:r},[e.createVNode(e.unref(y.IonInput),{ref_key:"inputRef",ref:l,modelValue:g.value,"onUpdate:modelValue":u[0]||(u[0]=h=>g.value=h),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:v.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:D,debounce:300,onClick:B},{default:e.withCtx(()=>[e.createVNode(X,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(h,w)=>(e.openBlock(),e.createBlock(e.unref(y.IonChip),{key:w},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var h;return[e.createTextVNode(e.toDisplayString(((h=c.value[0])==null?void 0:h.label)??""),1)]}),_:1})),e.createVNode(e.unref(y.IonIcon),{slot:"end",icon:e.unref(G.chevronDown)},null,8,["icon"]),c.value.length>0||g.value?(e.openBlock(),e.createBlock(e.unref(y.IonIcon),{key:2,slot:"end",icon:e.unref(G.close),onClick:C,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),s.value&&a.value.length>0&&p.value==="popover"?(e.openBlock(),e.createBlock(e.unref(y.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,h=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{button:"",key:h.label,onClick:w=>_(h),lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{key:0,slot:"start",checked:h.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1024)]),_:2},1032,["onClick","lines"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),qe=U(Ue,[["__scopeId","data-v-e4c50d52"]]),je=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),{onValueUpdate:a,onFocus:g,onReset:d,getErrors:p}=$(l,t,r,s);return e.watch(()=>t.value.value,f=>r.value=f),i({onReset:d,onValueUpdate:a,getErrors:p}),(f,c)=>(e.openBlock(),e.createBlock(e.unref(y.IonTextarea),{ref_key:"inputRef",ref:l,modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=v=>r.value=v),"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(g),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=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=e.useModel(o,"modelValue"),t=e.ref([]),{dynamicRefs:l,resetForm:r,getFormErrors:s,updateFormValues:a}=Q(),g=e.computed(()=>t.value.map((C,_)=>({label:`Set ${_+1}`,value:_,other:Object.entries(C).reduce((B,[S,b])=>(O(b)&&(B[S]=b.value),B),{})})));e.watch(g,C=>{n.value.value=C},{deep:!0,immediate:!0}),e.onMounted(d);function d(){n.value.children&&t.value.push(Z(n.value.children))}function p(C){t.value.splice(C,1)}function f(){r()}function c(){return s()}async function v(){await a()}return i({onValueUpdate:v,onReset:f,getErrors:c}),(C,_)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(B,S)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:S},[e.createElementVNode("div",Ge,[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(B),b=>{var I,F,z,D,E;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(W)(B[b],C.data,C.computedData)?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:`${S}-${b}`,size:((I=B[b].grid)==null?void 0:I.xs)??"12","size-sm":(F=B[b].grid)==null?void 0:F.sm,"size-md":(z=B[b].grid)==null?void 0:z.md,"size-lg":(D=B[b].grid)==null?void 0:D.lg,"size-xl":(E=B[b].grid)==null?void 0:E.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B[b].type),{modelValue:B[b],"onUpdate:modelValue":N=>B[b]=N,schema:B,"ref-key":`${S}-${b}`,ref_for:!0,ref_key:"dynamicRefs",ref:l},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",He,[S===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:d,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(G.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:b=>p(S),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(G.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),We=U(Ke,[["__scopeId","data-v-5bad57e4"]]),Ze=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),a=e.computed(()=>Y(t.value)),{onValueUpdate:g,onFocus:d,getErrors:p}=$(l,t,r,s);function f(){r.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,c=>r.value=c),i({onValueUpdate:g,onReset:f,getErrors:p}),(c,v)=>(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{modelValue:r.value,"onUpdate:modelValue":v[0]||(v[0]=C=>r.value=C),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(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["modelValue","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Je=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:i}){const n=o,t=e.useModel(o,"modelValue"),l=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>n.schema),a=e.ref([]),g=e.computed(()=>Y(t.value)),{onValueUpdate:d,onFocus:p,getErrors:f}=$(l,t,r,s);function c(){t.value.error="",r.value=void 0,t.value.value=void 0}function v(_,B){return _.value===B.value}async function C(){typeof t.value.options=="function"?a.value=await t.value.options():a.value=t.value.options}return e.watch(()=>t.value.value,_=>r.value=_),i({onValueUpdate:d,onReset:c,getErrors:f}),e.onMounted(C),(_,B)=>(e.openBlock(),e.createBlock(e.unref(y.IonRadioGroup),{modelValue:r.value,"onUpdate:modelValue":B[0]||(B[0]=S=>r.value=S),ref_key:"inputRef",ref:l,required:t.value.required,"helper-text":g.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:v,"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,S=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{key:S.value,lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRadio),{value:S,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.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"]))}}),Qe={class:"form-section-header"},Xe={class:"form-section-title"},Ye={key:0,class:"form-section-subtitle"},et=e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(o){const n=o.modelValue;return(t,l)=>{var r,s,a,g,d;return e.openBlock(),e.createBlock(e.unref(y.IonCol),{size:((r=e.unref(n).grid)==null?void 0:r.xs)??"12","size-sm":(s=e.unref(n).grid)==null?void 0:s.sm,"size-md":(a=e.unref(n).grid)==null?void 0:a.md,"size-lg":(g=e.unref(n).grid)==null?void 0:g.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",Qe,[e.createElementVNode("h3",Xe,e.toDisplayString(e.unref(n).title),1),e.unref(n).subtitle?(e.openBlock(),e.createElementBlock("p",Ye,e.toDisplayString(e.unref(n).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),tt=U(et,[["__scopeId","data-v-cf5d6e04"]]);function ot(o,i,n){const t=e.ref({}),l=e.ref({});function r(p,f,c){l.value[p]=c,f.forEach(v=>{var C;(C=t.value)[v]??(C[v]=[]),t.value[v].includes(p)||t.value[v].push(p)}),d(p)}function s(p){return Object.entries(t.value).filter(([,c])=>c.includes(p)).map(([c])=>c).reduce((c,v)=>(c[v]=i.value[v]??n.value[v],c),{})}function a(p,f){return p?Array.isArray(p)?p.some(c=>f.some(v=>g(c,v.value))):f.some(c=>g(p,c.value)):!1}function g(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=s(p),v=Object.keys(c);if(!(v.length===0||!v.every(_=>c[_]!==void 0&&c[_]!==null)))try{const _=l.value[p],B=await _(f,c);if(!o.value[p])return;const S=o.value[p];if(!O(S))return;S.options=B;const b=S.value;if(!b)return;a(b,B)||(S.value=S.multiple?[]:"")}catch(_){console.error(`Error loading options for ${p}:`,_)}}return e.watch([i,n],()=>{Object.entries(t.value).forEach(([p,f])=>{(i.value[p]!==void 0||n.value[p]!==void 0)&&f.forEach(c=>{d(c)})})},{deep:!0,immediate:!0}),{registerDependency:r,updateOptions:d}}const oe={install(o){o.component("VForm",ze),o.component("TextInput",$e),o.component("DateInput",Ae),o.component("NumberInput",Me),o.component("EmailInput",Pe),o.component("PasswordInput",Le),o.component("SelectInput",qe),o.component("TextAreaInput",je),o.component("RepeatInput",We),o.component("CheckboxInput",Ze),o.component("RadioInput",Je),o.component("FormSection",tt),o.directive("maskito",ne.maskito)}};exports.VForm=oe;exports.default=oe;exports.useDataTransformation=ee;exports.useDependentOptions=ot;exports.useFormValidation=Q;exports.useInputValidation=$;exports.useMultiStepForm=te;
2
2
  //# sourceMappingURL=index.cjs.js.map