{"version":3,"file":"useFormilyDialog.mjs","sources":["../../../../../package/hooks/formily/useFormilyDialog.tsx"],"sourcesContent":["import { Component, VNode, defineComponent, h } from \"vue\";\nimport { Form, IFormProps } from \"@formily/core\";\nimport { FormProvider, FragmentComponent, createForm } from \"@formily/vue\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { DialogContent, DialogProps, DialogTitle } from \"../elementPlus/useElDialog\";\nimport { Reset, resetProps } from \"@vue-admin-core/formily\";\nimport { useCorePopup, getPopupProps } from \"../__shared__/useCorePopup\";\nimport { ElDialog } from \"element-plus\";\n\nexport type FormilyDialogProps = DialogProps & {\n  resetText?: string | Component | VNode | (() => VNode);\n  resetButtonProps?: typeof resetProps;\n  onReset?: (e: any) => void;\n};\nexport function useFormilyDialog(\n  title: FormilyDialogProps | DialogTitle,\n  content: DialogContent,\n  options?: IFormProps<object>\n) {\n  const form = createForm(options);\n  const props = getPopupProps(title);\n  const [dialog, ContextHolder] = useCorePopup<Form<object>, Form<object>>(\n    {\n      okText: \"提交\",\n      addonCenter: h(\n        Reset,\n        {\n          ...props?.resetButtonProps,\n          onClick: (e: any) => {\n            props?.onReset?.(e);\n            dialog.reset(form);\n          }\n        },\n        {\n          default: () => props?.resetText || \"重置\"\n        }\n      ),\n      ...props\n    },\n    ElDialog,\n    content\n  );\n  const _originResolve = dialog.resolve.bind(dialog);\n  const _originReject = dialog.reject.bind(dialog);\n  const _originOpen = dialog.open.bind(dialog);\n  const _originBeforeOpen = (dialog as any).beforeOpen.bind(dialog);\n  dialog.resolve = async () => {\n    _originResolve(form);\n  };\n  dialog.reject = async () => {\n    _originReject(form);\n  };\n  (dialog as any).beforeOpen = async () => {\n    return _originBeforeOpen(form);\n  };\n  dialog.open = async (props) => {\n    return _originOpen(props);\n  };\n\n  const Component = observer(\n    defineComponent({\n      setup() {\n        return () => (\n          <FragmentComponent>\n            <FormProvider form={form}>\n              <ContextHolder />\n            </FormProvider>\n          </FragmentComponent>\n        );\n      }\n    })\n  );\n\n  return [dialog, Component];\n}\n"],"names":["useFormilyDialog","title","content","options","form","createForm","props","getPopupProps","dialog","ContextHolder","useCorePopup","okText","addonCenter","h","Reset","resetButtonProps","onClick","e","onReset","reset","default","resetText","ElDialog","_originResolve","resolve","bind","_originReject","reject","_originOpen","open","_originBeforeOpen","beforeOpen","Component","observer","defineComponent","setup","_createVNode","FragmentComponent","FormProvider"],"mappings":";;;;;;;;AAcgBA,SAAAA,gBAAAA,CACdC,KACAC,EAAAA,OAAAA,EACAC,OACA,EAAA;AACA,EAAMC,MAAAA,IAAAA,GAAOC,WAAWF,OAAO,CAAA,CAAA;AAC/B,EAAMG,MAAAA,KAAAA,GAAQC,cAAcN,KAAK,CAAA,CAAA;AACjC,EAAA,MAAM,CAACO,MAAAA,EAAQC,aAAa,CAAA,GAAIC,YAC9B,CAAA;AAAA,IACEC,MAAQ,EAAA,cAAA;AAAA,IACRC,WAAAA,EAAaC,EACXC,KACA,EAAA;AAAA,MACE,GAAGR,KAAOS,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,gBAAAA;AAAAA,MACVC,SAAUC,CAAW,CAAA,KAAA;;AACnBX,QAAAA,CAAAA,EAAAA,GAAAA,KAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAOY,YAAPZ,IAAiBW,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,CAAAA;AACjBT,QAAAA,MAAAA,CAAOW,MAAMf,IAAI,CAAA,CAAA;AAAA,OACnB;AAAA,KAEF,EAAA;AAAA,MACEgB,OAAAA,EAASA,MAAMd,CAAAA,KAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAAA,CAAOe,SAAa,KAAA,cAAA;AAAA,KAEvC,CAAA;AAAA,IACA,GAAGf,KAAAA;AAAAA,GACL,EACAgB,UACApB,OACF,CAAA,CAAA;AACA,EAAA,MAAMqB,cAAiBf,GAAAA,MAAAA,CAAOgB,OAAQC,CAAAA,IAAAA,CAAKjB,MAAM,CAAA,CAAA;AACjD,EAAA,MAAMkB,aAAgBlB,GAAAA,MAAAA,CAAOmB,MAAOF,CAAAA,IAAAA,CAAKjB,MAAM,CAAA,CAAA;AAC/C,EAAA,MAAMoB,WAAcpB,GAAAA,MAAAA,CAAOqB,IAAKJ,CAAAA,IAAAA,CAAKjB,MAAM,CAAA,CAAA;AAC3C,EAAA,MAAMsB,iBAAqBtB,GAAAA,MAAAA,CAAeuB,UAAWN,CAAAA,IAAAA,CAAKjB,MAAM,CAAA,CAAA;AAChEA,EAAAA,MAAAA,CAAOgB,UAAU,YAAY;AAC3BD,IAAAA,cAAAA,CAAenB,IAAI,CAAA,CAAA;AAAA,GACrB,CAAA;AACAI,EAAAA,MAAAA,CAAOmB,SAAS,YAAY;AAC1BD,IAAAA,aAAAA,CAActB,IAAI,CAAA,CAAA;AAAA,GACpB,CAAA;AACCI,EAAAA,MAAAA,CAAeuB,aAAa,YAAY;AACvC,IAAA,OAAOD,kBAAkB1B,IAAI,CAAA,CAAA;AAAA,GAC/B,CAAA;AACAI,EAAOqB,MAAAA,CAAAA,IAAAA,GAAO,OAAOvB,MAAU,KAAA;AAC7B,IAAA,OAAOsB,YAAYtB,MAAK,CAAA,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAM0B,MAAAA,SAAAA,GAAYC,SAChBC,eAAgB,CAAA;AAAA,IACdC,KAAQ,GAAA;AACN,MAAO,OAAA,MAAAC,WAAAC,CAAAA,iBAAAA,EAAA,IAAA,EAAA;AAAA,QAAAjB,OAAAA,EAAAA,MAAAgB,CAAAA,WAAAA,CAAAE,YAAA,EAAA;AAAA,UAAA,MAEiBlC,EAAAA,IAAAA;AAAAA,SAAI,EAAA;AAAA,UAAAgB,SAAAA,MAAAgB,CAAAA,YAAA3B,aAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,SAAA,CAAA,CAAA;AAAA,OAI3B,CAAA,CAAA;AAAA,KACH;AAAA,GACD,CACH,CAAA,CAAA;AAEA,EAAO,OAAA,CAACD,QAAQwB,SAAS,CAAA,CAAA;AAC3B;;;;"}