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