{"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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"}