{"version":3,"file":"Anchor.cjs","sources":["../../../../../../packages/components/anchor/src/Anchor.tsx"],"sourcesContent":["import type { AnchorContainer, AnchorLinkItemProps, AnchorState, Section } from './interface';\nimport { addEventListenerWrap, classNames, devWarning, getScroll, scrollTo } from '@antdv/utils';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  onUpdated,\n  reactive,\n  ref,\n} from 'vue';\n\nimport Affix from '../../affix';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport AnchorLink from './AnchorLink';\nimport useProvideAnchor from './context';\nimport { anchorProps } from './props';\n\nfunction getDefaultContainer() {\n  return window;\n}\n\nfunction getOffsetTop(element: HTMLElement, container: AnchorContainer): number {\n  if (!element.getClientRects().length)\n    return 0;\n\n  const rect = element.getBoundingClientRect();\n\n  if (rect.width || rect.height) {\n    if (container === window) {\n      container = element.ownerDocument!.documentElement!;\n      return rect.top - container.clientTop;\n    }\n    return rect.top - (container as HTMLElement).getBoundingClientRect().top;\n  }\n\n  return rect.top;\n}\n\nconst sharpMatcherRegx = /#([\\S ]+)$/;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AAnchor',\n  inheritAttrs: false,\n  props: anchorProps(),\n  setup(props, { emit, attrs, slots, expose }) {\n    const { prefixCls, getTargetContainer, direction } = useConfigInject('anchor', props);\n    const anchorDirection = computed(() => props.direction ?? 'vertical');\n\n    if (process.env.NODE_ENV !== 'production') {\n      devWarning(\n        props.items && typeof slots.default !== 'function',\n        'Anchor',\n        '`Anchor children` is deprecated. Please use `items` instead.',\n      );\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      devWarning(\n        !(anchorDirection.value === 'horizontal' && props.items?.some(n => 'children' in n)),\n        'Anchor',\n        '`Anchor items#children` is not supported when `Anchor` direction is horizontal.',\n      );\n    }\n\n    const spanLinkNode = ref<HTMLSpanElement>(null);\n    const anchorRef = ref();\n    const state = reactive<AnchorState>({\n      links: [],\n      scrollContainer: null,\n      scrollEvent: null,\n      animating: false,\n    });\n    const activeLink = ref(null);\n    const getContainer = computed(() => {\n      return props.getContainer || getTargetContainer?.value || getDefaultContainer;\n    });\n    // func...\n    const getCurrentAnchor = (offsetTop = 0, bounds = 5) => {\n      const linkSections: Section[] = [];\n      const container = getContainer.value();\n      state.links.forEach((link) => {\n        const sharpLinkMatch = sharpMatcherRegx.exec(link.toString());\n        if (!sharpLinkMatch)\n          return;\n\n        const target = document.getElementById(sharpLinkMatch[1]);\n        if (target) {\n          const top = getOffsetTop(target, container);\n          if (top < offsetTop + bounds) {\n            linkSections.push({\n              link,\n              top,\n            });\n          }\n        }\n      });\n\n      if (linkSections.length) {\n        const maxSection = linkSections.reduce((prev, curr) => (curr.top > prev.top ? curr : prev));\n        return maxSection.link;\n      }\n      return '';\n    };\n    const setCurrentActiveLink = (link: string) => {\n      if (activeLink.value === link)\n        return;\n\n      activeLink.value = typeof props.getCurrentAnchor === 'function' ? props.getCurrentAnchor(link) : link;\n      emit('change', link);\n    };\n    const handleScrollTo = (link: string) => {\n      const { offsetTop, targetOffset } = props;\n\n      setCurrentActiveLink(link);\n      const sharpLinkMatch = sharpMatcherRegx.exec(link);\n      if (!sharpLinkMatch)\n        return;\n\n      const targetElement = document.getElementById(sharpLinkMatch[1]);\n      if (!targetElement)\n        return;\n\n      const container = getContainer.value();\n      const scrollTop = getScroll(container, true);\n      const eleOffsetTop = getOffsetTop(targetElement, container);\n      let y = scrollTop + eleOffsetTop;\n      y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;\n      state.animating = true;\n\n      scrollTo(y, {\n        callback: () => {\n          state.animating = false;\n        },\n        getContainer: getContainer.value,\n      });\n    };\n    expose({\n      scrollTo: handleScrollTo,\n    });\n    const handleScroll = () => {\n      if (state.animating)\n        return;\n\n      const { offsetTop, bounds, targetOffset } = props;\n      const currentActiveLink = getCurrentAnchor(\n        targetOffset !== undefined ? targetOffset : offsetTop || 0,\n        bounds,\n      );\n      setCurrentActiveLink(currentActiveLink);\n    };\n\n    const updateInk = () => {\n      const linkNode = anchorRef.value.querySelector(`.${prefixCls.value}-link-title-active`);\n      if (linkNode && spanLinkNode.value) {\n        const horizontalAnchor = anchorDirection.value === 'horizontal';\n        spanLinkNode.value.style.top = horizontalAnchor\n          ? ''\n          : `${linkNode.offsetTop + linkNode.clientHeight / 2}px`;\n        spanLinkNode.value.style.height = horizontalAnchor ? '' : `${linkNode.clientHeight}px`;\n        spanLinkNode.value.style.left = horizontalAnchor ? `${linkNode.offsetLeft}px` : '';\n        spanLinkNode.value.style.width = horizontalAnchor ? `${linkNode.clientWidth}px` : '';\n        if (horizontalAnchor) {\n          scrollIntoView(linkNode, {\n            scrollMode: 'if-needed',\n            block: 'nearest',\n          });\n        }\n      }\n    };\n\n    useProvideAnchor({\n      registerLink: (link: string) => {\n        if (!state.links.includes(link))\n          state.links.push(link);\n      },\n      unregisterLink: (link: string) => {\n        const index = state.links.indexOf(link);\n        if (index !== -1)\n          state.links.splice(index, 1);\n      },\n      activeLink,\n      scrollTo: handleScrollTo,\n      handleClick: (e, info) => {\n        emit('click', e, info);\n      },\n      direction: anchorDirection,\n    });\n\n    onMounted(() => {\n      nextTick(() => {\n        const container = getContainer.value();\n        state.scrollContainer = container;\n        state.scrollEvent = addEventListenerWrap(state.scrollContainer, 'scroll', handleScroll);\n        handleScroll();\n      });\n    });\n    onBeforeUnmount(() => {\n      if (state.scrollEvent)\n        state.scrollEvent.remove();\n    });\n    onUpdated(() => {\n      if (state.scrollEvent) {\n        const currentContainer = getContainer.value();\n        if (state.scrollContainer !== currentContainer) {\n          state.scrollContainer = currentContainer;\n          state.scrollEvent.remove();\n          state.scrollEvent = addEventListenerWrap(state.scrollContainer, 'scroll', handleScroll);\n          handleScroll();\n        }\n      }\n      updateInk();\n    });\n\n    const createNestedLink = (options?: AnchorLinkItemProps[]) =>\n      Array.isArray(options)\n        ? options.map((option) => {\n            const { children, key, href, target, class: cls, style, title } = option;\n            return (\n              <AnchorLink\n                key={key}\n                href={href}\n                target={target}\n                class={cls}\n                style={style}\n                title={title}\n                customTitleProps={option}\n                v-slots={{ customTitle: slots.customTitle }}\n              >\n                {anchorDirection.value === 'vertical' ? createNestedLink(children) : null}\n              </AnchorLink>\n            );\n          })\n        : null;\n\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    return () => {\n      const { offsetTop, affix, showInkInFixed } = props;\n      const pre = prefixCls.value;\n      const inkClass = classNames(`${pre}-ink`, {\n        [`${pre}-ink-visible`]: activeLink.value,\n      });\n\n      const wrapperClass = classNames(hashId.value, props.wrapperClass, `${pre}-wrapper`, {\n        [`${pre}-wrapper-horizontal`]: anchorDirection.value === 'horizontal',\n        [`${pre}-rtl`]: direction.value === 'rtl',\n      });\n\n      const anchorClass = classNames(pre, {\n        [`${pre}-fixed`]: !affix && !showInkInFixed,\n      });\n\n      const wrapperStyle = {\n        maxHeight: offsetTop ? `calc(100vh - ${offsetTop}px)` : '100vh',\n        ...props.wrapperStyle,\n      };\n      const anchorContent = (\n        <div class={wrapperClass} style={wrapperStyle} ref={anchorRef}>\n          <div class={anchorClass}>\n            <span class={inkClass} ref={spanLinkNode} />\n            {Array.isArray(props.items) ? createNestedLink(props.items) : slots.default?.()}\n          </div>\n        </div>\n      );\n\n      return wrapSSR(\n        !affix\n          ? (\n              anchorContent\n            )\n          : (\n              <Affix {...attrs} offsetTop={offsetTop} target={getContainer.value}>\n                {anchorContent}\n              </Affix>\n            ),\n      );\n    };\n  },\n});\n"],"names":["getDefaultContainer","window","getOffsetTop","element","container","getClientRects","length","rect","getBoundingClientRect","width","height","ownerDocument","documentElement","top","clientTop","sharpMatcherRegx","defineComponent","compatConfig","MODE","name","inheritAttrs","props","anchorProps","setup","emit","attrs","slots","expose","prefixCls","getTargetContainer","direction","useConfigInject","anchorDirection","computed","process","env","NODE_ENV","devWarning","items","default","value","some","n","spanLinkNode","ref","anchorRef","state","reactive","links","scrollContainer","scrollEvent","animating","activeLink","getContainer","getCurrentAnchor","offsetTop","bounds","linkSections","forEach","link","sharpLinkMatch","exec","toString","target","document","getElementById","push","maxSection","reduce","prev","curr","setCurrentActiveLink","handleScrollTo","targetOffset","targetElement","scrollTop","getScroll","eleOffsetTop","y","undefined","scrollTo","callback","handleScroll","currentActiveLink","updateInk","linkNode","querySelector","horizontalAnchor","style","clientHeight","left","offsetLeft","clientWidth","scrollIntoView","scrollMode","block","useProvideAnchor","registerLink","includes","unregisterLink","index","indexOf","splice","handleClick","e","info","onMounted","nextTick","addEventListenerWrap","onBeforeUnmount","remove","onUpdated","currentContainer","createNestedLink","options","Array","isArray","map","option","children","key","href","class","cls","title","_createVNode","AnchorLink","customTitle","wrapSSR","hashId","useStyle","affix","showInkInFixed","pre","inkClass","classNames","wrapperClass","anchorClass","wrapperStyle","maxHeight","anchorContent","Affix"],"mappings":"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"}