Pristine upstream, unpacked from the official wordpress.org tarball. https://wordpress.org/wordpress-7.1.1.tar.gz sha1 2a9d68474e8703aa3a66f80427b325e0941b6a1e (published by wordpress.org) sha256 3996fee13448ef12e07e9f0c77db2f655ffa1b7cde71c80a4965d3bf1fb956b3 This branch carries nothing but upstream releases, one commit each, and is never edited. It is the other side of the git-subtree merge that brings security releases into SiriusPress/wordpress/ — see SiriusPress/docs/upstream-merges.md.
28 lines
1.3 KiB
JavaScript
28 lines
1.3 KiB
JavaScript
// packages/interactivity-router/build-module/full-page.mjs
|
|
var isValidLink = (ref) => ref && ref instanceof window.HTMLAnchorElement && ref.href && (!ref.target || ref.target === "_self") && ref.origin === window.location.origin && !ref.pathname.startsWith("/wp-admin") && !ref.pathname.startsWith("/wp-login.php") && !ref.getAttribute("href").startsWith("#") && !new URL(ref.href).searchParams.has("_wpnonce");
|
|
var isValidEvent = (event) => event && event.button === 0 && // Left clicks only.
|
|
!event.metaKey && // Open in new tab (Mac).
|
|
!event.ctrlKey && // Open in new tab (Windows).
|
|
!event.altKey && // Download.
|
|
!event.shiftKey && !event.defaultPrevented;
|
|
document.addEventListener("click", async (event) => {
|
|
const ref = event.target.closest("a");
|
|
if (isValidLink(ref) && isValidEvent(event)) {
|
|
event.preventDefault();
|
|
const { actions } = await import("@wordpress/interactivity-router");
|
|
actions.navigate(ref.href);
|
|
}
|
|
});
|
|
document.addEventListener(
|
|
"mouseenter",
|
|
async (event) => {
|
|
if (event.target?.nodeName === "A") {
|
|
const ref = event.target.closest("a");
|
|
if (isValidLink(ref) && isValidEvent(event)) {
|
|
const { actions } = await import("@wordpress/interactivity-router");
|
|
actions.prefetch(ref.href);
|
|
}
|
|
}
|
|
},
|
|
true
|
|
);
|