{"version":3,"file":"dialog.mjs","sources":["../../src/dialog/dialog.tsx"],"sourcesContent":["import { CloseIcon } from 'tdesign-icons-vue-next';\nimport { computed, defineComponent, ref } from 'vue';\nimport { get, isString, isObject } from 'lodash-es';\n\nimport TButton, { ButtonProps } from '../button';\nimport TPopup from '../popup';\nimport config from '../config';\nimport props from './props';\nimport { useTNodeJSX, useContent } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { TdDialogProps } from './type';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-dialog`,\n  props,\n  emits: ['update:visible', 'confirm', 'overlay-click', 'cancel', 'close', 'closed'],\n  setup(props, context) {\n    const dialogClass = usePrefixClass('dialog');\n\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n    const isTextStyleBtn = computed(() =>\n      [props?.confirmBtn, props?.cancelBtn, ...(props?.actions || [])].some((item) => get(item, 'variant') === 'text'),\n    );\n\n    const footerClass = computed(() => [\n      `${dialogClass.value}__footer`,\n      {\n        [`${dialogClass.value}__footer--column`]: props.buttonLayout === 'vertical',\n        [`${dialogClass.value}__footer--full`]: isTextStyleBtn.value && get(props.actions, 'length', 0) === 0,\n      },\n    ]);\n\n    const buttonClass = computed(() => [\n      `${dialogClass.value}__button`,\n      {\n        [`${dialogClass.value}__button--${props.buttonLayout}`]: !isTextStyleBtn.value,\n        [`${dialogClass.value}__button--text`]: isTextStyleBtn.value,\n      },\n    ]);\n\n    const rootStyles = computed(() => ({\n      width: isString(props.width) ? props.width : `${props.width}px`,\n    }));\n\n    const emitClose = (e: MouseEvent, trigger: string) => {\n      context.emit('update:visible', false);\n      context.emit('close', { e, trigger });\n    };\n\n    const handleClose = (args: { e: MouseEvent }) => {\n      const { e } = args;\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('close-btn', e).then((allowed) => {\n          if (allowed) emitClose(e, 'close-btn');\n        });\n        return;\n      }\n      emitClose(e, 'close-btn');\n    };\n\n    const handleClosed = () => {\n      context.emit('closed');\n    };\n\n    const confirmLoading = ref(false);\n\n    // 通用的 beforeClose 拦截逻辑\n    const invokeBeforeClose = async (\n      trigger: 'confirm' | 'cancel' | 'overlay' | 'close-btn',\n      e: MouseEvent,\n    ): Promise<boolean> => {\n      const { beforeClose } = props;\n      if (typeof beforeClose === 'function') {\n        const result = beforeClose(trigger, { e });\n        if (result instanceof Promise) {\n          confirmLoading.value = trigger === 'confirm';\n          try {\n            await result;\n            return true;\n          } catch {\n            return false;\n          } finally {\n            confirmLoading.value = false;\n          }\n        }\n      }\n      return true;\n    };\n\n    const handleConfirm = (e: MouseEvent) => {\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('confirm', e).then((allowed) => {\n          if (!allowed) return;\n          context.emit('update:visible', false);\n          context.emit('confirm', { e });\n        });\n        return;\n      }\n      context.emit('update:visible', false);\n      context.emit('confirm', { e });\n    };\n\n    const handleCancel = (e: MouseEvent) => {\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('cancel', e).then((allowed) => {\n          if (!allowed) return;\n          emitClose(e, 'cancel');\n          context.emit('cancel', { e });\n        });\n        return;\n      }\n      emitClose(e, 'cancel');\n      context.emit('cancel', { e });\n    };\n\n    const handleOverlayClick = (args: { e: MouseEvent }) => {\n      const { e } = args;\n      if (!props.closeOnOverlayClick) {\n        return;\n      }\n      if (typeof props.beforeClose === 'function') {\n        invokeBeforeClose('overlay', e).then((allowed) => {\n          if (!allowed) return;\n          emitClose(e, 'overlay');\n          context.emit('overlay-click', { e });\n        });\n        return;\n      }\n      emitClose(e, 'overlay');\n      context.emit('overlay-click', { e });\n    };\n\n    const calcBtn = (btn: TdDialogProps['cancelBtn'] | TdDialogProps['confirmBtn']) => {\n      if (isString(btn)) {\n        return { content: btn };\n      }\n\n      if (isObject(btn)) {\n        return btn;\n      }\n\n      return {};\n    };\n\n    const confirmBtnProps = computed<ButtonProps>(() => ({\n      theme: 'primary',\n      ...calcBtn(props.confirmBtn),\n      loading: confirmLoading.value || (calcBtn(props.confirmBtn) as ButtonProps)?.loading,\n    }));\n\n    const cancelBtnProps = computed<ButtonProps>(() => ({\n      theme: isTextStyleBtn.value ? 'default' : 'light',\n      ...calcBtn(props.cancelBtn),\n    }));\n\n    const actionsBtnProps = computed(() => props.actions?.map((item) => calcBtn(item)));\n\n    const renderButtonNode = (\n      btnType: 'cancelBtn' | 'confirmBtn',\n      btnProps: ButtonProps,\n      handleClick: (e: MouseEvent) => void,\n    ) => {\n      if (actionsBtnProps.value) return null;\n\n      const btnNode = renderTNodeJSX(btnType);\n      if (!btnNode) return null;\n\n      if (context.slots[btnType]) {\n        return btnNode;\n      }\n\n      return <TButton {...btnProps} class={buttonClass.value} onClick={handleClick} />;\n    };\n\n    return () => {\n      const renderTitleNode = () => {\n        const titleNode = renderTNodeJSX('title');\n        if (!titleNode) {\n          return null;\n        }\n\n        return <div class={`${dialogClass.value}__header`}>{titleNode}</div>;\n      };\n      const renderContentNode = () => {\n        const contentNode = renderContent('default', 'content');\n        if (!contentNode) {\n          return null;\n        }\n        return (\n          <div class={`${dialogClass.value}__body`}>\n            <div class={`${dialogClass.value}__body-text`}>{contentNode}</div>\n          </div>\n        );\n      };\n      const renderActionsNode = () => {\n        if (actionsBtnProps.value) {\n          return actionsBtnProps.value.map((item, index) => (\n            <TButton key={index} {...item} class={buttonClass.value} onClick={handleCancel} />\n          ));\n        }\n\n        return renderTNodeJSX('actions');\n      };\n      const renderCancelBtnNode = () => renderButtonNode('cancelBtn', cancelBtnProps.value, handleCancel);\n\n      const renderConfirmBtnNode = () => renderButtonNode('confirmBtn', confirmBtnProps.value, handleConfirm);\n      return (\n        <TPopup\n          class={`${dialogClass.value}__wrapper`}\n          visible={props.visible}\n          placement=\"center\"\n          show-overlay={props.showOverlay}\n          overlay-props={props.overlayProps}\n          prevent-scroll-through={props.preventScrollThrough}\n          destroy-on-close={props.destroyOnClose}\n          z-index={props.zIndex}\n          onClose={handleOverlayClick}\n          onClosed={handleClosed}\n        >\n          <div class={`${dialogClass.value} ${context.attrs.class || ''}`} style={rootStyles.value}>\n            {renderTNodeJSX('top')}\n            {props.closeBtn && (\n              <div class={`${dialogClass.value}__close-btn`}>\n                <CloseIcon onClick={handleClose} />\n              </div>\n            )}\n            <div class={`${dialogClass.value}__content`}>\n              {renderTitleNode()}\n              {renderContentNode()}\n            </div>\n            {renderTNodeJSX('middle')}\n            <div class={footerClass.value}>\n              {renderActionsNode()}\n              {renderCancelBtnNode()}\n              {renderConfirmBtnNode()}\n            </div>\n          </div>\n        </TPopup>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","props","emits","setup","context","dialogClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderContent","useContent","isTextStyleBtn","computed","confirmBtn","cancelBtn","concat","_toConsumableArray","actions","some","item","get","footerClass","value","_defineProperty","buttonLayout","buttonClass","rootStyles","width","isString","emitClose","e","trigger","emit","handleClose","args","beforeClose","invokeBeforeClose","then","allowed","handleClosed","confirmLoading","ref","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","_t","wrap","_context","prev","next","Promise","abrupt","finish","stop","_x","_x2","apply","arguments","handleConfirm","handleCancel","handleOverlayClick","closeOnOverlayClick","calcBtn","btn","content","isObject","confirmBtnProps","_calcBtn","_objectSpread","theme","loading","cancelBtnProps","actionsBtnProps","_props2$actions","map","renderButtonNode","btnType","btnProps","handleClick","btnNode","slots","_createVNode","TButton","_mergeProps","renderTitleNode","titleNode","renderContentNode","contentNode","renderActionsNode","index","renderCancelBtnNode","renderConfirmBtnNode","TPopup","visible","showOverlay","overlayProps","preventScrollThrough","destroyOnClose","zIndex","default","_default","attrs","class","closeBtn","CloseIcon"],"mappings":"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"}