{"version":3,"file":"form.mjs","sources":["../../src/form/form.tsx"],"sourcesContent":["import { defineComponent, provide, reactive, ref, toRefs } from 'vue';\nimport { isArray, isBoolean, isEmpty, isFunction } from 'lodash-es';\nimport {\n  Data,\n  FormResetParams,\n  FormValidateMessage,\n  FormValidateParams,\n  FormValidateResult,\n  TdFormProps,\n  ValidateResultList,\n} from './type';\nimport props from './props';\nimport { FormInjectionKey, FormItemContext } from './const';\nimport { FormDisabledProvider } from './hooks';\nimport config from '../config';\nimport { renderContent } from '../shared';\nimport { preventDefault } from '../shared/dom';\nimport { FormItemValidateResult } from './form-item';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\ntype FormResetEvent = Event;\n// export type FormSubmitEvent = SubmitEvent; (for higher typescript version)\ntype FormSubmitEvent = Event;\ntype Result = FormValidateResult<TdFormProps['data']>;\n\nexport const requestSubmit = (target: HTMLFormElement) => {\n  if (!(target instanceof HTMLFormElement)) {\n    throw new Error('target must be HTMLFormElement');\n  }\n  const submitter = document.createElement('input');\n  submitter.type = 'submit';\n  submitter.hidden = true;\n  target.appendChild(submitter);\n  submitter.click();\n  target.removeChild(submitter);\n};\n\nexport default defineComponent({\n  name: `${prefix}-form`,\n  props,\n  setup(props, { expose }) {\n    const renderTNodeJSX = useTNodeJSX();\n    const {\n      disabled,\n      showErrorMessage,\n      labelWidth,\n      labelAlign,\n      contentAlign,\n      data,\n      colon,\n      requiredMark,\n      rules,\n      errorMessage,\n      resetType,\n    } = toRefs(props);\n\n    const formRef = ref<HTMLFormElement>();\n    const children = ref<FormItemContext[]>([]);\n\n    provide<FormDisabledProvider>('formDisabled', {\n      disabled,\n    });\n\n    provide(\n      FormInjectionKey,\n      reactive({\n        showErrorMessage,\n        labelWidth,\n        labelAlign,\n        contentAlign,\n        data,\n        colon,\n        requiredMark,\n        rules,\n        errorMessage,\n        resetType,\n        children,\n        renderContent,\n      }),\n    );\n\n    const formClass = usePrefixClass('form');\n\n    const needValidate = (name: string | number, fields: string[] | undefined) => {\n      if (!fields || !isArray(fields)) return true;\n      return fields.indexOf(`${name}`) !== -1;\n    };\n    const formatValidateResult = <T extends Data>(validateResultList: FormItemValidateResult<T>[]) => {\n      const result = validateResultList.reduce((r, err) => Object.assign(r || {}, err), {});\n      Object.keys(result).forEach((key) => {\n        if (result[key] === true) {\n          delete result[key];\n        }\n      });\n      return isEmpty(result) ? true : result;\n    };\n    const validate = async (param?: FormValidateParams): Promise<Result> => {\n      const { fields, trigger = 'all', showErrorMessage } = param || {};\n      const list = children.value\n        .filter((child) => isFunction(child.validate) && needValidate(String(child.name), fields))\n        .map((child) => child.validate(trigger, showErrorMessage));\n      const arr = await Promise.all(list);\n      const result = formatValidateResult(arr);\n      props.onValidate?.({\n        validateResult: result,\n      });\n      return result;\n    };\n\n    const getFirstError = (result: Result) => {\n      if (isBoolean(result)) return '';\n\n      const [firstKey] = Object.keys(result);\n      if (props.scrollToFirstError) {\n        const tmpClassName = `${formClass.value}-item__${firstKey}`;\n        scrollTo(tmpClassName);\n      }\n      const resArr = result[firstKey] as ValidateResultList;\n      if (!isArray(resArr)) return '';\n\n      return result?.[Object.keys(result)?.[0]]?.[0]?.message || '';\n    };\n    // 校验不通过时，滚动到第一个错误表单\n    const scrollTo = (selector: string) => {\n      const [dom] = formRef.value.getElementsByClassName(selector);\n      const behavior = props.scrollToFirstError;\n      if (behavior) {\n        dom && dom.scrollIntoView({ behavior });\n      }\n    };\n\n    const validateOnly = async (params?: Omit<FormValidateParams, 'showErrorMessage'>) => {\n      const { fields, trigger = 'all' } = params || {};\n      const list = children.value\n        .filter((child) => isFunction(child.validateOnly) && needValidate(String(child.name), fields))\n        .map((child) => child.validateOnly(trigger));\n      const arr = await Promise.all(list);\n      return formatValidateResult(arr);\n    };\n\n    const submitParams = ref<Pick<FormValidateParams, 'showErrorMessage'>>();\n    const onSubmit = (e?: FormSubmitEvent) => {\n      if (props.preventSubmitDefault && e) {\n        preventDefault(e, true);\n      }\n      validate(submitParams.value).then((r) => {\n        const firstError = getFirstError(r);\n        // @ts-ignore\n        props.onSubmit?.({\n          validateResult: r,\n          firstError,\n        });\n      });\n      submitParams.value = undefined;\n    };\n\n    const submit = async (params?: Pick<FormValidateParams, 'showErrorMessage'>) => {\n      submitParams.value = params;\n      requestSubmit(formRef.value);\n    };\n\n    const resetParams = ref<FormResetParams<Data>>();\n    const onReset = (e?: FormResetEvent) => {\n      if (props.preventSubmitDefault && e) {\n        preventDefault(e, true);\n      }\n      children.value\n        .filter(\n          (child) =>\n            isFunction(child.resetField) && needValidate(String(child.name), resetParams.value?.fields as string[]),\n        )\n        .forEach((child) => child.resetField(resetParams.value?.type));\n      resetParams.value = undefined;\n      props.onReset?.({ e });\n    };\n\n    const reset = <FormData extends Data>(params?: FormResetParams<FormData>) => {\n      (resetParams.value as any) = params;\n      formRef.value.reset();\n    };\n\n    const clearValidate = (fields?: Array<string>) => {\n      children.value.forEach((child) => {\n        if (isFunction(child.resetHandler) && needValidate(String(child.name), fields)) {\n          child.resetHandler();\n        }\n      });\n    };\n    const setValidateMessage = (validateMessage: FormValidateMessage<FormData>) => {\n      const keys = Object.keys(validateMessage);\n      if (!keys.length) return;\n      const list = children.value\n        .filter((child) => isFunction(child.setValidateMessage) && keys.includes(`${child.name}`))\n        .map((child) => child.setValidateMessage(validateMessage[`${child.name}`]));\n      Promise.all(list);\n    };\n\n    expose({ validate, submit, reset, clearValidate, setValidateMessage, validateOnly });\n\n    return () => {\n      return (\n        <form ref={formRef} class={formClass.value} onSubmit={(e) => onSubmit(e)} onReset={(e) => onReset(e)}>\n          {renderTNodeJSX('default')}\n        </form>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","requestSubmit","target","HTMLFormElement","Error","submitter","document","createElement","type","hidden","appendChild","click","removeChild","defineComponent","name","props","setup","expose","_ref","renderTNodeJSX","useTNodeJSX","_toRefs","toRefs","disabled","showErrorMessage","labelWidth","labelAlign","contentAlign","data","colon","requiredMark","rules","errorMessage","resetType","formRef","ref","children","provide","FormInjectionKey","reactive","renderContent","formClass","usePrefixClass","needValidate","fields","isArray","indexOf","concat","formatValidateResult","validateResultList","result","reduce","r","err","Object","assign","keys","forEach","key","isEmpty","validate","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","param","_props2$onValidate","_ref3","_ref3$trigger","trigger","showErrorMessage2","list","arr","wrap","_callee$","_context","prev","next","value","filter","child","isFunction","String","map","Promise","all","sent","onValidate","validateResult","abrupt","stop","_x","apply","arguments","getFirstError","_result$Object$keys$","_Object$keys3","isBoolean","_Object$keys","_Object$keys2","_slicedToArray","firstKey","scrollToFirstError","tmpClassName","scrollTo","resArr","message","selector","_formRef$value$getEle","getElementsByClassName","_formRef$value$getEle2","dom","behavior","scrollIntoView","validateOnly","_ref4","_callee2","params","_ref5","_ref5$trigger","_callee2$","_context2","_x2","submitParams","onSubmit","e","preventSubmitDefault","preventDefault","then","_props2$onSubmit","firstError","submit","_ref6","_callee3","_callee3$","_context3","_x3","resetParams","onReset","_props2$onReset","_resetParams$value","resetField","_resetParams$value2","reset","clearValidate","resetHandler","setValidateMessage","validateMessage","length","includes","_createVNode"],"mappings":"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"}