{"version":3,"file":"useCorePopup.mjs","sources":["../../../../../package/hooks/__shared__/useCorePopup.tsx"],"sourcesContent":["import { Component, DefineComponent, VNode, defineComponent, isVNode, ref, watch } from \"vue\";\nimport { ElButton, buttonProps } from \"element-plus\";\nimport { IMiddleware, applyMiddleware, isBool, isFn, isNum, isStr } from \"@formily/shared\";\nimport { isValidElement, resolveComponent, loading } from \"@vue-admin-core/formily/__builtins__\";\nimport { FormButtonGroup } from \"@vue-admin-core/formily\";\nimport { isBoolean } from \"xe-utils\";\n\nexport type PopupFooterProps = {\n  addonAfter?: null | Component | VNode | (() => VNode);\n  addonBefore?: null | Component | VNode | (() => VNode);\n  addonCenter?: null | Component | VNode | (() => VNode);\n  footer?: null | Component | VNode | (() => VNode);\n  cancelText?: string | Component | VNode | (() => VNode);\n  cancelButtonProps?: typeof buttonProps;\n  okText?: string | Component | VNode | (() => VNode);\n  okButtonProps?: typeof buttonProps;\n  onCancel?: (flag: Boolean, fn: () => void) => void;\n  onOK?: (flag: Boolean, fn: () => void) => void;\n  okButtonHidden?: Boolean,\n  cancelButtonHidden?: Boolean\n};\n\nexport type PopupProps = {\n  title?: PopupTitle;\n  loadingText?: string;\n  reject?: () => void;\n  resolve?: () => void;\n} & PopupFooterProps;\n\nexport type PopupTitle = string | number | Component | VNode | (() => VNode);\n\nexport type PopupContent = Component | (() => VNode);\n\nexport interface IPopup<Payload = any, Result = any, OpenProps = any> {\n  forOpen(\n    middleware: IMiddleware<Payload | OpenProps, OpenProps>\n  ): IPopup<Payload, Result, OpenProps>;\n  forConfirm(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n  forCancel(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n  forReset(middleware: IMiddleware<Payload, Result>): IPopup<Payload, Result, OpenProps>;\n  open(props?: OpenProps): Promise<Result>;\n  resolve(props?: Payload): Promise<void>;\n  reject(props?: Payload): Promise<void>;\n  reset(props?: Payload): Promise<void>;\n  close(): void;\n}\n\nexport type UseElPopupResultType<\n  Payload = PopupProps | PopupTitle,\n  Result = PopupProps | PopupTitle,\n  OpenProps = PopupProps | PopupTitle\n> = [IPopup<Payload, Result, OpenProps>, DefineComponent];\n\nexport const isPopupTitle = (props: any) => {\n  return (\n    isNum(props) ||\n    isStr(props) ||\n    isBool(props) ||\n    isValidElement(props) ||\n    isFn(props) ||\n    isVNode(props)\n  );\n};\n\nexport const getPopupProps = (props: any) => {\n  if (isPopupTitle(props)) {\n    return {\n      title: props\n    };\n  } else {\n    return props;\n  }\n};\n\nexport function useCorePopup<\n  Payload = PopupProps | PopupTitle,\n  Result = PopupProps | PopupTitle,\n  OpenProps = PopupProps | PopupTitle\n>(\n  title: PopupProps | PopupTitle,\n  PopupComponent: any,\n  content: PopupContent\n): UseElPopupResultType<Payload, Result, OpenProps> {\n\n  const visible = ref(false);\n  const okLoading = ref(false);\n  const cancelLoading = ref(false);\n  const resetLoading = ref(false);\n  let openMiddlewares: IMiddleware<Payload | OpenProps, OpenProps>[] = [];\n  let confirmMiddlewares: IMiddleware<Payload, Result>[] = [];\n  let cancelMiddlewares: IMiddleware<Payload, Result>[] = [];\n  let resetMiddlewares: IMiddleware<Payload, Result>[] = [];\n\n  const dialogProps = ref<PopupProps>(getPopupProps(title));\n  const initPopupProps = { ...dialogProps.value };\n\n  watch(visible, (value) => {\n    if (!value) {\n      openMiddlewares = [];\n      confirmMiddlewares = [];\n      cancelMiddlewares = [];\n      resetMiddlewares = [];\n    }\n  });\n\n  const dialog = {\n    forOpen: (middleware: IMiddleware<Payload | OpenProps, OpenProps>) => {\n      if (isFn(middleware)) {\n        openMiddlewares.push(middleware);\n      }\n      return dialog;\n    },\n    forConfirm: (middleware: IMiddleware<Payload, Result>) => {\n      if (isFn(middleware)) {\n        confirmMiddlewares.push(middleware);\n      }\n      return dialog;\n    },\n    forCancel: (middleware: IMiddleware<Payload, Result>) => {\n      if (isFn(middleware)) {\n        cancelMiddlewares.push(middleware);\n      }\n      return dialog;\n    },\n    forReset: (middleware: IMiddleware<Payload, Result>) => {\n      if (isFn(middleware)) {\n        resetMiddlewares.push(middleware);\n      }\n      return dialog;\n    },\n    reject: async (props?: Payload) => {\n      cancelLoading.value = true;\n      const flag = await loading(dialogProps.value.loadingText, () => applyMiddleware(props, cancelMiddlewares));\n      cancelLoading.value = false;\n      if (dialogProps.value.onCancel) {\n        dialogProps.value.onCancel(Boolean(flag), () => {\n          dialog.close();\n        });\n      } else {\n        if (isBoolean(flag) && flag === false) return;\n        dialog.close();\n      }\n    },\n    resolve: async (props?: Payload) => {\n      okLoading.value = true;\n      const flag = await applyMiddleware(props, confirmMiddlewares);\n      okLoading.value = false;\n      if (dialogProps.value.onOK) {\n        dialogProps.value?.onOK?.(Boolean(flag), () => {\n          dialog.close();\n        });\n      } else {\n        if (isBoolean(flag) && flag === false) return;\n        dialog.close();\n      }\n    },\n    reset: async (props?: Payload) => {\n      resetLoading.value = true;\n      await applyMiddleware(props, resetMiddlewares);\n      resetLoading.value = false;\n    },\n    beforeOpen: async (props?: Payload) => {\n      const result = await loading(dialogProps.value.loadingText, () =>\n        applyMiddleware(props, openMiddlewares)\n      );\n      return result;\n    },\n    open: async (props: OpenProps) => {\n      const result = await dialog.beforeOpen();\n      dialogProps.value = {\n        ...initPopupProps,\n        ...(props ? getPopupProps(props) : {})\n      };\n      visible.value = true;\n      return result;\n    },\n    close: () => {\n      visible.value = false;\n    }\n  };\n\n\n  const Footer = defineComponent({\n    name: \"PopupFooter\",\n    setup() {\n      return () => {\n        const {\n          cancelButtonProps,\n          cancelText,\n          okButtonProps,\n          okText,\n          addonAfter,\n          addonBefore,\n          addonCenter,\n          cancelButtonHidden,\n          okButtonHidden\n        } = dialogProps.value;\n        return (\n          <FormButtonGroup align=\"right\">\n            {addonBefore}\n            {!cancelButtonHidden && <ElButton\n              {...cancelButtonProps}\n              loading={cancelLoading.value}\n              onClick={(e: any) => {\n                dialog.reject();\n              }}\n            >\n              {cancelText || \"取消\"}\n            </ElButton>}\n            {addonCenter}\n            {!okButtonHidden && <ElButton\n              type=\"primary\"\n              {...okButtonProps}\n              loading={okLoading.value}\n              onClick={(e: any) => {\n                dialog.resolve();\n              }}\n            >\n              {okText || \"确定\"}\n            </ElButton>}\n            {addonAfter}\n          </FormButtonGroup>\n        );\n      };\n    }\n  });\n\n  const ContextHolder = defineComponent({\n    name: \"PopupContextHolder\",\n    setup() {\n      return () => {\n        const { footer = true, title, ...reset } = dialogProps.value;\n        let curestTitle = title;\n        const _slots: any = {\n          default: () => resolveComponent(content)\n        };\n        if (typeof title !== \"string\") {\n          _slots.header = () => resolveComponent(title);\n          curestTitle = \"\";\n        }\n        if (isBool(footer) && footer) {\n          _slots.footer = () => resolveComponent(<Footer {...dialogProps.value} />);\n        }\n        if (isFn(footer) || isValidElement(footer)) {\n          _slots.footer = resolveComponent(footer as any);\n        }\n        return (\n          <PopupComponent\n            {...reset}\n            title={curestTitle}\n            modelValue={visible.value}\n            onUpdate:modelValue={(v: boolean) => (visible.value = v)}\n          >\n            {_slots}\n          </PopupComponent>\n        );\n      };\n    }\n  }) as any;\n\n  return [dialog, ContextHolder];\n}\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","isPopupTitle","props","isNum","isStr","isBool","isValidElement","isFn","isVNode","getPopupProps","title","useCorePopup","PopupComponent","content","visible","ref","okLoading","cancelLoading","resetLoading","openMiddlewares","confirmMiddlewares","cancelMiddlewares","resetMiddlewares","dialogProps","initPopupProps","value","watch","dialog","forOpen","middleware","push","forConfirm","forCancel","forReset","reject","flag","loading","loadingText","applyMiddleware","onCancel","Boolean","close","isBoolean","resolve","onOK","reset","beforeOpen","result","open","Footer","defineComponent","name","setup","cancelButtonProps","cancelText","okButtonProps","okText","addonAfter","addonBefore","addonCenter","cancelButtonHidden","okButtonHidden","_createVNode","FormButtonGroup","default","ElButton","_mergeProps","e","ContextHolder","footer","curestTitle","_slots","resolveComponent","header","v"],"mappings":"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"}