vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.07 kB
Source Map (JSON)
{"version":3,"file":"symbol.cjs","sources":["../../../components/form/symbol.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\nimport type { ComponentSize, ComponentState } from '@vexip-ui/config'\nimport type { EventEmitter } from '@vexip-ui/utils'\nimport type { Rule } from './validator'\n\nexport type FormLabelAlign = 'right' | 'top' | 'left'\nexport type SubmitMethod = 'get' | 'post' | 'put' | 'delete'\n\nexport interface FormProps {\n method: SubmitMethod,\n action: string,\n model: Record<string, any>,\n rules: Record<string, any>,\n labelWidth: number | 'auto',\n labelAlign: FormLabelAlign,\n allRequired: boolean,\n labelSuffix: string,\n hideAsterisk: boolean,\n validateAll: boolean,\n hideLabel: boolean,\n disabled: boolean,\n loading: boolean,\n size: ComponentSize,\n inline: boolean,\n}\n\nexport interface FormItemProps {\n label: string,\n prop: string,\n rules: Rule | Rule[],\n labelWidth: number | 'auto',\n required: boolean,\n htmlFor: string,\n errorTransition: string,\n defaultValue: unknown,\n hideErrorTip: boolean,\n validateAll: boolean,\n hideAsterisk: boolean,\n}\n\nexport interface FormItemSlots {\n default?: (parmas: { isError: boolean }) => any,\n help?: () => any,\n label?: () => any,\n error?: (params: { tip: string }) => any,\n}\n\nexport interface FieldOptions {\n prop: Ref<string>,\n idFor: Ref<string>,\n labelId: Ref<string>,\n state: Ref<ComponentState>,\n disabled: Ref<boolean>,\n loading: Ref<boolean>,\n size: Ref<ComponentSize>,\n emitter: EventEmitter,\n labelWidth: Ref<number>,\n validate: () => Promise<string[] | null>,\n reset: () => boolean,\n clearError: () => void,\n getValue: (defaultValue?: unknown) => unknown,\n setValue: (value: unknown, strict?: boolean) => void,\n sync: (instance: any) => void,\n unSync: (instance: any) => void,\n}\n\nexport interface FormActions {\n getLabelWidth: () => number,\n validate: () => Promise<string[]>,\n validateFields: (props: string | string[]) => Promise<string[]>,\n reset: () => void,\n resetFields: (props: string | string[]) => void,\n clearError: () => void,\n clearFieldsError: (props: string | string[]) => void,\n}\n\n// form\nexport const FORM_PROPS = '__VXP_FORM_PROPS' as unknown as InjectionKey<Partial<FormProps>>\nexport const FORM_FIELDS = '__VXP_FORM_FIELDS' as unknown as InjectionKey<Set<FieldOptions>>\nexport const FORM_ACTIONS = '__VXP_FORM_ACTIONS' as unknown as InjectionKey<FormActions>\n\n// form-item\nexport const FIELD_OPTIONS = '__VXP_FIELD_OPTIONS' as unknown as InjectionKey<FieldOptions | null>\n\nexport const submitMethods = Object.freeze<SubmitMethod[]>(['get', 'post', 'put', 'delete'])\nexport const labelAligns = Object.freeze<FormLabelAlign[]>(['right', 'top', 'left'])\n"],"names":["FORM_PROPS","FORM_FIELDS","FORM_ACTIONS","FIELD_OPTIONS","submitMethods","labelAligns"],"mappings":"gFA6EO,MAAMA,EAAa,mBACbC,EAAc,oBACdC,EAAe,qBAGfC,EAAgB,sBAEhBC,EAAgB,OAAO,OAAuB,CAAC,MAAO,OAAQ,MAAO,QAAQ,CAAC,EAC9EC,EAAc,OAAO,OAAyB,CAAC,QAAS,MAAO,MAAM,CAAC"}