mirror of
https://github.com/versia-pub/docs.git
synced 2025-12-06 06:18:19 +01:00
125 lines
4.1 KiB
JavaScript
125 lines
4.1 KiB
JavaScript
!(function () {
|
|
var l = window.location,
|
|
i = window.document,
|
|
t = i.currentScript,
|
|
r = t.getAttribute("data-api") || new URL(t.src).origin + "/api/event",
|
|
o = t.getAttribute("data-domain");
|
|
function s(t, e) {
|
|
t && console.warn("Ignoring Event: " + t),
|
|
e && e.callback && e.callback();
|
|
}
|
|
function e(t, e) {
|
|
if (
|
|
/^localhost$|^127(\.[0-9]+){0,2}\.[0-9]+$|^\[::1?\]$/.test(
|
|
l.hostname,
|
|
) ||
|
|
"file:" === l.protocol
|
|
)
|
|
return s("localhost", e);
|
|
if (
|
|
(window._phantom ||
|
|
window.__nightmare ||
|
|
window.navigator.webdriver ||
|
|
window.Cypress) &&
|
|
!window.__plausible
|
|
)
|
|
return s(null, e);
|
|
try {
|
|
if ("true" === window.localStorage.plausible_ignore)
|
|
return s("localStorage flag", e);
|
|
} catch (t) {}
|
|
var a = {},
|
|
n =
|
|
((a.n = t),
|
|
(a.u = l.href),
|
|
(a.d = o),
|
|
(a.r = i.referrer || null),
|
|
e && e.meta && (a.m = JSON.stringify(e.meta)),
|
|
e && e.props && (a.p = e.props),
|
|
new XMLHttpRequest());
|
|
n.open("POST", r, !0),
|
|
n.setRequestHeader("Content-Type", "text/plain"),
|
|
n.send(JSON.stringify(a)),
|
|
(n.onreadystatechange = () => {
|
|
4 === n.readyState &&
|
|
e &&
|
|
e.callback &&
|
|
e.callback({ status: n.status });
|
|
});
|
|
}
|
|
var a = (window.plausible && window.plausible.q) || [];
|
|
window.plausible = e;
|
|
for (var n, p = 0; p < a.length; p++) e.apply(this, a[p]);
|
|
function c() {
|
|
n !== l.pathname && ((n = l.pathname), e("pageview"));
|
|
}
|
|
function u() {
|
|
c();
|
|
}
|
|
var d,
|
|
t = window.history;
|
|
t.pushState &&
|
|
((d = t.pushState),
|
|
(t.pushState = function () {
|
|
d.apply(this, arguments), u();
|
|
}),
|
|
window.addEventListener("popstate", u)),
|
|
"prerender" === i.visibilityState
|
|
? i.addEventListener("visibilitychange", () => {
|
|
n || "visible" !== i.visibilityState || c();
|
|
})
|
|
: c();
|
|
var f = 1;
|
|
function w(t) {
|
|
var e, a, n, i, r;
|
|
function o() {
|
|
n || ((n = !0), (window.location = a.href));
|
|
}
|
|
("auxclick" === t.type && t.button !== f) ||
|
|
((e = ((t) => {
|
|
for (
|
|
;
|
|
t &&
|
|
(void 0 === t.tagName ||
|
|
!(e = t) ||
|
|
!e.tagName ||
|
|
"a" !== e.tagName.toLowerCase() ||
|
|
!t.href);
|
|
)
|
|
t = t.parentNode;
|
|
var e;
|
|
return t;
|
|
})(t.target)) &&
|
|
e.href &&
|
|
e.href.split("?")[0],
|
|
(r = e) &&
|
|
r.href &&
|
|
r.host &&
|
|
r.host !== l.host &&
|
|
((r = t),
|
|
(t = {
|
|
name: "Outbound Link: Click",
|
|
props: { url: (a = e).href },
|
|
}),
|
|
(n = !1),
|
|
!((t, e) => {
|
|
if (!t.defaultPrevented)
|
|
return (
|
|
(e =
|
|
!e.target ||
|
|
e.target.match(/^_(self|parent|top)$/i)),
|
|
(t =
|
|
!(t.ctrlKey || t.metaKey || t.shiftKey) &&
|
|
"click" === t.type),
|
|
e && t
|
|
);
|
|
})(r, a)
|
|
? ((i = { props: t.props }), plausible(t.name, i))
|
|
: ((i = { props: t.props, callback: o }),
|
|
plausible(t.name, i),
|
|
setTimeout(o, 5e3),
|
|
r.preventDefault())));
|
|
}
|
|
i.addEventListener("click", w), i.addEventListener("auxclick", w);
|
|
})();
|