{"version":3,"file":"form.mjs","sources":["../../../packages/tokens/form.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type {\n  FormProps,\n  FormRules\n} from '@element-ultra/components/form/src/form'\n\nexport interface FormContext {\n  /** 表单根属性 */\n  props: FormProps\n  /** 表单规则 */\n  formRules: FormRules\n  emit: (evt: 'validate', ...args: any[]) => void\n  resetField: (field: string) => void\n  validateField: (field: string) => Promise<string | null>\n}\n\nexport interface FormItemContext {\n  validate(): Promise<boolean | null>\n  reset(): void\n  clearValidate(): void\n}\n\nexport interface FormExposed {\n  validate: (fields?: string | string[]) => Promise<boolean>\n  resetFields: () => void\n  clearValidate: (fields?: string | string[]) => void\n}\n\nexport interface FormInjection {\n  addForm(form: FormExposed): void\n  deleteForm(form: FormExposed): void\n  addMultipleForm(form: { validate: () => Promise<boolean> }): void\n  deleteMultipleForm(form: { validate: () => Promise<boolean> }): void\n}\n\nexport const formKey: InjectionKey<FormContext> = Symbol('elForm')\nexport const formItemKey: InjectionKey<FormItemContext> = Symbol('elFormItem')\nexport const injectedKey: InjectionKey<boolean> = Symbol('injected')\nexport const formInjectionKey: InjectionKey<FormInjection> = Symbol(\n  'formDialogContextKey'\n)\n"],"names":[],"mappings":"AAmCa,MAAA,OAAA,GAAqC,OAAO,QAAQ,EAAA;AACpD,MAAA,WAAA,GAA6C,OAAO,YAAY,EAAA;AAChE,MAAA,WAAA,GAAqC,OAAO,UAAU,EAAA;AAC5D,MAAM,gBAAgD,GAAA,MAAA;AAAA,EAC3D,sBAAA;AACF;;;;"}