xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 5.64 kB
Source Map (JSON)
{"version":3,"file":"const.mjs","sources":["../../src/form/const.ts"],"sourcesContent":["import { computed, InjectionKey } from 'vue';\nimport { FormItemValidateResult } from './form-item';\nimport {\n AllValidateResult,\n Data,\n FormItemValidateMessage,\n FormRule,\n TdFormItemProps,\n TdFormProps,\n ValidateResultType,\n ValidateTriggerType,\n} from './type';\nimport { usePrefixClass, useTNodeJSX } from '../hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n 'XInput',\n 'XInputNumber',\n 'XTextarea',\n 'XCascader',\n 'XSelect',\n 'XOption',\n 'XSwitch',\n 'XCheckbox',\n 'XCheckboxGroup',\n 'XRadio',\n 'XRadioGroup',\n 'XTreeSelect',\n 'XDatePicker',\n 'XTimePicker',\n 'XUpload',\n 'XTransfer',\n 'XSlider',\n];\n\nexport const useCLASSNAMES = () => {\n const classPrefix = usePrefixClass();\n\n return computed(() => {\n const form = `${classPrefix.value}-form`;\n const input = `${classPrefix.value}-input`;\n const is = `${classPrefix.value}-is`;\n\n return {\n form,\n label: `${form}__label`,\n labelTop: `${form}__label--top`,\n inline: `${form}-inline`,\n formItem: `${form}__item`,\n formItemWithHelp: `${form}__item-with-help`,\n formItemWithExtra: `${form}__item-with-extra`,\n controls: `${form}__controls`,\n controlsContent: `${form}__controls-content`,\n status: `${form}__status`,\n extra: `${input}__extra`,\n help: `${input}__help`,\n success: `${is}-success`,\n successBorder: `${form}--success-border`,\n error: `${is}-error`,\n warning: `${is}-warning`,\n };\n });\n};\n\nexport const enum ValidateStatus {\n TO_BE_VALIDATED = 'not',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type ErrorListType =\n | {\n result: false;\n message: string;\n type: 'error' | 'warning';\n }\n | ValidateResultType;\n\nexport type SuccessListType =\n | {\n result: true;\n message: string;\n type: 'success';\n }\n | ValidateResultType;\n\nexport interface AnalysisValidateResult {\n successList?: SuccessListType[];\n errorList?: ErrorListType[];\n rules: FormRule[];\n resultList: AllValidateResult[];\n allowSetValue: boolean;\n}\n\nexport interface FormItemContext {\n name: TdFormItemProps['name'];\n resetHandler: () => void;\n resetField: (resetType?: 'initial' | 'empty') => Promise<void>;\n validate: <T extends Data = Data>(\n trigger: ValidateTriggerType,\n showErrorMessage?: boolean,\n ) => Promise<FormItemValidateResult<T>>;\n validateOnly: <T = Data>(trigger: ValidateTriggerType) => Promise<FormItemValidateResult<T>>;\n setValidateMessage: (validateMessage: FormItemValidateMessage[]) => void;\n}\n\nexport const FormInjectionKey: InjectionKey<{\n showErrorMessage: TdFormProps['showErrorMessage'];\n labelWidth: TdFormProps['labelWidth'];\n labelAlign: TdFormProps['labelAlign'];\n data: TdFormProps['data'];\n colon: TdFormProps['colon'];\n requiredMark: TdFormProps['requiredMark'];\n rules: TdFormProps['rules'];\n errorMessage: TdFormProps['errorMessage'];\n resetType: TdFormProps['resetType'];\n children: FormItemContext[];\n renderContent: ReturnType<typeof useTNodeJSX>;\n}> = Symbol('FormProvide');\n\nexport const FormItemInjectionKey: InjectionKey<{\n handleBlur: () => Promise<void>;\n}> = Symbol('FormItemProvide');\n"],"names":["form","label","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","status","extra","help","success","successBorder","error","ValidateStatus"],"mappings":"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"}