{"version":3,"file":"Tooltip.mjs","sources":["../../../../../../packages/components/tooltip/src/Tooltip.tsx"],"sourcesContent":["import type { CSSProperties, SlotsType } from 'vue';\nimport type { TooltipProps } from './props';\nimport {\n  classNames,\n  cloneElement,\n  devWarning,\n  filterEmpty,\n  firstNotUndefined,\n  getPlacements,\n  getStyle,\n  initDefaultProps,\n  isFragment,\n  isValidElement,\n  raf,\n} from '@antdv/utils';\nimport { getTransitionName } from '@antdv/vue-components/transition';\nimport { VcTooltip } from '@antdv/vue-components/vc-tooltip';\nimport { computed, defineComponent, ref, watch } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport { tooltipProps } from './props';\nimport { parseColor } from './util';\n\n// https://github.com/react-component/tooltip\n// https://github.com/yiminghe/dom-align\n\nfunction splitObject<T extends CSSProperties>(obj: T, keys: Array<keyof T>): Record<'picked' | 'omitted', T> {\n  const picked: T = {} as T;\n  const omitted: T = { ...obj };\n  keys.forEach((key) => {\n    if (obj && key in obj) {\n      picked[key] = obj[key];\n      delete omitted[key];\n    }\n  });\n  return { picked, omitted };\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ATooltip',\n  inheritAttrs: false,\n  props: initDefaultProps(tooltipProps(), {\n    trigger: 'hover',\n    align: {},\n    placement: 'top',\n    mouseEnterDelay: 0.1,\n    mouseLeaveDelay: 0.1,\n    arrowPointAtCenter: false,\n    autoAdjustOverflow: true,\n  }),\n  slots: Object as SlotsType<{\n    title?: any\n    default?: any\n  }>,\n  // emits: ['update:visible', 'visibleChange'],\n  setup(props, { slots, emit, attrs, expose }) {\n    if (process.env.NODE_ENV !== 'production') {\n      [\n        ['visible', 'open'],\n        ['onVisibleChange', 'onOpenChange'],\n      ].forEach(([deprecatedName, newName]) => {\n        devWarning(\n          props[deprecatedName] === undefined,\n          'Tooltip',\n          `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`,\n        );\n      });\n    }\n\n    const { prefixCls, getPopupContainer, direction, rootPrefixCls } = useConfigInject(\n      'tooltip',\n      props,\n    );\n    const mergedOpen = computed(() => props.open ?? props.visible);\n    const innerOpen = ref(firstNotUndefined([props.open, props.visible]));\n\n    const tooltip = ref();\n\n    let rafId: any;\n    watch(mergedOpen, (val) => {\n      raf.cancel(rafId);\n      rafId = raf(() => {\n        innerOpen.value = !!val;\n      });\n    });\n    const isNoTitle = () => {\n      const title = props.title ?? slots.title;\n      return !title && title !== 0;\n    };\n\n    const handleVisibleChange = (val: boolean) => {\n      const noTitle = isNoTitle();\n      if (mergedOpen.value === undefined)\n        innerOpen.value = noTitle ? false : val;\n\n      if (!noTitle) {\n        emit('update:visible', val);\n        emit('visibleChange', val);\n        emit('update:open', val);\n        emit('openChange', val);\n      }\n    };\n\n    const getPopupDomNode = () => {\n      return tooltip.value.getPopupDomNode();\n    };\n\n    expose({\n      getPopupDomNode,\n      open: innerOpen,\n      forcePopupAlign: () => tooltip.value?.forcePopupAlign(),\n    });\n\n    const tooltipPlacements = computed(() => {\n      const { builtinPlacements, autoAdjustOverflow, arrow, arrowPointAtCenter } = props;\n      let mergedArrowPointAtCenter = arrowPointAtCenter;\n\n      if (typeof arrow === 'object')\n        mergedArrowPointAtCenter = arrow.pointAtCenter ?? arrowPointAtCenter;\n\n      return (\n        builtinPlacements\n        || getPlacements({\n          arrowPointAtCenter: mergedArrowPointAtCenter,\n          autoAdjustOverflow,\n        })\n      );\n    });\n    const isTrueProps = (val: boolean | '') => {\n      return val || val === '';\n    };\n    const getDisabledCompatibleChildren = (ele: any) => {\n      const elementType = ele.type as any;\n      if (typeof elementType === 'object' && ele.props) {\n        if (\n          ((elementType.__ANT_BUTTON === true || elementType === 'button')\n            && isTrueProps(ele.props.disabled))\n          || (elementType.__ANT_SWITCH === true\n            && (isTrueProps(ele.props.disabled) || isTrueProps(ele.props.loading)))\n          || (elementType.__ANT_RADIO === true && isTrueProps(ele.props.disabled))\n        ) {\n          // Pick some layout related style properties up to span\n          // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n          const { picked, omitted } = splitObject(getStyle(ele), [\n            'position',\n            'left',\n            'right',\n            'top',\n            'bottom',\n            'float',\n            'display',\n            'zIndex',\n          ]);\n          const spanStyle: CSSProperties = {\n            display: 'inline-block', // default inline-block is important\n            ...picked,\n            cursor: 'not-allowed',\n            lineHeight: 1, // use the true height of child nodes\n            width: ele.props && ele.props.block ? '100%' : undefined,\n          };\n          const buttonStyle: CSSProperties = {\n            ...omitted,\n            pointerEvents: 'none',\n          };\n          const child = cloneElement(\n            ele,\n            {\n              style: buttonStyle,\n            },\n            true,\n          );\n          return (\n            <span style={spanStyle} class={`${prefixCls.value}-disabled-compatible-wrapper`}>\n              {child}\n            </span>\n          );\n        }\n      }\n      return ele;\n    };\n\n    const getOverlay = () => {\n      return props.title ?? slots.title?.();\n    };\n\n    const onPopupAlign = (domNode: HTMLElement, align: any) => {\n      const placements = tooltipPlacements.value;\n      // 当前返回的位置\n      const placement = Object.keys(placements).find(\n        key =>\n          placements[key].points[0] === align.points?.[0]\n          && placements[key].points[1] === align.points?.[1],\n      );\n      if (placement) {\n        // 根据当前坐标设置动画点\n        const rect = domNode.getBoundingClientRect();\n        const transformOrigin = {\n          top: '50%',\n          left: '50%',\n        };\n        if (placement.includes('top') || placement.includes('Bottom'))\n          transformOrigin.top = `${rect.height - align.offset[1]}px`;\n        else if (placement.includes('Top') || placement.includes('bottom'))\n          transformOrigin.top = `${-align.offset[1]}px`;\n\n        if (placement.includes('left') || placement.includes('Right'))\n          transformOrigin.left = `${rect.width - align.offset[0]}px`;\n        else if (placement.includes('right') || placement.includes('Left'))\n          transformOrigin.left = `${-align.offset[0]}px`;\n\n        domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\n      }\n    };\n    const colorInfo = computed(() => parseColor(prefixCls.value, props.color));\n    const injectFromPopover = computed(() => (attrs as any)['data-popover-inject']);\n    const [wrapSSR, hashId] = useStyle(\n      prefixCls,\n      computed(() => !injectFromPopover.value),\n    );\n    return () => {\n      const { openClassName, overlayClassName, overlayStyle, overlayInnerStyle } = props;\n      let children = filterEmpty(slots.default?.()) ?? null;\n      children = children.length === 1 ? children[0] : children;\n\n      let tempVisible = innerOpen.value;\n      // Hide tooltip when there is no title\n      if (mergedOpen.value === undefined && isNoTitle())\n        tempVisible = false;\n\n      if (!children)\n        return null;\n\n      const child = getDisabledCompatibleChildren(\n        isValidElement(children) && !isFragment(children) ? children : <span>{children}</span>,\n      );\n      const childCls = classNames({\n        [openClassName || `${prefixCls.value}-open`]: true,\n        [child.props && child.props.class]: child.props && child.props.class,\n      });\n      const customOverlayClassName = classNames(\n        overlayClassName,\n        {\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n\n        colorInfo.value.className,\n        hashId.value,\n      );\n      const formattedOverlayInnerStyle = {\n        ...colorInfo.value.overlayStyle,\n        ...overlayInnerStyle,\n      };\n      const arrowContentStyle = colorInfo.value.arrowStyle;\n      const vcTooltipProps = {\n        ...attrs,\n        ...(props as TooltipProps),\n        prefixCls: prefixCls.value,\n        arrow: !!props.arrow,\n        getPopupContainer: getPopupContainer?.value,\n        builtinPlacements: tooltipPlacements.value,\n        visible: tempVisible,\n        ref: tooltip,\n        overlayClassName: customOverlayClassName,\n        overlayStyle: { ...arrowContentStyle, ...overlayStyle },\n        overlayInnerStyle: formattedOverlayInnerStyle,\n        onVisibleChange: handleVisibleChange,\n        onPopupAlign,\n        transitionName: getTransitionName(\n          rootPrefixCls.value,\n          'zoom-big-fast',\n          props.transitionName,\n        ),\n      };\n\n      return wrapSSR(\n        <VcTooltip\n          {...vcTooltipProps}\n          v-slots={{\n            arrowContent: () => <span class={`${prefixCls.value}-arrow-content`}></span>,\n            overlay: getOverlay,\n          }}\n        >\n          {innerOpen.value ? cloneElement(child, { class: childCls }) : child}\n        </VcTooltip>,\n      );\n    };\n  },\n});\n"],"names":["splitObject","obj","keys","picked","omitted","forEach","key","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","tooltipProps","trigger","align","placement","mouseEnterDelay","mouseLeaveDelay","arrowPointAtCenter","autoAdjustOverflow","slots","Object","setup","emit","attrs","expose","process","env","NODE_ENV","deprecatedName","newName","devWarning","undefined","prefixCls","getPopupContainer","direction","rootPrefixCls","useConfigInject","mergedOpen","computed","open","visible","innerOpen","ref","firstNotUndefined","tooltip","rafId","watch","val","raf","cancel","value","isNoTitle","title","handleVisibleChange","noTitle","getPopupDomNode","forcePopupAlign","tooltipPlacements","builtinPlacements","arrow","mergedArrowPointAtCenter","pointAtCenter","getPlacements","isTrueProps","getDisabledCompatibleChildren","ele","elementType","type","__ANT_BUTTON","disabled","__ANT_SWITCH","loading","__ANT_RADIO","getStyle","spanStyle","display","cursor","lineHeight","width","block","buttonStyle","pointerEvents","child","cloneElement","style","_createVNode","getOverlay","onPopupAlign","domNode","placements","find","points","rect","getBoundingClientRect","transformOrigin","top","left","includes","height","offset","colorInfo","parseColor","color","injectFromPopover","wrapSSR","hashId","useStyle","openClassName","overlayClassName","overlayStyle","overlayInnerStyle","children","filterEmpty","default","length","tempVisible","isValidElement","isFragment","childCls","classNames","class","customOverlayClassName","className","formattedOverlayInnerStyle","arrowContentStyle","arrowStyle","vcTooltipProps","onVisibleChange","transitionName","getTransitionName","VcTooltip","arrowContent","overlay"],"mappings":"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"}