{"version":3,"file":"popconfirm.mjs","sources":["../../src/popconfirm/popconfirm.tsx"],"sourcesContent":["import { defineComponent, computed, toRefs } from 'vue';\n\nimport { useConfig, usePrefixClass } from '../hooks/useConfig';\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\nimport { useContent, useTNodeJSX, useTNodeDefault } from '../hooks/tnode';\nimport useVModel from '../hooks/useVModel';\nimport { useAction } from '../dialog/hooks';\n\nimport type { PopconfirmVisibleChangeContext } from './type';\nimport type { TdDialogProps } from '../dialog/type';\nexport default defineComponent({\n  name: 'XPopconfirm',\n  props,\n\n  setup(props) {\n    const { globalConfig } = useConfig('popconfirm');\n    const COMPONENT_NAME = usePrefixClass('popconfirm');\n\n    const { visible, modelValue } = toRefs(props);\n    const [innerVisible, setInnerVisible] = useVModel(\n      visible,\n      modelValue,\n      props.defaultVisible,\n      props.onVisibleChange,\n      'visible',\n    );\n\n    const confirmBtnAction = (e: MouseEvent) => {\n      props.onConfirm?.({ e });\n      setInnerVisible(false, { e, trigger: 'confirm' });\n    };\n\n    const cancelBtnAction = (e: MouseEvent) => {\n      props.onCancel?.({ e });\n      setInnerVisible(false, { e, trigger: 'cancel' });\n    };\n\n    const { getConfirmBtn, getCancelBtn } = useAction({ confirmBtnAction, cancelBtnAction });\n\n    const renderTNodeJSX = useTNodeJSX();\n    const innerPopupProps = computed(() => {\n      return {\n        showArrow: props.showArrow,\n        overlayClassName: COMPONENT_NAME.value,\n        trigger: 'click' as PopupProps['trigger'],\n        destroyOnClose: props.destroyOnClose,\n        placement: props.placement,\n        ...(props.popupProps as PopupProps),\n      };\n    });\n\n    const renderTNodeDefault = useTNodeDefault();\n    const renderContent = () => {\n      const cancelBtn = getCancelBtn({\n        cancelBtn: props.cancelBtn as TdDialogProps['cancelBtn'],\n        globalCancel: globalConfig.value.cancel,\n        className: `${COMPONENT_NAME.value}__cancel`,\n        size: 'small',\n      });\n\n      const confirmBtn = getConfirmBtn({\n        theme: props.theme,\n        confirmBtn: props.confirmBtn as TdDialogProps['confirmBtn'],\n        globalConfirm: globalConfig.value.confirm,\n        globalConfirmBtnTheme: globalConfig.value.confirmBtnTheme,\n        className: `${COMPONENT_NAME.value}__confirm`,\n        size: 'small',\n      });\n\n      const renderIcon = () => {\n        const Icon:any = {\n          default: <icon-ri-information-fill />,\n          warning: <icon-ri-error-warning-fill />,\n          danger: <icon-ri-error-warning-fill />,\n        }[props.theme];\n        const theme = props.theme || 'default';\n        return renderTNodeDefault('icon', <Icon class={`${COMPONENT_NAME.value}__icon--${theme}`} />);\n      };\n\n      return (\n        <div class={`${COMPONENT_NAME.value}__content`}>\n          <div class={`${COMPONENT_NAME.value}__body`}>\n            {renderIcon()}\n            <div class={`${COMPONENT_NAME.value}__inner`}>{renderTNodeJSX('content')}</div>\n          </div>\n          {Boolean(cancelBtn || confirmBtn) && (\n            <div class={`${COMPONENT_NAME.value}__buttons`}>\n              {cancelBtn}\n              {confirmBtn}\n            </div>\n          )}\n        </div>\n      );\n    };\n\n    const onPopupVisibleChange = (val: boolean, context: PopupVisibleChangeContext) => {\n      setInnerVisible(val, context as PopconfirmVisibleChangeContext);\n    };\n\n    const renderTNodeContent = useContent();\n\n    return () => (\n      <Popup\n        visible={innerVisible.value}\n        {...innerPopupProps.value}\n        onVisibleChange={onPopupVisibleChange}\n        v-slots={{\n          content: renderContent,\n        }}\n      >\n        {renderTNodeContent('default', 'triggerElement')}\n      </Popup>\n    );\n  },\n});\n"],"names":["name","props","innerVisible","setInnerVisible","e","trigger","confirmBtnAction","cancelBtnAction","globalCancel","className","size","globalConfirm","globalConfirmBtnTheme","_resolveComponent","warning","_createVNode","_mergeProps","content"],"mappings":"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"}