{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/submit/src/index.ts"],"sourcesContent":["import { defineComponent, h, ref } from 'vue'\nimport { ElButton } from 'element-plus'\nimport { useForm } from '@element-plus/hooks'\nimport { isFunction } from '@element-plus/utils'\nimport { submitProps } from './submit'\nimport type { FormContextType } from '@element-plus/hooks'\nimport type { ValidateFieldsError } from 'async-validator'\n\nexport default defineComponent({\n  name: 'ElSubmit',\n  inheritAttrs: false,\n  props: submitProps,\n  setup(props, { attrs, slots }) {\n    const form: FormContextType = useForm()\n    const validateField = form?.validateField\n    const loading = ref<boolean>(false)\n\n    return () => {\n      const { onClick, onSubmit, onSubmitSuccess, onSubmitFailed } = props\n\n      return h(\n        ElButton,\n        {\n          nativeType: 'button',\n          type: 'primary',\n          loading: loading.value,\n          ...attrs,\n          onClick: (e: any) => {\n            if (isFunction(onClick)) {\n              if (onClick(e) === false) return\n            }\n            if (loading.value) return\n            if (onSubmit && validateField) {\n              validateField(\n                undefined,\n                async (valid: boolean, fields?: ValidateFieldsError) => {\n                  try {\n                    if (valid) {\n                      loading.value = true\n                      await onSubmit(form.model ?? {})?.then(onSubmitSuccess)\n                    } else {\n                      throw fields\n                    }\n                  } catch (e) {\n                    onSubmitFailed?.(e as unknown)\n                  } finally {\n                    loading.value = false\n                  }\n                }\n              )\n            }\n          },\n        },\n        slots\n      )\n    }\n  },\n})\n"],"names":["e"],"mappings":";;;;;;AAQA,aAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,WAAA;AAAA,EACP,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,OAAwB,OAAQ,EAAA,CAAA;AACtC,IAAA,MAAM,gBAAgB,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,aAAA,CAAA;AAC5B,IAAM,MAAA,OAAA,GAAU,IAAa,KAAK,CAAA,CAAA;AAElC,IAAA,OAAO,MAAM;AACX,MAAA,MAAM,EAAE,OAAA,EAAS,QAAU,EAAA,eAAA,EAAiB,gBAAmB,GAAA,KAAA,CAAA;AAE/D,MAAO,OAAA,CAAA;AAAA,QACL,QAAA;AAAA,QACA;AAAA,UACE,UAAY,EAAA,QAAA;AAAA,UACZ,IAAM,EAAA,SAAA;AAAA,UACN,SAAS,OAAQ,CAAA,KAAA;AAAA,UACjB,GAAG,KAAA;AAAA,UACH,OAAA,EAAS,CAAC,CAAW,KAAA;AACnB,YAAI,IAAA,UAAA,CAAW,OAAO,CAAG,EAAA;AACvB,cAAI,IAAA,OAAA,CAAQ,CAAC,CAAM,KAAA,KAAA;AAAO,gBAAA,OAAA;AAAA,aAC5B;AACA,YAAA,IAAI,OAAQ,CAAA,KAAA;AAAO,cAAA,OAAA;AACnB,YAAA,IAAI,YAAY,aAAe,EAAA;AAC7B,cAAA,aAAA;AAAA,gBACE,KAAA,CAAA;AAAA,gBACA,OAAO,OAAgB,MAAiC,KAAA;AAnCxE,kBAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAoCkB,kBAAI,IAAA;AACF,oBAAA,IAAI,KAAO,EAAA;AACT,sBAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAChB,sBAAM,OAAA,CAAA,EAAA,GAAA,QAAA,CAAA,CAAS,UAAK,KAAL,KAAA,IAAA,GAAA,EAAA,GAAc,EAAE,CAAA,KAAzB,mBAA4B,IAAK,CAAA,eAAA,CAAA,CAAA,CAAA;AAAA,qBAClC,MAAA;AACL,sBAAM,MAAA,MAAA,CAAA;AAAA,qBACR;AAAA,2BACOA,EAAP,EAAA;AACA,oBAAiBA,cAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAAA,CAAAA,EAAAA,CAAAA,CAAAA;AAAA,mBACjB,SAAA;AACA,oBAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,mBAClB;AAAA,iBACF;AAAA,eACF,CAAA;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,QACA,KAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}