@uniquedj95/vform 3.6.2 → 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 CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  A dynamic form builder for Vue.js with Ionic components
8
8
 
9
- [![Version](https://img.shields.io/badge/version-3.6.2-blue.svg)](https://github.com/uniquedj95/vform/releases)
9
+ [![Version](https://img.shields.io/badge/version-3.7.0-blue.svg)](https://github.com/uniquedj95/vform/releases)
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
11
11
  [![Vue Version](https://img.shields.io/badge/vue-3.5+-brightgreen.svg)](https://vuejs.org/)
12
12
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue)](https://www.typescriptlang.org/)
@@ -0,0 +1,24 @@
1
+ import { ActionButtonType } from '../../types';
2
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
3
+ type: {
4
+ type: () => ActionButtonType;
5
+ default: string;
6
+ };
7
+ label: {
8
+ type: StringConstructor;
9
+ required: false;
10
+ };
11
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
12
+ type: {
13
+ type: () => ActionButtonType;
14
+ default: string;
15
+ };
16
+ label: {
17
+ type: StringConstructor;
18
+ required: false;
19
+ };
20
+ }>> & Readonly<{}>, {
21
+ type: ActionButtonType;
22
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
23
+ export default _default;
24
+ //# sourceMappingURL=ActionButton.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buttons/ActionButton.vue"],"names":[],"mappings":"AAUA;AAoCA,OAAO,EAAE,gBAAgB,EAAgB,MAAM,SAAS,CAAC;;;cA2FrC,MAAM,gBAAgB;;;;;;;;;cAAtB,MAAM,gBAAgB;;;;;;;;;;AAP1C,wBAgBG"}
@@ -0,0 +1,15 @@
1
+ import { CustomButton } from '../../types';
2
+ import { PropType } from 'vue';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ button: {
5
+ type: PropType<CustomButton>;
6
+ required: true;
7
+ };
8
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
9
+ button: {
10
+ type: PropType<CustomButton>;
11
+ required: true;
12
+ };
13
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
14
+ export default _default;
15
+ //# sourceMappingURL=CustomButton.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/buttons/CustomButton.vue"],"names":[],"mappings":"AAWA;AA0BA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;;;cAiFX,QAAQ,CAAC,YAAY,CAAC;;;;;cAAtB,QAAQ,CAAC,YAAY,CAAC;;;;AAP1C,wBAYG"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AA4BA;AAwFA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAKxD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAehF,iBAAS,OAAO,SAIf;AAuCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;AAyJhB,wBAQG"}
1
+ {"version":3,"file":"RadioInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/RadioInput.vue"],"names":[],"mappings":"AA0CA;AA8HA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAMxD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAehF,iBAAS,OAAO,SAIf;AAuCD,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;AAwLhB,wBAQG"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AA6DA;AAqeA,OAAO,EAAiB,QAAQ,EAA6C,MAAM,KAAK,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAwFxE,iBAAS,OAAO,SAMf;AAkJD,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YA0amB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;YADtB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;AAX1C,wBAiBG"}
1
+ {"version":3,"file":"SelectInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SelectInput.vue"],"names":[],"mappings":"AA6EA;AA2hBA,OAAO,EAAiB,QAAQ,EAAqD,MAAM,KAAK,CAAC;AAEjG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAwB,MAAM,SAAS,CAAC;AA4FtF,iBAAS,OAAO,SAMf;AA6JD,iBAAe,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,iBAgBrC;;YAycmB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;YADtB,QAAQ,CAAC,UAAU,CAAC;UACtB,QAAQ,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;AAX1C,wBAiBG"}
@@ -1,17 +1,4 @@
1
- import { FormData, ComputedData, FormSchema, CustomButton, MultiStepConfig, MultiStepFormData } from '../types';
2
- interface FormProps {
3
- schema?: FormSchema;
4
- multiStepConfig?: MultiStepConfig;
5
- showLabels?: boolean;
6
- showClearButton?: boolean;
7
- showCancelButton?: boolean;
8
- buttonPlacement?: 'start' | 'middle' | 'end';
9
- submitButtonText?: string;
10
- clearButtonText?: string;
11
- cancelButtonText?: string;
12
- hideButtons?: boolean;
13
- customButtons?: Array<CustomButton>;
14
- }
1
+ import { FormData, ComputedData, MultiStepFormData, FormProps } from '../types';
15
2
  declare function handleClearAction(): void;
16
3
  declare function handleNextStep(): Promise<void>;
17
4
  declare function handlePreviousStep(): Promise<void>;
@@ -29,15 +16,15 @@ declare const _default: import('vue').DefineComponent<FormProps, {
29
16
  getCurrentStep: () => import('../types').FormStep | undefined;
30
17
  getCurrentStepIndex: () => number;
31
18
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
32
- clear: () => any;
33
- cancel: () => any;
34
19
  submit: (formData: FormData, computedFormData: ComputedData) => any;
20
+ cancel: () => any;
21
+ clear: () => any;
35
22
  "multi-step-submit": (data: MultiStepFormData) => any;
36
23
  "step-change": (stepIndex: number, stepId: string) => any;
37
24
  }, string, import('vue').PublicProps, Readonly<FormProps> & Readonly<{
38
- onClear?: (() => any) | undefined;
39
- onCancel?: (() => any) | undefined;
40
25
  onSubmit?: ((formData: FormData, computedFormData: ComputedData) => any) | undefined;
26
+ onCancel?: (() => any) | undefined;
27
+ onClear?: (() => any) | undefined;
41
28
  "onMulti-step-submit"?: ((data: MultiStepFormData) => any) | undefined;
42
29
  "onStep-change"?: ((stepIndex: number, stepId: string) => any) | undefined;
43
30
  }>, {
@@ -45,9 +32,6 @@ declare const _default: import('vue').DefineComponent<FormProps, {
45
32
  showClearButton: boolean;
46
33
  showCancelButton: boolean;
47
34
  buttonPlacement: "start" | "middle" | "end";
48
- submitButtonText: string;
49
- clearButtonText: string;
50
- cancelButtonText: string;
51
35
  hideButtons: boolean;
52
36
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
53
37
  customComponentRef: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"vForm.vue.d.ts","sourceRoot":"","sources":["../../src/components/vForm.vue"],"names":[],"mappings":"AA6LA;AA2nBA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAOjB,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CACrC;AAqHD,iBAAS,iBAAiB,SAOzB;AAiBD,iBAAe,cAAc,kBAyB5B;AAED,iBAAe,kBAAkB,kBAOhC;AAED,iBAAe,eAAe,CAAC,SAAS,EAAE,MAAM,iBA2B/C;;;;;;;;;;;;;;;;;;;;;;;;;;gBArNc,OAAO;qBACF,OAAO;sBACN,OAAO;qBACR,OAAO,GAAG,QAAQ,GAAG,KAAK;sBACzB,MAAM;qBACP,MAAM;sBACL,MAAM;iBACX,OAAO;;;;;AAi7BvB,wBAWG"}
1
+ {"version":3,"file":"vForm.vue.d.ts","sourceRoot":"","sources":["../../src/components/vForm.vue"],"names":[],"mappings":"AAkMA;AAmmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyHpF,iBAAS,iBAAiB,SAOzB;AAiBD,iBAAe,cAAc,kBAyB5B;AAED,iBAAe,kBAAkB,kBAOhC;AAED,iBAAe,eAAe,CAAC,SAAS,EAAE,MAAM,iBA2B/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6sBD,wBAWG"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDataTransformation.d.ts","sourceRoot":"","sources":["../../src/composables/useDataTransformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAS,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAU,MAAM,SAAS,CAAC;AAGrE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;;;EAgKlE"}
1
+ {"version":3,"file":"useDataTransformation.d.ts","sourceRoot":"","sources":["../../src/composables/useDataTransformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAS,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAU,MAAM,SAAS,CAAC;AAGrE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;;;EA+JlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"useInputValidation.d.ts","sourceRoot":"","sources":["../../src/composables/useInputValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,KAAK,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAC7C,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EACrB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,EACpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,EACpC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;mBAOlC,OAAO,CAAC,OAAO,CAAC;yBAkCV,OAAO,CAAC,IAAI,CAAC;mBAczB,IAAI;6BAQO,GAAG,KAAQ,IAAI;qBASxB,MAAM,EAAE;;;EAa/B"}
1
+ {"version":3,"file":"useInputValidation.d.ts","sourceRoot":"","sources":["../../src/composables/useInputValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAU,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,SAAS,CAAC;AAG9D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAC7C,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EACrB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,EACpB,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,EACpC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;mBAQlC,OAAO,CAAC,OAAO,CAAC;yBAkCV,OAAO,CAAC,IAAI,CAAC;mBAczB,IAAI;6BAQO,GAAG,KAAQ,IAAI;qBASxB,MAAM,EAAE;;;EAa/B"}
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),h=require("@ionic/vue"),Z=require("ionicons/icons"),ke=require("@maskito/vue");function ye(o){return new Promise(u=>{requestAnimationFrame(async()=>{const l=await o.getInputElement();u(l)})})}const Ce={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},Ve={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 Be(o,u){const l=Ve[o];return l[u%l.length]}function we(o){const u=[];let l="",t=0,n=0;for(;t<o.length;){const r=o[t];if(["d","a","*"].includes(r)){let s=1;if(o[t+1]==="{"){const a=o.indexOf("}",t+2);if(a!==-1){const g=o.slice(t+2,a);if(g.includes(",")){const[,p]=g.split(",").map(d=>parseInt(d.trim()));s=p||parseInt(g.split(",")[0])}else s=parseInt(g);t=a}}else{let a=t+1;for(;o[a]===r;)s++,a++;t=a-1}for(let a=0;a<s;a++)u.push(Ce[r]),l+=Be(r,n++)}else u.push(r),l+=r;t++}return{mask:u,placeholder:l,elementPredicate:ye}}function X(o){return o==null||Array.isArray(o)&&!o.length||typeof o=="object"&&!Object.keys(o).length||!o}function Y(o,u,l){return typeof o.condition=="function"?o.condition(u,l):!0}function ee(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(l=>ee(l));const u={};return Object.entries(o).forEach(([l,t])=>{typeof t=="function"?u[l]=t.bind(u):u[l]=ee(t)}),u}function te(o,u){return u.findIndex(l=>l.value===o.value||l.label===o.label||l.value===o.label||l.label===o.value)}function $(o,u){const l=te(o,u);l>=0?u[l].isChecked=!0:u.push({...o,isChecked:!0})}function Se(o,u){const l=te(o,u);l>=0&&(u[l].isChecked=!1)}function _e(o){o.forEach(u=>{u.isChecked=!1})}function be(o,u){return u?o.filter(l=>JSON.stringify(l).toLowerCase().includes(u.toLowerCase())):o}function xe(o){const u=o.label||"",l=o.required?" *":"";return u+l}function G(o,u){if(o===u)return!0;if(o==null||u==null||typeof o!=typeof u)return!1;if(typeof o!="object")return o===u;if(Array.isArray(o)&&Array.isArray(u))return o.length!==u.length?!1:o.every((n,r)=>G(n,u[r]));if(Array.isArray(o)!==Array.isArray(u))return!1;const l=Object.keys(o),t=Object.keys(u);return l.length!==t.length?!1:l.every(n=>Object.prototype.hasOwnProperty.call(u,n)&&G(o[n],u[n]))}function D(o){return o.type!=="FormSection"}function Ne(o){return o.type==="FormSection"}function oe(){const o=e.ref([]);async function u(){console.debug("Validating form inputs");const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate(),typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?r.push(...a):console.warn("getErrors() returned non-array value:",a)}catch(a){console.error("Error calling getErrors on component:",a,s)}else console.warn("Component does not have getErrors function:",s);return r.every(X)}function l(){o.value.forEach(r=>{typeof(r==null?void 0:r.onReset)=="function"&&r.onReset()})}function t(){const r=[];for(const s of o.value)if(typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?r.push(...a):r.push(String(a))}catch(a){console.error("Error calling getErrors on component:",a,s)}return r}async function n(){for(const r of o.value)typeof(r==null?void 0:r.onValueUpdate)=="function"&&await r.onValueUpdate()}return{dynamicRefs:o,isFormValid:u,resetForm:l,getFormErrors:t,updateFormValues:n}}function le(o){const u=e.computed(()=>Object.entries(o.value).reduce((p,[d,f])=>(D(f)&&f.value!==void 0&&(typeof f.onChange=="function"?p[d]=f.onChange(f.value,o.value):p[d]=f.value),p),{})),l=e.ref({}),t=(p,d,f)=>{const i=o.value[p];if(D(i)&&i.children){const v=i.children[d];if(v&&D(v)&&typeof v.computedValue=="function")return v.computedValue(f,o.value)}return f},n=(p,d,f,i)=>{l.value[p][i]||(l.value[p][i]={}),Object.entries(d.other??{}).forEach(([v,B])=>{var w;!G(B,(w=f.other)==null?void 0:w[v])&&(l.value[p][i][v]=t(p,v,B))})},r=(p,d,f)=>{d.forEach((i,v)=>{const B=f[v]??{other:{}};n(p,i,B,v)})},s=(p,{other:d})=>Object.entries(d??{}).reduce((f,[i,v])=>(f[i]=t(p,i,v),f),{}),a=(p,d,f)=>{l.value[p]||(l.value[p]=[]);const i=d;Array.isArray(f[p])?r(p,i,f[p]):l.value[p]=i.map(v=>s(p,v))},g=(p,d,f)=>{if(!d){delete l.value[p];return}const i=o.value[p];D(i)&&(i.children!==void 0?a(p,d,f):typeof i.computedValue=="function"&&(l.value[p]=i.computedValue(d,o.value)))};return e.watch(u,(p,d={})=>{Object.keys(p).forEach(f=>{G(p[f],d[f])||g(f,p[f],d)}),Object.keys(d).forEach(f=>{!(f in p)&&f in l.value&&delete l.value[f]})},{immediate:!0,deep:!0}),{formData:u,computedData:l}}function ne(o){const u=e.ref(0),l=e.ref({}),t=e.ref({}),n=e.ref({});function r(C){const m={};return C.component||!C.schema||Object.entries(C.schema).forEach(([k,V])=>{D(V)&&(m[k]=V.value)}),m}o.steps.forEach(C=>{l.value[C.id]=r(C),t.value[C.id]={},n.value[C.id]=[]});const s=e.ref(o.steps.map(C=>C.id)),a=e.computed(()=>o.steps.filter(m=>m.condition?m.condition(l.value,t.value):!0));e.watch(a,C=>{const m=C.map(V=>V.id);s.value.filter(V=>!m.includes(V)).forEach(V=>{b(V)}),s.value=m});const g=e.computed(()=>a.value.length>0?u.value>=a.value.length?a.value[a.value.length-1]:a.value[u.value]:o.steps[u.value]),p=e.computed(()=>u.value===0),d=e.computed(()=>u.value===a.value.length-1),f=e.computed(()=>!d.value),i=e.computed(()=>!p.value),v=e.computed(()=>a.value.length),B=e.computed(()=>v.value===0?0:Math.round((u.value+1)/v.value*100));function y(C,m){l.value[C]={...l.value[C],...m}}function w(C,m){t.value[C]={...t.value[C],...m}}function b(C){const m=o.steps.find(k=>k.id===C);m&&(l.value[C]=r(m),t.value[C]={})}async function x(){const C=g.value;if(!C)return!0;const m=[];if(C.validation){const k=await C.validation(l.value[C.id],t.value[C.id]);k&&m.push(...k)}return n.value[C.id]=m,m.length===0}async function F(C){return C<0||C>=a.value.length||C>u.value&&!await x()?!1:(u.value=C,!0)}async function A(){return f.value?F(u.value+1):!1}async function R(){return i.value?F(u.value-1):!1}function T(){u.value=0,n.value={},o.steps.forEach(C=>{b(C.id),n.value[C.id]=[]})}async function O(){let C=!0;for(const m of o.steps)if(m.validation){const k=await m.validation(l.value[m.id],t.value[m.id]);n.value[m.id]=k||[],k&&k.length>0&&(C=!1)}return C}function I(){return{formData:{...l.value},computedData:{...t.value}}}return{currentStepIndex:u,currentStep:g,stepData:l,stepComputedData:t,stepValidationErrors:n,visibleSteps:a,isFirstStep:p,isLastStep:d,canGoNext:f,canGoPrevious:i,totalSteps:v,progressPercentage:B,updateStepData:y,updateStepComputedData:w,clearStepData:b,validateCurrentStep:x,goToStep:F,nextStep:A,previousStep:R,resetForm:T,validateAllSteps:O,getMultiStepFormData:I}}const Ee={class:"step-indicator__container"},Ie=["onClick"],Oe={class:"step-indicator__step-content"},ze={class:"step-indicator__step-marker"},De={class:"step-indicator__step-info"},Fe={class:"step-indicator__step-title"},Re={key:0,class:"step-indicator__step-subtitle"},Te={key:0,class:"step-indicator__progress"},Ae={class:"step-indicator__progress-bar"},$e={class:"step-indicator__progress-text"},Me=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(o,{emit:u}){const l=o,t=u,n=e.computed(()=>l.steps.length===0?0:(l.activeStepIndex+1)/l.steps.length*100);function r(s){l.allowNavigation&&t("step-click",s)}return(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${s.position}`,{"step-indicator--clickable":s.allowNavigation}]])},[e.createElementVNode("div",Ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.steps,(g,p)=>(e.openBlock(),e.createElementBlock("div",{key:g.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":p===s.activeStepIndex,"step-indicator__step--completed":p<s.activeStepIndex,"step-indicator__step--clickable":s.allowNavigation}]),onClick:d=>r(p)},[e.createElementVNode("div",Oe,[e.createElementVNode("div",ze,[e.createElementVNode("span",null,e.toDisplayString(p+1),1)]),e.createElementVNode("div",De,[e.createElementVNode("div",Fe,e.toDisplayString(g.title),1),g.subtitle?(e.openBlock(),e.createElementBlock("div",Re,e.toDisplayString(g.subtitle),1)):e.createCommentVNode("",!0)])]),p<s.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":p<s.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,Ie))),128))]),s.showProgress&&(s.position==="top"||s.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Te,[e.createElementVNode("div",Ae,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${n.value}%`})},null,4)]),e.createElementVNode("div",$e," Step "+e.toDisplayString(s.activeStepIndex+1)+" of "+e.toDisplayString(s.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),H=(o,u)=>{const l=o.__vccOpts||o;for(const[t,n]of u)l[t]=n;return l},W=H(Me,[["__scopeId","data-v-aca1a6d0"]]),Pe={class:"v-form-container"},Le={key:0,class:"multi-step-form"},Ue={class:"multi-step-form-content"},qe={class:"step-nav-buttons"},je={class:"step-action-buttons"},Ge={class:"step-nav-buttons"},He={key:3,class:"step-progress-bottom"},Ke={class:"step-progress-bar"},We={class:"step-progress-text"},Ze=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:u,emit:l}){const t=o,n=l,r=e.computed(()=>!!t.multiStepConfig),s=e.ref(t.schema||{}),a=t.multiStepConfig?ne(t.multiStepConfig):null,{dynamicRefs:g,isFormValid:p,resetForm:d}=oe(),{formData:f,computedData:i}=le(s),v=e.ref(null),B=e.computed(()=>(a==null?void 0:a.currentStepIndex.value)??0),y=e.computed(()=>a==null?void 0:a.currentStep.value),w=e.computed(()=>(a==null?void 0:a.visibleSteps.value)??[]),b=e.computed(()=>(a==null?void 0:a.isLastStep.value)??!0),x=e.computed(()=>(a==null?void 0:a.canGoNext.value)??!1),F=e.computed(()=>(a==null?void 0:a.canGoPrevious.value)??!1),A=e.computed(()=>!r.value||!a?0:a.progressPercentage.value);e.watch(()=>y.value,c=>{c&&r.value&&(s.value=c.schema||{})},{immediate:!0}),e.watch([f,i],([c,_])=>{r.value&&a&&y.value&&(a.updateStepData(y.value.id,c),a.updateStepComputedData(y.value.id,_))},{deep:!0}),e.watch(()=>t.schema,c=>{if(!r.value&&c){s.value=c;for(const[_,N]of Object.entries(c))D(N)&&"value"in N&&N.value!==void 0&&(s.value[_].value=N.value)}},{deep:!0,immediate:!0});async function R(){var c;if(r.value&&a){if((c=y.value)!=null&&c.component&&v.value&&typeof v.value.validate=="function"&&!await v.value.validate()||!await a.validateAllSteps())return;const N=a.getMultiStepFormData();n("multi-step-submit",N)}else{if(!await p())return;n("submit",f.value,i.value)}}function T(){r.value&&a?a.resetForm():d(),n("clear")}function O(){r.value&&a&&y.value&&a.clearStepData(y.value.id)}function I(){r.value&&a?a.resetForm():d(),n("cancel")}async function C(){var c;if(a){let _=!0;if((c=y.value)!=null&&c.component&&v.value?typeof v.value.validate=="function"&&(_=await v.value.validate()):_=await p(),!_)return;await a.nextStep()&&y.value&&n("step-change",B.value,y.value.id)}}async function m(){a&&await a.previousStep()&&y.value&&n("step-change",B.value,y.value.id)}async function k(c){var _;if(a){if(c>B.value){let z=!0;if((_=y.value)!=null&&_.component&&v.value?typeof v.value.validate=="function"&&(z=await v.value.validate()):z=await p(),!z)return}await a.goToStep(c)&&y.value&&n("step-change",c,y.value.id)}}e.watch(f,async()=>{var c;for(const[_,N]of Object.entries(s.value))if(D(N)&&!Y(N,f.value,i.value)){const z=r.value&&y.value&&y.value.schema?y.value.schema[_]:(c=t.schema)==null?void 0:c[_];z&&D(z)&&"value"in z&&(N.value=z.value)}},{deep:!0,immediate:!0});function V(c){r.value&&a&&y.value&&a.updateStepData(y.value.id,c)}function E(c,_,N){return Ne(c)?!0:Y(c,_,N)}return u({resetForm:T,isFormValid:p,resolveData:()=>r.value&&a?a.getMultiStepFormData():{formData:f.value,computedData:i.value},nextStep:C,previousStep:m,goToStep:k,getCurrentStep:()=>y.value,getCurrentStepIndex:()=>B.value}),(c,_)=>{var N,z;return e.openBlock(),e.createElementBlock("div",Pe,[r.value?(e.openBlock(),e.createElementBlock("div",Le,[c.multiStepConfig&&c.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(W,{key:0,steps:w.value,"active-step-index":B.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(W,{key:0,steps:w.value,"active-step-index":B.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",Ue,[(z=y.value)!=null&&z.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value.component),e.mergeProps({key:0},y.value.componentProps||{},{"onUpdate:data":V,ref_key:"customComponentRef",ref:v}),null,16)):(e.openBlock(),e.createBlock(e.unref(h.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),S=>{var P,L,U,q,j;return e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[E(s.value[S],e.unref(f),e.unref(i))?(e.openBlock(),e.createBlock(e.unref(h.IonCol),{key:0,size:((P=s.value[S].grid)==null?void 0:P.xs)??"12","size-sm":(L=s.value[S].grid)==null?void 0:L.sm,"size-md":(U=s.value[S].grid)==null?void 0:U.md,"size-lg":(q=s.value[S].grid)==null?void 0:q.lg,"size-xl":(j=s.value[S].grid)==null?void 0:j.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[S].type),{modelValue:s.value[S],"onUpdate:modelValue":Q=>s.value[S]=Q,schema:s.value,"form-id":S,ref_for:!0,ref_key:"dynamicRefs",ref:g,"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})),c.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(h.IonRow),{key:2,class:"multi-step-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonCol),{size:"12",class:"button-container"},{default:e.withCtx(()=>[e.createElementVNode("div",qe,[F.value?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:0,onClick:m,fill:"outline"},{default:e.withCtx(()=>_[0]||(_[0]=[e.createTextVNode(" Previous ")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),e.createElementVNode("div",je,[c.showCancelButton?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:0,onClick:I,fill:"outline"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),c.showClearButton?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:1,onClick:O,fill:"outline"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.customButtons,S=>(e.openBlock(),e.createBlock(e.unref(h.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",Ge,[x.value?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:0,onClick:C},{default:e.withCtx(()=>_[1]||(_[1]=[e.createTextVNode(" Next ")])),_:1,__:[1]})):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:1,onClick:R},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.submitButtonText??"Submit"),1)]),_:1})):e.createCommentVNode("",!0)])]),_:1})]),_:1})),c.multiStepConfig&&(c.multiStepConfig.stepPosition==="left"||c.multiStepConfig.stepPosition==="right")&&c.multiStepConfig.showProgress?(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Ke,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${A.value}%`})},null,4)]),e.createElementVNode("div",We," Step "+e.toDisplayString(B.value+1)+" of "+e.toDisplayString(w.value.length),1)])):e.createCommentVNode("",!0)]),c.multiStepConfig&&c.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(W,{key:1,steps:w.value,"active-step-index":B.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(W,{key:1,steps:w.value,"active-step-index":B.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(h.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(s.value),S=>{var P,L,U,q,j;return e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[E(s.value[S],e.unref(f),e.unref(i))?(e.openBlock(),e.createBlock(e.unref(h.IonCol),{key:0,size:((P=s.value[S].grid)==null?void 0:P.xs)??"12","size-sm":(L=s.value[S].grid)==null?void 0:L.sm,"size-md":(U=s.value[S].grid)==null?void 0:U.md,"size-lg":(q=s.value[S].grid)==null?void 0:q.lg,"size-xl":(j=s.value[S].grid)==null?void 0:j.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[S].type),{modelValue:s.value[S],"onUpdate:modelValue":Q=>s.value[S]=Q,schema:s.value,"form-id":S,ref_for:!0,ref_key:"dynamicRefs",ref:g,"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}),c.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(h.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:c.buttonPlacement}])},{default:e.withCtx(()=>[c.showCancelButton?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:0,onClick:I},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),c.showClearButton?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:1,onClick:T},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.customButtons,S=>(e.openBlock(),e.createBlock(e.unref(h.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(h.IonButton),{onClick:R},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),ae=H(Ze,[["__scopeId","data-v-a0ab63bd"]]);function Je(o){return{applyValidationState:async t=>{var n,r,s,a,g;(n=o.value)==null||n.$el.classList.remove("ion-invalid"),(r=o.value)==null||r.$el.classList.remove("ion-valid"),t?(s=o.value)==null||s.$el.classList.add("ion-valid"):(a=o.value)==null||a.$el.classList.add("ion-invalid"),(g=o.value)==null||g.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,n;(t=o.value)==null||t.$el.classList.remove("ion-touched"),(n=o.value)==null||n.$el.classList.remove("ion-invalid")}}}function M(o,u,l,t,n){const{applyValidationState:r,resetValidationState:s}=Je(o);async function a(){if(u.value.required&&!l.value)return u.value.error="This field is required",!1;if(n){const i=await n(l.value);if(typeof i=="string")return u.value.error=i,!1;if(i===!1)return!1}if(u.value.validation){const i=await u.value.validation(l.value,t==null?void 0:t.value);if(i&&i.length)return u.value.error=i.join(),!1}return!0}async function g(){const i=await a();i&&(u.value.error="",u.value.value=l.value),await r(i)}function p(){s(),u.value.error=""}function d(i=""){l.value=i,u.value.error="",u.value.value=i}function f(){return u.value.error?[u.value.error]:[]}return{isValid:a,onValueUpdate:g,onFocus:p,onReset:d,getErrors:f,applyValidationState:r,resetValidationState:s}}function Qe(o){const u=e.computed(()=>!!o.value.label),l=e.computed(()=>!!o.value.required),t=e.computed(()=>o.value.label||"");return{showLabel:u,showRequired:l,labelText:t}}const J=e.defineComponent({__name:"InputLabel",props:{model:{},slotName:{}},setup(o){const u=o,{showLabel:l,showRequired:t,labelText:n}=Qe(e.toRef(u,"model"));return(r,s)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(h.IonLabel),{key:0,slot:r.slotName,class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(h.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>s[0]||(s[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1},8,["slot"])):e.createCommentVNode("",!0)}}),K=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=o,t=e.useModel(o,"modelValue"),n=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>l.schema),{isValid:a,onValueUpdate:g,onFocus:p,onReset:d,getErrors:f}=M(n,t,r,s),i=e.computed(()=>{if(t.value.pattern)return we(t.value.pattern)});return e.watch(()=>t.value.value,v=>r.value=v),u({onValueUpdate:g,onReset:d,getErrors:f,isValid:a}),(v,B)=>{var w;const y=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(h.IonInput),{ref_key:"inputRef",ref:n,modelValue:r.value,"onUpdate:modelValue":B[0]||(B[0]=b=>r.value=b),class:e.normalizeClass(t.value.className),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:v.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((w=i.value)==null?void 0:w.placeholder)??t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,style:{width:"100%"},onIonFocus:e.unref(p),onIonChange:e.unref(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(J,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(h.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(h.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),v.type==="password"?(e.openBlock(),e.createBlock(e.unref(h.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,i.value]])}}}),re=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref(null);return u({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,r;return((r=(n=t.value)==null?void 0:n.getErrors)==null?void 0:r.call(n))??[]}}),(n,r)=>(e.openBlock(),e.createBlock(K,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=s=>l.value=s),type:"text",schema:n.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(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref(null);return u({onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},getErrors:()=>{var n,r;return((r=(n=t.value)==null?void 0:n.getErrors)==null?void 0:r.call(n))??[]}}),(n,r)=>(e.openBlock(),e.createBlock(K,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=s=>l.value=s),type:l.value.enableTime?"datetime-local":"date",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),se=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref(null);return u({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,r;return((r=(n=t.value)==null?void 0:n.getErrors)==null?void 0:r.call(n))??[]}}),(n,r)=>(e.openBlock(),e.createBlock(K,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=s=>l.value=s),type:"number",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ie=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref(null);return u({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,r;return((r=(n=t.value)==null?void 0:n.getErrors)==null?void 0:r.call(n))??[]}}),(n,r)=>(e.openBlock(),e.createBlock(K,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=s=>l.value=s),type:"email",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ce=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref(null);return u({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,r;return((r=(n=t.value)==null?void 0:n.getErrors)==null?void 0:r.call(n))??[]}}),(n,r)=>(e.openBlock(),e.createBlock(K,{modelValue:l.value,"onUpdate:modelValue":r[0]||(r[0]=s=>l.value=s),type:"password",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Xe=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=o,t=e.useModel(o,"modelValue"),n=e.ref(null),r=e.ref(null),s=e.ref(!1),a=e.ref([]),g=e.ref(""),p=e.ref(1),d=e.computed(()=>t.value.interface??"popover"),f=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),i=e.computed(()=>a.value.filter(m=>!!m.isChecked)),v=e.computed(()=>!g.value&&X(i.value)&&!s.value?t.value.placeholder??"Select an option":"");e.watch([g,()=>t.value.options],I,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,C,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!l.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(k=>{const V=l.schema[k];return D(V)?V.value:void 0}),async(m,k)=>{m&&k&&!G(m,k)&&(B(),a.value=[],await I())},{deep:!0});function B(){t.value.error="",g.value="",p.value=1,t.value.value=t.value.multiple?[]:"",_e(a.value)}function y(m){const k=a.value.findIndex(V=>V.value===m.value&&V.isChecked);if(k>=0){if(Array.isArray(t.value.value)){const V=te(m,t.value.value);V>=0&&t.value.value.splice(V,1)}a.value[k].isChecked=!1}else t.value.multiple||B(),$(m,a.value);O(),g.value=""}function w(){switch(d.value){case"action-sheet":b();break;case"alert":x();break;case"popover":default:s.value=!0;break}}async function b(){if(await I(),t.value.multiple){s.value=!0;return}await(await h.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...a.value.map(k=>({text:k.label,cssClass:k.isChecked?"selected-option":"",handler:()=>(y(k),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function x(){await I();const m=a.value.map(V=>({label:V.label,type:t.value.multiple?"checkbox":"radio",value:V,checked:V.isChecked}));await(await h.alertController.create({header:t.value.label||"Select an option",inputs:m,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:V=>{if(t.value.multiple)a.value.forEach(E=>Se(E,a.value)),V.forEach(E=>{const c=a.value.find(_=>_.value===E.value);c&&$(c,a.value)});else{B();const E=a.value.find(c=>c.value===V.value);E&&$(E,a.value)}O()}}]})).present()}async function F(){if(t.value.required&&X(i.value))return"This field is required";if(t.value.validation){const m=await t.value.validation(i.value,l==null?void 0:l.schema);if(m&&m.length)return m.join()}return!0}const{onFocus:A,applyValidationState:R}=M(n,t,e.computed(()=>t.value.multiple?i.value:i.value[0]),e.computed(()=>l==null?void 0:l.schema),F);function T(m){var k;m.target===((k=n.value)==null?void 0:k.$el)&&(A(),d.value==="popover"&&(s.value=!0))}async function O(m){var V;if((V=m==null?void 0:m.relatedTarget)!=null&&V.closest(".suggestions-list"))return;s.value=!1;const k=await F();k===!0?(t.value.error="",t.value.value=t.value.multiple?i.value:i.value[0]):t.value.error=typeof k=="string"?k:"Validation failed",await R(k===!0)}async function I(){const m=[];if(typeof t.value.options=="function"){let k={};if(t.value.dependsOn&&l.schema){const V=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let E=!0;if(k=V.reduce((c,_)=>{const N=l.schema[_];return c[_]=D(N)?N.value:void 0,(c[_]===void 0||c[_]===null||c[_]==="")&&(E=!1),c},{}),E){const c=await t.value.options(g.value,k);m.push(...c.filter(_=>!!_.label))}}else{const V=await t.value.options(g.value,{});m.push(...V.filter(E=>!!E.label))}}else Array.isArray(t.value.options)&&m.push(...be(t.value.options,g.value));i.value.forEach(k=>$(k,m)),a.value=m}async function C(){const m=t.value.value;if(m){if(a.value.length===0&&await I(),Array.isArray(m))m.forEach(k=>$(k,a.value));else if(typeof m=="object")$(m,a.value);else{const k=a.value.find(V=>V.value===m);$(k||{value:m,label:m},a.value)}O()}}return e.onMounted(async()=>{await I(),await C()}),u({onValueUpdate:O,onReset:B,getErrors:()=>t.value.error?[t.value.error]:[]}),(m,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["autocomplete-container",t.value.className]),onFocusout:O,ref_key:"containerRef",ref:r},[e.createVNode(e.unref(h.IonInput),{ref_key:"inputRef",ref:n,modelValue:g.value,"onUpdate:modelValue":k[0]||(k[0]=V=>g.value=V),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:o.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:v.value,disabled:t.value.disabled,counter:t.value.counter,debounce:300,onIonFocus:T,onClick:w,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(J,{model:t.value,"slot-name":"label"},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(h.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(V,E)=>(e.openBlock(),e.createBlock(e.unref(h.IonChip),{key:E},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(h.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var V;return[e.createTextVNode(e.toDisplayString(((V=i.value[0])==null?void 0:V.label)??""),1)]}),_:1})),e.createVNode(e.unref(h.IonIcon),{slot:"end",icon:e.unref(Z.chevronDown)},null,8,["icon"]),i.value.length>0||g.value?(e.openBlock(),e.createBlock(e.unref(h.IonIcon),{key:2,slot:"end",icon:e.unref(Z.close),onClick:B,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),s.value&&a.value.length>0&&d.value==="popover"?(e.openBlock(),e.createBlock(e.unref(h.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,V=>(e.openBlock(),e.createBlock(e.unref(h.IonItem),{button:"",key:V.label,onClick:E=>y(V),lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(h.IonCheckbox),{key:0,slot:"start",checked:V.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(h.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.label),1)]),_:2},1024)]),_:2},1032,["onClick","lines"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],34))}}),de=H(Xe,[["__scopeId","data-v-9525dee8"]]),pe=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=o,t=e.useModel(o,"modelValue"),n=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>l.schema),{onValueUpdate:a,onFocus:g,onReset:p,getErrors:d}=M(n,t,r,s);return e.watch(()=>t.value.value,f=>r.value=f),u({onReset:p,onValueUpdate:a,getErrors:d}),(f,i)=>(e.openBlock(),e.createBlock(e.unref(h.IonTextarea),{ref_key:"inputRef",ref:n,modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=v=>r.value=v),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(g),onIonChange:e.unref(a),onIonBlur:e.unref(a),style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(J,{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"]))}}),Ye={class:"button-container"},et=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=e.useModel(o,"modelValue"),t=e.ref([]),{dynamicRefs:n,resetForm:r,getFormErrors:s,updateFormValues:a}=oe(),g=e.computed(()=>t.value.map((B,y)=>({label:`Set ${y+1}`,value:y,other:Object.entries(B).reduce((w,[b,x])=>(D(x)&&(w[b]=x.value),w),{})})));e.watch(g,B=>{l.value.value=B},{deep:!0,immediate:!0}),e.onMounted(p);function p(){l.value.children&&t.value.push(ee(l.value.children))}function d(B){t.value.splice(B,1)}function f(){r()}function i(){return s()}async function v(){await a()}return u({onValueUpdate:v,onReset:f,getErrors:i}),(B,y)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(w,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["repeat-input-wrapper",l.value.className]),key:b},[e.createVNode(e.unref(h.IonRow),{class:"repeat-row"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonCol),{size:"11",class:"form-fields-column"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonRow),{class:"fields-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(w),x=>{var F,A,R,T,O;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(Y)(w[x],B.data,B.computedData)?(e.openBlock(),e.createBlock(e.unref(h.IonCol),{key:`${b}-${x}`,size:((F=w[x].grid)==null?void 0:F.xs)??"12","size-sm":(A=w[x].grid)==null?void 0:A.sm,"size-md":(R=w[x].grid)==null?void 0:R.md,"size-lg":(T=w[x].grid)==null?void 0:T.lg,"size-xl":(O=w[x].grid)==null?void 0:O.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w[x].type),{modelValue:w[x],"onUpdate:modelValue":I=>w[x]=I,schema:w,"ref-key":`${b}-${x}`,ref_for:!0,ref_key:"dynamicRefs",ref:n,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(h.IonCol),{size:"1",class:"button-column"},{default:e.withCtx(()=>[e.createElementVNode("div",Ye,[b===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(h.IonButton),{key:0,onClick:p,color:"primary",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.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(h.IonButton),{key:1,onClick:x=>d(b),color:"warning",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonIcon),{slot:"icon-only",icon:e.unref(Z.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024)],2))),128))}}),fe=H(et,[["__scopeId","data-v-0eb7594d"]]),me=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=o,t=e.useModel(o,"modelValue"),n=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>l.schema),a=e.computed(()=>xe(t.value)),{onValueUpdate:g,onFocus:p,getErrors:d}=M(n,t,r,s);function f(){r.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,i=>r.value=i),u({onValueUpdate:g,onReset:f,getErrors:d}),(i,v)=>(e.openBlock(),e.createBlock(e.unref(h.IonCheckbox),{modelValue:r.value,"onUpdate:modelValue":v[0]||(v[0]=B=>r.value=B),ref_key:"inputRef",ref:n,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(g),onIonBlur:e.unref(g),style:{width:"100%"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["modelValue","class","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),ve=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:u}){const l=o,t=e.useModel(o,"modelValue"),n=e.ref(null),r=e.ref(t.value.value),s=e.computed(()=>l.schema),a=e.ref([]),{onValueUpdate:g,onFocus:p,getErrors:d,isValid:f}=M(n,t,r,s);function i(){t.value.error="",r.value=void 0,t.value.value=void 0}function v(y,w){return y.value===w.value}async function B(){typeof t.value.options=="function"?a.value=await t.value.options():a.value=t.value.options}return e.watch(()=>t.value.value,y=>r.value=y),u({onValueUpdate:g,onReset:i,getErrors:d,isValid:f}),e.onMounted(B),(y,w)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(J,{model:t.value},null,8,["model"]),w[1]||(w[1]=e.createElementVNode("br",null,null,-1)),t.value.error?(e.openBlock(),e.createBlock(e.unref(h.IonNote),{key:0,color:"danger"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.error),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(h.IonItem),null,{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonRadioGroup),{modelValue:r.value,"onUpdate:modelValue":w[0]||(w[0]=b=>r.value=b),class:e.normalizeClass(t.value.className),required:t.value.required,disabled:t.value.disabled,compareWith:v,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(p),onIonChange:e.unref(g),onIonBlur:e.unref(g),style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,b=>(e.openBlock(),e.createBlock(e.unref(h.IonItem),{key:b.value,lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[e.createVNode(e.unref(h.IonRadio),{value:b,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(b.label),1)]),_:2},1032,["value","disabled"])]),_:2},1032,["lines"]))),128))]),_:1},8,["modelValue","class","required","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"])]),_:1})],64))}}),tt={class:"form-section-header"},ot={class:"form-section-title"},lt={key:0,class:"form-section-subtitle"},nt=e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(o){const l=o.modelValue;return(t,n)=>{var r,s,a,g,p;return e.openBlock(),e.createBlock(e.unref(h.IonCol),{size:((r=e.unref(l).grid)==null?void 0:r.xs)??"12","size-sm":(s=e.unref(l).grid)==null?void 0:s.sm,"size-md":(a=e.unref(l).grid)==null?void 0:a.md,"size-lg":(g=e.unref(l).grid)==null?void 0:g.lg,"size-xl":(p=e.unref(l).grid)==null?void 0:p.xl,class:e.normalizeClass(["form-section-container",e.unref(l).className])},{default:e.withCtx(()=>[e.createElementVNode("div",tt,[e.createElementVNode("h3",ot,e.toDisplayString(e.unref(l).title),1),e.unref(l).subtitle?(e.openBlock(),e.createElementBlock("p",lt,e.toDisplayString(e.unref(l).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),he=H(nt,[["__scopeId","data-v-e0bf7af0"]]);function at(o,u,l){const t=e.ref({}),n=e.ref({});function r(d,f,i){n.value[d]=i,f.forEach(v=>{var B;(B=t.value)[v]??(B[v]=[]),t.value[v].includes(d)||t.value[v].push(d)}),p(d)}function s(d){return Object.entries(t.value).filter(([,i])=>i.includes(d)).map(([i])=>i).reduce((i,v)=>(i[v]=u.value[v]??l.value[v],i),{})}function a(d,f){return d?Array.isArray(d)?d.some(i=>f.some(v=>g(i,v.value))):f.some(i=>g(d,i.value)):!1}function g(d,f){return typeof d=="object"&&d!==null?d.value===f:String(d)===String(f)}async function p(d,f){if(!n.value[d])return;const i=s(d),v=Object.keys(i);if(!(v.length===0||!v.every(y=>i[y]!==void 0&&i[y]!==null)))try{const y=n.value[d],w=await y(f,i);if(!o.value[d])return;const b=o.value[d];if(!D(b))return;b.options=w;const x=b.value;if(!x)return;a(x,w)||(b.value=b.multiple?[]:"")}catch(y){console.error(`Error loading options for ${d}:`,y)}}return e.watch([u,l],()=>{Object.entries(t.value).forEach(([d,f])=>{(u.value[d]!==void 0||l.value[d]!==void 0)&&f.forEach(i=>{p(i)})})},{deep:!0,immediate:!0}),{registerDependency:r,updateOptions:p}}const ge={install(o){o.component("VForm",ae),o.component("TextInput",re),o.component("DateInput",ue),o.component("NumberInput",se),o.component("EmailInput",ie),o.component("PasswordInput",ce),o.component("SelectInput",de),o.component("TextAreaInput",pe),o.component("RepeatInput",fe),o.component("CheckboxInput",me),o.component("RadioInput",ve),o.component("FormSection",he),o.directive("maskito",ke.maskito)}};exports.CheckboxInput=me;exports.DateInput=ue;exports.EmailInput=ie;exports.FormBuilder=ae;exports.FormSection=he;exports.NumberInput=se;exports.PasswordInput=ce;exports.RadioInput=ve;exports.RepeatInput=fe;exports.SelectInput=de;exports.TextAreaInput=pe;exports.TextInput=re;exports.VForm=ge;exports.default=ge;exports.useDataTransformation=le;exports.useDependentOptions=at;exports.useFormValidation=oe;exports.useInputValidation=M;exports.useMultiStepForm=ne;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),C=require("@ionic/vue"),J=require("ionicons/icons"),Ce=require("@maskito/vue");function Ve(l){return new Promise(r=>{requestAnimationFrame(async()=>{const o=await l.getInputElement();r(o)})})}const be={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},Be={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 we(l,r){const o=Be[l];return o[r%o.length]}function Se(l){const r=[];let o="",t=0,n=0;for(;t<l.length;){const u=l[t];if(["d","a","*"].includes(u)){let s=1;if(l[t+1]==="{"){const a=l.indexOf("}",t+2);if(a!==-1){const v=l.slice(t+2,a);if(v.includes(",")){const[,p]=v.split(",").map(c=>parseInt(c.trim()));s=p||parseInt(v.split(",")[0])}else s=parseInt(v);t=a}}else{let a=t+1;for(;l[a]===u;)s++,a++;t=a-1}for(let a=0;a<s;a++)r.push(be[u]),o+=we(u,n++)}else r.push(u),o+=u;t++}return{mask:r,placeholder:o,elementPredicate:Ve}}function Y(l){return l==null||Array.isArray(l)&&!l.length||typeof l=="object"&&!Object.keys(l).length||!l}function Z(l,r,o){return typeof l.condition=="function"?l.condition(r,o):!0}function ee(l){if(typeof l!="object"||l===null)return l;if(Array.isArray(l))return l.map(o=>ee(o));const r={};return Object.entries(l).forEach(([o,t])=>{typeof t=="function"?r[o]=t.bind(r):r[o]=ee(t)}),r}function te(l,r){return r.findIndex(o=>o.value===l.value||o.label===l.label||o.value===l.label||o.label===l.value)}function M(l,r){const o=te(l,r);o>=0?r[o].isChecked=!0:r.push({...l,isChecked:!0})}function _e(l,r){const o=te(l,r);o>=0&&(r[o].isChecked=!1)}function xe(l){l.forEach(r=>{r.isChecked=!1})}function ne(l){return!!l.description}function Ne(l,r){return r?l.filter(o=>JSON.stringify(o).toLowerCase().includes(r.toLowerCase())):l}function Ee(l){const r=l.label||"",o=l.required?" *":"";return r+o}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((n,u)=>H(n,r[u]));if(Array.isArray(l)!==Array.isArray(r))return!1;const o=Object.keys(l),t=Object.keys(r);return o.length!==t.length?!1:o.every(n=>Object.hasOwn(r,n)&&H(l[n],r[n]))}function D(l){return l.type!=="FormSection"}function le(){const l=e.ref([]);async function r(){console.debug("Validating form inputs");const u=[];for(const s of l.value)if(typeof(s==null?void 0:s.onValueUpdate)=="function"&&await s.onValueUpdate(),typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?u.push(...a):console.warn("getErrors() returned non-array value:",a)}catch(a){console.error("Error calling getErrors on component:",a,s)}else console.warn("Component does not have getErrors function:",s);return u.every(Y)}function o(){l.value.forEach(u=>{typeof(u==null?void 0:u.onReset)=="function"&&u.onReset()})}function t(){const u=[];for(const s of l.value)if(typeof(s==null?void 0:s.getErrors)=="function")try{const a=s.getErrors();Array.isArray(a)?u.push(...a):u.push(String(a))}catch(a){console.error("Error calling getErrors on component:",a,s)}return u}async function n(){for(const u of l.value)typeof(u==null?void 0:u.onValueUpdate)=="function"&&await u.onValueUpdate()}return{dynamicRefs:l,isFormValid:r,resetForm:o,getFormErrors:t,updateFormValues:n}}function ae(l){const r=e.computed(()=>Object.entries(l.value).reduce((p,[c,f])=>(D(f)&&f.value!==void 0&&(p[c]=f.value),p),{})),o=e.ref({}),t=(p,c,f)=>{const m=l.value[p];if(D(m)&&m.children){const d=m.children[c];if(d&&D(d)&&typeof d.computedValue=="function")return d.computedValue(f,l.value)}return f},n=(p,c,f,m)=>{o.value[p][m]||(o.value[p][m]={}),Object.entries(c.other??{}).forEach(([d,k])=>{var b;!H(k,(b=f.other)==null?void 0:b[d])&&(o.value[p][m][d]=t(p,d,k))})},u=(p,c,f)=>{c.forEach((m,d)=>{const k=f[d]??{other:{}};n(p,m,k,d)})},s=(p,{other:c})=>Object.entries(c??{}).reduce((f,[m,d])=>(f[m]=t(p,m,d),f),{}),a=(p,c,f)=>{o.value[p]||(o.value[p]=[]);const m=c;Array.isArray(f[p])?u(p,m,f[p]):o.value[p]=m.map(d=>s(p,d))},v=(p,c,f)=>{if(!c){delete o.value[p];return}const m=l.value[p];D(m)&&(typeof m.onChange=="function"&&m.onChange(c,l.value),m.children!==void 0?a(p,c,f):typeof m.computedValue=="function"&&(o.value[p]=m.computedValue(c,l.value)))};return e.watch(r,(p,c={})=>{Object.keys(p).forEach(f=>{H(p[f],c[f])||v(f,p[f],c)}),Object.keys(c).forEach(f=>{!(f in p)&&f in o.value&&delete o.value[f]})},{immediate:!0,deep:!0}),{formData:r,computedData:o}}function re(l){const r=e.ref(0),o=e.ref({}),t=e.ref({}),n=e.ref({});function u(y){const _={};return y.component||!y.schema||Object.entries(y.schema).forEach(([g,V])=>{D(V)&&(_[g]=V.value)}),_}l.steps.forEach(y=>{o.value[y.id]=u(y),t.value[y.id]={},n.value[y.id]=[]});const s=e.ref(l.steps.map(y=>y.id)),a=e.computed(()=>l.steps.filter(_=>_.condition?_.condition(o.value,t.value):!0));e.watch(a,y=>{const _=y.map(V=>V.id);s.value.filter(V=>!_.includes(V)).forEach(V=>{w(V)}),s.value=_});const v=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),c=e.computed(()=>r.value===a.value.length-1),f=e.computed(()=>!c.value),m=e.computed(()=>!p.value),d=e.computed(()=>a.value.length),k=e.computed(()=>d.value===0?0:Math.round((r.value+1)/d.value*100));function h(y,_){o.value[y]={...o.value[y],..._}}function b(y,_){t.value[y]={...t.value[y],..._}}function w(y){const _=l.steps.find(g=>g.id===y);_&&(o.value[y]=u(_),t.value[y]={})}async function N(){const y=v.value;if(!y)return!0;const _=[];if(y.validation){const g=await y.validation(o.value[y.id],t.value[y.id]);g&&_.push(...g)}return n.value[y.id]=_,_.length===0}async function I(y){return y<0||y>=a.value.length||y>r.value&&!await N()?!1:(r.value=y,!0)}async function R(){return f.value?I(r.value+1):!1}async function T(){return m.value?I(r.value-1):!1}function A(){r.value=0,n.value={},l.steps.forEach(y=>{w(y.id),n.value[y.id]=[]})}async function $(){let y=!0;for(const _ of l.steps)if(_.validation){const g=await _.validation(o.value[_.id],t.value[_.id]);n.value[_.id]=g||[],g&&g.length>0&&(y=!1)}return y}function z(){return{formData:{...o.value},computedData:{...t.value}}}return{currentStepIndex:r,currentStep:v,stepData:o,stepComputedData:t,stepValidationErrors:n,visibleSteps:a,isFirstStep:p,isLastStep:c,canGoNext:f,canGoPrevious:m,totalSteps:d,progressPercentage:k,updateStepData:h,updateStepComputedData:b,clearStepData:w,validateCurrentStep:N,goToStep:I,nextStep:R,previousStep:T,resetForm:A,validateAllSteps:$,getMultiStepFormData:z}}const Ie={class:"step-indicator__container"},ze=["onClick"],Oe={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"},$e={class:"step-indicator__progress-bar"},Me={class:"step-indicator__progress-text"},Pe=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 o=l,t=r,n=e.computed(()=>o.steps.length===0?0:(o.activeStepIndex+1)/o.steps.length*100);function u(s){o.allowNavigation&&t("step-click",s)}return(s,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${s.position}`,{"step-indicator--clickable":s.allowNavigation}]])},[e.createElementVNode("div",Ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.steps,(v,p)=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":p===s.activeStepIndex,"step-indicator__step--completed":p<s.activeStepIndex,"step-indicator__step--clickable":s.allowNavigation}]),onClick:c=>u(p)},[e.createElementVNode("div",Oe,[e.createElementVNode("div",De,[e.createElementVNode("span",null,e.toDisplayString(p+1),1)]),e.createElementVNode("div",Fe,[e.createElementVNode("div",Re,e.toDisplayString(v.title),1),v.subtitle?(e.openBlock(),e.createElementBlock("div",Te,e.toDisplayString(v.subtitle),1)):e.createCommentVNode("",!0)])]),p<s.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":p<s.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,ze))),128))]),s.showProgress&&(s.position==="top"||s.position==="bottom")?(e.openBlock(),e.createElementBlock("div",Ae,[e.createElementVNode("div",$e,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${n.value}%`})},null,4)]),e.createElementVNode("div",Me," Step "+e.toDisplayString(s.activeStepIndex+1)+" of "+e.toDisplayString(s.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),q=(l,r)=>{const o=l.__vccOpts||l;for(const[t,n]of r)o[t]=n;return o},W=q(Pe,[["__scopeId","data-v-aca1a6d0"]]),P=e.defineComponent({__name:"ActionButton",props:{type:{type:String,default:"submit"},label:{type:String,required:!1}},setup(l){const r=e.inject("globalConfig"),o=l,t=e.computed(()=>{var n,u;return o.label??((u=(n=r==null?void 0:r.buttons)==null?void 0:n[o.type])==null?void 0:u.label)??o.type});return(n,u)=>{var s,a,v,p,c,f,m,d,k,h,b,w;return e.openBlock(),e.createBlock(e.unref(C.IonButton),{color:((v=(a=(s=e.unref(r))==null?void 0:s.buttons)==null?void 0:a[l.type])==null?void 0:v.color)??"primary",fill:((f=(c=(p=e.unref(r))==null?void 0:p.buttons)==null?void 0:c[l.type])==null?void 0:f.fill)??"solid",expand:(k=(d=(m=e.unref(r))==null?void 0:m.buttons)==null?void 0:d[l.type])==null?void 0:k.expand,size:((w=(b=(h=e.unref(r))==null?void 0:h.buttons)==null?void 0:b[l.type])==null?void 0:w.size)??"default"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]),_:1},8,["color","fill","expand","size"])}}}),oe=e.defineComponent({__name:"CustomButton",props:{button:{type:Object,required:!0}},setup(l){return(r,o)=>(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"]))}}),Le={class:"v-form-container"},qe={key:0,class:"multi-step-form"},Ue={class:"multi-step-form-content"},je={key:3,class:"step-progress-bottom"},Ge={class:"step-progress-bar"},He={class:"step-progress-text"},Ke=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:o}){const t=l,n=o,u=e.computed(()=>!!t.multiStepConfig),s=e.ref(t.schema||{}),a=t.multiStepConfig?re(t.multiStepConfig):null,{dynamicRefs:v,isFormValid:p,resetForm:c}=le(),{formData:f,computedData:m}=ae(s),d=e.ref(null),k=e.computed(()=>(a==null?void 0:a.currentStepIndex.value)??0),h=e.computed(()=>a==null?void 0:a.currentStep.value),b=e.computed(()=>(a==null?void 0:a.visibleSteps.value)??[]),w=e.computed(()=>(a==null?void 0:a.isLastStep.value)??!0),N=e.computed(()=>(a==null?void 0:a.canGoNext.value)??!1),I=e.computed(()=>(a==null?void 0:a.canGoPrevious.value)??!1),R=e.computed(()=>!u.value||!a?0:a.progressPercentage.value);e.watch(()=>h.value,i=>{i&&u.value&&(s.value=i.schema||{})},{immediate:!0}),e.watch([f,m],([i,S])=>{u.value&&a&&h.value&&(a.updateStepData(h.value.id,i),a.updateStepComputedData(h.value.id,S))},{deep:!0}),e.watch(()=>t.schema,i=>{if(!u.value&&i){s.value=i;for(const[S,x]of Object.entries(i))D(x)&&"value"in x&&x.value!==void 0&&(s.value[S].value=x.value)}},{deep:!0,immediate:!0});async function T(){var i;if(u.value&&a){if((i=h.value)!=null&&i.component&&d.value&&typeof d.value.validate=="function"&&!await d.value.validate()||!await a.validateAllSteps())return;const x=a.getMultiStepFormData();n("multi-step-submit",x)}else{if(!await p())return;n("submit",f.value,m.value)}}function A(){u.value&&a?a.resetForm():c(),n("clear")}function $(){u.value&&a&&h.value&&a.clearStepData(h.value.id)}function z(){u.value&&a?a.resetForm():c(),n("cancel")}async function y(){var i;if(u.value&&a){let S=!0;if((i=h.value)!=null&&i.component&&d.value?typeof d.value.validate=="function"&&(S=await d.value.validate()):S=await p(),!S)return;await a.nextStep()&&h.value&&n("step-change",k.value,h.value.id)}}async function _(){a&&await a.previousStep()&&h.value&&n("step-change",k.value,h.value.id)}async function g(i){var S;if(a){if(i>k.value){let E=!0;if((S=h.value)!=null&&S.component&&d.value?typeof d.value.validate=="function"&&(E=await d.value.validate()):E=await p(),!E)return}await a.goToStep(i)&&h.value&&n("step-change",i,h.value.id)}}e.watch(f,async()=>{var i;for(const[S,x]of Object.entries(s.value))if(!Z(x,f.value,m.value)){const E=u.value&&h.value&&h.value.schema?h.value.schema[S]:(i=t.schema)==null?void 0:i[S];E&&D(E)&&"value"in E?x.value=E.value:x.value=void 0}},{deep:!0,immediate:!0});function V(i){u.value&&a&&h.value&&a.updateStepData(h.value.id,i)}return r({resetForm:A,isFormValid:p,resolveData:()=>u.value&&a?a.getMultiStepFormData():{formData:f.value,computedData:m.value},nextStep:y,previousStep:_,goToStep:g,getCurrentStep:()=>h.value,getCurrentStepIndex:()=>k.value}),(i,S)=>{var x,E;return e.openBlock(),e.createElementBlock("div",Le,[u.value?(e.openBlock(),e.createElementBlock("div",qe,[i.multiStepConfig&&i.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(W,{key:0,steps:b.value,"active-step-index":k.value,position:i.multiStepConfig.stepPosition||"top","show-progress":i.multiStepConfig.showProgress,"allow-navigation":i.multiStepConfig.allowStepNavigation,onStepClick:g},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--${((x=i.multiStepConfig)==null?void 0:x.stepPosition)||"top"}`])},[i.multiStepConfig&&i.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(W,{key:0,steps:b.value,"active-step-index":k.value,position:i.multiStepConfig.stepPosition??"top","show-progress":i.multiStepConfig.showProgress,"allow-navigation":i.multiStepConfig.allowStepNavigation,onStepClick:g,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",Ue,[(E=h.value)!=null&&E.component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value.component),e.mergeProps({key:0},h.value.componentProps||{},{"onUpdate:data":V,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(s.value),B=>{var O,F,L,j,G;return e.openBlock(),e.createElementBlock(e.Fragment,{key:B},[e.unref(Z)(s.value[B],e.unref(f),e.unref(m))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((O=s.value[B].grid)==null?void 0:O.xs)??"12","size-sm":(F=s.value[B].grid)==null?void 0:F.sm,"size-md":(L=s.value[B].grid)==null?void 0:L.md,"size-lg":(j=s.value[B].grid)==null?void 0:j.lg,"size-xl":(G=s.value[B].grid)==null?void 0:G.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[B].type),{modelValue:s.value[B],"onUpdate:modelValue":X=>s.value[B]=X,schema:s.value,"form-id":B,ref_for:!0,ref_key:"dynamicRefs",ref:v,"ref-key":B},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})),i.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:i.buttonPlacement}])},{default:e.withCtx(()=>[I.value?(e.openBlock(),e.createBlock(P,{key:0,type:"previous",label:i.previousButtonText,onClick:_},null,8,["label"])):e.createCommentVNode("",!0),i.showCancelButton?(e.openBlock(),e.createBlock(P,{key:1,type:"cancel",label:i.cancelButtonText,onClick:z},null,8,["label"])):e.createCommentVNode("",!0),i.showClearButton?(e.openBlock(),e.createBlock(P,{key:2,type:"clear",label:i.clearButtonText,onClick:$},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.customButtons,B=>(e.openBlock(),e.createBlock(oe,{button:B,key:B.label},null,8,["button"]))),128)),N.value?(e.openBlock(),e.createBlock(P,{key:3,type:"next",label:i.nextButtonText,onClick:y},null,8,["label"])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createBlock(P,{key:4,type:"submit",label:i.submitButtonText,onClick:T},null,8,["label"])):e.createCommentVNode("",!0)]),_:1},8,["style"])]),_:1})),i.multiStepConfig&&(i.multiStepConfig.stepPosition==="left"||i.multiStepConfig.stepPosition==="right")&&i.multiStepConfig.showProgress?(e.openBlock(),e.createElementBlock("div",je,[e.createElementVNode("div",Ge,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${R.value}%`})},null,4)]),e.createElementVNode("div",He," Step "+e.toDisplayString(k.value+1)+" of "+e.toDisplayString(b.value.length),1)])):e.createCommentVNode("",!0)]),i.multiStepConfig&&i.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(W,{key:1,steps:b.value,"active-step-index":k.value,position:i.multiStepConfig.stepPosition,"show-progress":i.multiStepConfig.showProgress,"allow-navigation":i.multiStepConfig.allowStepNavigation,onStepClick:g,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)],2),i.multiStepConfig&&i.multiStepConfig.stepPosition==="bottom"?(e.openBlock(),e.createBlock(W,{key:1,steps:b.value,"active-step-index":k.value,position:i.multiStepConfig.stepPosition,"show-progress":i.multiStepConfig.showProgress,"allow-navigation":i.multiStepConfig.allowStepNavigation,onStepClick:g},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(s.value),B=>{var O,F,L,j,G;return e.openBlock(),e.createElementBlock(e.Fragment,{key:B},[e.unref(Z)(s.value[B],e.unref(f),e.unref(m))?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:0,size:((O=s.value[B].grid)==null?void 0:O.xs)??"12","size-sm":(F=s.value[B].grid)==null?void 0:F.sm,"size-md":(L=s.value[B].grid)==null?void 0:L.md,"size-lg":(j=s.value[B].grid)==null?void 0:j.lg,"size-xl":(G=s.value[B].grid)==null?void 0:G.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value[B].type),{modelValue:s.value[B],"onUpdate:modelValue":X=>s.value[B]=X,schema:s.value,"form-id":B,ref_for:!0,ref_key:"dynamicRefs",ref:v,"ref-key":B,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}),i.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:i.buttonPlacement}])},{default:e.withCtx(()=>[i.showCancelButton?(e.openBlock(),e.createBlock(P,{key:0,type:"cancel",label:i.cancelButtonText,onClick:z},null,8,["label"])):e.createCommentVNode("",!0),i.showClearButton?(e.openBlock(),e.createBlock(P,{key:1,type:"clear",label:i.clearButtonText,onClick:A},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.customButtons,B=>(e.openBlock(),e.createBlock(oe,{button:B,key:B.label},null,8,["button"]))),128)),e.createVNode(P,{type:"submit",label:i.submitButtonText,onClick:T},null,8,["label"])]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),ue=q(Ke,[["__scopeId","data-v-51c0c409"]]);function We(l){return{applyValidationState:async t=>{var n,u,s,a,v;(n=l.value)==null||n.$el.classList.remove("ion-invalid"),(u=l.value)==null||u.$el.classList.remove("ion-valid"),t?(s=l.value)==null||s.$el.classList.add("ion-valid"):(a=l.value)==null||a.$el.classList.add("ion-invalid"),(v=l.value)==null||v.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,n;(t=l.value)==null||t.$el.classList.remove("ion-touched"),(n=l.value)==null||n.$el.classList.remove("ion-invalid")}}}function U(l,r,o,t,n){const{applyValidationState:u,resetValidationState:s}=We(l),a=e.inject("globalConfig");async function v(){var d;if(r.value.required&&!o.value)return r.value.error=((d=a==null?void 0:a.errorMessages)==null?void 0:d.required)??"This field is required",!1;if(n){const k=await n(o.value);if(typeof k=="string")return r.value.error=k,!1;if(k===!1)return!1}if(r.value.validation){const k=await r.value.validation(o.value,t==null?void 0:t.value);if(k!=null&&k.length)return r.value.error=k.join(),!1}return!0}async function p(){const d=await v();d&&(r.value.error="",r.value.value=o.value),await u(d)}function c(){s(),r.value.error=""}function f(d=""){o.value=d,r.value.error="",r.value.value=d}function m(){return r.value.error?[r.value.error]:[]}return{isValid:v,onValueUpdate:p,onFocus:c,onReset:f,getErrors:m,applyValidationState:u,resetValidationState:s}}function Ze(l){const r=e.computed(()=>!!l.value.label),o=e.computed(()=>!!l.value.required),t=e.computed(()=>l.value.label||"");return{showLabel:r,showRequired:o,labelText:t}}const Q=e.defineComponent({__name:"InputLabel",props:{model:{},slotName:{}},setup(l){const r=l,{showLabel:o,showRequired:t,labelText:n}=Ze(e.toRef(r,"model"));return(u,s)=>e.unref(o)?(e.openBlock(),e.createBlock(e.unref(C.IonLabel),{key:0,slot:u.slotName,class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>s[0]||(s[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1},8,["slot"])):e.createCommentVNode("",!0)}}),K=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=l,t=e.useModel(l,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),s=e.computed(()=>o.schema),{isValid:a,onValueUpdate:v,onFocus:p,onReset:c,getErrors:f}=U(n,t,u,s),m=e.computed(()=>{if(t.value.pattern)return Se(t.value.pattern)});return e.watch(()=>t.value.value,d=>u.value=d),r({onValueUpdate:v,onReset:c,getErrors:f,isValid:a}),(d,k)=>{var b;const h=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(C.IonInput),{ref_key:"inputRef",ref:n,modelValue:u.value,"onUpdate:modelValue":k[0]||(k[0]=w=>u.value=w),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=m.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(v),onIonBlur:e.unref(v)},{default:e.withCtx(()=>[e.createVNode(Q,{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"])),[[h,m.value]])}}}),se=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref(null);return r({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,u;return((u=(n=t.value)==null?void 0:n.getErrors)==null?void 0:u.call(n))??[]}}),(n,u)=>(e.openBlock(),e.createBlock(K,{modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=s=>o.value=s),type:"text",schema:n.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(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref(null);return r({onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},getErrors:()=>{var n,u;return((u=(n=t.value)==null?void 0:n.getErrors)==null?void 0:u.call(n))??[]}}),(n,u)=>(e.openBlock(),e.createBlock(K,{modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=s=>o.value=s),type:o.value.enableTime?"datetime-local":"date",schema:n.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(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref(null);return r({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,u;return((u=(n=t.value)==null?void 0:n.getErrors)==null?void 0:u.call(n))??[]}}),(n,u)=>(e.openBlock(),e.createBlock(K,{modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=s=>o.value=s),type:"number",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),de=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref(null);return r({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,u;return((u=(n=t.value)==null?void 0:n.getErrors)==null?void 0:u.call(n))??[]}}),(n,u)=>(e.openBlock(),e.createBlock(K,{modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=s=>o.value=s),type:"email",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),pe=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref(null);return r({onReset:()=>{var n;return(n=t.value)==null?void 0:n.onReset()},onValueUpdate:()=>{var n;return(n=t.value)==null?void 0:n.onValueUpdate()},getErrors:()=>{var n,u;return((u=(n=t.value)==null?void 0:n.getErrors)==null?void 0:u.call(n))??[]}}),(n,u)=>(e.openBlock(),e.createBlock(K,{modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=s=>o.value=s),type:"password",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Je={class:"option-content"},Qe=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 o=l,t=e.useModel(l,"modelValue"),n=e.ref(null),u=e.ref(null),s=e.ref(!1),a=e.ref([]),v=e.ref(""),p=e.ref(1),c=e.inject("globalConfig"),f=e.computed(()=>t.value.interface??"popover"),m=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),d=e.computed(()=>a.value.filter(g=>!!g.isChecked)),k=e.computed(()=>!v.value&&Y(d.value)&&!s.value?t.value.placeholder??"Select an option":"");e.watch([v,()=>t.value.options],y,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,_,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!o.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(V=>{const i=o.schema[V];return D(i)?i.value:void 0}),async(g,V)=>{g&&V&&!H(g,V)&&(h(),a.value=[],await y())},{deep:!0});function h(){t.value.error="",v.value="",p.value=1,t.value.value=t.value.multiple?[]:"",xe(a.value)}function b(g){if(g.disabled)return;const V=a.value.findIndex(i=>i.value===g.value&&i.isChecked);if(V>=0){if(Array.isArray(t.value.value)){const i=te(g,t.value.value);i>=0&&t.value.value.splice(i,1)}a.value[V].isChecked=!1}else t.value.multiple||h(),M(g,a.value);z(),v.value=""}function w(){switch(f.value){case"action-sheet":N();break;case"alert":I();break;case"popover":default:s.value=!0;break}}async function N(){var V,i;if(await y(),t.value.multiple){s.value=!0;return}await(await C.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...a.value.map(S=>{let x="";return S.isChecked?x="selected-option":S.disabled&&(x="disabled-option"),{text:S.label,cssClass:x,handler:()=>(b(S),!1),disabled:S.disabled}}),{text:((i=(V=c==null?void 0:c.buttons)==null?void 0:V.cancel)==null?void 0:i.label)??"Cancel",role:"cancel"}]})).present()}async function I(){var i,S,x,E;await y();const g=a.value.map(B=>({label:B.label,type:t.value.multiple?"checkbox":"radio",value:B,checked:B.isChecked,disabled:B.disabled}));await(await C.alertController.create({header:t.value.label||"Select an option",inputs:g,buttons:[{text:((S=(i=c==null?void 0:c.buttons)==null?void 0:i.cancel)==null?void 0:S.label)??"Cancel",role:"cancel"},{text:((E=(x=c==null?void 0:c.buttons)==null?void 0:x.ok)==null?void 0:E.label)??"OK",handler:B=>{if(t.value.multiple)a.value.forEach(O=>_e(O,a.value)),B.forEach(O=>{const F=a.value.find(L=>L.value===O.value);F&&M(F,a.value)});else{h();const O=a.value.find(F=>F.value===B.value);O&&M(O,a.value)}z()}}]})).present()}async function R(){var g;if(t.value.required&&Y(d.value))return((g=c==null?void 0:c.errorMessages)==null?void 0:g.required)??"This field is required";if(t.value.validation){const V=await t.value.validation(d.value,o==null?void 0:o.schema);if(V&&V.length)return V.join()}return!0}const{onFocus:T,applyValidationState:A}=U(n,t,e.computed(()=>t.value.multiple?d.value:d.value[0]),e.computed(()=>o==null?void 0:o.schema),R);function $(g){var V;g.target===((V=n.value)==null?void 0:V.$el)&&(T(),f.value==="popover"&&(s.value=!0))}async function z(g){var i;if((i=g==null?void 0:g.relatedTarget)!=null&&i.closest(".suggestions-list"))return;s.value=!1;const V=await R();V===!0?(t.value.error="",t.value.value=t.value.multiple?d.value:d.value[0]):t.value.error=typeof V=="string"?V:"Validation failed",await A(V===!0)}async function y(){const g=[];if(typeof t.value.options=="function"){let V={};if(t.value.dependsOn&&o.schema){const i=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];let S=!0;if(V=i.reduce((x,E)=>{const B=o.schema[E];return x[E]=D(B)?B.value:void 0,(x[E]===void 0||x[E]===null||x[E]==="")&&(S=!1),x},{}),S){const x=await t.value.options(v.value,V);g.push(...x.filter(E=>!!E.label))}}else{const i=await t.value.options(v.value,{});g.push(...i.filter(S=>!!S.label))}}else Array.isArray(t.value.options)&&g.push(...Ne(t.value.options,v.value));d.value.forEach(V=>M(V,g)),a.value=g}async function _(){const g=t.value.value;if(g){if(a.value.length===0&&await y(),Array.isArray(g))g.forEach(V=>M(V,a.value));else if(typeof g=="object")M(g,a.value);else{const V=a.value.find(i=>i.value===g);M(V||{value:g,label:g},a.value)}z()}}return e.onMounted(async()=>{await y(),await _()}),r({onValueUpdate:z,onReset:h,getErrors:()=>t.value.error?[t.value.error]:[]}),(g,V)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["autocomplete-container",t.value.className]),onFocusout:z,ref_key:"containerRef",ref:u},[e.createVNode(e.unref(C.IonInput),{ref_key:"inputRef",ref:n,modelValue:v.value,"onUpdate:modelValue":V[0]||(V[0]=i=>v.value=i),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:k.value,disabled:t.value.disabled,counter:t.value.counter,debounce:300,onIonFocus:$,onClick:w,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(Q,{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,(i,S)=>(e.openBlock(),e.createBlock(e.unref(C.IonChip),{key:S},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.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 i;return[e.createTextVNode(e.toDisplayString(((i=d.value[0])==null?void 0:i.label)??""),1)]}),_:1})),e.createVNode(e.unref(C.IonIcon),{slot:"end",icon:e.unref(J.chevronDown)},null,8,["icon"]),d.value.length>0||v.value?(e.openBlock(),e.createBlock(e.unref(C.IonIcon),{key:2,slot:"end",icon:e.unref(J.close),onClick:h,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),s.value&&a.value.length>0&&f.value==="popover"?(e.openBlock(),e.createBlock(e.unref(C.IonList),{key:0,class:e.normalizeClass(["suggestions-list",m.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,i=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{button:"",key:i.label,onClick:S=>b(i),lines:t.value.showOptionsSeparator?"none":"full",disabled:i.disabled,class:e.normalizeClass({"ion-item-disabled":i.disabled})},{default:e.withCtx(()=>{var S;return[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{key:0,slot:"start",checked:i.isChecked,disabled:i.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(i.label),1)]),_:2},1024),e.unref(ne)(i)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(S=i.description)==null?void 0:S.color,class:"option-description"},{default:e.withCtx(()=>{var x;return[e.createTextVNode(e.toDisplayString((x=i.description)==null?void 0:x.text),1)]}),_:2},1032,["color"])):e.createCommentVNode("",!0)])]}),_:2},1032,["onClick","lines","disabled","class"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],34))}}),me=q(Qe,[["__scopeId","data-v-312c51dd"]]),fe=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=l,t=e.useModel(l,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),s=e.computed(()=>o.schema),{onValueUpdate:a,onFocus:v,onReset:p,getErrors:c}=U(n,t,u,s);return e.watch(()=>t.value.value,f=>u.value=f),r({onReset:p,onValueUpdate:a,getErrors:c}),(f,m)=>(e.openBlock(),e.createBlock(e.unref(C.IonTextarea),{ref_key:"inputRef",ref:n,modelValue:u.value,"onUpdate:modelValue":m[0]||(m[0]=d=>u.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(v),onIonChange:e.unref(a),onIonBlur:e.unref(a),style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(Q,{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"},Ye=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=e.useModel(l,"modelValue"),t=e.ref([]),{dynamicRefs:n,resetForm:u,getFormErrors:s,updateFormValues:a}=le(),v=e.computed(()=>t.value.map((k,h)=>({label:`Set ${h+1}`,value:h,other:Object.entries(k).reduce((b,[w,N])=>(D(N)&&(b[w]=N.value),b),{})})));e.watch(v,k=>{o.value.value=k},{deep:!0,immediate:!0}),e.onMounted(p);function p(){o.value.children&&t.value.push(ee(o.value.children))}function c(k){t.value.splice(k,1)}function f(){u()}function m(){return s()}async function d(){await a()}return r({onValueUpdate:d,onReset:f,getErrors:m}),(k,h)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(b,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["repeat-input-wrapper",o.value.className]),key:w},[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),N=>{var I,R,T,A,$;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(Z)(b[N],k.data,k.computedData)?(e.openBlock(),e.createBlock(e.unref(C.IonCol),{key:`${w}-${N}`,size:((I=b[N].grid)==null?void 0:I.xs)??"12","size-sm":(R=b[N].grid)==null?void 0:R.sm,"size-md":(T=b[N].grid)==null?void 0:T.md,"size-lg":(A=b[N].grid)==null?void 0:A.lg,"size-xl":($=b[N].grid)==null?void 0:$.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b[N].type),{modelValue:b[N],"onUpdate:modelValue":z=>b[N]=z,schema:b,"ref-key":`${w}-${N}`,ref_for:!0,ref_key:"dynamicRefs",ref:n,style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),_:2},1024),e.createVNode(e.unref(C.IonCol),{size:"1",class:"button-column"},{default:e.withCtx(()=>[e.createElementVNode("div",Xe,[w===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(J.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(C.IonButton),{key:1,onClick:N=>c(w),color:"warning",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonIcon),{slot:"icon-only",icon:e.unref(J.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024)],2))),128))}}),ve=q(Ye,[["__scopeId","data-v-0eb7594d"]]),he=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=l,t=e.useModel(l,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),s=e.computed(()=>o.schema),a=e.computed(()=>Ee(t.value)),{onValueUpdate:v,onFocus:p,getErrors:c}=U(n,t,u,s);function f(){u.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,m=>u.value=m),r({onValueUpdate:v,onReset:f,getErrors:c}),(m,d)=>(e.openBlock(),e.createBlock(e.unref(C.IonCheckbox),{modelValue:u.value,"onUpdate:modelValue":d[0]||(d[0]=k=>u.value=k),ref_key:"inputRef",ref:n,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(v),onIonBlur:e.unref(v),style:{width:"100%"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.value),1)]),_:1},8,["modelValue","class","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),et={class:"radio-content"},tt={class:"radio-label"},lt=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:r}){const o=l,t=e.useModel(l,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),s=e.computed(()=>o.schema),a=e.ref([]),{onValueUpdate:v,onFocus:p,getErrors:c,isValid:f}=U(n,t,u,s);function m(){t.value.error="",u.value=void 0,t.value.value=void 0}function d(h,b){return(h==null?void 0:h.value)===(b==null?void 0:b.value)}async function k(){typeof t.value.options=="function"?a.value=await t.value.options():a.value=t.value.options}return e.watch(()=>t.value.value,h=>u.value=h),r({onValueUpdate:v,onReset:m,getErrors:c,isValid:f}),e.onMounted(k),(h,b)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(Q,{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:u.value,"onUpdate:modelValue":b[0]||(b[0]=w=>u.value=w),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(v),onIonBlur:e.unref(v),style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,w=>(e.openBlock(),e.createBlock(e.unref(C.IonItem),{key:w.value,lines:t.value.showOptionsSeparator?"none":"full"},{default:e.withCtx(()=>[e.createVNode(e.unref(C.IonRadio),{value:w,disabled:t.value.disabled||w.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>{var N;return[e.createElementVNode("div",et,[e.createElementVNode("div",tt,e.toDisplayString(w.label),1),e.unref(ne)(w)?(e.openBlock(),e.createBlock(e.unref(C.IonText),{key:0,color:(N=w.description)==null?void 0:N.color,class:"radio-description"},{default:e.withCtx(()=>{var I;return[e.createTextVNode(e.toDisplayString((I=w.description)==null?void 0:I.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))}}),ge=q(lt,[["__scopeId","data-v-a25d68e7"]]),ot={class:"form-section-header"},nt={class:"form-section-title"},at={key:0,class:"form-section-subtitle"},rt=e.defineComponent({__name:"SectionTitle",props:{modelValue:{},schema:{},formId:{},refKey:{}},setup(l){const o=l.modelValue;return(t,n)=>{var u,s,a,v,p;return e.openBlock(),e.createBlock(e.unref(C.IonCol),{size:((u=e.unref(o).grid)==null?void 0:u.xs)??"12","size-sm":(s=e.unref(o).grid)==null?void 0:s.sm,"size-md":(a=e.unref(o).grid)==null?void 0:a.md,"size-lg":(v=e.unref(o).grid)==null?void 0:v.lg,"size-xl":(p=e.unref(o).grid)==null?void 0:p.xl,class:e.normalizeClass(["form-section-container",e.unref(o).className])},{default:e.withCtx(()=>[e.createElementVNode("div",ot,[e.createElementVNode("h3",nt,e.toDisplayString(e.unref(o).title),1),e.unref(o).subtitle?(e.openBlock(),e.createElementBlock("p",at,e.toDisplayString(e.unref(o).subtitle),1)):e.createCommentVNode("",!0)])]),_:1},8,["size","size-sm","size-md","size-lg","size-xl","class"])}}}),ye=q(rt,[["__scopeId","data-v-e0bf7af0"]]);function ut(l,r,o){const t=e.ref({}),n=e.ref({});function u(c,f,m){n.value[c]=m,f.forEach(d=>{var k;(k=t.value)[d]??(k[d]=[]),t.value[d].includes(c)||t.value[d].push(c)}),p(c)}function s(c){return Object.entries(t.value).filter(([,m])=>m.includes(c)).map(([m])=>m).reduce((m,d)=>(m[d]=r.value[d]??o.value[d],m),{})}function a(c,f){return c?Array.isArray(c)?c.some(m=>f.some(d=>v(m,d.value))):f.some(m=>v(c,m.value)):!1}function v(c,f){return typeof c=="object"&&c!==null?c.value===f:String(c)===String(f)}async function p(c,f){if(!n.value[c])return;const m=s(c),d=Object.keys(m);if(!(d.length===0||!d.every(h=>m[h]!==void 0&&m[h]!==null)))try{const h=n.value[c],b=await h(f,m);if(!l.value[c])return;const w=l.value[c];if(!D(w))return;w.options=b;const N=w.value;if(!N)return;a(N,b)||(w.value=w.multiple?[]:"")}catch(h){console.error(`Error loading options for ${c}:`,h)}}return e.watch([r,o],()=>{Object.entries(t.value).forEach(([c,f])=>{(r.value[c]!==void 0||o.value[c]!==void 0)&&f.forEach(m=>{p(m)})})},{deep:!0,immediate:!0}),{registerDependency:u,updateOptions:p}}const ke={install(l,r){r&&l.provide("globalConfig",r),l.component("VForm",ue),l.component("TextInput",se),l.component("DateInput",ie),l.component("NumberInput",ce),l.component("EmailInput",de),l.component("PasswordInput",pe),l.component("SelectInput",me),l.component("TextAreaInput",fe),l.component("RepeatInput",ve),l.component("CheckboxInput",he),l.component("RadioInput",ge),l.component("FormSection",ye),l.directive("maskito",Ce.maskito)}};exports.CheckboxInput=he;exports.DateInput=ie;exports.EmailInput=de;exports.FormBuilder=ue;exports.FormSection=ye;exports.NumberInput=ce;exports.PasswordInput=pe;exports.RadioInput=ge;exports.RepeatInput=ve;exports.SelectInput=me;exports.TextAreaInput=fe;exports.TextInput=se;exports.VForm=ke;exports.default=ke;exports.useDataTransformation=ae;exports.useDependentOptions=ut;exports.useFormValidation=le;exports.useInputValidation=U;exports.useMultiStepForm=re;
2
2
  //# sourceMappingURL=index.cjs.js.map