{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/form/index.ts"],"sourcesContent":["import { defineComponent } from 'vue'\nimport { Form as FormType, IFormFeedback } from '@formily/core'\nimport { FormProvider as _FormProvider, h, useForm } from '@formily/vue'\nimport { PreviewText } from '../preview-text'\nimport { FormLayout, FormLayoutProps } from '../form-layout'\nimport type { Component, SetupContext, VNode } from 'vue'\n\nconst FormProvider = _FormProvider as unknown as Component\n\nexport interface FormProps extends FormLayoutProps {\n  form?: FormType\n  component?: Component\n  previewTextPlaceholder: string | (() => VNode)\n  onAutoSubmit?: (values: any) => any\n  onAutoSubmitFailed?: (feedbacks: IFormFeedback[]) => void\n}\n\nexport const Form = defineComponent<FormProps>({\n  name: 'FForm',\n  props: [\n    'form',\n    'component',\n    'previewTextPlaceholder',\n    'onAutoSubmit',\n    'onAutoSubmitFailed',\n  ],\n  setup(props, { attrs, slots }: SetupContext) {\n    const top = useForm()\n\n    return () => {\n      const {\n        form,\n        component = 'form',\n        onAutoSubmit = attrs.onAutoSubmit,\n        onAutoSubmitFailed = attrs.onAutoSubmitFailed,\n        previewTextPlaceholder = slots?.previewTextPlaceholder,\n      } = props\n\n      const renderContent = (form: FormType) => {\n        return h(\n          PreviewText.Placeholder,\n          {\n            value: previewTextPlaceholder,\n          },\n          {\n            default: () => [\n              h(\n                FormLayout,\n                { ...attrs },\n                {\n                  default: () => [\n                    h(\n                      component,\n                      {\n                        onSubmit: (e: Event) => {\n                          e?.stopPropagation?.()\n                          e?.preventDefault?.()\n                          form\n                            .submit(onAutoSubmit as (e: any) => void)\n                            .catch(onAutoSubmitFailed as (e: any) => void)\n                        },\n                      },\n                      slots\n                    ),\n                  ],\n                }\n              ),\n            ],\n          }\n        )\n      }\n\n      if (form) {\n        return h(\n          FormProvider,\n          { form },\n          {\n            default: () => renderContent(form),\n          }\n        )\n      }\n\n      if (!top.value) throw new Error('must pass form instance by createForm')\n\n      return renderContent(top.value)\n    }\n  },\n})\n\nexport default Form\n"],"names":["_FormProvider","form"],"mappings":";;;;;AAOA,MAAM,YAAe,GAAAA,cAAA,CAAA;AAUd,MAAM,OAAO,eAA2B,CAAA;AAAA,EAC7C,IAAM,EAAA,OAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,MAAA;AAAA,IACA,WAAA;AAAA,IACA,wBAAA;AAAA,IACA,cAAA;AAAA,IACA,oBAAA;AAAA,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAuB,EAAA;AAC3C,IAAA,MAAM,MAAM,OAAQ,EAAA,CAAA;AAEpB,IAAA,OAAO,MAAM;AACX,MAAM,MAAA;AAAA,QACJ,IAAA;AAAA,QACA,SAAY,GAAA,MAAA;AAAA,QACZ,eAAe,KAAM,CAAA,YAAA;AAAA,QACrB,qBAAqB,KAAM,CAAA,kBAAA;AAAA,QAC3B,yBAAyB,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,sBAAA;AAAA,OAC9B,GAAA,KAAA,CAAA;AAEJ,MAAM,MAAA,aAAA,GAAgB,CAACC,KAAmB,KAAA;AACxC,QAAO,OAAA,CAAA;AAAA,UACL,WAAY,CAAA,WAAA;AAAA,UACZ;AAAA,YACE,KAAO,EAAA,sBAAA;AAAA,WACT;AAAA,UACA;AAAA,YACE,SAAS,MAAM;AAAA,cACb,CAAA;AAAA,gBACE,UAAA;AAAA,gBACA,EAAE,GAAG,KAAM,EAAA;AAAA,gBACX;AAAA,kBACE,SAAS,MAAM;AAAA,oBACb,CAAA;AAAA,sBACE,SAAA;AAAA,sBACA;AAAA,wBACE,QAAA,EAAU,CAAC,CAAa,KAAA;AAtDhD,0BAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAuD0B,0BAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,eAAH,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AACA,0BAAA,CAAA,EAAA,GAAA,CAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,CAAA,CAAG,cAAH,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AACA,0BAAAA,KACG,CAAA,MAAA,CAAO,YAAgC,CAAA,CACvC,MAAM,kBAAsC,CAAA,CAAA;AAAA,yBACjD;AAAA,uBACF;AAAA,sBACA,KAAA;AAAA,qBACF;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF,CAAA;AAAA,OACF,CAAA;AAEA,MAAA,IAAI,IAAM,EAAA;AACR,QAAO,OAAA,CAAA;AAAA,UACL,YAAA;AAAA,UACA,EAAE,IAAK,EAAA;AAAA,UACP;AAAA,YACE,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,WACnC;AAAA,SACF,CAAA;AAAA,OACF;AAEA,MAAA,IAAI,CAAC,GAAI,CAAA,KAAA;AAAO,QAAM,MAAA,IAAI,MAAM,uCAAuC,CAAA,CAAA;AAEvE,MAAO,OAAA,aAAA,CAAc,IAAI,KAAK,CAAA,CAAA;AAAA,KAChC,CAAA;AAAA,GACF;AACF,CAAC;;;;"}