y-design-ssr
Version:
SSR component library of YUI with Vue3
92 lines (91 loc) • 5.08 kB
TypeScript
import { ComputedRef, ExtractPropTypes, PropType } from 'vue';
import { TriggerTypes } from '../../utils/types';
export type Rule = Partial<{
required: boolean;
message: string | ((value: unknown, rule: Rule) => string);
formatter: (value: unknown, rule: Rule) => unknown;
validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
pattern: RegExp;
trigger: TriggerTypes;
}>;
export type ReturnTypes = boolean | void | Promise<boolean> | null;
export type ValidateType = null | PropErrorInfo | void;
export type AllValidateType = null | PropErrorInfo[] | void;
export type PropErrorInfo = {
name: string;
message: string;
};
export interface FormItemExposed {
validateWithTrigger: (trigger: TriggerTypes) => null | Promise<null | PropErrorInfo>;
resetValidation: () => void;
formValue: ComputedRef<unknown>;
validate: (ruleList?: Rule[]) => Promise<ValidateType>;
change: () => void;
}
export declare const commonProps: {
size: {
type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
default: null;
};
border: {
type: BooleanConstructor;
default: boolean;
};
labelWidth: {
type: (StringConstructor | NumberConstructor)[];
default: null;
};
colon: {
type: BooleanConstructor;
default: boolean;
};
labelAlign: {
type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
default: null;
};
showError: {
type: BooleanConstructor;
default: boolean;
};
showErrorMessage: {
type: BooleanConstructor;
default: boolean;
};
errorMessageAlign: {
type: PropType<number | typeof Symbol.iterator | "link" | "small" | "sub" | "sup" | "length" | "concat" | "slice" | "indexOf" | "lastIndexOf" | "includes" | "at" | "toString" | "charAt" | "charCodeAt" | "localeCompare" | "match" | "replace" | "search" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | "valueOf" | "codePointAt" | "endsWith" | "normalize" | "repeat" | "startsWith" | "anchor" | "big" | "blink" | "bold" | "fixed" | "fontcolor" | "fontsize" | "italics" | "strike" | "padStart" | "padEnd" | "trimEnd" | "trimStart" | "trimLeft" | "trimRight" | "matchAll" | "replaceAll">;
default: null;
};
rules: {
type: PropType<Partial<{
required: boolean;
message: string | ((value: unknown, rule: Rule) => string);
formatter: (value: unknown, rule: Rule) => unknown;
validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
pattern: RegExp;
trigger: TriggerTypes;
}> | Partial<{
required: boolean;
message: string | ((value: unknown, rule: Rule) => string);
formatter: (value: unknown, rule: Rule) => unknown;
validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
pattern: RegExp;
trigger: TriggerTypes;
}>[] | Record<string, Partial<{
required: boolean;
message: string | ((value: unknown, rule: Rule) => string);
formatter: (value: unknown, rule: Rule) => unknown;
validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
pattern: RegExp;
trigger: TriggerTypes;
}> | Partial<{
required: boolean;
message: string | ((value: unknown, rule: Rule) => string);
formatter: (value: unknown, rule: Rule) => unknown;
validator: (value: unknown, rule: Rule) => Promise<boolean> | boolean;
pattern: RegExp;
trigger: TriggerTypes;
}>[]>>;
default: null;
};
};
export type CommonPropsType = ExtractPropTypes<typeof commonProps>;