{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/submit/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { IFormFeedback } from '@formily/core'\nimport { observer } from '@formily/reactive-vue'\nimport { useParentForm } from '@formily/vue'\nimport { ElButton } from 'element-plus'\nimport type { ButtonProps as ElButtonProps } from 'element-plus'\nimport type { FormSubmit } from '../json-schema'\n\nexport interface ISubmitProps extends ElButtonProps {\n  onClick?: (e: MouseEvent) => any\n  onSubmit?: (values: any) => any\n  onSubmitSuccess?: (payload: any) => void\n  onSubmitFailed?: (feedbacks: IFormFeedback[]) => void\n}\n\nexport const Submit = observer(\n  defineComponent<ISubmitProps>({\n    name: 'FSubmit',\n    inheritAttrs: false,\n    props: ['onClick', 'onSubmit', 'onSubmitSuccess', 'onSubmitFailed'],\n    setup(props, { attrs, slots }) {\n      const formRef = useParentForm()\n\n      return () => {\n        const { onClick, onSubmit, onSubmitSuccess, onSubmitFailed } = props\n\n        const form = formRef?.value\n        return h(\n          ElButton,\n          {\n            nativeType: attrs?.submit ? 'button' : 'submit',\n            type: 'primary',\n            ...attrs,\n            loading: (attrs.loading !== undefined\n              ? attrs.loading\n              : form?.submitting) as boolean,\n            onClick: (e: any) => {\n              if (onClick) {\n                if (onClick(e) === false) return\n              }\n              if (onSubmit) {\n                ;(form?.submit as FormSubmit<any>)(\n                  onSubmit,\n                  attrs.scrollToError as boolean\n                )\n                  .then(onSubmitSuccess as (e: any) => void)\n                  .catch(onSubmitFailed as (e: any) => void)\n              }\n            },\n          },\n          slots\n        )\n      }\n    },\n  })\n)\n\nexport default Submit\n"],"names":[],"mappings":";;;;;AAeO,MAAM,MAAS,GAAA,QAAA;AAAA,EACpB,eAA8B,CAAA;AAAA,IAC5B,IAAM,EAAA,SAAA;AAAA,IACN,YAAc,EAAA,KAAA;AAAA,IACd,KAAO,EAAA,CAAC,SAAW,EAAA,UAAA,EAAY,mBAAmB,gBAAgB,CAAA;AAAA,IAClE,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,MAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAE9B,MAAA,OAAO,MAAM;AACX,QAAA,MAAM,EAAE,OAAA,EAAS,QAAU,EAAA,eAAA,EAAiB,gBAAmB,GAAA,KAAA,CAAA;AAE/D,QAAA,MAAM,OAAO,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA;AACtB,QAAO,OAAA,CAAA;AAAA,UACL,QAAA;AAAA,UACA;AAAA,YACE,UAAA,EAAA,CAAY,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,MAAA,IAAS,QAAW,GAAA,QAAA;AAAA,YACvC,IAAM,EAAA,SAAA;AAAA,YACN,GAAG,KAAA;AAAA,YACH,SAAU,KAAM,CAAA,OAAA,KAAY,KACxB,CAAA,GAAA,KAAA,CAAM,UACN,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,UAAA;AAAA,YACV,OAAA,EAAS,CAAC,CAAW,KAAA;AACnB,cAAA,IAAI,OAAS,EAAA;AACX,gBAAI,IAAA,OAAA,CAAQ,CAAC,CAAM,KAAA,KAAA;AAAO,kBAAA,OAAA;AAAA,eAC5B;AACA,cAAA,IAAI,QAAU,EAAA;AACX,gBAAA,CAAC,6BAAM,MAAN,EAAA,IAAA;AAAA,kBAAA,IAAA;AAAA,kBACA,QAAA;AAAA,kBACA,KAAM,CAAA,aAAA;AAAA,iBAAA,CAEL,IAAK,CAAA,eAAmC,CACxC,CAAA,KAAA,CAAM,cAAkC,CAAA,CAAA;AAAA,eAC7C;AAAA,aACF;AAAA,WACF;AAAA,UACA,KAAA;AAAA,SACF,CAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACD,CAAA;AACH;;;;"}