{"version":3,"file":"trigger.mjs","sources":["../../../../../../packages/components/trigger/src/trigger.tsx"],"sourcesContent":["import {\n  computed,\n  defineComponent,\n  Teleport,\n  ref,\n  Transition,\n  nextTick,\n  onMounted,\n  watch,\n  onBeforeUnmount,\n  inject,\n  provide,\n  reactive\n} from 'vue'\nimport type { StyleValue, CSSProperties, Ref } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n\nimport usePopupManager from '../../../hooks/use-popup-manager'\nimport { useFirstElement } from '../../../hooks/use-first-element'\nimport { useResizeObserver } from '../../../hooks/use-resize-observer'\nimport { mergeFirstChild } from '../../../utils/vue-utils'\nimport { on, off } from '../../../utils/dom'\n\nimport ResizeObserver from '../../../shared/resize-observer'\nimport ParentScrollObserver from '../../../shared/parent-scroll-observer'\nimport { triggerProps } from './_trigger'\nimport type { TriggerEvent } from './_trigger'\n\nimport { triggerInjectionKey } from './constant'\n\nimport { getArrowStyle, getPopupStyle, getElementScrollRect, getTransformOrigin } from './utils'\n\nexport default defineComponent({\n  name: getComponentNamespace('Trigger'),\n  props: triggerProps,\n  emits: ['update:popupVisible', 'popupVisibleChange', 'show', 'hide'],\n  setup(props, { emit, slots, attrs }) {\n    const ns = getNamespace('trigger')\n\n    const teleportContainer = computed(() => props.popupContainer || document.body)\n    const containerRef = ref<HTMLElement>()\n\n    onMounted(() => {\n      containerRef.value = document.documentElement\n    })\n\n    // 用于多个trigger嵌套时，保持打开状态\n    const childrenRefs = new Set<Ref<HTMLElement>>()\n    const triggerCtx = inject(triggerInjectionKey, undefined)\n\n    // trigger相关变量\n    const { children, firstElement } = useFirstElement()\n\n    // popup相关变量\n    const popupRef = ref<HTMLElement>()\n    const popupVisible = ref(props.defaultPopupVisible)\n    const popupPosition = ref(props.position)\n    const popupStyle = ref<CSSProperties>({})\n    const transformStyle = ref<CSSProperties>({})\n    const arrowStyle = ref<CSSProperties>({})\n    const computedVisible = computed(() => props.popupVisible ?? popupVisible.value)\n\n    // cls\n    const cls = computed(() => {\n      const cls: StyleValue = [`${ns}-popup`]\n      return cls\n    })\n\n    const triggerCls = computed(() => {\n      return computedVisible.value ? props.openedClass : undefined\n    })\n\n    // 鼠标相关变量\n    const arrowRef = ref<HTMLElement>()\n    const mousePosition = ref({\n      top: 0,\n      left: 0\n    })\n\n    const { zIndex } = usePopupManager('popup', { visible: computedVisible })\n\n    let delayTimer = 0\n    let outsideListener = false\n\n    const cleanDelayTimer = () => {\n      if (delayTimer) {\n        window.clearTimeout(delayTimer)\n        delayTimer = 0\n      }\n    }\n\n    const updateMousePosition = (e: MouseEvent) => {\n      if (props.alignPoint) {\n        const { pageX, pageY } = e\n        mousePosition.value = {\n          top: pageY,\n          left: pageX\n        }\n      }\n    }\n\n    const updatePopupStyle = () => {\n      if (!firstElement.value || !popupRef.value || !containerRef.value) {\n        return\n      }\n      const containerRect = containerRef.value.getBoundingClientRect()\n      const triggerRect = props.alignPoint\n        ? {\n            top: mousePosition.value.top,\n            bottom: mousePosition.value.top,\n            left: mousePosition.value.left,\n            right: mousePosition.value.left,\n            scrollTop: mousePosition.value.top,\n            scrollBottom: mousePosition.value.top,\n            scrollLeft: mousePosition.value.left,\n            scrollRight: mousePosition.value.left,\n            width: 0,\n            height: 0\n          }\n        : getElementScrollRect(firstElement.value, containerRect)\n      const getPopupRect = () => getElementScrollRect(popupRef.value as HTMLElement, containerRect)\n      const popupRect = getPopupRect()\n\n      const { style, position } = getPopupStyle(\n        props.position,\n        containerRect,\n        triggerRect,\n        popupRect,\n        {\n          offset: props.popupOffset,\n          translate: props.popupTranslate,\n          customStyle: props.popupStyle,\n          autoFitPosition: props.autoFitPosition\n        }\n      )\n      if (props.autoFitTransformOrigin) {\n        transformStyle.value = {\n          transformOrigin: getTransformOrigin(position)\n        }\n      }\n      if (props.autoFitPopupMinWidth) {\n        style.minWidth = `${triggerRect.width}px`\n      } else if (props.autoFitPopupWidth) {\n        style.width = `${triggerRect.width}px`\n      }\n\n      if (popupPosition.value !== position) {\n        popupPosition.value = position\n      }\n      popupStyle.value = style\n      if (props.showArrow) {\n        nextTick(() => {\n          arrowStyle.value = getArrowStyle(position, triggerRect, getPopupRect(), {\n            customStyle: props.arrowStyle\n          })\n        })\n      }\n    }\n\n    const handleResize = () => {\n      if (computedVisible.value) {\n        updatePopupStyle()\n      }\n    }\n\n    const changeVisible = (visible: boolean, delay?: number) => {\n      if (visible === computedVisible.value && delayTimer === 0) {\n        return\n      }\n      const update = () => {\n        popupVisible.value = visible\n        emit('update:popupVisible', visible)\n        emit('popupVisibleChange', visible)\n        if (visible) {\n          nextTick(() => {\n            updatePopupStyle()\n          })\n        }\n      }\n\n      if (delay) {\n        cleanDelayTimer()\n        if (visible !== computedVisible.value) {\n          delayTimer = window.setTimeout(update, delay)\n        }\n      } else {\n        update()\n      }\n    }\n\n    const triggerMethods = computed(() => ([] as Array<TriggerEvent>).concat(props.trigger))\n\n    const handleOutsideClick = (e: MouseEvent) => {\n      if (\n        firstElement.value?.contains(e.target as HTMLElement) ||\n        popupRef.value?.contains(e.target as HTMLElement)\n      ) {\n        return\n      }\n\n      // 查找其它trigger\n      for (const item of childrenRefs) {\n        if (item.value?.contains(e.target as HTMLElement)) {\n          return\n        }\n      }\n\n      removeOutsideListener()\n      changeVisible(false)\n    }\n\n    // 当popup显示状态改变时，修改外部点击事件\n    watch(computedVisible, (value) => {\n      if (props.clickOutsideToClose) {\n        if (!value && outsideListener) {\n          removeOutsideListener()\n        } else if (value && !outsideListener) {\n          on(document.documentElement, 'mousedown', handleOutsideClick)\n          outsideListener = true\n        }\n      }\n      if (value) {\n        mounted.value = true\n      }\n    })\n\n    const removeOutsideListener = () => {\n      off(document.documentElement, 'mousedown', handleOutsideClick)\n      outsideListener = false\n    }\n\n    triggerCtx?.addChildRef(popupRef)\n\n    // 影响popup显示的参数变化时，更新popup样式\n    watch(\n      () => [props.autoFitPopupWidth, props.autoFitPopupMinWidth],\n      () => {\n        if (computedVisible.value) {\n          updatePopupStyle()\n        }\n      }\n    )\n\n    const { createResizeObserver, destroyResizeObserver } = useResizeObserver({\n      elementRef: containerRef,\n      onResize: handleResize\n    })\n\n    onMounted(() => {\n      createResizeObserver()\n      //默认显示时，更新popup位置\n      if (props.clickOutsideToClose && !outsideListener) {\n        on(document.documentElement, 'mousedown', handleOutsideClick)\n        outsideListener = true\n      }\n    })\n\n    onBeforeUnmount(() => {\n      triggerCtx?.removeChildRef(popupRef)\n      destroyResizeObserver()\n      if (outsideListener) {\n        removeOutsideListener()\n      }\n    })\n\n    // 触发器相关\n    // click\n    const handleClick = (e: MouseEvent) => {\n      // (attrs as any).onClick?.(e)\n      if (props.disabled || (computedVisible.value && !props.clickToClose)) {\n        return\n      }\n      if (triggerMethods.value.includes('click')) {\n        updateMousePosition(e)\n        changeVisible(!computedVisible.value)\n      } else if (triggerMethods.value.includes('contextMenu') && computedVisible.value) {\n        changeVisible(false)\n      }\n    }\n    // hover\n    const handleMouseEnter = (e: MouseEvent) => {\n      // (attrs as any).onMouseenter?.(e);\n      if (props.disabled || !triggerMethods.value.includes('hover')) {\n        return\n      }\n      updateMousePosition(e)\n      changeVisible(true, props.mouseEnterDelay)\n    }\n\n    const handleMouseEnterWithContext = (e: MouseEvent) => {\n      triggerCtx?.onMouseenter(e)\n      handleMouseEnter(e)\n    }\n\n    const handleMouseLeave = () => {\n      // (attrs as any).onMouseleave?.(e);\n      if (props.disabled || !triggerMethods.value.includes('hover')) {\n        return\n      }\n      changeVisible(false, props.mouseLeaveDelay)\n    }\n\n    const handleMouseLeaveWithContext = (e: MouseEvent) => {\n      triggerCtx?.onMouseleave(e)\n      handleMouseLeave()\n    }\n\n    // focus\n    const handleFocusin = () => {\n      // (attrs as any).onFocusin?.(e);\n      if (props.disabled || !triggerMethods.value.includes('focus')) {\n        return\n      }\n      changeVisible(true, props.focusDelay)\n    }\n\n    const handleFocusout = (e: FocusEvent) => {\n      ;(attrs as any).onFocusout?.(e)\n      if (props.disabled || !triggerMethods.value.includes('focus')) {\n        return\n      }\n      if (!props.blurToClose) {\n        return\n      }\n      changeVisible(false)\n    }\n\n    // contextMenu\n    const handleContextmenu = (e: MouseEvent) => {\n      // (attrs as any).onContextmenu?.(e);\n      if (\n        props.disabled ||\n        !triggerMethods.value.includes('contextMenu') ||\n        (computedVisible.value && !props.clickToClose)\n      ) {\n        return\n      }\n      updateMousePosition(e)\n      changeVisible(!computedVisible.value)\n      e.preventDefault()\n    }\n\n    const handlePopupMouseDown = (e: Event) => {\n      if (props.preventFocus) {\n        e.preventDefault()\n      }\n    }\n\n    const addChildRef = (ref: any) => {\n      childrenRefs.add(ref)\n      triggerCtx?.addChildRef(ref)\n    }\n    const removeChildRef = (ref: any) => {\n      childrenRefs.delete(ref)\n      triggerCtx?.removeChildRef(ref)\n    }\n\n    // 添加triggerCtx，用于嵌套时保持状态\n    provide(\n      triggerInjectionKey,\n      reactive({\n        onMouseenter: handleMouseEnterWithContext,\n        onMouseleave: handleMouseLeaveWithContext,\n        addChildRef,\n        removeChildRef\n      })\n    )\n\n    // 动画相关\n    const isAnimation = ref(false)\n    const mounted = ref(computedVisible.value)\n\n    const onAnimationStart = () => {\n      isAnimation.value = true\n    }\n\n    const handleShow = () => {\n      isAnimation.value = false\n      if (computedVisible.value) {\n        emit('show')\n      }\n    }\n\n    const handleHide = () => {\n      isAnimation.value = false\n      if (!computedVisible.value) {\n        mounted.value = false\n        emit('hide')\n      }\n    }\n\n    return () => {\n      children.value = slots.default?.() ?? []\n      // 给第一个虚拟dom合并新的props\n      mergeFirstChild(children.value, {\n        class: triggerCls.value,\n        onClick: handleClick,\n        onMouseenter: handleMouseEnter,\n        onMouseleave: handleMouseLeave,\n        onFocusin: handleFocusin,\n        onFocusout: handleFocusout,\n        onContextmenu: handleContextmenu\n      })\n      return (\n        <>\n          {props.autoFixPosition ? (\n            <ResizeObserver onResize={handleResize}>\n              <ParentScrollObserver onScroll={handleResize}>{children.value}</ParentScrollObserver>\n            </ResizeObserver>\n          ) : (\n            children.value\n          )}\n          <Teleport to={teleportContainer.value} disabled={!props.renderToBody}>\n            {props.unmountOnClose && !computedVisible.value && !mounted.value ? null : (\n              <ResizeObserver onResize={handleResize}>\n                <div\n                  class={cls.value}\n                  ref={popupRef}\n                  style={{\n                    ...popupStyle.value,\n                    zIndex: zIndex.value,\n                    pointerEvents: isAnimation.value ? 'none' : 'auto',\n                    position: 'absolute'\n                  }}\n                  trigger-placement={popupPosition.value}\n                  onMouseenter={handleMouseEnterWithContext}\n                  onMouseleave={handleMouseLeaveWithContext}\n                  onMousedown={handlePopupMouseDown}\n                >\n                  <Transition\n                    name={props.animationName}\n                    duration={props.duration}\n                    appear\n                    onBeforeEnter={onAnimationStart}\n                    onAfterEnter={handleShow}\n                    onBeforeLeave={onAnimationStart}\n                    onAfterLeave={handleHide}\n                  >\n                    <div\n                      class={`${ns}-popup-wrapper`}\n                      style={transformStyle.value}\n                      v-show={computedVisible.value}\n                    >\n                      <div class={[`${ns}-content`, props.contentClass]} style={props.contentStyle}>\n                        {slots.content?.()}\n                      </div>\n                      {props.showArrow && (\n                        <div\n                          ref={arrowRef}\n                          class={[`${ns}-arrow`, props.arrowClass]}\n                          style={{\n                            position: 'absolute',\n                            'border-width': 'var(--bn-trigger-arrow-size)',\n                            'border-style': 'solid',\n                            zIndex: 0,\n                            ...arrowStyle.value\n                          }}\n                        />\n                      )}\n                    </div>\n                  </Transition>\n                </div>\n              </ResizeObserver>\n            )}\n          </Teleport>\n        </>\n      )\n    }\n  }\n})\n"],"names":["name","getComponentNamespace","props","triggerProps","emits","setup","emit","slots","attrs","ns","getNamespace","teleportContainer","computed","popupContainer","document","body","containerRef","ref","onMounted","value","documentElement","childrenRefs","Set","triggerCtx","inject","triggerInjectionKey","undefined","children","firstElement","useFirstElement","popupRef","popupVisible","defaultPopupVisible","popupPosition","position","popupStyle","transformStyle","arrowStyle","computedVisible","cls","triggerCls","openedClass","arrowRef","mousePosition","top","left","zIndex","usePopupManager","visible","delayTimer","outsideListener","cleanDelayTimer","window","clearTimeout","updateMousePosition","e","alignPoint","pageX","pageY","updatePopupStyle","containerRect","getBoundingClientRect","triggerRect","bottom","right","scrollTop","scrollBottom","scrollLeft","scrollRight","width","height","getElementScrollRect","getPopupRect","popupRect","style","getPopupStyle","offset","popupOffset","translate","popupTranslate","customStyle","autoFitPosition","autoFitTransformOrigin","transformOrigin","getTransformOrigin","autoFitPopupMinWidth","minWidth","autoFitPopupWidth","showArrow","nextTick","getArrowStyle","handleResize","changeVisible","delay","update","setTimeout","triggerMethods","concat","trigger","handleOutsideClick","contains","target","item","removeOutsideListener","watch","clickOutsideToClose","on","mounted","off","addChildRef","createResizeObserver","destroyResizeObserver","useResizeObserver","elementRef","onResize","onBeforeUnmount","removeChildRef","handleClick","disabled","clickToClose","includes","handleMouseEnter","mouseEnterDelay","handleMouseEnterWithContext","onMouseenter","handleMouseLeave","mouseLeaveDelay","handleMouseLeaveWithContext","onMouseleave","handleFocusin","focusDelay","handleFocusout","onFocusout","blurToClose","handleContextmenu","preventDefault","handlePopupMouseDown","preventFocus","add","delete","provide","reactive","isAnimation","onAnimationStart","handleShow","handleHide","default","mergeFirstChild","class","onClick","onFocusin","onContextmenu","_createVNode","_Fragment","autoFixPosition","ResizeObserver","ParentScrollObserver","Teleport","renderToBody","unmountOnClose","pointerEvents","Transition","animationName","duration","_withDirectives","_a","contentClass","contentStyle","content","arrowClass","_vShow"],"mappings":"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"}