import type { ValidationRule as SyValidationRule } from '@/composables/validation/useValidation' import { useValidation } from '@/composables/unifyValidation/useValidation' import { computed, type Ref } from 'vue' import type { ValidationRule as VuetifyValidationRule } from 'vuetify' import type { locales } from './locales' export function useMonthPickerValidation(args: { modelValue: Ref readonly: Ref disabled: Ref required: Ref isValidateOnBlur: Ref showSuccessMessages: Ref disableErrorHandling: Ref useVuetifyValidation: Ref label: Ref rules: Ref customRules: Ref customWarningRules?: Ref customSuccessRules?: Ref errorMessages?: Ref warningMessages?: Ref successMessages?: Ref hasErrorProp?: Ref hasWarningProp?: Ref hasSuccessProp?: Ref maxErrors?: Ref focused: Ref locales: Ref }) { const allCustomRules = computed(() => { const base: SyValidationRule[] = args.required.value ? [{ type: 'required', options: { message: args.locales.value.fieldRequired(args.label.value), fieldIdentifier: args.label.value, }, }] : [] return [...base, ...(args.customRules.value ?? [])] }) return useValidation({ modelValue: args.modelValue, readonly: args.readonly, disabled: args.disabled, required: args.required, isValidateOnBlur: args.isValidateOnBlur, showSuccessMessages: args.showSuccessMessages, disableErrorHandling: args.disableErrorHandling, useVuetifyValidation: args.useVuetifyValidation, label: args.label, rules: args.rules, customRules: allCustomRules, customWarningRules: args.customWarningRules, customSuccessRules: args.customSuccessRules, errorMessages: args.errorMessages, warningMessages: args.warningMessages, successMessages: args.successMessages, hasErrorProp: args.hasErrorProp, hasWarningProp: args.hasWarningProp, hasSuccessProp: args.hasSuccessProp, maxErrors: args.maxErrors, focused: args.focused, }) }