|
|
|
@ -174,36 +174,39 @@ export function createRouter(
|
|
|
|
|
window.addEventListener(
|
|
|
|
|
'click',
|
|
|
|
|
(e) => {
|
|
|
|
|
// temporary fix for docsearch action buttons
|
|
|
|
|
const button = (e.target as Element).closest('button')
|
|
|
|
|
if (button) return
|
|
|
|
|
if (
|
|
|
|
|
e.defaultPrevented ||
|
|
|
|
|
!(e.target instanceof Element) ||
|
|
|
|
|
e.target.closest('button') || // temporary fix for docsearch action buttons
|
|
|
|
|
e.button !== 0 ||
|
|
|
|
|
e.ctrlKey ||
|
|
|
|
|
e.shiftKey ||
|
|
|
|
|
e.altKey ||
|
|
|
|
|
e.metaKey
|
|
|
|
|
)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
const link = (e.target as Element | SVGElement).closest<
|
|
|
|
|
HTMLAnchorElement | SVGAElement
|
|
|
|
|
>('a')
|
|
|
|
|
const link = e.target.closest<HTMLAnchorElement | SVGAElement>('a')
|
|
|
|
|
if (
|
|
|
|
|
link &&
|
|
|
|
|
!link.closest('.vp-raw') &&
|
|
|
|
|
(link instanceof SVGElement || !link.download)
|
|
|
|
|
) {
|
|
|
|
|
const { target } = link
|
|
|
|
|
const linkHref = link.getAttribute('href')
|
|
|
|
|
!link ||
|
|
|
|
|
link.closest('.vp-raw') ||
|
|
|
|
|
link.hasAttribute('download') ||
|
|
|
|
|
link.hasAttribute('target')
|
|
|
|
|
)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
const linkHref =
|
|
|
|
|
link.getAttribute('href') ??
|
|
|
|
|
(link instanceof SVGAElement ? link.getAttribute('xlink:href') : null)
|
|
|
|
|
if (linkHref == null) return
|
|
|
|
|
|
|
|
|
|
const { href, origin, pathname, hash, search } = new URL(
|
|
|
|
|
linkHref,
|
|
|
|
|
link.baseURI
|
|
|
|
|
)
|
|
|
|
|
const currentUrl = new URL(location.href) // copy to keep old data
|
|
|
|
|
// only intercept inbound html links
|
|
|
|
|
if (
|
|
|
|
|
!e.ctrlKey &&
|
|
|
|
|
!e.shiftKey &&
|
|
|
|
|
!e.altKey &&
|
|
|
|
|
!e.metaKey &&
|
|
|
|
|
!target &&
|
|
|
|
|
origin === currentUrl.origin &&
|
|
|
|
|
treatAsHtml(pathname)
|
|
|
|
|
) {
|
|
|
|
|
if (origin === currentUrl.origin && treatAsHtml(pathname)) {
|
|
|
|
|
e.preventDefault()
|
|
|
|
|
if (
|
|
|
|
|
pathname === currentUrl.pathname &&
|
|
|
|
@ -231,7 +234,6 @@ export function createRouter(
|
|
|
|
|
go(href)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{ capture: true }
|
|
|
|
|
)
|
|
|
|
|