UNPKG

@varlet/ui

Version:

A Vue3 component library based on Material Design 2 and 3, supporting mobile and desktop.

61 lines (42 loc) 1.41 kB
import type { ComputedRef, Ref, VNode } from 'vue' import { BasicAttributes, ListenerProp, SetPropsDefaults, VarComponent } from './varComponent' export declare const formProps: Record<keyof FormProps, any> export interface FormValidation { validate(): Promise<boolean> resetValidation(): void reset(): void } export type FormScrollToError = 'start' | 'end' export interface FormProvider { disabled: ComputedRef<boolean> readonly: ComputedRef<boolean> } export interface FormProps extends BasicAttributes { disabled?: boolean readonly?: boolean scrollToError?: FormScrollToError scrollToErrorOffsetY?: number | string onSubmit?: ListenerProp<(valid: boolean) => void> onReset?: ListenerProp<() => void> } export class Form extends VarComponent { static setPropsDefaults: SetPropsDefaults<FormProps> static useForm(): { form: FormProvider | null bindForm: ((formValidation: FormValidation) => void) | null } static useValidation(): { errorMessage: Ref<string> validate(rules: any, value: any, apis?: any): Promise<boolean> resetValidation(): void validateWithTrigger<T>(validateTrigger: T[], trigger: T, rules: any, value: any, apis?: any): Promise<void> } $props: FormProps $slots: { default(): VNode[] } validate(): Promise<boolean> resetValidation(): void reset(): void } export class _FormComponent extends Form {}