{"version":3,"file":"popconfirm.mjs","sources":["../../../components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { defineComponent, computed, toRefs } from 'vue';\nimport {\n  InfoCircleFilledIcon as TdInfoCircleFilledIcon,\n  ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\n\nimport {\n  useConfig,\n  useVModel,\n  useContent,\n  useTNodeJSX,\n  useGlobalIcon,\n  usePrefixClass,\n  useTNodeDefault,\n} from '@tdesign/shared-hooks';\n\nimport Popup, { PopupProps, PopupVisibleChangeContext } from '../popup/index';\nimport props from './props';\n\nimport { useAction } from '../dialog/hooks';\n\nimport type { PopconfirmVisibleChangeContext } from './type';\nimport type { TdDialogProps } from '../dialog/type';\nexport default defineComponent({\n  name: 'TPopconfirm',\n  props,\n  setup(props) {\n    const { globalConfig } = useConfig('popconfirm');\n    const COMPONENT_NAME = usePrefixClass('popconfirm');\n    const { InfoCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n      InfoCircleFilledIcon: TdInfoCircleFilledIcon,\n      ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n    });\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 = {\n          default: InfoCircleFilledIcon,\n          warning: ErrorCircleFilledIcon,\n          danger: ErrorCircleFilledIcon,\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":["defineComponent","name","props","setup","_useConfig","useConfig","globalConfig","COMPONENT_NAME","usePrefixClass","_useGlobalIcon","useGlobalIcon","InfoCircleFilledIcon","TdInfoCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","_toRefs","toRefs","visible","modelValue","_useVModel","useVModel","defaultVisible","onVisibleChange","_useVModel2","_slicedToArray","innerVisible","setInnerVisible","confirmBtnAction","e","_props2$onConfirm","onConfirm","trigger","cancelBtnAction","_props2$onCancel","onCancel","_useAction","useAction","getConfirmBtn","getCancelBtn","renderTNodeJSX","useTNodeJSX","innerPopupProps","computed","_objectSpread","showArrow","overlayClassName","value","destroyOnClose","placement","popupProps","renderTNodeDefault","useTNodeDefault","renderContent","cancelBtn","globalCancel","cancel","className","concat","size","confirmBtn","theme","globalConfirm","confirm","globalConfirmBtnTheme","confirmBtnTheme","renderIcon","Icon","warning","danger","_createVNode","Boolean","onPopupVisibleChange","val","context","renderTNodeContent","useContent","Popup","_mergeProps","_default","content"],"mappings":"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"}