{"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      requiredMarkPosition,\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        requiredMarkPosition,\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: Record<string, any> = 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 resArr.filter((item) => !item.result)[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 as keyof FormData]));\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","requiredMarkPosition","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","_context","prev","next","value","filter","child","isFunction","String","map","Promise","all","sent","onValidate","validateResult","abrupt","stop","_x","apply","arguments","getFirstError","isBoolean","_Object$keys","_Object$keys2","_slicedToArray","firstKey","scrollToFirstError","tmpClassName","scrollTo","resArr","item","message","selector","_formRef$value$getEle","getElementsByClassName","_formRef$value$getEle2","dom","behavior","scrollIntoView","validateOnly","_ref4","_callee2","params","_ref5","_ref5$trigger","_context2","_x2","submitParams","onSubmit","e","preventSubmitDefault","preventDefault","then","_props2$onSubmit","firstError","submit","_ref6","_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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"}