{"version":3,"file":"tooltip.cjs","sources":["../../../components/tooltip/tooltip.tsx"],"sourcesContent":["import { Popper } from '@/components/popper'\n\nimport {\n  Fragment,\n  computed,\n  createTextVNode,\n  defineComponent,\n  mergeProps,\n  ref,\n  renderSlot,\n  shallowReadonly,\n  toRef,\n  watch,\n} from 'vue'\n\nimport { emitEvent, useHoverDelay, useId, useNameHelper, useProps } from '@vexip-ui/config'\nimport {\n  placementWhileList,\n  useClickOutside,\n  useListener,\n  usePopper,\n  useSetTimeout,\n} from '@vexip-ui/hooks'\nimport { isElement } from '@vexip-ui/utils'\nimport { tooltipProps } from './props'\n\nimport type { PopperExposed } from '@/components/popper'\nimport type { VirtualElement } from '@vexip-ui/hooks'\n\nconst TEXT_VNODE = createTextVNode('').type\n\nexport default defineComponent({\n  name: 'Tooltip',\n  inheritAttrs: true,\n  props: tooltipProps,\n  emits: ['clickoutside', 'update:visible'],\n  setup(_props, { attrs, slots, emit, expose }) {\n    const nh = useNameHelper('tooltip')\n    const props = useProps('tooltip', _props, {\n      trigger: {\n        default: 'hover',\n        validator: value => {\n          return ['hover', 'click', 'focus', 'hover-focus', 'custom'].includes(value)\n        },\n      },\n      wrapper: false,\n      noArrow: false,\n      transitionName: () => nh.ns('fade'),\n      visible: false,\n      placement: {\n        default: 'top',\n        validator: value => placementWhileList.includes(value),\n      },\n      outsideClose: true,\n      noHover: false,\n      tipClass: null,\n      tipStyle: null,\n      transfer: false,\n      disabled: false,\n      raw: false,\n      delay: 250,\n      tipAlive: false,\n      reverse: false,\n      width: 'auto',\n      virtual: null,\n      shift: false,\n    })\n\n    const tooltipId = useId()\n\n    const hoverDelay = useHoverDelay()\n    const { timer } = useSetTimeout()\n\n    const placement = toRef(props, 'placement')\n    const currentVisible = ref(props.visible)\n    const rendering = ref(props.visible)\n    const transfer = toRef(props, 'transfer')\n    const triggerWidth = ref(100)\n\n    let hovered = false\n    let focused = false\n\n    const useHover = computed(() => props.trigger === 'hover' || props.trigger === 'hover-focus')\n    const useFocus = computed(() => props.trigger === 'focus' || props.trigger === 'hover-focus')\n\n    const originalTrigger = ref<HTMLElement>()\n\n    const reference = computed(() => {\n      const virtual = (props.virtual as any)?.$el ?? props.virtual\n\n      if (virtual) {\n        if ('getBoundingClientRect' in virtual) {\n          return virtual as VirtualElement\n        }\n\n        if ('x' in virtual && 'y' in virtual) {\n          return {\n            getBoundingClientRect: () => ({\n              x: virtual.x,\n              y: virtual.y,\n              left: virtual.x,\n              top: virtual.y,\n              width: 0,\n              height: 0,\n            }),\n          } as VirtualElement\n        }\n      }\n\n      return originalTrigger.value\n    })\n    const triggerEl = computed(() => (isElement(reference.value) ? reference.value : null))\n    const delay = computed(() => {\n      return typeof props.delay === 'number'\n        ? new Array<number>(2).fill(Math.max(props.delay, 0))\n        : props.delay.map(delay => Math.max(delay, 0))\n    })\n\n    const popper = ref<PopperExposed>()\n    const popperEl = computed(() => popper.value?.wrapper)\n    const arrow = ref<HTMLElement>()\n    const shift = computed<{ mainAxis?: boolean, crossAxis?: boolean }>(() => {\n      if (!props.shift) {\n        return { mainAxis: false }\n      }\n\n      if (props.shift === true || props.shift === 'both') {\n        return { crossAxis: true }\n      }\n\n      return props.shift === 'horizontal' ? { mainAxis: false, crossAxis: true } : {}\n    })\n    const { transferTo, updatePopper } = usePopper({\n      placement,\n      transfer,\n      arrow,\n      reference,\n      shift,\n      wrapper: originalTrigger,\n      popper: popperEl,\n    })\n\n    useClickOutside(handleClickOutside, originalTrigger)\n    useClickOutside(() => {\n      if (currentVisible.value && !originalTrigger.value) {\n        handleClickOutside()\n      }\n    }, popperEl)\n\n    const tipStyle = computed(() => {\n      if (props.width === 'auto') {\n        return props.tipStyle\n      }\n\n      if (props.width === 'trigger') {\n        return [{ width: `${triggerWidth.value}px` }, props.tipStyle]\n      }\n\n      return [{ width: `${props.width}px` }, props.tipStyle]\n    })\n\n    const slotParams = shallowReadonly({ toggleVisible, updatePopper })\n\n    useListener(triggerEl, 'mouseenter', handleTriggerEnter)\n    useListener(triggerEl, 'mouseleave', handleTriggerLeave)\n    useListener(triggerEl, 'click', handleTriggerClick)\n    useListener(triggerEl, 'focus', handleTriggerFocus)\n    useListener(triggerEl, 'blur', handleTriggerBlur)\n    useListener(popperEl, 'mouseenter', handleTriggerEnter)\n    useListener(popperEl, 'mouseleave', handleTriggerLeave)\n\n    watch(\n      () => props.visible,\n      value => {\n        currentVisible.value = value\n\n        if (value) {\n          rendering.value = true\n          updatePopper()\n        }\n      },\n    )\n    watch(\n      () => props.disabled,\n      value => {\n        if (value) {\n          toggleVisible(false)\n        }\n      },\n    )\n\n    expose({ rendering, trigger: triggerEl, toggleVisible, updatePopper })\n\n    function toggleVisible(visible = !currentVisible.value) {\n      if (currentVisible.value === visible) return\n\n      currentVisible.value = visible\n\n      if (visible) {\n        computeTriggerWidth()\n        rendering.value = true\n        updatePopper()\n      }\n\n      emit('update:visible', visible)\n      emitEvent(props.onToggle, visible)\n    }\n\n    function computeTriggerWidth() {\n      if (!triggerEl.value) return\n\n      triggerWidth.value = triggerEl.value.offsetWidth\n    }\n\n    function getActiveState() {\n      return (useHover.value && hovered) || (useFocus.value && focused)\n    }\n\n    function handleTriggerEnter() {\n      if (props.disabled) return\n\n      if (useHover.value) {\n        clearTimeout(timer.hover)\n\n        timer.hover = setTimeout(() => {\n          hovered = true\n          toggleVisible(getActiveState())\n        }, delay.value[0] ?? hoverDelay.value)\n      }\n\n      emitEvent(props.onTipEnter)\n    }\n\n    function handleTriggerLeave() {\n      if (props.disabled) return\n\n      if (useHover.value) {\n        clearTimeout(timer.hover)\n\n        timer.hover = setTimeout(() => {\n          hovered = false\n          toggleVisible(getActiveState())\n        }, delay.value[1] ?? hoverDelay.value)\n      }\n\n      emitEvent(props.onTipLeave)\n    }\n\n    function handleTriggerClick() {\n      if (props.disabled) return\n\n      if (props.trigger === 'click') {\n        toggleVisible()\n      }\n    }\n\n    function handleTriggerFocus() {\n      if (props.disabled) return\n\n      if (useFocus.value) {\n        focused = true\n        toggleVisible(getActiveState())\n      }\n    }\n\n    function handleTriggerBlur() {\n      if (props.disabled) return\n\n      if (useFocus.value) {\n        focused = false\n        toggleVisible(getActiveState())\n      }\n    }\n\n    function handleClickOutside() {\n      if (props.disabled) return\n\n      emitEvent(props.onClickOutside)\n\n      if (props.outsideClose && props.trigger !== 'custom' && currentVisible.value) {\n        toggleVisible(false)\n        emitEvent(props.onOutsideClose)\n      }\n    }\n\n    function syncTriggerRef(el?: HTMLElement | null) {\n      if (el) {\n        originalTrigger.value = el.nextElementSibling as HTMLElement | undefined\n      } else {\n        originalTrigger.value = undefined\n      }\n    }\n\n    function syncRendering() {\n      rendering.value = currentVisible.value\n    }\n\n    function stopPropagation(event: MouseEvent) {\n      event.stopPropagation()\n    }\n\n    return () => {\n      const Wrapper = props.wrapper\n        ? ((props.wrapper === true ? 'span' : props.wrapper) as any)\n        : null\n      const triggers = slots.trigger?.(slotParams)\n      const triggerVNode = triggers ? triggers[0] : null\n\n      const renderTrigger = () => {\n        if (!triggerVNode) return null\n\n        if (triggerVNode.type === TEXT_VNODE) {\n          return Wrapper ? <span>{triggerVNode}</span> : <span {...attrs}>{triggerVNode}</span>\n        }\n\n        if (!Wrapper) {\n          triggerVNode.props = mergeProps(triggerVNode.props || {}, attrs, {\n            'aria-describedby': tooltipId.value,\n          })\n        }\n\n        return triggerVNode\n      }\n\n      return [\n        triggerVNode &&\n          (Wrapper ? (\n            <Wrapper\n              {...attrs}\n              ref={originalTrigger}\n              class={[nh.b(), nh.bs('vars'), props.inherit && nh.bm('inherit')]}\n              aria-describedby={tooltipId.value}\n            >\n              {triggers}\n            </Wrapper>\n          ) : (\n            <Fragment ref={syncTriggerRef as any}>{renderTrigger()}</Fragment>\n          )),\n        !props.disabled && (props.tipAlive || rendering.value) && (\n          <Popper\n            ref={popper}\n            id={tooltipId.value}\n            class={{\n              [nh.be('popper')]: true,\n              [nh.bs('vars')]: true,\n              [nh.bem('popper', props.reverse ? 'dark' : 'light')]: true,\n              [nh.bem('popper', 'no-hover')]: props.noHover,\n              [nh.bem('popper', 'no-arrow')]: props.noArrow,\n            }}\n            appear\n            visible={currentVisible.value}\n            alive={props.tipAlive}\n            to={transferTo.value}\n            transition={props.transitionName}\n            role={'tooltip'}\n            tabindex={-1}\n            onClick={stopPropagation}\n            onAnimationend={syncRendering}\n            onTransitionend={syncRendering}\n          >\n            <div class={[!props.raw && nh.be('tip'), props.tipClass]} style={tipStyle.value}>\n              {renderSlot(slots, 'default', slotParams)}\n            </div>\n            {!props.raw && !props.noArrow && <div ref={arrow} class={nh.be('arrow')}></div>}\n          </Popper>\n        ),\n      ]\n    }\n  },\n})\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","TEXT_VNODE","createTextVNode","type","defineComponent","name","inheritAttrs","props","tooltipProps","emits","setup","_props","attrs","slots","emit","expose","nh","useNameHelper","useProps","trigger","default","validator","value","includes","wrapper","noArrow","transitionName","ns","visible","placement","placementWhileList","outsideClose","noHover","tipClass","tipStyle","transfer","disabled","raw","delay","tipAlive","reverse","width","virtual","shift","tooltipId","useId","hoverDelay","useHoverDelay","timer","useSetTimeout","toRef","currentVisible","ref","rendering","triggerWidth","hovered","focused","useHover","computed","useFocus","originalTrigger","reference","$el","getBoundingClientRect","x","y","left","top","height","triggerEl","isElement","Array","fill","Math","max","map","popper","popperEl","arrow","crossAxis","mainAxis","transferTo","updatePopper","usePopper","useClickOutside","handleClickOutside","slotParams","shallowReadonly","toggleVisible","useListener","handleTriggerEnter","handleTriggerLeave","handleTriggerClick","handleTriggerFocus","handleTriggerBlur","watch","computeTriggerWidth","emitEvent","onToggle","offsetWidth","getActiveState","clearTimeout","hover","setTimeout","onTipEnter","onTipLeave","onClickOutside","onOutsideClose","syncTriggerRef","el","nextElementSibling","undefined","syncRendering","stopPropagation","event","Wrapper","triggers","triggerVNode","renderTrigger","_createVNode","mergeProps","_mergeProps","b","bs","inherit","bm","_Fragment","Popper","be","bem","renderSlot"],"mappings":"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"}