@uniquedj95/vform 3.2.0 → 3.4.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 +347 -37
- package/dist/components/inputs/BaseInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/CheckboxInput.vue.d.ts +1 -1
- package/dist/components/inputs/CheckboxInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/DateInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/EmailInput.vue.d.ts +3 -3
- package/dist/components/inputs/EmailInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/NumberInput.vue.d.ts +3 -3
- package/dist/components/inputs/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/PasswordInput.vue.d.ts +3 -3
- package/dist/components/inputs/PasswordInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/RadioInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/RepeatInput.vue.d.ts +1 -1
- package/dist/components/inputs/RepeatInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/SelectInput.vue.d.ts +1 -7
- package/dist/components/inputs/SelectInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/TextAreaInput.vue.d.ts +1 -1
- package/dist/components/inputs/TextAreaInput.vue.d.ts.map +1 -1
- package/dist/components/inputs/TextInput.vue.d.ts +3 -3
- package/dist/components/inputs/TextInput.vue.d.ts.map +1 -1
- package/dist/components/shared/InputLabel.vue.d.ts.map +1 -1
- package/dist/components/shared/StepIndicator.vue.d.ts +18 -0
- package/dist/components/shared/StepIndicator.vue.d.ts.map +1 -0
- package/dist/components/vForm.vue.d.ts +21 -7
- package/dist/components/vForm.vue.d.ts.map +1 -1
- package/dist/composables/useDataTransformation.d.ts +1 -1
- package/dist/composables/useDataTransformation.d.ts.map +1 -1
- package/dist/composables/useDependentOptions.d.ts.map +1 -1
- package/dist/composables/useInputProps.d.ts.map +1 -1
- package/dist/composables/useInputValidation.d.ts.map +1 -1
- package/dist/composables/useLabelTemplate.d.ts.map +1 -1
- package/dist/composables/useMultiStepForm.d.ts +27 -0
- package/dist/composables/useMultiStepForm.d.ts.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +1040 -635
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/types/index.d.ts +93 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +7 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/vform.css +1 -1
- package/package.json +5 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import { FormField, FormSchema } from 'types';
|
1
|
+
import { FormField, FormSchema } from '../../types';
|
2
2
|
type __VLS_Props = {
|
3
3
|
schema?: FormSchema;
|
4
4
|
};
|
@@ -19,7 +19,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
19
19
|
modelValue?: FormField;
|
20
20
|
} & {
|
21
21
|
schema?: FormSchema;
|
22
|
-
type?: import('types').BaseFieldTypes;
|
22
|
+
type?: import('../../types').BaseFieldTypes;
|
23
23
|
}> & Readonly<{
|
24
24
|
"onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
|
25
25
|
}>, {
|
@@ -49,7 +49,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {
|
|
49
49
|
modelValue?: FormField;
|
50
50
|
} & {
|
51
51
|
schema?: FormSchema;
|
52
|
-
type?: import('types').BaseFieldTypes;
|
52
|
+
type?: import('../../types').BaseFieldTypes;
|
53
53
|
}> & Readonly<{
|
54
54
|
"onUpdate:modelValue"?: ((value: FormField) => any) | undefined;
|
55
55
|
}>, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/TextInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"TextInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/TextInput.vue"],"names":[],"mappings":"AAGA;AAsBA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhD,KAAK,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,QAAA,MAAM,KAAK,iEAAoE,CAAC;AAkBhF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DhB,wBAUG"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InputLabel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/InputLabel.vue"],"names":[],"mappings":"AAMA;AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"InputLabel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/InputLabel.vue"],"names":[],"mappings":"AAMA;AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;;AAyEF,wBAMG"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { FormStep, StepPosition } from '../../types';
|
2
|
+
interface StepIndicatorProps {
|
3
|
+
steps: FormStep[];
|
4
|
+
activeStepIndex: number;
|
5
|
+
position: StepPosition;
|
6
|
+
showProgress?: boolean;
|
7
|
+
allowNavigation?: boolean;
|
8
|
+
}
|
9
|
+
declare const _default: import('vue').DefineComponent<StepIndicatorProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
10
|
+
"step-click": (stepIndex: number) => any;
|
11
|
+
}, string, import('vue').PublicProps, Readonly<StepIndicatorProps> & Readonly<{
|
12
|
+
"onStep-click"?: ((stepIndex: number) => any) | undefined;
|
13
|
+
}>, {
|
14
|
+
showProgress: boolean;
|
15
|
+
allowNavigation: boolean;
|
16
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
17
|
+
export default _default;
|
18
|
+
//# sourceMappingURL=StepIndicator.vue.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"StepIndicator.vue.d.ts","sourceRoot":"","sources":["../../../src/components/shared/StepIndicator.vue"],"names":[],"mappings":"AAoDA;AA2SA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;;;;;;kBAFgB,OAAO;qBACJ,OAAO;;AA6J3B,wBASG"}
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import { FormData, ComputedData, FormSchema, CustomButton } from '../types';
|
1
|
+
import { FormData, ComputedData, FormSchema, CustomButton, MultiStepConfig, MultiStepFormData } from '../types';
|
2
2
|
interface FormProps {
|
3
|
-
schema
|
3
|
+
schema?: FormSchema;
|
4
|
+
multiStepConfig?: MultiStepConfig;
|
4
5
|
showLabels?: boolean;
|
5
6
|
showClearButton?: boolean;
|
6
7
|
showCancelButton?: boolean;
|
@@ -11,21 +12,34 @@ interface FormProps {
|
|
11
12
|
hideButtons?: boolean;
|
12
13
|
customButtons?: Array<CustomButton>;
|
13
14
|
}
|
15
|
+
declare function handleClearAction(): void;
|
16
|
+
declare function handleNextStep(): Promise<void>;
|
17
|
+
declare function handlePreviousStep(): Promise<void>;
|
18
|
+
declare function handleStepClick(stepIndex: number): Promise<void>;
|
14
19
|
declare const _default: import('vue').DefineComponent<FormProps, {
|
15
|
-
resetForm:
|
20
|
+
resetForm: typeof handleClearAction;
|
16
21
|
isFormValid: () => Promise<boolean>;
|
17
|
-
resolveData: () => {
|
22
|
+
resolveData: () => MultiStepFormData | {
|
18
23
|
formData: FormData;
|
19
24
|
computedData: ComputedData;
|
20
25
|
};
|
26
|
+
nextStep: typeof handleNextStep;
|
27
|
+
previousStep: typeof handlePreviousStep;
|
28
|
+
goToStep: typeof handleStepClick;
|
29
|
+
getCurrentStep: () => import('../types').FormStep | undefined;
|
30
|
+
getCurrentStepIndex: () => number;
|
21
31
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
22
32
|
clear: () => any;
|
23
|
-
submit: (formData: FormData, computedFormData: ComputedData) => any;
|
24
33
|
cancel: () => any;
|
34
|
+
submit: (formData: FormData, computedFormData: ComputedData) => any;
|
35
|
+
"multi-step-submit": (data: MultiStepFormData) => any;
|
36
|
+
"step-change": (stepIndex: number, stepId: string) => any;
|
25
37
|
}, string, import('vue').PublicProps, Readonly<FormProps> & Readonly<{
|
26
38
|
onClear?: (() => any) | undefined;
|
27
|
-
onSubmit?: ((formData: FormData, computedFormData: ComputedData) => any) | undefined;
|
28
39
|
onCancel?: (() => any) | undefined;
|
40
|
+
onSubmit?: ((formData: FormData, computedFormData: ComputedData) => any) | undefined;
|
41
|
+
"onMulti-step-submit"?: ((data: MultiStepFormData) => any) | undefined;
|
42
|
+
"onStep-change"?: ((stepIndex: number, stepId: string) => any) | undefined;
|
29
43
|
}>, {
|
30
44
|
showLabels: boolean;
|
31
45
|
showClearButton: boolean;
|
@@ -37,6 +51,6 @@ declare const _default: import('vue').DefineComponent<FormProps, {
|
|
37
51
|
hideButtons: boolean;
|
38
52
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
39
53
|
dynamicRefs: unknown[];
|
40
|
-
},
|
54
|
+
}, HTMLDivElement>;
|
41
55
|
export default _default;
|
42
56
|
//# sourceMappingURL=vForm.vue.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"vForm.vue.d.ts","sourceRoot":"","sources":["../../src/components/vForm.vue"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"vForm.vue.d.ts","sourceRoot":"","sources":["../../src/components/vForm.vue"],"names":[],"mappings":"AAqLA;AA+jBA,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;AAuGD,iBAAS,iBAAiB,SAOzB;AAiBD,iBAAe,cAAc,kBAe5B;AAED,iBAAe,kBAAkB,kBAOhC;AAED,iBAAe,eAAe,CAAC,SAAS,EAAE,MAAM,iBAiB/C;;;;;;;;;;;;;;;;;;;;;;;;;;gBAnLc,OAAO;qBACF,OAAO;sBACN,OAAO;qBACR,OAAO,GAAG,QAAQ,GAAG,KAAK;sBACzB,MAAM;qBACP,MAAM;sBACL,MAAM;iBACX,OAAO;;;;AA+1BvB,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,
|
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;;;EAwJlE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDependentOptions.d.ts","sourceRoot":"","sources":["../../src/composables/useDependentOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,GAAG,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"useDependentOptions.d.ts","sourceRoot":"","sources":["../../src/composables/useDependentOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,GAAG,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,EACvB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EACnB,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC;kCAiBpB,MAAM,aACJ,MAAM,EAAE,UACX,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;6BAoElD,MAAM,gBAAgB,MAAM;EAgEnE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useInputProps.d.ts","sourceRoot":"","sources":["../../src/composables/useInputProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"useInputProps.d.ts","sourceRoot":"","sources":["../../src/composables/useInputProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;EA2DlD"}
|
@@ -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,
|
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 +1 @@
|
|
1
|
-
{"version":3,"file":"useLabelTemplate.d.ts","sourceRoot":"","sources":["../../src/composables/useLabelTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"useLabelTemplate.d.ts","sourceRoot":"","sources":["../../src/composables/useLabelTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC;;;;EAqBrD"}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { MultiStepConfig, MultiStepFormData, FormData, ComputedData, FormStep } from '../types';
|
2
|
+
export declare function useMultiStepForm(config: MultiStepConfig): {
|
3
|
+
currentStepIndex: import('vue').Ref<number, number>;
|
4
|
+
currentStep: import('vue').ComputedRef<FormStep>;
|
5
|
+
stepData: import('vue').Ref<Record<string, FormData>, Record<string, FormData>>;
|
6
|
+
stepComputedData: import('vue').Ref<Record<string, ComputedData>, Record<string, ComputedData>>;
|
7
|
+
stepValidationErrors: import('vue').Ref<Record<string, string[]>, Record<string, string[]>>;
|
8
|
+
isFirstStep: import('vue').ComputedRef<boolean>;
|
9
|
+
isLastStep: import('vue').ComputedRef<boolean>;
|
10
|
+
canGoNext: import('vue').ComputedRef<boolean>;
|
11
|
+
canGoPrevious: import('vue').ComputedRef<boolean>;
|
12
|
+
totalSteps: import('vue').ComputedRef<number>;
|
13
|
+
progressPercentage: import('vue').ComputedRef<number>;
|
14
|
+
allFormData: import('vue').ComputedRef<FormData>;
|
15
|
+
allComputedData: import('vue').ComputedRef<ComputedData>;
|
16
|
+
updateStepData: (stepId: string, data: FormData) => void;
|
17
|
+
updateStepComputedData: (stepId: string, data: ComputedData) => void;
|
18
|
+
clearStepData: (stepId: string) => void;
|
19
|
+
validateCurrentStep: () => Promise<boolean>;
|
20
|
+
goToStep: (stepIndex: number) => Promise<boolean>;
|
21
|
+
nextStep: () => Promise<boolean>;
|
22
|
+
previousStep: () => Promise<boolean>;
|
23
|
+
resetForm: () => void;
|
24
|
+
validateAllSteps: () => Promise<boolean>;
|
25
|
+
getMultiStepFormData: () => MultiStepFormData;
|
26
|
+
};
|
27
|
+
//# sourceMappingURL=useMultiStepForm.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useMultiStepForm.d.ts","sourceRoot":"","sources":["../../src/composables/useMultiStepForm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe;;;;;;;;;;;;;;6BAmDtB,MAAM,QAAQ,QAAQ;qCAId,MAAM,QAAQ,YAAY;4BAInC,MAAM;+BASC,OAAO,CAAC,OAAO,CAAC;0BAqBnB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;oBAiBjC,OAAO,CAAC,OAAO,CAAC;wBAOZ,OAAO,CAAC,OAAO,CAAC;;4BAgBZ,OAAO,CAAC,OAAO,CAAC;gCAmBlB,iBAAiB;EAuCnD"}
|
package/dist/index.cjs.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("@ionic/vue"),S=require("ionicons/icons"),Q=require("@maskito/vue");function X(n){return new Promise(r=>{requestAnimationFrame(async()=>{const l=await n.getInputElement();r(l)})})}const Y={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},ee={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 te(n,r){const l=ee[n];return l[r%l.length]}function ne(n){const r=[];let l="",t=0,o=0;for(;t<n.length;){const a=n[t];if(["d","a","*"].includes(a)){let i=1;if(n[t+1]==="{"){const c=n.indexOf("}",t+2);if(c!==-1){const p=n.slice(t+2,c);if(p.includes(",")){const[,d]=p.split(",").map(s=>parseInt(s.trim()));i=d||parseInt(p.split(",")[0])}else i=parseInt(p);t=c}}else{let c=t+1;for(;n[c]===a;)i++,c++;t=c-1}for(let c=0;c<i;c++)r.push(Y[a]),l+=te(a,o++)}else r.push(a),l+=a;t++}return{mask:r,placeholder:l,elementPredicate:X}}function L(n){return n==null||Array.isArray(n)&&!n.length||typeof n=="object"&&!Object.keys(n).length||!n}function U(n,r,l){return typeof n.condition=="function"?n.condition(r,l):!0}function D(n){if(typeof n!="object"||n===null)return n;if(Array.isArray(n))return n.map(l=>D(l));const r={};return Object.entries(n).forEach(([l,t])=>{typeof t=="function"?r[l]=t.bind(r):r[l]=D(t)}),r}function j(n,r){return r.findIndex(l=>l.value===n.value||l.label===n.label||l.value===n.label||l.label===n.value)}function I(n,r){const l=j(n,r);l>=0?r[l].isChecked=!0:r.push({...n,isChecked:!0})}function q(n,r){const l=j(n,r);l>=0&&(r[l].isChecked=!1)}function oe(n,r){return r?n.filter(l=>JSON.stringify(l).toLowerCase().includes(r.toLowerCase())):n}function P(n){const r=n.label||"",l=n.required?" *":"";return r+l}function T(n,r){if(n===r)return!0;if(n==null||r==null||typeof n!=typeof r)return!1;if(typeof n!="object")return n===r;if(Array.isArray(n)&&Array.isArray(r))return n.length!==r.length?!1:n.every((o,a)=>T(o,r[a]));if(Array.isArray(n)!==Array.isArray(r))return!1;const l=Object.keys(n),t=Object.keys(r);return l.length!==t.length?!1:l.every(o=>Object.prototype.hasOwnProperty.call(r,o)&&T(n[o],r[o]))}function $(){const n=e.ref([]);async function r(){console.debug("Validating form inputs");const a=[];for(const i of n.value)if(typeof(i==null?void 0:i.onValueUpdate)=="function"&&await i.onValueUpdate(),typeof(i==null?void 0:i.getErrors)=="function")try{const c=i.getErrors();Array.isArray(c)?a.push(...c):console.warn("getErrors() returned non-array value:",c)}catch(c){console.error("Error calling getErrors on component:",c,i)}else console.warn("Component does not have getErrors function:",i);return a.every(L)}function l(){n.value.forEach(a=>{typeof(a==null?void 0:a.onReset)=="function"&&a.onReset()})}function t(){const a=[];for(const i of n.value)if(typeof(i==null?void 0:i.getErrors)=="function")try{const c=i.getErrors();Array.isArray(c)?a.push(...c):a.push(String(c))}catch(c){console.error("Error calling getErrors on component:",c,i)}return a}async function o(){for(const a of n.value)typeof(a==null?void 0:a.onValueUpdate)=="function"&&await a.onValueUpdate()}return{dynamicRefs:n,isFormValid:r,resetForm:l,getFormErrors:t,updateFormValues:o}}function G(n){const r=e.computed(()=>Object.entries(n.value).reduce((d,[s,f])=>(f.value!==void 0&&(typeof f.onChange=="function"?d[s]=f.onChange(f.value):d[s]=f.value),d),{})),l=e.ref({}),t=(d,s,f)=>{var u;return typeof((u=n.value[d].children[s])==null?void 0:u.computedValue)=="function"?n.value[d].children[s].computedValue(f,n.value):f},o=(d,s,f,u)=>{l.value[d][u]||(l.value[d][u]={}),Object.entries(s.other??{}).forEach(([m,V])=>{var g;!T(V,(g=f.other)==null?void 0:g[m])&&(l.value[d][u][m]=t(d,m,V))})},a=(d,s,f)=>{s.forEach((u,m)=>{const V=f[m]??{other:{}};o(d,u,V,m)})},i=(d,{other:s})=>Object.entries(s??{}).reduce((f,[u,m])=>(f[u]=t(d,u,m),f),{}),c=(d,s,f)=>{l.value[d]||(l.value[d]=[]);const u=s;Array.isArray(f[d])?a(d,u,f[d]):l.value[d]=u.map(m=>i(d,m))},p=(d,s,f)=>{if(!s){delete l.value[d];return}const u=n.value[d];u.children!==void 0?c(d,s,f):typeof u.computedValue=="function"&&(l.value[d]=u.computedValue(s,n.value))};return e.watch(r,(d,s={})=>{Object.keys(d).forEach(f=>{T(d[f],s[f])||p(f,d[f],s)}),Object.keys(s).forEach(f=>{!(f in d)&&f in l.value&&delete l.value[f]})},{immediate:!0,deep:!0}),{formData:r,computedData:l}}function H(n,r,l){const t=e.ref({}),o=e.ref({});function a(s,f,u){o.value[s]=u,f.forEach(m=>{var V;(V=t.value)[m]??(V[m]=[]),t.value[m].includes(s)||t.value[m].push(s)}),d(s)}function i(s){return Object.entries(t.value).filter(([,u])=>u.includes(s)).map(([u])=>u).reduce((u,m)=>(u[m]=r.value[m]??l.value[m],u),{})}function c(s,f){return s?Array.isArray(s)?s.some(u=>f.some(m=>p(u,m.value))):f.some(u=>p(s,u.value)):!1}function p(s,f){return typeof s=="object"&&s!==null?s.value===f:String(s)===String(f)}async function d(s,f){if(!o.value[s])return;const u=i(s),m=Object.keys(u);if(!(m.length===0||!m.every(k=>u[k]!==void 0&&u[k]!==null)))try{const k=o.value[s],g=await k(f,u);if(!n.value[s])return;n.value[s].options=g;const v=n.value[s].value;if(!v)return;c(v,g)||(n.value[s].value=n.value[s].multiple?[]:"")}catch(k){console.error(`Error loading options for ${s}:`,k)}}return e.watch([r,l],()=>{Object.entries(t.value).forEach(([s,f])=>{(r.value[s]!==void 0||l.value[s]!==void 0)&&f.forEach(u=>{d(u)})})},{deep:!0,immediate:!0}),{registerDependency:a,updateOptions:d}}const le=e.defineComponent({__name:"vForm",props:{schema:{},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","clear","cancel"],setup(n,{expose:r,emit:l}){const t=n,o=l,a=e.ref(t.schema),{dynamicRefs:i,isFormValid:c,resetForm:p}=$(),{formData:d,computedData:s}=G(a),f=H(a,d,s);async function u(){await c()&&o("submit",d.value,s.value)}function m(){p(),o("clear")}function V(){p(),o("cancel")}return e.watch(d,async()=>{for(const[k,g]of Object.entries(a.value))U(g,d.value,s.value)||(g.value=t.schema[k].value)},{deep:!0,immediate:!0}),e.watch(()=>t.schema,k=>{for(const[g,v]of Object.entries(k))v.value!==void 0&&(a.value[g].value=v.value)},{deep:!0,immediate:!0}),r({resetForm:p,isFormValid:c,resolveData:()=>({formData:d.value,computedData:s.value})}),(k,g)=>(e.openBlock(),e.createBlock(e.unref(y.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(a.value),v=>{var B,_,E,O,F;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(U)(a.value[v],e.unref(d),e.unref(s))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:v,size:((B=a.value[v].grid)==null?void 0:B.xs)??"12","size-sm":(_=a.value[v].grid)==null?void 0:_.sm,"size-md":(E=a.value[v].grid)==null?void 0:E.md,"size-lg":(O=a.value[v].grid)==null?void 0:O.lg,"size-xl":(F=a.value[v].grid)==null?void 0:F.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value[v].type),{modelValue:a.value[v],"onUpdate:modelValue":w=>a.value[v]=w,schema:a.value,"dependency-manager":e.unref(f),"form-id":v,ref_for:!0,ref_key:"dynamicRefs",ref:i,"ref-key":v},null,8,["modelValue","onUpdate:modelValue","schema","dependency-manager","form-id","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:1}),k.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:k.buttonPlacement}])},{default:e.withCtx(()=>[k.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:V},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),k.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:m},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.customButtons,v=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:v.label,onClick:v.action,color:v.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(y.IonButton),{onClick:u},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))}});function ae(n){return{applyValidationState:async t=>{var o,a,i,c,p;(o=n.value)==null||o.$el.classList.remove("ion-invalid"),(a=n.value)==null||a.$el.classList.remove("ion-valid"),t?(i=n.value)==null||i.$el.classList.add("ion-valid"):(c=n.value)==null||c.$el.classList.add("ion-invalid"),(p=n.value)==null||p.$el.classList.add("ion-touched")},resetValidationState:()=>{var t,o;(t=n.value)==null||t.$el.classList.remove("ion-touched"),(o=n.value)==null||o.$el.classList.remove("ion-invalid")}}}function M(n,r,l,t,o){const{applyValidationState:a,resetValidationState:i}=ae(n);async function c(){if(r.value.required&&!l.value)return r.value.error="This field is required",!1;if(o){const u=await o(l.value);if(typeof u=="string")return r.value.error=u,!1;if(u===!1)return!1}if(r.value.validation){const u=await r.value.validation(l.value,t==null?void 0:t.value);if(u&&u.length)return r.value.error=u.join(),!1}return!0}async function p(){const u=await c();u&&(r.value.error="",r.value.value=l.value),await a(u)}function d(){i(),r.value.error=""}function s(u=""){l.value=u,r.value.error="",r.value.value=u}function f(){return r.value.error?[r.value.error]:[]}return{isValid:c,onValueUpdate:p,onFocus:d,onReset:s,getErrors:f,applyValidationState:a,resetValidationState:i}}function re(n){const r=e.computed(()=>!!n.value.label),l=e.computed(()=>!!n.value.required),t=e.computed(()=>n.value.label||"");return{showLabel:r,showRequired:l,labelText:t}}const z=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(n){const r=n,{showLabel:l,showRequired:t,labelText:o}=re(e.toRef(r,"model"));return(a,i)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"label",class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>i[0]||(i[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),A=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),i=e.computed(()=>l.schema),{isValid:c,onValueUpdate:p,onFocus:d,onReset:s,getErrors:f}=M(o,t,a,i),u=e.computed(()=>{if(t.value.pattern)return ne(t.value.pattern)});return e.watch(()=>t.value.value,m=>a.value=m),r({onValueUpdate:p,onReset:s,getErrors:f,isValid:c}),(m,V)=>{var g;const k=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.IonInput),{ref_key:"inputRef",ref:o,modelValue:a.value,"onUpdate:modelValue":V[0]||(V[0]=v=>a.value=v),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:m.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((g=u.value)==null?void 0:g.placeholder)??t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(d),onIonChange:e.unref(p),onIonBlur:e.unref(p)},{default:e.withCtx(()=>[e.createVNode(z,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),m.type==="password"?(e.openBlock(),e.createBlock(e.unref(y.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[k,u.value]])}}}),ue=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(A,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=i=>l.value=i),type:"text",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),se=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(A,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=i=>l.value=i),type:l.value.enableTime?"datetime-local":"date",schema:o.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(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(A,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=i=>l.value=i),type:"number",schema:o.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(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(A,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=i=>l.value=i),type:"email",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),de=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref(null);return r({onReset:()=>{var o;return(o=t.value)==null?void 0:o.onReset()},onValueUpdate:()=>{var o;return(o=t.value)==null?void 0:o.onValueUpdate()},getErrors:()=>{var o,a;return((a=(o=t.value)==null?void 0:o.getErrors)==null?void 0:a.call(o))??[]}}),(o,a)=>(e.openBlock(),e.createBlock(A,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=i=>l.value=i),type:"password",schema:o.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),fe=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,dependencyManager:Object,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(null),i=e.ref(!1),c=e.ref([]),p=e.ref(""),d=e.ref(1),s=e.computed(()=>t.value.interface??"popover"),f=e.computed(()=>t.value.optionsPlacement==="top"?"top":"bottom"),u=e.computed(()=>c.value.filter(h=>!!h.isChecked)),m=e.computed(()=>!p.value&&L(u.value)&&!i.value?t.value.placeholder??"Select an option":"");e.watch([p,()=>t.value.options],N,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,Z,{immediate:!0,deep:!0});function V(){c.value.forEach(h=>q(h,c.value)),t.value.error="",p.value="",d.value=1,t.value.value=t.value.multiple?[]:""}function k(h){if(h.isChecked)return q(h,c.value);t.value.multiple?I(h,c.value):(V(),I(h,c.value),w()),p.value=""}function g(){switch(s.value){case"action-sheet":v();break;case"alert":B();break;case"popover":default:i.value=!0;break}}async function v(){if(await N(),t.value.multiple){i.value=!0;return}await(await y.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...c.value.map(C=>({text:C.label,cssClass:C.isChecked?"selected-option":"",handler:()=>(k(C),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function B(){await N();const h=c.value.map(x=>({label:x.label,type:t.value.multiple?"checkbox":"radio",value:x,checked:x.isChecked}));await(await y.alertController.create({header:t.value.label||"Select an option",inputs:h,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:x=>{if(t.value.multiple)c.value.forEach(b=>q(b,c.value)),x.forEach(b=>{const R=c.value.find(J=>J.value===b.value);R&&I(R,c.value)});else{V();const b=c.value.find(R=>R.value===x.value);b&&I(b,c.value)}w()}}]})).present()}async function _(){if(t.value.required&&L(u.value))return"This field is required";if(t.value.validation){const h=await t.value.validation(u.value,l==null?void 0:l.schema);if(h&&h.length)return h.join()}return!0}const{onFocus:E,applyValidationState:O}=M(o,t,e.computed(()=>t.value.multiple?u.value:u.value[0]),e.computed(()=>l==null?void 0:l.schema),_);function F(h){var C;h.target===((C=o.value)==null?void 0:C.$el)&&(E(),s.value==="popover"&&(i.value=!0))}async function w(h){var x;if((x=h==null?void 0:h.relatedTarget)!=null&&x.closest(".suggestions-list"))return;i.value=!1;const C=await _();C===!0?(t.value.error="",t.value.value=t.value.multiple?u.value:u.value[0]):t.value.error=typeof C=="string"?C:"Validation failed",await O(C===!0)}async function N(){const h=[];if(l.dependencyManager&&l.formId&&t.value.dependsOn)l.dependencyManager.updateOptions(l.formId,p.value),Array.isArray(t.value.options)&&h.push(...t.value.options.filter(C=>!!C.label));else if(typeof t.value.options=="function"){const C=await t.value.options(p.value);h.push(...C.filter(x=>!!x.label))}else h.push(...oe(t.value.options??[],p.value));u.value.forEach(C=>I(C,h)),c.value=h}function Z(){const h=t.value.value;h&&(Array.isArray(h)?h.forEach(C=>I(C,c.value)):I(typeof h=="object"?h:{value:h,label:h},c.value))}return e.onMounted(()=>{if(l.dependencyManager&&l.formId&&t.value.dependsOn&&typeof l.dependencyManager.registerDependency=="function"){const h=Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn];l.dependencyManager.registerDependency(l.formId,h,async(C,x)=>{if(Array.isArray(t.value.options))return t.value.options;if(typeof t.value.options=="function")try{const b=C!==void 0?C:p.value,R=await t.value.options(b,x);return Array.isArray(R)?R:[]}catch(b){return console.error(`Error loading options for ${l.formId}:`,b),[]}return[]})}}),r({onValueUpdate:w,onReset:V,getErrors:()=>t.value.error?[t.value.error]:[]}),(h,C)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:w,ref_key:"containerRef",ref:a},[e.createVNode(e.unref(y.IonInput),{ref_key:"inputRef",ref:o,modelValue:p.value,"onUpdate:modelValue":C[0]||(C[0]=x=>p.value=x),fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:n.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:m.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:F,debounce:300,onClick:g},{default:e.withCtx(()=>[e.createVNode(z,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(x,b)=>(e.openBlock(),e.createBlock(e.unref(y.IonChip),{key:b},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var x;return[e.createTextVNode(e.toDisplayString(((x=u.value[0])==null?void 0:x.label)??""),1)]}),_:1})),e.createVNode(e.unref(y.IonIcon),{slot:"end",icon:e.unref(S.chevronDown)},null,8,["icon"]),u.value.length>0||p.value?(e.openBlock(),e.createBlock(e.unref(y.IonIcon),{key:2,slot:"end",icon:e.unref(S.close),onClick:V,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),i.value&&c.value.length>0&&s.value==="popover"?(e.openBlock(),e.createBlock(e.unref(y.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,x=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{button:"",key:x.label,onClick:b=>k(x)},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{key:0,slot:"start",checked:x.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),K=(n,r)=>{const l=n.__vccOpts||n;for(const[t,o]of r)l[t]=o;return l},pe=K(fe,[["__scopeId","data-v-439c5bca"]]),me=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),i=e.computed(()=>l.schema),{onValueUpdate:c,onFocus:p,onReset:d,getErrors:s}=M(o,t,a,i);return e.watch(()=>t.value.value,f=>a.value=f),r({onReset:d,onValueUpdate:c,getErrors:s}),(f,u)=>(e.openBlock(),e.createBlock(e.unref(y.IonTextarea),{ref_key:"inputRef",ref:o,modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=m=>a.value=m),"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(p),onIonChange:e.unref(c),onIonBlur:e.unref(c)},{default:e.withCtx(()=>[e.createVNode(z,{model:t.value},null,8,["model"])]),_:1},8,["modelValue","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),ve={class:"ion-margin-end",style:{"flex-grow":"1"}},he={style:{display:"flex","justify-content":"flex-end"}},ye=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=e.useModel(n,"modelValue"),t=e.ref([]),{dynamicRefs:o,resetForm:a,getFormErrors:i,updateFormValues:c}=$(),p=e.computed(()=>t.value.map((V,k)=>({label:`Set ${k+1}`,value:k,other:Object.entries(V).reduce((g,[v,B])=>(g[v]=B.value,g),{})})));e.watch(p,V=>{l.value.value=V},{deep:!0,immediate:!0}),e.onMounted(d);function d(){l.value.children&&t.value.push(D(l.value.children))}function s(V){t.value.splice(V,1)}function f(){a()}function u(){return i()}async function m(){await c()}return r({onValueUpdate:m,onReset:f,getErrors:u}),(V,k)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(g,v)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:v},[e.createElementVNode("div",ve,[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(g),B=>{var _,E,O,F,w;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(U)(g[B],V.data,V.computedData)?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:`${v}-${B}`,size:((_=g[B].grid)==null?void 0:_.xs)??"12","size-sm":(E=g[B].grid)==null?void 0:E.sm,"size-md":(O=g[B].grid)==null?void 0:O.md,"size-lg":(F=g[B].grid)==null?void 0:F.lg,"size-xl":(w=g[B].grid)==null?void 0:w.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(g[B].type),{modelValue:g[B],"onUpdate:modelValue":N=>g[B]=N,schema:g,"ref-key":`${v}-${B}`,ref_for:!0,ref_key:"dynamicRefs",ref:o},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",he,[v===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:d,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(S.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:B=>s(v),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(S.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),ge=K(ye,[["__scopeId","data-v-402695fe"]]),ke=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),i=e.computed(()=>l.schema),c=e.computed(()=>P(t.value)),{onValueUpdate:p,onFocus:d,getErrors:s}=M(o,t,a,i);function f(){a.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,u=>a.value=u),r({onValueUpdate:p,onReset:f,getErrors:s}),(u,m)=>(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=V=>a.value=V),ref_key:"inputRef",ref:o,required:t.value.required,"error-text":t.value.error,disabled:t.value.disabled,onIonFocus:e.unref(d),onIonChange:e.unref(p),onIonBlur:e.unref(p)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.value),1)]),_:1},8,["modelValue","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(n,{expose:r}){const l=n,t=e.useModel(n,"modelValue"),o=e.ref(null),a=e.ref(t.value.value),i=e.computed(()=>l.schema),c=e.ref([]),p=e.computed(()=>P(t.value)),{onValueUpdate:d,onFocus:s,getErrors:f}=M(o,t,a,i);function u(){t.value.error="",a.value=void 0,t.value.value=void 0}function m(k,g){return k.value===g.value}async function V(){typeof t.value.options=="function"?c.value=await t.value.options():c.value=t.value.options}return e.watch(()=>t.value.value,k=>a.value=k),r({onValueUpdate:d,onReset:u,getErrors:f}),e.onMounted(V),(k,g)=>(e.openBlock(),e.createBlock(e.unref(y.IonRadioGroup),{modelValue:a.value,"onUpdate:modelValue":g[0]||(g[0]=v=>a.value=v),ref_key:"inputRef",ref:o,required:t.value.required,"helper-text":p.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:m,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(s),onIonChange:e.unref(d),onIonBlur:e.unref(d)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,v=>(e.openBlock(),e.createBlock(e.unref(y.IonRadio),{key:v.value,value:v,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["modelValue","required","helper-text","error-text","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"]))}}),W={install(n){n.component("VForm",le),n.component("TextInput",ue),n.component("DateInput",se),n.component("NumberInput",ce),n.component("EmailInput",ie),n.component("PasswordInput",de),n.component("SelectInput",pe),n.component("TextAreaInput",me),n.component("RepeatInput",ge),n.component("CheckboxInput",ke),n.component("RadioInput",Ve),n.directive("maskito",Q.maskito)}};exports.VForm=W;exports.default=W;exports.useDataTransformation=G;exports.useDependentOptions=H;exports.useFormValidation=$;exports.useInputValidation=M;
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),y=require("@ionic/vue"),q=require("ionicons/icons"),oe=require("@maskito/vue");function ne(o){return new Promise(r=>{requestAnimationFrame(async()=>{const a=await o.getInputElement();r(a)})})}const le={d:/\d/,a:/[A-Za-z]/,"*":/[A-Za-z0-9]/},ae={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 re(o,r){const a=ae[o];return a[r%a.length]}function ue(o){const r=[];let a="",t=0,n=0;for(;t<o.length;){const u=o[t];if(["d","a","*"].includes(u)){let i=1;if(o[t+1]==="{"){const s=o.indexOf("}",t+2);if(s!==-1){const g=o.slice(t+2,s);if(g.includes(",")){const[,p]=g.split(",").map(d=>parseInt(d.trim()));i=p||parseInt(g.split(",")[0])}else i=parseInt(g);t=s}}else{let s=t+1;for(;o[s]===u;)i++,s++;t=s-1}for(let s=0;s<i;s++)r.push(le[u]),a+=re(u,n++)}else r.push(u),a+=u;t++}return{mask:r,placeholder:a,elementPredicate:ne}}function H(o){return o==null||Array.isArray(o)&&!o.length||typeof o=="object"&&!Object.keys(o).length||!o}function U(o,r,a){return typeof o.condition=="function"?o.condition(r,a):!0}function K(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return o.map(a=>K(a));const r={};return Object.entries(o).forEach(([a,t])=>{typeof t=="function"?r[a]=t.bind(r):r[a]=K(t)}),r}function Q(o,r){return r.findIndex(a=>a.value===o.value||a.label===o.label||a.value===o.label||a.label===o.value)}function T(o,r){const a=Q(o,r);a>=0?r[a].isChecked=!0:r.push({...o,isChecked:!0})}function J(o,r){const a=Q(o,r);a>=0&&(r[a].isChecked=!1)}function se(o){o.forEach(r=>{r.isChecked=!1})}function ie(o,r){return r?o.filter(a=>JSON.stringify(a).toLowerCase().includes(r.toLowerCase())):o}function X(o){const r=o.label||"",a=o.required?" *":"";return r+a}function $(o,r){if(o===r)return!0;if(o==null||r==null||typeof o!=typeof r)return!1;if(typeof o!="object")return o===r;if(Array.isArray(o)&&Array.isArray(r))return o.length!==r.length?!1:o.every((n,u)=>$(n,r[u]));if(Array.isArray(o)!==Array.isArray(r))return!1;const a=Object.keys(o),t=Object.keys(r);return a.length!==t.length?!1:a.every(n=>Object.prototype.hasOwnProperty.call(r,n)&&$(o[n],r[n]))}function W(){const o=e.ref([]);async function r(){console.debug("Validating form inputs");const u=[];for(const i of o.value)if(typeof(i==null?void 0:i.onValueUpdate)=="function"&&await i.onValueUpdate(),typeof(i==null?void 0:i.getErrors)=="function")try{const s=i.getErrors();Array.isArray(s)?u.push(...s):console.warn("getErrors() returned non-array value:",s)}catch(s){console.error("Error calling getErrors on component:",s,i)}else console.warn("Component does not have getErrors function:",i);return u.every(H)}function a(){o.value.forEach(u=>{typeof(u==null?void 0:u.onReset)=="function"&&u.onReset()})}function t(){const u=[];for(const i of o.value)if(typeof(i==null?void 0:i.getErrors)=="function")try{const s=i.getErrors();Array.isArray(s)?u.push(...s):u.push(String(s))}catch(s){console.error("Error calling getErrors on component:",s,i)}return u}async function n(){for(const u of o.value)typeof(u==null?void 0:u.onValueUpdate)=="function"&&await u.onValueUpdate()}return{dynamicRefs:o,isFormValid:r,resetForm:a,getFormErrors:t,updateFormValues:n}}function Y(o){const r=e.computed(()=>Object.entries(o.value).reduce((p,[d,f])=>(f.value!==void 0&&(typeof f.onChange=="function"?p[d]=f.onChange(f.value,o.value):p[d]=f.value),p),{})),a=e.ref({}),t=(p,d,f)=>{var c;return typeof((c=o.value[p].children[d])==null?void 0:c.computedValue)=="function"?o.value[p].children[d].computedValue(f,o.value):f},n=(p,d,f,c)=>{a.value[p][c]||(a.value[p][c]={}),Object.entries(d.other??{}).forEach(([m,k])=>{var B;!$(k,(B=f.other)==null?void 0:B[m])&&(a.value[p][c][m]=t(p,m,k))})},u=(p,d,f)=>{d.forEach((c,m)=>{const k=f[m]??{other:{}};n(p,c,k,m)})},i=(p,{other:d})=>Object.entries(d??{}).reduce((f,[c,m])=>(f[c]=t(p,c,m),f),{}),s=(p,d,f)=>{a.value[p]||(a.value[p]=[]);const c=d;Array.isArray(f[p])?u(p,c,f[p]):a.value[p]=c.map(m=>i(p,m))},g=(p,d,f)=>{if(!d){delete a.value[p];return}const c=o.value[p];c.children!==void 0?s(p,d,f):typeof c.computedValue=="function"&&(a.value[p]=c.computedValue(d,o.value))};return e.watch(r,(p,d={})=>{Object.keys(p).forEach(f=>{$(p[f],d[f])||g(f,p[f],d)}),Object.keys(d).forEach(f=>{!(f in p)&&f in a.value&&delete a.value[f]})},{immediate:!0,deep:!0}),{formData:r,computedData:a}}function ee(o){const r=e.ref(0),a=e.ref({}),t=e.ref({}),n=e.ref({});function u(C){const l={};return Object.entries(C.schema).forEach(([v,V])=>{l[v]=V.value}),l}o.steps.forEach(C=>{a.value[C.id]=u(C),t.value[C.id]={},n.value[C.id]=[]});const i=e.computed(()=>o.steps[r.value]),s=e.computed(()=>r.value===0),g=e.computed(()=>r.value===o.steps.length-1),p=e.computed(()=>!g.value),d=e.computed(()=>!s.value),f=e.computed(()=>o.steps.length),c=e.computed(()=>f.value===0?0:Math.round((r.value+1)/f.value*100)),m=e.computed(()=>{const C={};return Object.values(a.value).forEach(l=>{Object.assign(C,l)}),C}),k=e.computed(()=>{const C={};return Object.values(t.value).forEach(l=>{Object.assign(C,l)}),C});function w(C,l){a.value[C]={...a.value[C],...l}}function B(C,l){t.value[C]={...t.value[C],...l}}function S(C){const l=o.steps.find(v=>v.id===C);l&&(a.value[C]=u(l),t.value[C]={})}async function b(){const C=i.value;if(!C)return!0;const l=[];if(C.validation){const v=await C.validation(a.value[C.id],t.value[C.id]);v&&l.push(...v)}return n.value[C.id]=l,l.length===0}async function x(C){return C<0||C>=o.steps.length||C>r.value&&!await b()?!1:(r.value=C,!0)}async function O(){return p.value?x(r.value+1):!1}async function F(){return d.value?x(r.value-1):!1}function D(){r.value=0,n.value={},o.steps.forEach(C=>{S(C.id),n.value[C.id]=[]})}async function E(){let C=!0;for(const l of o.steps)if(l.validation){const v=await l.validation(a.value[l.id],t.value[l.id]);n.value[l.id]=v||[],v&&v.length>0&&(C=!1)}return C}function N(){return{steps:{...a.value},computedSteps:{...t.value},allFormData:m.value,allComputedData:k.value}}return{currentStepIndex:r,currentStep:i,stepData:a,stepComputedData:t,stepValidationErrors:n,isFirstStep:s,isLastStep:g,canGoNext:p,canGoPrevious:d,totalSteps:f,progressPercentage:c,allFormData:m,allComputedData:k,updateStepData:w,updateStepComputedData:B,clearStepData:S,validateCurrentStep:b,goToStep:x,nextStep:O,previousStep:F,resetForm:D,validateAllSteps:E,getMultiStepFormData:N}}const ce={class:"step-indicator__container"},de=["onClick"],pe={class:"step-indicator__step-content"},fe={class:"step-indicator__step-marker"},me={class:"step-indicator__step-info"},ve={class:"step-indicator__step-title"},he={key:0,class:"step-indicator__step-subtitle"},ge={key:0,class:"step-indicator__progress"},ke={class:"step-indicator__progress-bar"},ye={class:"step-indicator__progress-text"},Ce=e.defineComponent({__name:"StepIndicator",props:{steps:{},activeStepIndex:{},position:{},showProgress:{type:Boolean,default:!0},allowNavigation:{type:Boolean,default:!1}},emits:["step-click"],setup(o,{emit:r}){const a=o,t=r,n=e.computed(()=>a.steps.length===0?0:(a.activeStepIndex+1)/a.steps.length*100);function u(i){a.allowNavigation&&t("step-click",i)}return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["step-indicator",[`step-indicator--${i.position}`,{"step-indicator--clickable":i.allowNavigation}]])},[e.createElementVNode("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.steps,(g,p)=>(e.openBlock(),e.createElementBlock("div",{key:g.id,class:e.normalizeClass(["step-indicator__step",{"step-indicator__step--active":p===i.activeStepIndex,"step-indicator__step--completed":p<i.activeStepIndex,"step-indicator__step--clickable":i.allowNavigation}]),onClick:d=>u(p)},[e.createElementVNode("div",pe,[e.createElementVNode("div",fe,[e.createElementVNode("span",null,e.toDisplayString(p+1),1)]),e.createElementVNode("div",me,[e.createElementVNode("div",ve,e.toDisplayString(g.title),1),g.subtitle?(e.openBlock(),e.createElementBlock("div",he,e.toDisplayString(g.subtitle),1)):e.createCommentVNode("",!0)])]),p<i.steps.length-1?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["step-indicator__connector",{"step-indicator__connector--completed":p<i.activeStepIndex}])},null,2)):e.createCommentVNode("",!0)],10,de))),128))]),i.showProgress&&(i.position==="top"||i.position==="bottom")?(e.openBlock(),e.createElementBlock("div",ge,[e.createElementVNode("div",ke,[e.createElementVNode("div",{class:"step-indicator__progress-fill",style:e.normalizeStyle({width:`${n.value}%`})},null,4)]),e.createElementVNode("div",ye," Step "+e.toDisplayString(i.activeStepIndex+1)+" of "+e.toDisplayString(i.steps.length),1)])):e.createCommentVNode("",!0)],2))}}),j=(o,r)=>{const a=o.__vccOpts||o;for(const[t,n]of r)a[t]=n;return a},L=j(Ce,[["__scopeId","data-v-aca1a6d0"]]),Ve={class:"v-form-container"},Be={key:0,class:"multi-step-form"},we={class:"multi-step-form-content"},Se={class:"step-nav-buttons"},be={class:"step-action-buttons"},_e={class:"step-nav-buttons"},xe={key:1,class:"step-progress-bottom"},Ee={class:"step-progress-bar"},Ne={class:"step-progress-text"},Ie=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:r,emit:a}){const t=o,n=a,u=e.computed(()=>!!t.multiStepConfig),i=e.ref(t.schema||{}),s=t.multiStepConfig?ee(t.multiStepConfig):null,{dynamicRefs:g,isFormValid:p,resetForm:d}=W(),{formData:f,computedData:c}=Y(i),m=e.computed(()=>(s==null?void 0:s.currentStepIndex.value)??0),k=e.computed(()=>s==null?void 0:s.currentStep.value),w=e.computed(()=>(s==null?void 0:s.isLastStep.value)??!0),B=e.computed(()=>(s==null?void 0:s.canGoNext.value)??!1),S=e.computed(()=>(s==null?void 0:s.canGoPrevious.value)??!1),b=e.computed(()=>!u.value||!s?0:s.progressPercentage.value);e.watch(()=>k.value,l=>{l&&u.value&&(i.value=l.schema)},{immediate:!0}),e.watch([f,c],([l,v])=>{u.value&&s&&k.value&&(s.updateStepData(k.value.id,l),s.updateStepComputedData(k.value.id,v))},{deep:!0}),e.watch(()=>t.schema,l=>{if(!u.value&&l){i.value=l;for(const[v,V]of Object.entries(l))V.value!==void 0&&(i.value[v].value=V.value)}},{deep:!0,immediate:!0});async function x(){if(u.value&&s){if(!await s.validateAllSteps())return;const v=s.getMultiStepFormData();n("multi-step-submit",v)}else{if(!await p())return;n("submit",f.value,c.value)}}function O(){u.value&&s?s.resetForm():d(),n("clear")}function F(){u.value&&s&&k.value&&s.clearStepData(k.value.id)}function D(){u.value&&s?s.resetForm():d(),n("cancel")}async function E(){if(s){if(!await p())return;await s.nextStep()&&k.value&&n("step-change",m.value,k.value.id)}}async function N(){s&&await s.previousStep()&&k.value&&n("step-change",m.value,k.value.id)}async function C(l){if(s){if(l>m.value&&!await p())return;await s.goToStep(l)&&k.value&&n("step-change",l,k.value.id)}}return e.watch(f,async()=>{var l;for(const[v,V]of Object.entries(i.value))if(!U(V,f.value,c.value)){const h=u.value&&k.value?k.value.schema[v]:(l=t.schema)==null?void 0:l[v];h&&(V.value=h.value)}},{deep:!0,immediate:!0}),r({resetForm:O,isFormValid:p,resolveData:()=>u.value&&s?s.getMultiStepFormData():{formData:f.value,computedData:c.value},nextStep:E,previousStep:N,goToStep:C,getCurrentStep:()=>k.value,getCurrentStepIndex:()=>m.value}),(l,v)=>{var V;return e.openBlock(),e.createElementBlock("div",Ve,[u.value?(e.openBlock(),e.createElementBlock("div",Be,[l.multiStepConfig&&l.multiStepConfig.stepPosition==="top"?(e.openBlock(),e.createBlock(L,{key:0,steps:l.multiStepConfig.steps,"active-step-index":m.value,position:l.multiStepConfig.stepPosition||"top","show-progress":l.multiStepConfig.showProgress,"allow-navigation":l.multiStepConfig.allowStepNavigation,onStepClick:C},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--${((V=l.multiStepConfig)==null?void 0:V.stepPosition)||"top"}`])},[l.multiStepConfig&&l.multiStepConfig.stepPosition==="left"?(e.openBlock(),e.createBlock(L,{key:0,steps:l.multiStepConfig.steps,"active-step-index":m.value,position:l.multiStepConfig.stepPosition??"top","show-progress":l.multiStepConfig.showProgress,"allow-navigation":l.multiStepConfig.allowStepNavigation,onStepClick:C,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0),e.createElementVNode("div",we,[e.createVNode(e.unref(y.IonGrid),null,{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(i.value),h=>{var _,I,R,M,z;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(U)(i.value[h],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:h,size:((_=i.value[h].grid)==null?void 0:_.xs)??"12","size-sm":(I=i.value[h].grid)==null?void 0:I.sm,"size-md":(R=i.value[h].grid)==null?void 0:R.md,"size-lg":(M=i.value[h].grid)==null?void 0:M.lg,"size-xl":(z=i.value[h].grid)==null?void 0:z.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value[h].type),{modelValue:i.value[h],"onUpdate:modelValue":G=>i.value[h]=G,schema:i.value,"form-id":h,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":h},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)}),256))]),_:1})]),_:1}),l.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.IonRow),{key:0,class:"multi-step-buttons"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",class:"button-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Se,[S.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:N,fill:"outline"},{default:e.withCtx(()=>v[0]||(v[0]=[e.createTextVNode(" Previous ")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),e.createElementVNode("div",be,[l.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D,fill:"outline"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),l.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:F,fill:"outline"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.customButtons,h=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:h.label,onClick:h.action,color:h.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1032,["onClick","color"]))),128))]),e.createElementVNode("div",_e,[B.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:E},{default:e.withCtx(()=>v[1]||(v[1]=[e.createTextVNode(" Next ")])),_:1,__:[1]})):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:x},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.submitButtonText??"Submit"),1)]),_:1})):e.createCommentVNode("",!0)])]),_:1})]),_:1})),l.multiStepConfig&&(l.multiStepConfig.stepPosition==="left"||l.multiStepConfig.stepPosition==="right")&&l.multiStepConfig.showProgress?(e.openBlock(),e.createElementBlock("div",xe,[e.createElementVNode("div",Ee,[e.createElementVNode("div",{class:"step-progress-fill",style:e.normalizeStyle({width:`${b.value}%`})},null,4)]),e.createElementVNode("div",Ne," Step "+e.toDisplayString(m.value+1)+" of "+e.toDisplayString(l.multiStepConfig.steps.length),1)])):e.createCommentVNode("",!0)]),l.multiStepConfig&&l.multiStepConfig.stepPosition==="right"?(e.openBlock(),e.createBlock(L,{key:1,steps:l.multiStepConfig.steps,"active-step-index":m.value,position:l.multiStepConfig.stepPosition,"show-progress":l.multiStepConfig.showProgress,"allow-navigation":l.multiStepConfig.allowStepNavigation,onStepClick:C,class:"multi-step-sidebar"},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)],2),l.multiStepConfig&&l.multiStepConfig.stepPosition==="bottom"?(e.openBlock(),e.createBlock(L,{key:1,steps:l.multiStepConfig.steps,"active-step-index":m.value,position:l.multiStepConfig.stepPosition,"show-progress":l.multiStepConfig.showProgress,"allow-navigation":l.multiStepConfig.allowStepNavigation,onStepClick:C},null,8,["steps","active-step-index","position","show-progress","allow-navigation"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createBlock(e.unref(y.IonGrid),{key:1},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(i.value),h=>{var _,I,R,M,z;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(U)(i.value[h],e.unref(f),e.unref(c))?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:h,size:((_=i.value[h].grid)==null?void 0:_.xs)??"12","size-sm":(I=i.value[h].grid)==null?void 0:I.sm,"size-md":(R=i.value[h].grid)==null?void 0:R.md,"size-lg":(M=i.value[h].grid)==null?void 0:M.lg,"size-xl":(z=i.value[h].grid)==null?void 0:z.xl,class:"ion-margin-vertical"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value[h].type),{modelValue:i.value[h],"onUpdate:modelValue":G=>i.value[h]=G,schema:i.value,"form-id":h,ref_for:!0,ref_key:"dynamicRefs",ref:g,"ref-key":h},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)}),256))]),_:1}),l.hideButtons?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(y.IonRow),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonCol),{size:"12",style:e.normalizeStyle([{display:"flex"},{justifyContent:l.buttonPlacement}])},{default:e.withCtx(()=>[l.showCancelButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:D},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.cancelButtonText??"Cancel"),1)]),_:1})):e.createCommentVNode("",!0),l.showClearButton?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:O},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.clearButtonText??"Reset"),1)]),_:1})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.customButtons,h=>(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:h.label,onClick:h.action,color:h.color??"primary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.label),1)]),_:2},1032,["onClick","color"]))),128)),e.createVNode(e.unref(y.IonButton),{onClick:x},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.submitButtonText??"Submit"),1)]),_:1})]),_:1},8,["style"])]),_:1}))]),_:1}))])}}}),Oe=j(Ie,[["__scopeId","data-v-3850cccc"]]);function De(o){return{applyValidationState:async t=>{var n,u,i,s,g;(n=o.value)==null||n.$el.classList.remove("ion-invalid"),(u=o.value)==null||u.$el.classList.remove("ion-valid"),t?(i=o.value)==null||i.$el.classList.add("ion-valid"):(s=o.value)==null||s.$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 A(o,r,a,t,n){const{applyValidationState:u,resetValidationState:i}=De(o);async function s(){if(r.value.required&&!a.value)return r.value.error="This field is required",!1;if(n){const c=await n(a.value);if(typeof c=="string")return r.value.error=c,!1;if(c===!1)return!1}if(r.value.validation){const c=await r.value.validation(a.value,t==null?void 0:t.value);if(c&&c.length)return r.value.error=c.join(),!1}return!0}async function g(){const c=await s();c&&(r.value.error="",r.value.value=a.value),await u(c)}function p(){i(),r.value.error=""}function d(c=""){a.value=c,r.value.error="",r.value.value=c}function f(){return r.value.error?[r.value.error]:[]}return{isValid:s,onValueUpdate:g,onFocus:p,onReset:d,getErrors:f,applyValidationState:u,resetValidationState:i}}function Fe(o){const r=e.computed(()=>!!o.value.label),a=e.computed(()=>!!o.value.required),t=e.computed(()=>o.value.label||"");return{showLabel:r,showRequired:a,labelText:t}}const Z=e.defineComponent({__name:"InputLabel",props:{model:{}},setup(o){const r=o,{showLabel:a,showRequired:t,labelText:n}=Fe(e.toRef(r,"model"));return(u,i)=>e.unref(a)?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"label",class:"input-label"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(n))+" ",1),e.unref(t)?(e.openBlock(),e.createBlock(e.unref(y.IonText),{key:0,color:"danger"},{default:e.withCtx(()=>i[0]||(i[0]=[e.createTextVNode("*")])),_:1,__:[0]})):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)}}),P=e.defineComponent({__name:"BaseInput",props:e.mergeModels({schema:{},type:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=o,t=e.useModel(o,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),i=e.computed(()=>a.schema),{isValid:s,onValueUpdate:g,onFocus:p,onReset:d,getErrors:f}=A(n,t,u,i),c=e.computed(()=>{if(t.value.pattern)return ue(t.value.pattern)});return e.watch(()=>t.value.value,m=>u.value=m),r({onValueUpdate:g,onReset:d,getErrors:f,isValid:s}),(m,k)=>{var B;const w=e.resolveDirective("maskito");return e.withDirectives((e.openBlock(),e.createBlock(e.unref(y.IonInput),{ref_key:"inputRef",ref:n,modelValue:u.value,"onUpdate:modelValue":k[0]||(k[0]=S=>u.value=S),"clear-input":!0,fill:t.value.fill??"solid","label-placement":t.value.labelPlacement??"stacked",type:m.type??"text",required:t.value.required,"error-text":t.value.error,autofocus:t.value.autoFocus,placeholder:((B=c.value)==null?void 0:B.placeholder)??t.value.placeholder,disabled:t.value.disabled,counter:t.value.counter,min:t.value.min,max:t.value.max,"max-length":t.value.maxLength,"min-length":t.value.minLength,pattern:t.value.pattern,onIonFocus:e.unref(p),onIonChange:e.unref(g),onIonBlur:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(Z,{model:t.value},null,8,["model"]),t.value.prefix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,slot:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.prefix),1)]),_:1})):e.createCommentVNode("",!0),t.value.suffix?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"end"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.value.suffix),1)]),_:1})):e.createCommentVNode("",!0),m.type==="password"?(e.openBlock(),e.createBlock(e.unref(y.IonInputPasswordToggle),{key:2,slot:"end"})):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter","min","max","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"])),[[w,c.value]])}}}),Re=e.defineComponent({__name:"TextInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"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(P,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),type:"text",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Te=e.defineComponent({__name:"DateInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"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(P,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),type:a.value.enableTime?"datetime-local":"date",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","type","schema"]))}}),Ae=e.defineComponent({__name:"NumberInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"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(P,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),type:"number",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),Me=e.defineComponent({__name:"EmailInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"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(P,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),type:"email",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),ze=e.defineComponent({__name:"PasswordInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"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(P,{modelValue:a.value,"onUpdate:modelValue":u[0]||(u[0]=i=>a.value=i),type:"password",schema:n.schema,ref_key:"inputRef",ref:t},null,8,["modelValue","schema"]))}}),$e=e.defineComponent({__name:"SelectInput",props:e.mergeModels({schema:Object,type:String,formId:String},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=o,t=e.useModel(o,"modelValue"),n=e.ref(null),u=e.ref(null),i=e.ref(!1),s=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"),c=e.computed(()=>s.value.filter(l=>!!l.isChecked)),m=e.computed(()=>!g.value&&H(c.value)&&!i.value?t.value.placeholder??"Select an option":"");e.watch([g,()=>t.value.options],N,{immediate:!0,deep:!0}),e.watch(()=>t.value.value,C,{immediate:!0,deep:!0}),e.watch(()=>!t.value.dependsOn||!a.schema?null:(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).map(v=>{var V;return(V=a.schema[v])==null?void 0:V.value}),async(l,v)=>{l&&v&&!$(l,v)&&(k(),s.value=[],await N())},{deep:!0});function k(){t.value.error="",g.value="",p.value=1,t.value.value=t.value.multiple?[]:"",se(s.value)}function w(l){if(l.isChecked)return J(l,s.value);t.value.multiple?T(l,s.value):(k(),T(l,s.value),E()),g.value=""}function B(){switch(d.value){case"action-sheet":S();break;case"alert":b();break;case"popover":default:i.value=!0;break}}async function S(){if(await N(),t.value.multiple){i.value=!0;return}await(await y.actionSheetController.create({header:t.value.label||"Select an option",buttons:[...s.value.map(v=>({text:v.label,cssClass:v.isChecked?"selected-option":"",handler:()=>(w(v),!1)})),{text:"Cancel",role:"cancel"}]})).present()}async function b(){await N();const l=s.value.map(V=>({label:V.label,type:t.value.multiple?"checkbox":"radio",value:V,checked:V.isChecked}));await(await y.alertController.create({header:t.value.label||"Select an option",inputs:l,buttons:[{text:"Cancel",role:"cancel"},{text:"OK",handler:V=>{if(t.value.multiple)s.value.forEach(h=>J(h,s.value)),V.forEach(h=>{const _=s.value.find(I=>I.value===h.value);_&&T(_,s.value)});else{k();const h=s.value.find(_=>_.value===V.value);h&&T(h,s.value)}E()}}]})).present()}async function x(){if(t.value.required&&H(c.value))return"This field is required";if(t.value.validation){const l=await t.value.validation(c.value,a==null?void 0:a.schema);if(l&&l.length)return l.join()}return!0}const{onFocus:O,applyValidationState:F}=A(n,t,e.computed(()=>t.value.multiple?c.value:c.value[0]),e.computed(()=>a==null?void 0:a.schema),x);function D(l){var v;l.target===((v=n.value)==null?void 0:v.$el)&&(O(),d.value==="popover"&&(i.value=!0))}async function E(l){var V;if((V=l==null?void 0:l.relatedTarget)!=null&&V.closest(".suggestions-list"))return;i.value=!1;const v=await x();v===!0?(t.value.error="",t.value.value=t.value.multiple?c.value:c.value[0]):t.value.error=typeof v=="string"?v:"Validation failed",await F(v===!0)}async function N(){const l=[];if(typeof t.value.options=="function"){let v={};t.value.dependsOn&&a.schema&&(v=(Array.isArray(t.value.dependsOn)?t.value.dependsOn:[t.value.dependsOn]).reduce((_,I)=>{var R;return _[I]=(R=a.schema[I])==null?void 0:R.value,_},{}));const V=await t.value.options(g.value,v);l.push(...V.filter(h=>!!h.label))}else Array.isArray(t.value.options)&&l.push(...ie(t.value.options,g.value));c.value.forEach(v=>T(v,l)),s.value=l}function C(){const l=t.value.value;l&&(Array.isArray(l)?l.forEach(v=>T(v,s.value)):T(typeof l=="object"?l:{value:l,label:l},s.value))}return e.onMounted(()=>{N()}),r({onValueUpdate:E,onReset:k,getErrors:()=>t.value.error?[t.value.error]:[]}),(l,v)=>(e.openBlock(),e.createElementBlock("div",{class:"autocomplete-container",onFocusout:E,ref_key:"containerRef",ref:u},[e.createVNode(e.unref(y.IonInput),{ref_key:"inputRef",ref:n,modelValue:g.value,"onUpdate:modelValue":v[0]||(v[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:m.value,disabled:t.value.disabled,counter:t.value.counter,onIonFocus:D,debounce:300,onClick:B},{default:e.withCtx(()=>[e.createVNode(Z,{model:t.value},null,8,["model"]),t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:0,style:{width:"fit-content"},slot:"start"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(V,h)=>(e.openBlock(),e.createBlock(e.unref(y.IonChip),{key:h},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.IonLabel),{key:1,slot:"start",class:"ion-no-wrap"},{default:e.withCtx(()=>{var V;return[e.createTextVNode(e.toDisplayString(((V=c.value[0])==null?void 0:V.label)??""),1)]}),_:1})),e.createVNode(e.unref(y.IonIcon),{slot:"end",icon:e.unref(q.chevronDown)},null,8,["icon"]),c.value.length>0||g.value?(e.openBlock(),e.createBlock(e.unref(y.IonIcon),{key:2,slot:"end",icon:e.unref(q.close),onClick:k,style:{"z-index":"999999"}},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","fill","label-placement","type","required","error-text","autofocus","placeholder","disabled","counter"]),i.value&&s.value.length>0&&d.value==="popover"?(e.openBlock(),e.createBlock(e.unref(y.IonList),{key:0,class:e.normalizeClass(["suggestions-list",f.value])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,V=>(e.openBlock(),e.createBlock(e.unref(y.IonItem),{button:"",key:V.label,onClick:h=>w(V)},{default:e.withCtx(()=>[t.value.multiple?(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{key:0,slot:"start",checked:V.isChecked},null,8,["checked"])):e.createCommentVNode("",!0),e.createVNode(e.unref(y.IonLabel),null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.label),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1},8,["class"])):e.createCommentVNode("",!0)],544))}}),Pe=j($e,[["__scopeId","data-v-4766dec2"]]),Le=e.defineComponent({__name:"TextAreaInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=o,t=e.useModel(o,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),i=e.computed(()=>a.schema),{onValueUpdate:s,onFocus:g,onReset:p,getErrors:d}=A(n,t,u,i);return e.watch(()=>t.value.value,f=>u.value=f),r({onReset:p,onValueUpdate:s,getErrors:d}),(f,c)=>(e.openBlock(),e.createBlock(e.unref(y.IonTextarea),{ref_key:"inputRef",ref:n,modelValue:u.value,"onUpdate:modelValue":c[0]||(c[0]=m=>u.value=m),"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(s),onIonBlur:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(Z,{model:t.value},null,8,["model"])]),_:1},8,["modelValue","fill","label-placement","required","error-text","autofocus","placeholder","disabled","counter","min","max","rows","cols","auto-grow","max-length","min-length","pattern","onIonFocus","onIonChange","onIonBlur"]))}}),Ue={class:"ion-margin-end",style:{"flex-grow":"1"}},qe={style:{display:"flex","justify-content":"flex-end"}},je=e.defineComponent({__name:"RepeatInput",props:e.mergeModels({schema:{},data:{},computedData:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=e.useModel(o,"modelValue"),t=e.ref([]),{dynamicRefs:n,resetForm:u,getFormErrors:i,updateFormValues:s}=W(),g=e.computed(()=>t.value.map((k,w)=>({label:`Set ${w+1}`,value:w,other:Object.entries(k).reduce((B,[S,b])=>(B[S]=b.value,B),{})})));e.watch(g,k=>{a.value.value=k},{deep:!0,immediate:!0}),e.onMounted(p);function p(){a.value.children&&t.value.push(K(a.value.children))}function d(k){t.value.splice(k,1)}function f(){u()}function c(){return i()}async function m(){await s()}return r({onValueUpdate:m,onReset:f,getErrors:c}),(k,w)=>(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(B,S)=>(e.openBlock(),e.createElementBlock("div",{class:"repeat-input-wrapper",key:S},[e.createElementVNode("div",Ue,[e.createVNode(e.unref(y.IonRow),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Object.keys(B),b=>{var x,O,F,D,E;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(U)(B[b],k.data,k.computedData)?(e.openBlock(),e.createBlock(e.unref(y.IonCol),{key:`${S}-${b}`,size:((x=B[b].grid)==null?void 0:x.xs)??"12","size-sm":(O=B[b].grid)==null?void 0:O.sm,"size-md":(F=B[b].grid)==null?void 0:F.md,"size-lg":(D=B[b].grid)==null?void 0:D.lg,"size-xl":(E=B[b].grid)==null?void 0:E.xl,class:"ion-margin-bottom"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B[b].type),{modelValue:B[b],"onUpdate:modelValue":N=>B[b]=N,schema:B,"ref-key":`${S}-${b}`,ref_for:!0,ref_key:"dynamicRefs",ref:n},null,8,["modelValue","onUpdate:modelValue","schema","ref-key"]))]),_:2},1032,["size","size-sm","size-md","size-lg","size-xl"])):e.createCommentVNode("",!0)],64)}),256))]),_:2},1024)]),e.createElementVNode("div",qe,[S===t.value.length-1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:0,onClick:p,color:"primary"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(q.add)},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.value.length>1?(e.openBlock(),e.createBlock(e.unref(y.IonButton),{key:1,onClick:b=>d(S),color:"warning"},{default:e.withCtx(()=>[e.createVNode(e.unref(y.IonIcon),{slot:"icon-only",icon:e.unref(q.remove)},null,8,["icon"])]),_:2},1032,["onClick"])):e.createCommentVNode("",!0)])]))),128))}}),Ge=j(je,[["__scopeId","data-v-060bdf58"]]),He=e.defineComponent({__name:"CheckboxInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=o,t=e.useModel(o,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),i=e.computed(()=>a.schema),s=e.computed(()=>X(t.value)),{onValueUpdate:g,onFocus:p,getErrors:d}=A(n,t,u,i);function f(){u.value=!1,t.value.error="",t.value.value=!1}return e.watch(()=>t.value.value,c=>u.value=c),r({onValueUpdate:g,onReset:f,getErrors:d}),(c,m)=>(e.openBlock(),e.createBlock(e.unref(y.IonCheckbox),{modelValue:u.value,"onUpdate:modelValue":m[0]||(m[0]=k=>u.value=k),ref_key:"inputRef",ref:n,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)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value),1)]),_:1},8,["modelValue","required","error-text","disabled","onIonFocus","onIonChange","onIonBlur"]))}}),Ke=e.defineComponent({__name:"RadioInput",props:e.mergeModels({schema:{}},{modelValue:{type:Object,default:{}},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:r}){const a=o,t=e.useModel(o,"modelValue"),n=e.ref(null),u=e.ref(t.value.value),i=e.computed(()=>a.schema),s=e.ref([]),g=e.computed(()=>X(t.value)),{onValueUpdate:p,onFocus:d,getErrors:f}=A(n,t,u,i);function c(){t.value.error="",u.value=void 0,t.value.value=void 0}function m(w,B){return w.value===B.value}async function k(){typeof t.value.options=="function"?s.value=await t.value.options():s.value=t.value.options}return e.watch(()=>t.value.value,w=>u.value=w),r({onValueUpdate:p,onReset:c,getErrors:f}),e.onMounted(k),(w,B)=>(e.openBlock(),e.createBlock(e.unref(y.IonRadioGroup),{modelValue:u.value,"onUpdate:modelValue":B[0]||(B[0]=S=>u.value=S),ref_key:"inputRef",ref:n,required:t.value.required,"helper-text":g.value,"error-text":t.value.error,disabled:t.value.disabled,compareWith:m,"allow-empty-selection":!t.value.required,onIonFocus:e.unref(d),onIonChange:e.unref(p),onIonBlur:e.unref(p)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,S=>(e.openBlock(),e.createBlock(e.unref(y.IonRadio),{key:S.value,value:S,disabled:t.value.disabled,"label-placement":"end",justify:"start"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.label),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["modelValue","required","helper-text","error-text","disabled","allow-empty-selection","onIonFocus","onIonChange","onIonBlur"]))}});function We(o,r,a){const t=e.ref({}),n=e.ref({});function u(d,f,c){n.value[d]=c,f.forEach(m=>{var k;(k=t.value)[m]??(k[m]=[]),t.value[m].includes(d)||t.value[m].push(d)}),p(d)}function i(d){return Object.entries(t.value).filter(([,c])=>c.includes(d)).map(([c])=>c).reduce((c,m)=>(c[m]=r.value[m]??a.value[m],c),{})}function s(d,f){return d?Array.isArray(d)?d.some(c=>f.some(m=>g(c,m.value))):f.some(c=>g(d,c.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 c=i(d),m=Object.keys(c);if(!(m.length===0||!m.every(w=>c[w]!==void 0&&c[w]!==null)))try{const w=n.value[d],B=await w(f,c);if(!o.value[d])return;o.value[d].options=B;const S=o.value[d].value;if(!S)return;s(S,B)||(o.value[d].value=o.value[d].multiple?[]:"")}catch(w){console.error(`Error loading options for ${d}:`,w)}}return e.watch([r,a],()=>{Object.entries(t.value).forEach(([d,f])=>{(r.value[d]!==void 0||a.value[d]!==void 0)&&f.forEach(c=>{p(c)})})},{deep:!0,immediate:!0}),{registerDependency:u,updateOptions:p}}const te={install(o){o.component("VForm",Oe),o.component("TextInput",Re),o.component("DateInput",Te),o.component("NumberInput",Ae),o.component("EmailInput",Me),o.component("PasswordInput",ze),o.component("SelectInput",Pe),o.component("TextAreaInput",Le),o.component("RepeatInput",Ge),o.component("CheckboxInput",He),o.component("RadioInput",Ke),o.directive("maskito",oe.maskito)}};exports.VForm=te;exports.default=te;exports.useDataTransformation=Y;exports.useDependentOptions=We;exports.useFormValidation=W;exports.useInputValidation=A;exports.useMultiStepForm=ee;
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|