{"version":3,"file":"form-item.mjs","sources":["../../src/form/form-item.tsx"],"sourcesContent":["import {\n  computed,\n  defineComponent,\n  inject,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  reactive,\n  ref,\n  toRefs,\n  watch,\n} from 'vue';\nimport {\n  cloneDeep,\n  get as lodashGet,\n  set as lodashSet,\n  isBoolean,\n  isArray,\n  isNil,\n  isNumber,\n  isString,\n  template as lodashTemplate,\n} from 'lodash-es';\nimport { ChevronRightIcon } from 'tdesign-icons-vue-next';\nimport { validate } from './form-model';\n\nimport {\n  AllValidateResult,\n  Data,\n  FormErrorMessage,\n  FormItemValidateMessage,\n  FormRule,\n  ValidateTriggerType,\n  ValueType,\n} from './type';\nimport props from './form-item-props';\nimport {\n  AnalysisValidateResult,\n  ErrorListType,\n  FormInjectionKey,\n  FormItemContext,\n  FormItemInjectionKey,\n  SuccessListType,\n  ValidateStatus,\n} from './const';\nimport config from '../config';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass, useConfig } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport type FormItemValidateResult<T extends Data = Data> = { [key in keyof T]: boolean | AllValidateResult[] };\n\nexport default defineComponent({\n  name: `${prefix}-form-item`,\n  props,\n  setup(props, { slots }) {\n    const renderTNodeJSX = useTNodeJSX();\n    const formClass = usePrefixClass('form');\n    const formItemClass = usePrefixClass('form__item');\n    const { globalConfig } = useConfig('form');\n    const { name } = toRefs(props);\n\n    const form = inject(FormInjectionKey, undefined);\n\n    const extraNode = computed(() => {\n      const list = errorList.value;\n      if (showErrorMessage.value && list[0]?.message) {\n        return list[0]?.message;\n      }\n      if (successList.value.length) {\n        return successList.value[0].message;\n      }\n      return null;\n    });\n\n    const formItemClasses = computed(() => [\n      formItemClass.value,\n      `${formItemClass.value}--bordered`,\n      `${formClass.value}--${labelAlign.value}`,\n      `${formClass.value}-item__${props.name}`,\n    ]);\n\n    const needRequiredMark = computed(() => {\n      const requiredMark = props.requiredMark ?? form?.requiredMark;\n      const isRequired = innerRules.value.filter((rule) => rule.required).length > 0;\n      return requiredMark ?? isRequired;\n    });\n\n    const requiredMarkPosition = computed(() => {\n      return form?.requiredMarkPosition;\n    });\n\n    const hasLabel = computed(() => slots.label || props.label);\n    const hasColon = computed(() => !!(form?.colon && hasLabel.value));\n    const labelClass = `${formClass.value}__label`;\n    const labelAlign = computed(() => (isNil(props.labelAlign) ? form?.labelAlign : props.labelAlign));\n    const labelWidth = computed(() => (isNil(props.labelWidth) ? form?.labelWidth : props.labelWidth));\n    const contentAlign = computed(() => (isNil(props.contentAlign) ? form?.contentAlign : props.contentAlign));\n\n    const labelClasses = computed(() => [\n      labelClass,\n      {\n        [`${labelClass}--required`]: needRequiredMark.value,\n        [`${labelClass}--required-right`]: needRequiredMark.value && requiredMarkPosition.value === 'right',\n        [`${labelClass}--top`]: hasLabel.value && (labelAlign.value === 'top' || !labelWidth.value),\n        [`${labelClass}--left`]: labelAlign.value === 'left' && labelWidth.value,\n        [`${labelClass}--right`]: labelAlign.value === 'right' && labelWidth.value,\n      },\n    ]);\n\n    const labelStyle = computed(() => {\n      if (labelWidth.value && labelAlign.value !== 'top') {\n        return isNumber(labelWidth.value) ? { width: `${labelWidth.value}px` } : { width: labelWidth.value };\n      }\n      return {};\n    });\n\n    const freeShowErrorMessage = ref<boolean | undefined>(false);\n    const showErrorMessage = computed(() => {\n      if (isBoolean(freeShowErrorMessage.value)) return freeShowErrorMessage.value;\n      if (isBoolean(props.showErrorMessage)) return props.showErrorMessage;\n      return form?.showErrorMessage;\n    });\n\n    const errorClasses = computed(() => {\n      if (!showErrorMessage.value) return '';\n      if (!errorList.value.length) return '';\n      const type = errorList.value[0].type || 'error';\n      return type === 'error' ? `${formItemClass.value}--error` : `${formItemClass.value}--warning`;\n    });\n\n    const contentClasses = computed(() => [`${formClass.value}__controls`, errorClasses.value]);\n    const contentSlotClasses = computed(() => [\n      `${formClass.value}__controls-content`,\n      `${formClass.value}__controls--${contentAlign.value}`,\n    ]);\n\n    const contentStyle = computed(() => {\n      let contentStyle = {};\n      if (labelWidth.value && labelAlign.value !== 'top') {\n        if (isNumber(labelWidth.value)) {\n          contentStyle = { marginLeft: `${labelWidth.value}px` };\n        } else {\n          contentStyle = { marginLeft: labelWidth.value };\n        }\n      }\n\n      return contentStyle;\n    });\n\n    const errorList = ref<ErrorListType[]>([]);\n    const successList = ref<SuccessListType[]>([]);\n    const verifyStatus = ref(ValidateStatus.TO_BE_VALIDATED);\n    const resetValidating = ref(false);\n    const needResetField = ref(false);\n\n    const resetHandler = () => {\n      needResetField.value = false;\n      errorList.value = [];\n      successList.value = [];\n      verifyStatus.value = ValidateStatus.TO_BE_VALIDATED;\n    };\n    const getEmptyValue = (): ValueType => {\n      const type = Object.prototype.toString.call(lodashGet(form?.data, `${props.name}`));\n      let emptyValue: ValueType;\n      if (type === '[object String]') {\n        emptyValue = '';\n      }\n      if (type === '[object Array]') {\n        emptyValue = [];\n      }\n      if (type === '[object Object]') {\n        emptyValue = {};\n      }\n      return emptyValue;\n    };\n    const resetField = async (resetType: 'initial' | 'empty' | undefined = form?.resetType): Promise<any> => {\n      if (!props.name) return null;\n\n      if (resetType === 'empty') {\n        // @ts-ignore\n        lodashSet(form?.data, props.name, getEmptyValue());\n      } else if (resetType === 'initial') {\n        // @ts-ignore\n        lodashSet(form?.data, props.name, initialValue.value);\n      }\n\n      await nextTick();\n      if (resetValidating.value) {\n        needResetField.value = true;\n      } else {\n        resetHandler();\n      }\n    };\n\n    const errorMessages = computed<FormErrorMessage>(\n      () => form?.errorMessage ?? globalConfig.value?.errorMessage ?? {},\n    );\n    const innerRules = computed<FormRule[]>(() => {\n      if (props.rules?.length) return props.rules;\n      if (!props.name) return [];\n      const index = `${props.name}`.lastIndexOf('.') || -1;\n      const pRuleName = `${props.name}`.slice(index + 1);\n      return lodashGet(form?.rules, props.name) || lodashGet(form?.rules, pRuleName) || [];\n    });\n\n    const analysisValidateResult = async (trigger: ValidateTriggerType): Promise<AnalysisValidateResult> => {\n      const result: AnalysisValidateResult = {\n        successList: [],\n        errorList: [],\n        rules: [],\n        resultList: [],\n        allowSetValue: false,\n      };\n      result.rules =\n        trigger === 'all'\n          ? innerRules.value\n          : innerRules.value.filter((item) => (item.trigger || 'change') === trigger);\n      if (innerRules.value.length && !result.rules?.length) {\n        return result;\n      }\n      result.allowSetValue = true;\n      result.resultList = await validate(value.value, result.rules);\n      result.errorList = result.resultList\n        .filter((item) => item.result !== true)\n        .map((item) => {\n          Object.keys(item).forEach((key) => {\n            const errorMsg = errorMessages.value[key as keyof FormErrorMessage];\n            if (!item.message && errorMsg) {\n              const compiled = lodashTemplate(errorMsg);\n              const name = isString(props.label) ? props.label : props.name;\n              item.message = compiled({\n                name,\n                validate: item[key as keyof AllValidateResult],\n              });\n            }\n          });\n          return item as ErrorListType;\n        });\n      // 仅有自定义校验方法才会存在 successList\n      result.successList = result.resultList.filter(\n        (item) => item.result === true && item.message && item.type === 'success',\n      ) as SuccessListType[];\n      return result;\n    };\n    const validateHandler = async <T extends Data = Data>(\n      trigger: ValidateTriggerType,\n      showErrorMessage?: boolean,\n    ): Promise<FormItemValidateResult<T>> => {\n      resetValidating.value = true;\n      // undefined | boolean\n      freeShowErrorMessage.value = showErrorMessage;\n      const {\n        successList: innerSuccessList,\n        errorList: innerErrorList,\n        rules,\n        resultList,\n        allowSetValue,\n      } = await analysisValidateResult(trigger);\n\n      if (allowSetValue) {\n        successList.value = innerSuccessList || [];\n        errorList.value = innerErrorList || [];\n      }\n      // 根据校验结果设置校验状态\n      if (rules.length) {\n        verifyStatus.value = innerErrorList?.length ? ValidateStatus.FAIL : ValidateStatus.SUCCESS;\n      }\n      // 重置处理\n      if (needResetField.value) {\n        resetHandler();\n      }\n      resetValidating.value = false;\n\n      return {\n        [`${name.value}`]: innerErrorList?.length === 0 ? true : resultList,\n      } as FormItemValidateResult<T>;\n    };\n\n    const validateOnly = async <T extends Data>(trigger: ValidateTriggerType): Promise<FormItemValidateResult<T>> => {\n      const { errorList: innerErrorList, resultList } = await analysisValidateResult(trigger);\n\n      return {\n        [props.name]: innerErrorList.length === 0 ? true : resultList,\n      } as FormItemValidateResult<T>;\n    };\n\n    const setValidateMessage = (validateMessage: FormItemValidateMessage[]) => {\n      if (!validateMessage && !isArray(validateMessage)) return;\n      if (validateMessage.length === 0) {\n        errorList.value = [];\n        verifyStatus.value = ValidateStatus.SUCCESS;\n      }\n      errorList.value = validateMessage.map((item) => ({ ...item, result: false }));\n      verifyStatus.value = ValidateStatus.FAIL;\n    };\n\n    const value = computed<ValueType>(() => form?.data && lodashGet(form?.data, `${name.value}`));\n    const initialValue = ref<ValueType>(undefined);\n\n    const context: FormItemContext = reactive({\n      name,\n      resetHandler,\n      resetField,\n      validate: validateHandler,\n      validateOnly,\n      setValidateMessage,\n    });\n\n    onMounted(() => {\n      initialValue.value = cloneDeep(value.value);\n      form?.children.push(context);\n    });\n\n    onBeforeUnmount(() => {\n      if (form) form.children = form?.children.filter((ctx) => ctx !== context);\n    });\n\n    watch(\n      value,\n      async () => {\n        await validateHandler('change');\n      },\n      { deep: true },\n    );\n\n    watch(\n      () => [props.name, JSON.stringify(props.rules)].join(','),\n      () => {\n        validateHandler('change');\n      },\n    );\n\n    const handleBlur = async () => {\n      await validateHandler('blur');\n    };\n\n    provide(FormItemInjectionKey, {\n      handleBlur,\n    });\n\n    return () => {\n      const renderRightIconContent = () => {\n        if (!props.arrow) {\n          return null;\n        }\n        return <ChevronRightIcon size=\"24px\" style={{ color: 'rgba(0, 0, 0, .4)' }} />;\n      };\n      const renderLabelContent = () => {\n        if (Number(labelWidth.value) === 0) {\n          return null;\n        }\n        return renderTNodeJSX('label');\n      };\n      const renderHelpNode = () => {\n        const helpNode = renderTNodeJSX('help');\n        if (!helpNode) {\n          return null;\n        }\n        return (\n          <div class={[`${formItemClass.value}-help`, `${formClass.value}__controls--${contentAlign.value}`]}>\n            {helpNode}\n          </div>\n        );\n      };\n      const renderExtraNode = () => {\n        if (!extraNode.value) {\n          return null;\n        }\n        return (\n          <div class={[`${formItemClass.value}-extra`, `${formClass.value}__controls--${contentAlign.value}`]}>\n            {extraNode.value}\n          </div>\n        );\n      };\n\n      return (\n        <div class={[...formItemClasses.value, renderHelpNode() ? `${formClass.value}__item-with-help` : '']}>\n          <div class={[`${formItemClass.value}-wrap`, `${formItemClass.value}--${labelAlign.value}`]}>\n            <div class={labelClasses.value} style={labelStyle.value}>\n              <label for={props.for}>{renderLabelContent()}</label>\n              {hasColon.value && globalConfig.value.colonText}\n            </div>\n            <div class={contentClasses.value} style={contentStyle.value}>\n              <div class={contentSlotClasses.value}>{renderTNodeJSX('default')}</div>\n              {renderHelpNode()}\n              {renderExtraNode()}\n            </div>\n          </div>\n          {renderRightIconContent()}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","formClass","usePrefixClass","formItemClass","_useConfig","useConfig","globalConfig","_toRefs","toRefs","form","inject","FormInjectionKey","extraNode","computed","_list$","list","errorList","value","showErrorMessage","message","_list$2","successList","length","formItemClasses","concat","labelAlign","needRequiredMark","_props2$requiredMark","requiredMark","isRequired","innerRules","filter","rule","required","requiredMarkPosition","hasLabel","label","hasColon","colon","labelClass","isNil","labelWidth","contentAlign","labelClasses","_defineProperty","labelStyle","isNumber","width","freeShowErrorMessage","ref","isBoolean","errorClasses","type","contentClasses","contentSlotClasses","contentStyle","marginLeft","verifyStatus","ValidateStatus","TO_BE_VALIDATED","resetValidating","needResetField","resetHandler","getEmptyValue","Object","prototype","toString","call","lodashGet","data","emptyValue","resetField","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resetType","_args","arguments","wrap","_context","prev","next","undefined","abrupt","lodashSet","initialValue","nextTick","stop","apply","errorMessages","_ref4","_form$errorMessage","_globalConfig$value","errorMessage","_props2$rules","rules","index","lastIndexOf","pRuleName","slice","analysisValidateResult","_ref5","_callee2","trigger","_result$rules","result","_context2","resultList","allowSetValue","item","validate","map","keys","forEach","key","errorMsg","compiled","lodashTemplate","isString","_x","validateHandler","_ref6","_callee3","_yield$analysisValida","innerSuccessList","innerErrorList","_context3","sent","FAIL","SUCCESS","_x2","_x3","validateOnly","_ref8","_callee4","_yield$analysisValida2","_context4","_x4","setValidateMessage","validateMessage","isArray","_objectSpread","context","reactive","onMounted","cloneDeep","children","push","onBeforeUnmount","ctx","watch","_callee5","_context5","deep","JSON","stringify","join","handleBlur","_callee6","_context6","provide","FormItemInjectionKey","renderRightIconContent","arrow","_createVNode","ChevronRightIcon","color","renderLabelContent","Number","renderHelpNode","helpNode","renderExtraNode","_toConsumableArray","for","colonText"],"mappings":"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"}