{"version":3,"file":"index.mjs","sources":["../../../../components/form/constants/index.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 '@tdesign/shared-hooks';\n\n// 允许 Form 统一控制的表单\nexport const FORM_CONTROL_COMPONENTS = [\n  'TInput',\n  'TInputNumber',\n  'TTextarea',\n  'TCascader',\n  'TSelect',\n  'TOption',\n  'TSwitch',\n  'TCheckbox',\n  'TCheckboxGroup',\n  'TRadio',\n  'TRadioGroup',\n  'TTreeSelect',\n  'TDatePicker',\n  'TTimePicker',\n  'TUpload',\n  'TTransfer',\n  'TSlider',\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  requiredMarkPosition: TdFormProps['requiredMarkPosition'];\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_CONTROL_COMPONENTS","useCLASSNAMES","classPrefix","usePrefixClass","computed","form","concat","value","input","is","label","labelTop","inline","formItem","formItemWithHelp","formItemWithExtra","controls","controlsContent","status","extra","help","success","successBorder","error","warning","ValidateStatus","FormInjectionKey","Symbol","FormItemInjectionKey"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAeaA,uBAA0B,GAAA,CACrC,QAAA,EACA,cAAA,EACA,WAAA,EACA,WAAA,EACA,SAAA,EACA,SAAA,EACA,SAAA,EACA,WAAA,EACA,gBAAA,EACA,QAAA,EACA,aAAA,EACA,aAAA,EACA,aAAA,EACA,aAAA,EACA,SAAA,EACA,WAAA,EACA,SAAA,EACF;IAEaC,gBAAgB,SAAhBA,gBAAsB;AACjC,EAAA,IAAMC,cAAcC,cAAe,EAAA,CAAA;EAEnC,OAAOC,SAAS,YAAM;AACd,IAAA,IAAAC,IAAA,GAAAC,EAAAA,CAAAA,MAAA,CAAUJ,WAAY,CAAAK,KAAA,EAAA,OAAA,CAAA,CAAA;AACtB,IAAA,IAAAC,KAAA,GAAAF,EAAAA,CAAAA,MAAA,CAAWJ,WAAY,CAAAK,KAAA,EAAA,QAAA,CAAA,CAAA;AACvB,IAAA,IAAAE,EAAA,GAAAH,EAAAA,CAAAA,MAAA,CAAQJ,WAAY,CAAAK,KAAA,EAAA,KAAA,CAAA,CAAA;IAEnB,OAAA;AACLF,MAAAA,IAAA,EAAAA,IAAA;AACAK,MAAAA,iBAAUL,IAAA,EAAA,SAAA,CAAA;AACVM,MAAAA,oBAAaN,IAAA,EAAA,cAAA,CAAA;AACbO,MAAAA,kBAAWP,IAAA,EAAA,SAAA,CAAA;AACXQ,MAAAA,oBAAaR,IAAA,EAAA,QAAA,CAAA;AACbS,MAAAA,4BAAqBT,IAAA,EAAA,kBAAA,CAAA;AACrBU,MAAAA,6BAAsBV,IAAA,EAAA,mBAAA,CAAA;AACtBW,MAAAA,oBAAaX,IAAA,EAAA,YAAA,CAAA;AACbY,MAAAA,2BAAoBZ,IAAA,EAAA,oBAAA,CAAA;AACpBa,MAAAA,kBAAWb,IAAA,EAAA,UAAA,CAAA;AACXc,MAAAA,iBAAUX,KAAA,EAAA,SAAA,CAAA;AACVY,MAAAA,gBAASZ,KAAA,EAAA,QAAA,CAAA;AACTa,MAAAA,mBAAYZ,EAAA,EAAA,UAAA,CAAA;AACZa,MAAAA,yBAAkBjB,IAAA,EAAA,kBAAA,CAAA;AAClBkB,MAAAA,iBAAUd,EAAA,EAAA,QAAA,CAAA;MACVe,mBAAYf,EAAA,EAAA,UAAA,CAAA;KACd,CAAA;AACF,GAAC,CAAA,CAAA;AACH,EAAA;IAEkBgB,cAAA,4BAAAA,eAAX,EAAA;AACLA,EAAAA,gBAAA,iBAAkB,CAAA,GAAA,KAAA,CAAA;AAClBA,EAAAA,gBAAA,SAAU,CAAA,GAAA,SAAA,CAAA;AACVA,EAAAA,gBAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AAHSA,EAAAA,OAAAA,eAAAA,CAAAA;AAAA,CAAA,CAAAA,cAAA,IAAA,EAAA,EAAA;IA0CLC,gBAAA,GAaRC,OAAO,aAAa,EAAA;IAEZC,oBAAA,GAERD,OAAO,iBAAiB;;;;"}