{"version":3,"file":"confirm.mjs","sources":["../../../../../../packages/components/modal/src/confirm.tsx"],"sourcesContent":["import type { ConfigUpdate, ModalFuncProps } from './interface';\nimport { omit, triggerVNodeUpdate } from '@antdv/utils';\nimport { createVNode, render as vueRender } from 'vue';\nimport ConfigProvider from '../../config-provider';\nimport { globalConfigForApi } from '../../config-provider/src/config';\n\nimport ConfirmDialog from './ConfirmDialog';\nimport destroyFns from './destroyFns';\nimport { getConfirmLocale } from './locale';\n\nfunction confirm(config: ModalFuncProps) {\n  const container = document.createDocumentFragment();\n  let currentConfig = {\n    ...omit(config, ['parentContext', 'appContext']),\n    close,\n    open: true,\n  } as any;\n  let confirmDialogInstance = null;\n  function destroy(...args: any[]) {\n    if (confirmDialogInstance) {\n      // destroy\n      vueRender(null, container as any);\n      confirmDialogInstance = null;\n    }\n    const triggerCancel = args.some(param => param && param.triggerCancel);\n    if (config.onCancel && triggerCancel)\n      config.onCancel(() => {}, ...args.slice(1));\n\n    for (let i = 0; i < destroyFns.length; i++) {\n      const fn = destroyFns[i];\n      if (fn === close) {\n        destroyFns.splice(i, 1);\n        break;\n      }\n    }\n  }\n\n  function close(this: typeof close, ...args: any[]) {\n    currentConfig = {\n      ...currentConfig,\n      open: false,\n      afterClose: () => {\n        if (typeof config.afterClose === 'function')\n          config.afterClose();\n\n        destroy.apply(this, args);\n      },\n    };\n    // Legacy support\n    if (currentConfig.visible)\n      delete currentConfig.visible;\n    update(currentConfig);\n  }\n\n  function update(configUpdate: ConfigUpdate) {\n    if (typeof configUpdate === 'function') {\n      currentConfig = configUpdate(currentConfig);\n    } else {\n      currentConfig = {\n        ...currentConfig,\n        ...configUpdate,\n      };\n    }\n    if (confirmDialogInstance)\n      triggerVNodeUpdate(confirmDialogInstance, currentConfig, container);\n  }\n\n  const Wrapper = (p: ModalFuncProps) => {\n    const global = globalConfigForApi;\n    const rootPrefixCls = global.prefixCls;\n    const prefixCls = p.prefixCls || `${rootPrefixCls}-modal`;\n    const iconPrefixCls = global.iconPrefixCls;\n    const runtimeLocale = getConfirmLocale();\n    return (\n      <ConfigProvider {...(global as any)} prefixCls={rootPrefixCls}>\n        <ConfirmDialog\n          {...p}\n          rootPrefixCls={rootPrefixCls}\n          prefixCls={prefixCls}\n          iconPrefixCls={iconPrefixCls}\n          locale={runtimeLocale}\n          cancelText={p.cancelText || runtimeLocale.cancelText}\n        >\n        </ConfirmDialog>\n      </ConfigProvider>\n    );\n  };\n  function render(props: ModalFuncProps) {\n    const vm = createVNode(Wrapper, { ...props });\n    vm.appContext = config.parentContext || config.appContext || vm.appContext;\n    vueRender(vm, container as any);\n    return vm;\n  }\n\n  confirmDialogInstance = render(currentConfig);\n  destroyFns.push(close);\n  return {\n    destroy: close,\n    update,\n  };\n}\n\nexport function withWarn(props: ModalFuncProps): ModalFuncProps {\n  return {\n    ...props,\n    type: 'warning',\n  };\n}\n\nexport function withInfo(props: ModalFuncProps): ModalFuncProps {\n  return {\n    ...props,\n    type: 'info',\n  };\n}\n\nexport function withSuccess(props: ModalFuncProps): ModalFuncProps {\n  return {\n    ...props,\n    type: 'success',\n  };\n}\n\nexport function withError(props: ModalFuncProps): ModalFuncProps {\n  return {\n    ...props,\n    type: 'error',\n  };\n}\n\nexport function withConfirm(props: ModalFuncProps): ModalFuncProps {\n  return {\n    ...props,\n    type: 'confirm',\n  };\n}\n\nexport default confirm;\n"],"names":["confirm","config","container","document","createDocumentFragment","currentConfig","omit","close","open","confirmDialogInstance","destroy","args","vueRender","triggerCancel","some","param","onCancel","slice","i","destroyFns","length","fn","splice","afterClose","apply","visible","update","configUpdate","triggerVNodeUpdate","Wrapper","p","global","globalConfigForApi","rootPrefixCls","prefixCls","iconPrefixCls","runtimeLocale","getConfirmLocale","_createVNode","ConfigProvider","default","ConfirmDialog","cancelText","render","props","vm","createVNode","appContext","parentContext","push","withWarn","type","withInfo","withSuccess","withError","withConfirm"],"mappings":"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"}