import { Validation } from '@vuelidate/core'; import { Ref } from 'vue'; type FormValidationStatus = 'error' | 'warning' | 'success'; /** * Options for validators. */ interface ValidatorOptions { /** * Options for the required validator. * Use either `label` or `msg`, but not both. */ required?: { label?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; msg?: never; validationStatus?: FormValidationStatus; }; /** * Options for the maxLength validator. * Use either `label` and `value`, or `msg`, but not both. */ maxLength?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; /** * Options for the maxLength validator. * Use either `label` and `value`, or `msg`, but not both. */ minLength?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; /** * Options for the minValue validator. * Use either `label` and `value`, or `msg`, but not both. */ minValue?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; /** * Options for the maxValue validator. * Use either `label` and `value`, or `msg`, but not both. */ maxValue?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; /** * Options for the unique validator. * Use either `label` or `msg`, but not both. */ unique?: { label?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; msg?: never; validationStatus?: FormValidationStatus; }; } interface ValidatorOptions { required?: { label?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; msg?: never; validationStatus?: FormValidationStatus; }; maxLength?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; minLength?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; minValue?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; maxValue?: { label?: never; value?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; value: number; msg?: never; validationStatus?: FormValidationStatus; }; unique?: { label?: never; msg: string; validationStatus?: FormValidationStatus; } | { label: string; msg?: never; validationStatus?: FormValidationStatus; }; } type FieldOptions