@uva-glass/component-library
Version:
React components UvA
2,057 lines • 79.7 kB
JavaScript
import { g as L } from "./react.esm-CMg7bmSn.js";
function l(e, t, n) {
return e.namespaceURI && e.namespaceURI !== "http://www.w3.org/1999/xhtml" || (t = Array.isArray(t) ? t : [
t
], !t.includes(e.tagName.toLowerCase())) ? !1 : n ? Object.entries(n).every(([i, r]) => e[i] === r) : !0;
}
var Se;
(function(e) {
e.button = "button", e.color = "color", e.file = "file", e.image = "image", e.reset = "reset", e.submit = "submit", e.checkbox = "checkbox", e.radio = "radio";
})(Se || (Se = {}));
function st(e) {
return l(e, "button") || l(e, "input") && e.type in Se;
}
function w(e) {
var t;
if (Gt(e) && e.defaultView)
return e.defaultView;
if (!((t = e.ownerDocument) === null || t === void 0) && t.defaultView)
return e.ownerDocument.defaultView;
throw new Error(`Could not determine window of node. Node was ${Wt(e)}`);
}
function Gt(e) {
return e.nodeType === 9;
}
function Wt(e) {
return typeof e == "function" ? `function ${e.name}` : e === null ? "null" : String(e);
}
function ut(e, t) {
return new Promise((n, i) => {
const r = new t();
r.onerror = i, r.onabort = i, r.onload = () => {
n(String(r.result));
}, r.readAsText(e);
});
}
function Ue(e, t) {
const n = {
...t,
length: t.length,
item: (i) => n[i],
[Symbol.iterator]: function* () {
for (let r = 0; r < n.length; r++)
yield n[r];
}
};
return n.constructor = e.FileList, e.FileList && Object.setPrototypeOf(n, e.FileList.prototype), Object.freeze(n), n;
}
function P(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e;
}
class ct {
getAsFile() {
return this.file;
}
getAsString(t) {
typeof this.data == "string" && t(this.data);
}
/* istanbul ignore next */
webkitGetAsEntry() {
throw new Error("not implemented");
}
constructor(t, n) {
P(this, "kind", void 0), P(this, "type", void 0), P(this, "file", null), P(this, "data", void 0), typeof t == "string" ? (this.kind = "string", this.type = String(n), this.data = t) : (this.kind = "file", this.type = t.type, this.file = t);
}
}
class zt extends Array {
add(...t) {
const n = new ct(t[0], t[1]);
return this.push(n), n;
}
clear() {
this.splice(0, this.length);
}
remove(t) {
this.splice(t, 1);
}
}
function te(e, t) {
const [n, i] = e.split("/"), r = !i || i === "*";
return (o) => t ? o.type === (r ? n : e) : r ? o.type.startsWith(`${n}/`) : o.type === n;
}
function qt(e) {
return new class {
getData(n) {
var i;
const r = (i = this.items.find(te(n, !0))) !== null && i !== void 0 ? i : this.items.find(te(n, !1));
let o = "";
return r == null || r.getAsString((s) => {
o = s;
}), o;
}
setData(n, i) {
const r = this.items.findIndex(te(n, !0)), o = new ct(i, n);
r >= 0 ? this.items.splice(r, 1, o) : this.items.push(o);
}
clearData(n) {
if (n) {
const i = this.items.findIndex(te(n, !0));
i >= 0 && this.items.remove(i);
} else
this.items.clear();
}
get types() {
const n = [];
return this.files.length && n.push("Files"), this.items.forEach((i) => n.push(i.type)), Object.freeze(n), n;
}
/* istanbul ignore next */
setDragImage() {
}
constructor() {
P(this, "dropEffect", "none"), P(this, "effectAllowed", "uninitialized"), P(this, "items", new zt()), P(this, "files", Ue(e, []));
}
}();
}
function De(e, t = []) {
const n = typeof e.DataTransfer > "u" ? qt(e) : (
/* istanbul ignore next */
new e.DataTransfer()
);
return Object.defineProperty(n, "files", {
get: () => Ue(e, t)
}), n;
}
function Xt(e, t) {
if (t.kind === "file")
return t.getAsFile();
let n = "";
return t.getAsString((i) => {
n = i;
}), new e.Blob([
n
], {
type: t.type
});
}
function at(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e;
}
function dt(e, ...t) {
const n = Object.fromEntries(t.map((i) => [
typeof i == "string" ? "text/plain" : i.type,
Promise.resolve(i)
]));
return typeof e.ClipboardItem < "u" ? new e.ClipboardItem(n) : new class {
get types() {
return Array.from(Object.keys(this.data));
}
async getType(r) {
const o = await this.data[r];
if (!o)
throw new Error(`${r} is not one of the available MIME types on this item.`);
return o instanceof e.Blob ? o : new e.Blob([
o
], {
type: r
});
}
constructor(r) {
at(this, "data", void 0), this.data = r;
}
}(n);
}
const V = Symbol("Manage ClipboardSub");
function Be(e, t) {
return Object.assign(new class extends e.EventTarget {
async read() {
return Array.from(this.items);
}
async readText() {
let i = "";
for (const r of this.items) {
const o = r.types.includes("text/plain") ? "text/plain" : r.types.find((s) => s.startsWith("text/"));
o && (i += await r.getType(o).then((s) => ut(s, e.FileReader)));
}
return i;
}
async write(i) {
this.items = i;
}
async writeText(i) {
this.items = [
dt(e, i)
];
}
constructor(...i) {
super(...i), at(this, "items", []);
}
}(), {
[V]: t
});
}
function xe(e) {
return !!(e != null && e[V]);
}
function Jt(e) {
if (xe(e.navigator.clipboard))
return e.navigator.clipboard[V];
const t = Object.getOwnPropertyDescriptor(e.navigator, "clipboard");
let n;
const i = {
resetClipboardStub: () => {
n = Be(e, i);
},
detachClipboardStub: () => {
t ? Object.defineProperty(e.navigator, "clipboard", t) : Object.defineProperty(e.navigator, "clipboard", {
value: void 0,
configurable: !0
});
}
};
return n = Be(e, i), Object.defineProperty(e.navigator, "clipboard", {
get: () => n,
configurable: !0
}), n[V];
}
function Qt(e) {
xe(e.navigator.clipboard) && e.navigator.clipboard[V].resetClipboardStub();
}
function Zt(e) {
xe(e.navigator.clipboard) && e.navigator.clipboard[V].detachClipboardStub();
}
async function Yt(e) {
const t = e.defaultView, n = t == null ? void 0 : t.navigator.clipboard, i = n && await n.read();
if (!i)
throw new Error("The Clipboard API is unavailable.");
const r = De(t);
for (const o of i)
for (const s of o.types)
r.setData(s, await o.getType(s).then((u) => ut(u, t.FileReader)));
return r;
}
async function lt(e, t) {
const n = w(e), i = n.navigator.clipboard, r = [];
for (let s = 0; s < t.items.length; s++) {
const u = t.items[s], c = Xt(n, u);
r.push(dt(n, c));
}
if (!(i && await i.write(r).then(
() => !0,
// Can happen with other implementations that e.g. require permissions
/* istanbul ignore next */
() => !1
)))
throw new Error("The Clipboard API is unavailable.");
}
const ce = globalThis;
typeof ce.afterEach == "function" && ce.afterEach(() => Qt(globalThis.window));
typeof ce.afterAll == "function" && ce.afterAll(() => Zt(globalThis.window));
function D(e) {
return e.hasAttribute("contenteditable") && (e.getAttribute("contenteditable") == "true" || e.getAttribute("contenteditable") == "");
}
function Q(e) {
const t = en(e);
return t && (t.closest('[contenteditable=""]') || t.closest('[contenteditable="true"]'));
}
function en(e) {
return e.nodeType === 1 ? e : e.parentElement;
}
function K(e) {
return ft(e) && !e.readOnly || D(e);
}
var _e;
(function(e) {
e.text = "text", e.date = "date", e["datetime-local"] = "datetime-local", e.email = "email", e.month = "month", e.number = "number", e.password = "password", e.search = "search", e.tel = "tel", e.time = "time", e.url = "url", e.week = "week";
})(_e || (_e = {}));
function ft(e) {
return l(e, "textarea") || l(e, "input") && e.type in _e;
}
var Pe;
(function(e) {
e.email = "email", e.password = "password", e.search = "search", e.telephone = "telephone", e.text = "text", e.url = "url";
})(Pe || (Pe = {}));
function tn(e) {
var t;
const n = (t = e.getAttribute("maxlength")) !== null && t !== void 0 ? t : "";
return /^\d+$/.test(n) && Number(n) >= 0 ? Number(n) : void 0;
}
function nn(e) {
return l(e, "textarea") || l(e, "input") && e.type in Pe;
}
const pt = [
"input:not([type=hidden]):not([disabled])",
"button:not([disabled])",
"select:not([disabled])",
"textarea:not([disabled])",
'[contenteditable=""]',
'[contenteditable="true"]',
"a[href]",
"[tabindex]:not([disabled])"
].join(", ");
function Ne(e) {
return e.matches(pt);
}
var ae;
(function(e) {
e["{"] = "}", e["["] = "]";
})(ae || (ae = {}));
function ht(e, t) {
let n = 0;
const i = e[n] in ae ? e[n] : "";
n += i.length;
const o = new RegExp(`^\\${i}{2}`).test(e) ? "" : i;
return {
type: o,
...o === "" ? rn(e, n, t) : on(e, n, o, t)
};
}
function rn(e, t, n) {
const i = e[t];
return bt(i, e, t, n), t += i.length, {
consumedLength: t,
descriptor: i,
releasePrevious: !1,
releaseSelf: !0,
repeat: 1
};
}
function on(e, t, n, i) {
var r, o;
const s = e[t] === "/" ? "/" : "";
t += s.length;
const u = n === "{" && e[t] === "\\";
t += Number(u);
const c = u ? e[t] : (r = e.slice(t).match(n === "{" ? /^\w+|^[^}>/]/ : /^\w+/)) === null || r === void 0 ? void 0 : r[0];
bt(c, e, t, i), t += c.length;
var a;
const d = (a = (o = e.slice(t).match(/^>\d+/)) === null || o === void 0 ? void 0 : o[0]) !== null && a !== void 0 ? a : "";
t += d.length;
const f = e[t] === "/" || !d && e[t] === ">" ? e[t] : "";
t += f.length;
const p = ae[n], b = e[t] === p ? p : "";
if (!b)
throw new Error(vt([
!d && "repeat modifier",
!f && "release modifier",
`"${p}"`
].filter(Boolean).join(" or "), e[t], e, i));
return t += b.length, {
consumedLength: t,
descriptor: c,
releasePrevious: !!s,
repeat: d ? Math.max(Number(d.substr(1)), 1) : 1,
releaseSelf: sn(f, d)
};
}
function bt(e, t, n, i) {
if (!e)
throw new Error(vt("key descriptor", t[n], t, i));
}
function sn(e, t) {
if (e)
return e === "/";
if (t)
return !1;
}
function vt(e, t, n, i) {
return `Expected ${e} but found "${t ?? ""}" in "${n}"
See ${i === "pointer" ? "https://testing-library.com/docs/user-event/pointer#pressing-a-button-or-touching-the-screen" : "https://testing-library.com/docs/user-event/keyboard"}
for more information about how userEvent parses your input.`;
}
function un(e) {
return new e.constructor(e.type, e);
}
var g;
(function(e) {
e[e.Trigger = 2] = "Trigger", e[e.Call = 1] = "Call";
})(g || (g = {}));
function z(e, t) {
e.levelRefs[t] = {};
}
function ne(e, t) {
return e.levelRefs[t];
}
var B;
(function(e) {
e[e.EachTrigger = 4] = "EachTrigger", e[e.EachApiCall = 2] = "EachApiCall", e[e.EachTarget = 1] = "EachTarget", e[e.Never = 0] = "Never";
})(B || (B = {}));
function C(e) {
for (let n = e; n; n = n.parentElement)
if (l(n, [
"button",
"input",
"select",
"textarea",
"optgroup",
"option"
])) {
if (n.hasAttribute("disabled"))
return !0;
} else if (l(n, "fieldset")) {
var t;
if (n.hasAttribute("disabled") && !(!((t = n.querySelector(":scope > legend")) === null || t === void 0) && t.contains(e)))
return !0;
} else if (n.tagName.includes("-") && n.constructor.formAssociated && n.hasAttribute("disabled"))
return !0;
return !1;
}
function pe(e) {
const t = e.activeElement;
return t != null && t.shadowRoot ? pe(t.shadowRoot) : C(t) ? e.ownerDocument ? (
/* istanbul ignore next */
e.ownerDocument.body
) : e.body : t;
}
function Te(e) {
var t;
return (t = pe(e)) !== null && t !== void 0 ? t : (
/* istanbul ignore next */
e.body
);
}
function cn(e, t) {
let n = e;
do {
if (t(n))
return n;
n = n.parentElement;
} while (n && n !== e.ownerDocument.body);
}
function T(e) {
return gt(e) && ft(e);
}
function an(e) {
return gt(e) && st(e);
}
function gt(e) {
return e.nodeType === 1;
}
function dn(e) {
const t = e.ownerDocument.getSelection();
if (t != null && t.focusNode && T(e)) {
const i = Q(t.focusNode);
if (i) {
if (!t.isCollapsed) {
var n;
const r = ((n = i.firstChild) === null || n === void 0 ? void 0 : n.nodeType) === 3 ? i.firstChild : i;
t.setBaseAndExtent(r, 0, r, 0);
}
} else
t.setBaseAndExtent(e, 0, e, 0);
}
}
function R(e, t) {
return L().eventWrapper(e);
}
function A(e) {
const t = cn(e, Ne), n = pe(e.ownerDocument);
(t ?? e.ownerDocument.body) !== n && (R(t ? () => t.focus() : () => n == null ? void 0 : n.blur()), dn(t ?? e.ownerDocument.body));
}
function ln(e) {
!Ne(e) || !(pe(e.ownerDocument) === e) || R(() => e.blur());
}
const O = {};
O.click = (e, t, n) => {
const i = t.closest("button,input,label,select,textarea"), r = i && l(i, "label") && i.control;
if (r)
return () => {
Ne(r) && A(r), n.dispatchEvent(r, un(e));
};
if (l(t, "input", {
type: "file"
}))
return () => {
ln(t), t.dispatchEvent(new (w(t)).Event("fileDialog")), A(t);
};
};
const j = Symbol("Displayed value in UI"), I = Symbol("Displayed selection in UI"), de = Symbol("Initial value to compare on blur");
function fn(e) {
return typeof e == "object" && j in e;
}
function pn(e) {
return !!e && typeof e == "object" && I in e;
}
function hn(e, t) {
e[de] === void 0 && (e[de] = e.value), e[j] = t, e.value = Object.assign(new String(t), {
[j]: !0
});
}
function k(e) {
return e[j] === void 0 ? e.value : String(e[j]);
}
function Me(e) {
e[j] = void 0;
}
function yt(e) {
e[de] = void 0;
}
function bn(e) {
return e[de];
}
function vn(e, t) {
e[I] = t;
}
function W(e, { focusOffset: t, anchorOffset: n = t }, i = "replace") {
const r = k(e).length, o = (f) => Math.max(0, Math.min(r, f)), s = i === "replace" || e[I] === void 0 ? o(n) : e[I].anchorOffset, u = o(t), c = Math.min(s, u), a = Math.max(s, u);
if (e[I] = {
anchorOffset: s,
focusOffset: u
}, e.selectionStart === c && e.selectionEnd === a)
return;
const d = Object.assign(new Number(c), {
[I]: !0
});
try {
e.setSelectionRange(d, a);
} catch {
}
}
function Z(e) {
var t, n, i;
const r = (i = e[I]) !== null && i !== void 0 ? i : {
anchorOffset: (t = e.selectionStart) !== null && t !== void 0 ? t : 0,
focusOffset: (n = e.selectionEnd) !== null && n !== void 0 ? n : 0
};
return {
...r,
startOffset: Math.min(r.anchorOffset, r.focusOffset),
endOffset: Math.max(r.anchorOffset, r.focusOffset)
};
}
function gn(e) {
return !!e[I];
}
function se(e) {
e[I] = void 0;
}
const le = globalThis.parseInt;
function yn(e) {
const t = e.replace(/\D/g, "");
if (t.length < 2)
return e;
const n = le(t[0], 10), i = le(t[1], 10);
if (n >= 3 || n === 2 && i >= 4) {
let r;
return n >= 3 ? r = 1 : r = 2, Fe(t, r);
}
return e.length === 2 ? e : Fe(t, 2);
}
function Fe(e, t) {
const n = e.slice(0, t), i = Math.min(le(n, 10), 23), r = e.slice(t), o = le(r, 10), s = Math.min(o, 59);
return `${i.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`;
}
function mt(e, t) {
const n = e.cloneNode();
return n.value = t, n.value === t;
}
function Et(e, t, n, i) {
if (ue(e) && t + n >= 0 && t + n <= e.nodeValue.length)
return {
node: e,
offset: t + n
};
const r = Ve(e, t, n);
if (r) {
if (ue(r))
return {
node: r,
offset: n > 0 ? Math.min(1, r.nodeValue.length) : Math.max(r.nodeValue.length - 1, 0)
};
if (l(r, "br")) {
const o = Ve(r, void 0, n);
return o ? ue(o) ? {
node: o,
offset: n > 0 ? 0 : o.nodeValue.length
} : n < 0 && l(o, "br") ? {
node: r.parentNode,
offset: ie(r)
} : {
node: o.parentNode,
offset: ie(o) + (n > 0 ? 0 : 1)
} : n < 0 && i === "deleteContentBackward" ? {
node: r.parentNode,
offset: ie(r)
} : void 0;
} else
return {
node: r.parentNode,
offset: ie(r) + (n > 0 ? 1 : 0)
};
}
}
function Ve(e, t, n) {
const i = Number(t) + (n < 0 ? -1 : 0);
return t !== void 0 && Le(e) && i >= 0 && i < e.children.length && (e = e.children[i]), En(e, n === 1 ? "next" : "previous", mn);
}
function mn(e) {
if (ue(e))
return !0;
if (Le(e)) {
if (l(e, [
"input",
"textarea"
]))
return e.type !== "hidden";
if (l(e, "br"))
return !0;
}
return !1;
}
function ie(e) {
let t = 0;
for (; e.previousSibling; )
t++, e = e.previousSibling;
return t;
}
function Le(e) {
return e.nodeType === 1;
}
function ue(e) {
return e.nodeType === 3;
}
function En(e, t, n) {
for (; ; ) {
var i;
const r = e[`${t}Sibling`];
if (r) {
if (e = wn(r, t === "next" ? "first" : "last"), n(e))
return e;
} else if (e.parentNode && (!Le(e.parentNode) || !D(e.parentNode) && e.parentNode !== ((i = e.ownerDocument) === null || i === void 0 ? void 0 : i.body)))
e = e.parentNode;
else
break;
}
}
function wn(e, t) {
for (; e.hasChildNodes(); )
e = e[`${t}Child`];
return e;
}
const Y = Symbol("Track programmatic changes for React workaround");
function Tn(e) {
return Object.getOwnPropertyNames(e).some((t) => t.startsWith("__react")) && w(e).REACT_VERSION === 17;
}
function kn(e) {
Tn(e) && (e[Y] = {
previousValue: String(e.value),
tracked: []
});
}
function In(e, t) {
var n, i;
(i = e[Y]) === null || i === void 0 || (n = i.tracked) === null || n === void 0 || n.push(t), e[Y] || (Me(e), W(e, {
focusOffset: t.length
}));
}
function Cn(e, t) {
var n;
const i = e[Y];
if (e[Y] = void 0, !(!(i == null || (n = i.tracked) === null || n === void 0) && n.length))
return;
const r = i.tracked.length === 2 && i.tracked[0] === i.previousValue && i.tracked[1] === e.value;
r || Me(e), gn(e) && W(e, {
focusOffset: r ? t : e.value.length
});
}
function wt(e) {
const t = Sn(e);
if (t && T(t))
return {
type: "input",
selection: Z(t)
};
const n = t == null ? void 0 : t.ownerDocument.getSelection();
return {
type: Q(e) && (n == null ? void 0 : n.anchorNode) && Q(n.anchorNode) ? "contenteditable" : "default",
selection: n
};
}
function Sn(e) {
return e.nodeType === 1 ? e : e.parentElement;
}
function _n(e) {
const t = wt(e);
if (t.type === "input")
return t.selection;
if (t.type === "contenteditable") {
var n;
return (n = t.selection) === null || n === void 0 ? void 0 : n.getRangeAt(0);
}
}
function x({ focusNode: e, focusOffset: t, anchorNode: n = e, anchorOffset: i = t }) {
var r, o;
if (wt(e).type === "input")
return W(e, {
anchorOffset: i,
focusOffset: t
});
(o = n.ownerDocument) === null || o === void 0 || (r = o.getSelection()) === null || r === void 0 || r.setBaseAndExtent(n, i, e, t);
}
function Tt(e) {
return l(e, "input") && [
"date",
"time"
].includes(e.type);
}
function H(e, t, n, i = "insertText") {
const r = _n(t);
r && (!Tt(t) && !e.dispatchUIEvent(t, "beforeinput", {
inputType: i,
data: n
}) || ("startContainer" in r ? Pn(e, t, r, n, i) : An(e, t, r, n, i)));
}
function Pn(e, t, n, i, r) {
let o = !1;
if (!n.collapsed)
o = !0, n.deleteContents();
else if ([
"deleteContentBackward",
"deleteContentForward"
].includes(r)) {
const s = Et(n.startContainer, n.startOffset, r === "deleteContentBackward" ? -1 : 1, r);
if (s) {
o = !0;
const u = n.cloneRange();
u.comparePoint(s.node, s.offset) < 0 ? u.setStart(s.node, s.offset) : u.setEnd(s.node, s.offset), u.deleteContents();
}
}
if (i)
if (n.endContainer.nodeType === 3) {
const s = n.endOffset;
n.endContainer.insertData(s, i), n.setStart(n.endContainer, s + i.length), n.setEnd(n.endContainer, s + i.length);
} else {
const s = t.ownerDocument.createTextNode(i);
n.insertNode(s), n.setStart(s, i.length), n.setEnd(s, i.length);
}
(o || i) && e.dispatchUIEvent(t, "input", {
inputType: r
});
}
function An(e, t, n, i, r) {
let o = i;
if (nn(t)) {
const a = tn(t);
if (a !== void 0 && i.length > 0) {
const d = a - t.value.length;
if (d > 0)
o = i.substring(0, d);
else
return;
}
}
const { newValue: s, newOffset: u, oldValue: c } = On(o, t, n, r);
s === c && u === n.startOffset && u === n.endOffset || l(t, "input", {
type: "number"
}) && !Un(s) || (hn(t, s), x({
focusNode: t,
anchorOffset: u,
focusOffset: u
}), Tt(t) ? mt(t, s) && (Ke(e, t, u, {}), e.dispatchUIEvent(t, "change"), yt(t)) : Ke(e, t, u, {
data: i,
inputType: r
}));
}
function On(e, t, { startOffset: n, endOffset: i }, r) {
const o = k(t), s = Math.max(0, n === i && r === "deleteContentBackward" ? n - 1 : n), u = o.substring(0, s), c = Math.min(o.length, n === i && r === "deleteContentForward" ? n + 1 : i), a = o.substring(c, o.length);
let d = `${u}${e}${a}`, f = s + e.length;
if (l(t, "input", {
type: "time"
})) {
const p = yn(d);
p !== "" && mt(t, p) && (d = p, f = p.length);
}
return {
oldValue: o,
newValue: d,
newOffset: f
};
}
function Ke(e, t, n, i) {
e.dispatchUIEvent(t, "input", i), Cn(t, n);
}
function Un(e) {
var t, n;
const i = e.split("e", 2);
return !(/[^\d.\-e]/.test(e) || Number((t = e.match(/-/g)) === null || t === void 0 ? void 0 : t.length) > 2 || Number((n = e.match(/\./g)) === null || n === void 0 ? void 0 : n.length) > 1 || i[1] && !/^-?\d*$/.test(i[1]));
}
O.cut = (e, t, n) => () => {
K(t) && H(n, t, "", "deleteByCut");
};
function Dn(e) {
return e ? D(e) ? e.textContent : k(e) : null;
}
function xn(e) {
const t = w(e);
for (let n = e; n != null && n.ownerDocument; n = n.parentElement) {
const { display: i, visibility: r } = t.getComputedStyle(n);
if (i === "none" || r === "hidden")
return !1;
}
return !0;
}
function Nn(e, t) {
const n = e.ownerDocument, i = n.querySelectorAll(pt), r = Array.from(i).filter((c) => c === e || !(Number(c.getAttribute("tabindex")) < 0 || C(c)));
Number(e.getAttribute("tabindex")) >= 0 && r.sort((c, a) => {
const d = Number(c.getAttribute("tabindex")), f = Number(a.getAttribute("tabindex"));
return d === f ? 0 : d === 0 ? 1 : f === 0 ? -1 : d - f;
});
const o = {};
let s = [
n.body
];
const u = l(e, "input", {
type: "radio"
}) ? e.name : void 0;
r.forEach((c) => {
const a = c;
if (l(a, "input", {
type: "radio"
}) && a.name) {
if (a === e) {
s.push(a);
return;
} else if (a.name === u)
return;
if (a.checked) {
s = s.filter((d) => !l(d, "input", {
type: "radio",
name: a.name
})), s.push(a), o[a.name] = a;
return;
}
if (typeof o[a.name] < "u")
return;
}
s.push(a);
});
for (let c = s.findIndex((a) => a === e); ; )
if (c += t ? -1 : 1, c === s.length ? c = 0 : c === -1 && (c = s.length - 1), s[c] === e || s[c] === n.body || xn(s[c]))
return s[c];
}
function Re(e, t) {
if (T(e)) {
const n = Z(e);
x({
focusNode: e,
focusOffset: n.startOffset === n.endOffset ? n.focusOffset + t : t < 0 ? n.startOffset : n.endOffset
});
} else {
const n = e.ownerDocument.getSelection();
if (!(n != null && n.focusNode))
return;
if (n.isCollapsed) {
const i = Et(n.focusNode, n.focusOffset, t);
i && x({
focusNode: i.node,
focusOffset: i.offset
});
} else
n[t < 0 ? "collapseToStart" : "collapseToEnd"]();
}
}
function kt(e) {
if (T(e))
return x({
focusNode: e,
anchorOffset: 0,
focusOffset: k(e).length
});
var t;
const n = (t = Q(e)) !== null && t !== void 0 ? t : e.ownerDocument.body;
x({
focusNode: n,
anchorOffset: 0,
focusOffset: n.childNodes.length
});
}
function Mn(e) {
if (T(e))
return Z(e).startOffset === 0 && Z(e).endOffset === k(e).length;
var t;
const n = (t = Q(e)) !== null && t !== void 0 ? t : e.ownerDocument.body, i = e.ownerDocument.getSelection();
return (i == null ? void 0 : i.anchorNode) === n && i.focusNode === n && i.anchorOffset === 0 && i.focusOffset === n.childNodes.length;
}
function q(e, t, n) {
var i;
if (T(e))
return x({
focusNode: e,
anchorOffset: t,
focusOffset: n
});
if (D(e) && ((i = e.firstChild) === null || i === void 0 ? void 0 : i.nodeType) === 3)
return x({
focusNode: e.firstChild,
anchorOffset: t,
focusOffset: n
});
throw new Error("Not implemented. The result of this interaction is unreliable.");
}
function re(e, t, n) {
const i = w(t), r = Array.from(t.ownerDocument.querySelectorAll(t.name ? `input[type="radio"][name="${i.CSS.escape(t.name)}"]` : 'input[type="radio"][name=""], input[type="radio"]:not([name])'));
for (let o = r.findIndex((s) => s === t) + n; ; o += n) {
if (r[o] || (o = n > 0 ? 0 : r.length - 1), r[o] === t)
return;
C(r[o]) || (A(r[o]), e.dispatchUIEvent(r[o], "click"));
}
}
O.keydown = (e, t, n) => {
var i, r;
return (r = (i = je[e.key]) === null || i === void 0 ? void 0 : i.call(je, e, t, n)) !== null && r !== void 0 ? r : Ln(e, t, n);
};
const je = {
ArrowDown: (e, t, n) => {
if (l(t, "input", {
type: "radio"
}))
return () => re(n, t, -1);
},
ArrowLeft: (e, t, n) => l(t, "input", {
type: "radio"
}) ? () => re(n, t, -1) : () => Re(t, -1),
ArrowRight: (e, t, n) => l(t, "input", {
type: "radio"
}) ? () => re(n, t, 1) : () => Re(t, 1),
ArrowUp: (e, t, n) => {
if (l(t, "input", {
type: "radio"
}))
return () => re(n, t, 1);
},
Backspace: (e, t, n) => {
if (K(t))
return () => {
H(n, t, "", "deleteContentBackward");
};
},
Delete: (e, t, n) => {
if (K(t))
return () => {
H(n, t, "", "deleteContentForward");
};
},
End: (e, t) => {
if (l(t, [
"input",
"textarea"
]) || D(t))
return () => {
var n, i;
const r = (i = (n = Dn(t)) === null || n === void 0 ? void 0 : n.length) !== null && i !== void 0 ? i : (
/* istanbul ignore next */
0
);
q(t, r, r);
};
},
Home: (e, t) => {
if (l(t, [
"input",
"textarea"
]) || D(t))
return () => {
q(t, 0, 0);
};
},
PageDown: (e, t) => {
if (l(t, [
"input"
]))
return () => {
const n = k(t).length;
q(t, n, n);
};
},
PageUp: (e, t) => {
if (l(t, [
"input"
]))
return () => {
q(t, 0, 0);
};
},
Tab: (e, t, n) => () => {
const i = Nn(t, n.system.keyboard.modifiers.Shift);
A(i), T(i) && W(i, {
anchorOffset: 0,
focusOffset: i.value.length
});
}
}, Ln = (e, t, n) => {
if (e.code === "KeyA" && n.system.keyboard.modifiers.Control)
return () => kt(t);
};
O.keypress = (e, t, n) => {
if (e.key === "Enter") {
if (l(t, "button") || l(t, "input") && $n.includes(t.type) || l(t, "a") && t.href)
return () => {
n.dispatchUIEvent(t, "click");
};
if (l(t, "input")) {
const i = t.form, r = i == null ? void 0 : i.querySelector('input[type="submit"], button:not([type]), button[type="submit"]');
return r ? () => n.dispatchUIEvent(r, "click") : i && Bn.includes(t.type) && i.querySelectorAll("input").length === 1 ? () => n.dispatchUIEvent(i, "submit") : void 0;
}
}
if (K(t)) {
const i = e.key === "Enter" ? D(t) && !n.system.keyboard.modifiers.Shift ? "insertParagraph" : "insertLineBreak" : "insertText", r = e.key === "Enter" ? `
` : e.key;
return () => H(n, t, r, i);
}
};
const $n = [
"button",
"color",
"file",
"image",
"reset",
"submit"
], Bn = [
"email",
"month",
"password",
"search",
"tel",
"text",
"url",
"week"
];
O.keyup = (e, t, n) => {
var i;
return (i = He[e.key]) === null || i === void 0 ? void 0 : i.call(He, e, t, n);
};
const He = {
" ": (e, t, n) => {
if (st(t))
return () => n.dispatchUIEvent(t, "click");
}
};
O.paste = (e, t, n) => {
if (K(t))
return () => {
var i;
const r = (i = e.clipboardData) === null || i === void 0 ? void 0 : i.getData("text");
r && H(n, t, r, "insertFromPaste");
};
};
const It = {
auxclick: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
beforeinput: {
EventType: "InputEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
click: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
contextmenu: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
copy: {
EventType: "ClipboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
change: {
EventType: "Event",
defaultInit: {
bubbles: !0,
cancelable: !1
}
},
cut: {
EventType: "ClipboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
dblclick: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
keydown: {
EventType: "KeyboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
keypress: {
EventType: "KeyboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
keyup: {
EventType: "KeyboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
paste: {
EventType: "ClipboardEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
input: {
EventType: "InputEvent",
defaultInit: {
bubbles: !0,
cancelable: !1,
composed: !0
}
},
mousedown: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
mouseenter: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !1,
cancelable: !1,
composed: !0
}
},
mouseleave: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !1,
cancelable: !1,
composed: !0
}
},
mousemove: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
mouseout: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
mouseover: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
mouseup: {
EventType: "MouseEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointerover: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointerenter: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !1,
cancelable: !1
}
},
pointerdown: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointermove: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointerup: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointercancel: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !1,
composed: !0
}
},
pointerout: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !0,
cancelable: !0,
composed: !0
}
},
pointerleave: {
EventType: "PointerEvent",
defaultInit: {
bubbles: !1,
cancelable: !1
}
},
submit: {
EventType: "Event",
defaultInit: {
bubbles: !0,
cancelable: !0
}
}
};
function Ct(e) {
return It[e].EventType;
}
const Fn = [
"MouseEvent",
"PointerEvent"
];
function Vn(e) {
return Fn.includes(Ct(e));
}
function Kn(e) {
return Ct(e) === "KeyboardEvent";
}
const Rn = {
ClipboardEvent: [
Hn
],
Event: [],
InputEvent: [
oe,
Gn
],
MouseEvent: [
oe,
ke,
Ge
],
PointerEvent: [
oe,
ke,
Ge,
zn
],
KeyboardEvent: [
oe,
ke,
Wn
]
};
function St(e, t, n) {
const i = w(t), { EventType: r, defaultInit: o } = It[e], s = new (jn(i))[r](e, o);
return Rn[r].forEach((u) => u(s, n ?? {})), s;
}
function jn(e) {
var t;
const n = (t = e.Event) !== null && t !== void 0 ? t : class {
};
var i;
const r = (i = e.AnimationEvent) !== null && i !== void 0 ? i : class extends n {
};
var o;
const s = (o = e.ClipboardEvent) !== null && o !== void 0 ? o : class extends n {
};
var u;
const c = (u = e.PopStateEvent) !== null && u !== void 0 ? u : class extends n {
};
var a;
const d = (a = e.ProgressEvent) !== null && a !== void 0 ? a : class extends n {
};
var f;
const p = (f = e.TransitionEvent) !== null && f !== void 0 ? f : class extends n {
};
var b;
const y = (b = e.UIEvent) !== null && b !== void 0 ? b : class extends n {
};
var ee;
const Bt = (ee = e.CompositionEvent) !== null && ee !== void 0 ? ee : class extends y {
};
var he;
const Ft = (he = e.FocusEvent) !== null && he !== void 0 ? he : class extends y {
};
var be;
const Vt = (be = e.InputEvent) !== null && be !== void 0 ? be : class extends y {
};
var ve;
const Kt = (ve = e.KeyboardEvent) !== null && ve !== void 0 ? ve : class extends y {
};
var ge;
const ye = (ge = e.MouseEvent) !== null && ge !== void 0 ? ge : class extends y {
};
var me;
const Rt = (me = e.DragEvent) !== null && me !== void 0 ? me : class extends ye {
};
var Ee;
const jt = (Ee = e.PointerEvent) !== null && Ee !== void 0 ? Ee : class extends ye {
};
var we;
const Ht = (we = e.TouchEvent) !== null && we !== void 0 ? we : class extends y {
};
return {
Event: n,
AnimationEvent: r,
ClipboardEvent: s,
PopStateEvent: c,
ProgressEvent: d,
TransitionEvent: p,
UIEvent: y,
CompositionEvent: Bt,
FocusEvent: Ft,
InputEvent: Vt,
KeyboardEvent: Kt,
MouseEvent: ye,
DragEvent: Rt,
PointerEvent: jt,
TouchEvent: Ht
};
}
function N(e, t) {
for (const [n, i] of Object.entries(t))
Object.defineProperty(e, n, {
get: () => i ?? null
});
}
function h(e) {
return Number(e ?? 0);
}
function Hn(e, { clipboardData: t }) {
N(e, {
clipboardData: t
});
}
function Gn(e, { data: t, inputType: n, isComposing: i }) {
N(e, {
data: t,
isComposing: !!i,
inputType: String(n)
});
}
function oe(e, { view: t, detail: n }) {
N(e, {
view: t,
detail: h(n ?? 0)
});
}
function ke(e, { altKey: t, ctrlKey: n, metaKey: i, shiftKey: r, modifierAltGraph: o, modifierCapsLock: s, modifierFn: u, modifierFnLock: c, modifierNumLock: a, modifierScrollLock: d, modifierSymbol: f, modifierSymbolLock: p }) {
N(e, {
altKey: !!t,
ctrlKey: !!n,
metaKey: !!i,
shiftKey: !!r,
getModifierState(b) {
return !!{
Alt: t,
AltGraph: o,
CapsLock: s,
Control: n,
Fn: u,
FnLock: c,
Meta: i,
NumLock: a,
ScrollLock: d,
Shift: r,
Symbol: f,
SymbolLock: p
}[b];
}
});
}
function Wn(e, { key: t, code: n, location: i, repeat: r, isComposing: o, charCode: s }) {
N(e, {
key: String(t),
code: String(n),
location: h(i),
repeat: !!r,
isComposing: !!o,
charCode: s
});
}
function Ge(e, { x: t, y: n, screenX: i, screenY: r, clientX: o = t, clientY: s = n, button: u, buttons: c, relatedTarget: a }) {
N(e, {
screenX: h(i),
screenY: h(r),
clientX: h(o),
x: h(o),
clientY: h(s),
y: h(s),
button: h(u),
buttons: h(c),
relatedTarget: a
});
}
function zn(e, { pointerId: t, width: n, height: i, pressure: r, tangentialPressure: o, tiltX: s, tiltY: u, twist: c, pointerType: a, isPrimary: d }) {
N(e, {
pointerId: h(t),
width: h(n),
height: h(i),
pressure: h(r),
tangentialPressure: h(o),
tiltX: h(s),
tiltY: h(u),
twist: h(c),
pointerType: String(a),
isPrimary: !!d
});
}
function qn(e, t, n, i = !1) {
(Vn(t) || Kn(t)) && (n = {
...n,
...this.system.getUIEventModifiers()
});
const r = St(t, e, n);
return _t.call(this, e, r, i);
}
function _t(e, t, n = !1) {
var i;
const r = t.type, o = n ? () => {
} : (i = O[r]) === null || i === void 0 ? void 0 : i.call(O, t, e, this);
if (o) {
t.preventDefault();
let s = !1;
return Object.defineProperty(t, "defaultPrevented", {
get: () => s
}), Object.defineProperty(t, "preventDefault", {
value: () => {
s = t.cancelable;
}
}), R(() => e.dispatchEvent(t)), s || o(), !s;
}
return R(() => e.dispatchEvent(t));
}
function Xn(e, t, n) {
const i = St(t, e, n);
R(() => e.dispatchEvent(i));
}
const Ie = Symbol("Interceptor for programmatical calls");
function $(e, t, n) {
const i = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), r = Object.getOwnPropertyDescriptor(e, t), o = i != null && i.set ? "set" : "value";
if (typeof (i == null ? void 0 : i[o]) != "function" || i[o][Ie])
throw new Error(`Element ${e.tagName} does not implement "${String(t)}".`);
function s(...u) {
const { applyNative: c = !1, realArgs: a, then: d } = n.call(this, ...u), f = (!c && r || i)[o];
o === "set" ? f.call(this, a) : f.call(this, ...a), d == null || d();
}
s[Ie] = Ie, Object.defineProperty(e, t, {
...r ?? i,
[o]: s
});
}
function Jn(e) {
$(e, "value", function(n) {
const i = fn(n);
return i && kn(this), {
applyNative: !!i,
realArgs: Qn(this, n),
then: i ? void 0 : () => In(this, String(n))
};
});
}
function Qn(e, t) {
return l(e, "input", {
type: "number"
}) && String(t) !== "" && !Number.isNaN(Number(t)) ? String(Number(t)) : String(t);
}
function Zn(e) {
$(e, "setSelectionRange", function(n, ...i) {
const r = pn(n);
return {
applyNative: !!r,
realArgs: [
Number(n),
...i
],
then: () => r ? void 0 : se(e)
};
}), $(e, "selectionStart", function(n) {
return {
realArgs: n,
then: () => se(e)
};
}), $(e, "selectionEnd", function(n) {
return {
realArgs: n,
then: () => se(e)
};
}), $(e, "select", function() {
return {
realArgs: [],
then: () => vn(e, {
anchorOffset: 0,
focusOffset: k(e).length
})
};
});
}
function Yn(e) {
$(e, "setRangeText", function(...n) {
return {
realArgs: n,
then: () => {
Me(e), se(e);
}
};
});
}
const F = Symbol("Node prepared with document state workarounds");
function Pt(e) {
e[F] || (e.addEventListener("focus", (t) => {
const n = t.target;
We(n);
}, {
capture: !0,
passive: !0
}), e.activeElement && We(e.activeElement), e.addEventListener("blur", (t) => {
const n = t.target, i = bn(n);
i !== void 0 && (n.value !== i && Xn(n, "change"), yt(n));
}, {
capture: !0,
passive: !0
}), e[F] = F);
}
function We(e) {
e[F] || (l(e, [
"input",
"textarea"
]) && (Jn(e), Zn(e), Yn(e)), e[F] = F);
}
function ei(e) {
return ti(e) ? e : e.ownerDocument;
}
function ti(e) {
return e.nodeType === 9;
}
function G(e) {
const t = e.delay;
if (typeof t == "number")
return Promise.all([
new Promise((n) => globalThis.setTimeout(() => n(), t)),
e.advanceTimers(t)
]);
}
function M(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e;
}
var E;
(function(e) {
e[e.STANDARD = 0] = "STANDARD", e[e.LEFT = 1] = "LEFT", e[e.RIGHT = 2] = "RIGHT", e[e.NUMPAD = 3] = "NUMPAD";
})(E || (E = {}));
const ni = [
"Alt",
"AltGraph",
"Control",
"Fn",
"Meta",
"Shift",
"Symbol"
];
function ze(e) {
return ni.includes(e);
}
const ii = [
"CapsLock",
"FnLock",
"NumLock",
"ScrollLock",
"SymbolLock"
];
function qe(e) {
return ii.includes(e);
}
class ri {
isKeyPressed(t) {
return !!this.pressed[String(t.code)];
}
getPressedKeys() {
return Object.values(this.pressed).map((t) => t.keyDef);
}
/** Press a key */
async keydown(t, n) {
var i, r, o;
const s = String(n.key), u = String(n.code), c = Te(t.config.document);
this.setKeydownTarget(c);
var a;
(a = (i = this.pressed)[r = u]) !== null && a !== void 0 || (i[r] = {
keyDef: n,
unpreventedDefault: !1
}), ze(s) && (this.modifiers[s] = !0);
const d = t.dispatchUIEvent(c, "keydown", {
key: s,
code: u
});
qe(s) && !this.modifiers[s] && (this.modifiers[s] = !0, this.modifierLockStart[s] = !0), (o = this.pressed[u]).unpreventedDefault || (o.unpreventedDefault = d), d && this.hasKeyPress(s) && t.dispatchUIEvent(Te(t.config.document), "keypress", {
key: s,
code: u,
charCode: n.key === "Enter" ? 13 : String(n.key).charCodeAt(0)
});
}
/** Release a key */
async keyup(t, n) {
const i = String(n.key), r = String(n.code), o = this.pressed[r].unpreventedDefault;
delete this.pressed[r], ze(i) && !Object.values(this.pressed).find((s) => s.keyDef.key === i) && (this.modifiers[i] = !1), t.dispatchUIEvent(Te(t.config.document), "keyup", {
key: i,
code: r
}, !o), qe(i) && this.modifiers[i] && (this.modifierLockStart[i] ? this.modifierLockStart[i] = !1 : this.modifiers[i] = !1);
}
setKeydownTarget(t) {
t !== this.lastKeydownTarget && (this.carryChar = ""), this.lastKeydownTarget = t;
}
hasKeyPress(t) {
return (t.length === 1 || t === "Enter") && !this.modifiers.Control && !this.modifiers.Alt;
}
constructor(t) {
M(this, "system", void 0), M(this, "modifiers", {
Alt: !1,
AltGraph: !1,
CapsLock: !1,
Control: !1,
Fn: !1,
FnLock: !1,
Meta: !1,
NumLock: !1,
ScrollLock: !1,
Shift: !1,
Symbol: !1,
SymbolLock: !1
}), M(this, "pressed", {}), M(this, "carryChar", ""), M(this, "lastKeydownTarget", void 0), M(this, "modifierLockStart", {}), this.system = t;
}
}
const oi = [
// alphanumeric keys
..."0123456789".split("").map((e) => ({
code: `Digit${e}`,
key: e
})),
...")!@#$%^&*(".split("").map((e, t) => ({
code: `Digit${t}`,
key: e,
shiftKey: !0
})),
..."abcdefghijklmnopqrstuvwxyz".split("").map((e) => ({
code: `Key${e.toUpperCase()}`,
key: e
})),
..."ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").map((e) => ({
code: `Key${e}`,
key: e,
shiftKey: !0
})),
// alphanumeric block - functional
{
code: "Space",
key: " "
},
{
code: "AltLeft",
key: "Alt",
location: E.LEFT
},
{
code: "AltRight",
key: "Alt",
location: E.RIGHT
},
{
code: "ShiftLeft",
key: "Shift",
location: E.LEFT
},
{
code: "ShiftRight",
key: "Shift",
location: E.RIGHT
},
{
code: "ControlLeft",
key: "Control",
location: E.LEFT
},
{
code: "ControlRight",
key: "Control",
location: E.RIGHT
},
{
code: "MetaLeft",
key: "Meta",
location: E.LEFT
},
{
code: "MetaRight",
key: "Meta",
location: E.RIGHT
},
{
code: "OSLeft",
key: "OS",
location: E.LEFT
},
{
code: "OSRight",
key: "OS",
location: E.RIGHT
},
{
code: "Tab",
key: "Tab"
},
{
code: "CapsLock",
key: "CapsLock"
},
{
code: "Backspace",
key: "Backspace"
},
{
code: "Enter",
key: "Enter"
},
// function
{
code: "Escape",
key: "Escape"
},
// arrows
{
code: "ArrowUp",
key: "ArrowUp"
},
{
code: "ArrowDown",
key: "ArrowDown"
},
{
code: "ArrowLeft",
key: "ArrowLeft"
},
{
code: "ArrowRight",
key: "ArrowRight"
},
// control pad
{
code: "Home",
key: "Home"
},
{
code: "End",
key: "End"
},
{
code: "Delete",
key: "Delete"
},
{
code: "PageUp",
key: "PageUp"
},
{
code: "PageDown",
key: "PageDown"
},
// Special keys that are not part of a default US-layout but included for specific behavior
{
code: "Fn",
key: "Fn"
},
{
code: "Symbol",
key: "Symbol"
},
{
code: "AltRight",
key: "AltGraph"
}
], si = [
{
name: "MouseLeft",
pointerType: "mouse",
button: "primary"
},
{
name: "MouseRight",
pointerType: "mouse",
button: "secondary"
},
{
name: "MouseMiddle",
pointerType: "mouse",
button: "auxiliary"
},
{
name: "TouchA",
pointerType: "touch"
},
{
name: "TouchB",
pointerType: "touch"
},
{
name: "TouchC",
pointerType: "touch"
}
];
function ui(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e;
}
class At {
getButtons() {
let t = 0;
for (const n of Object.keys(this.pressed))
t |= 2 ** Number(n);
return t;
}
down(t) {
const n = Ae(t.button);
if (n in this.pressed) {
this.pressed[n].push(t);
return;
}
return this.pressed[n] = [
t
], n;
}
up(t) {
const n = Ae(t.button);
if (n in this.pressed && (this.pressed[n] = this.pressed[n].filter((i) => i.name !== t.name), this.pressed[n].length === 0))
return delete this.pressed[n], n;
}
constructor() {
ui(this, "pressed", {});
}
}
const Xe = {
primary: 0,
secondary: 1,
auxiliary: 2,
back: 3,
X1: 3,
forward: 4,
X2: 4
};
function Ae(e = 0) {
return e in Xe ? Xe[e] : Number(e);
}
const Je = {
1: 2,
2: 1
};
function Qe(e) {
return e = Ae(e), e in Je ? Je[e] : e;
}
function ci(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e;
}
class ai {
get countPressed() {
return this.pressedKeys.size;
}
isPressed(t) {
return this.pressedKeys.has(t.name);
}
addPressed(t) {
return this.pressedKeys.add(t.name);
}
removePressed(t) {
return this.pressedKeys.delete(t.name);
}
constructor() {
ci(this, "pressedKeys", /* @__PURE__ */ new Set());
}
}
function J(e, t) {
const n = [];
for (let o = e; o; o = o.parentElement)
n.push(o);
const i = [];
for (let o = t; o; o = o.parentElement)
i.push(o);
let r = 0;
for (; !(r >= n.length || r >= i.length || n[n.length - 1 - r] !== i[i.length - 1 - r]); r++)
;
return [
n.slice(0, n.length - r),
i.slice(0, i.length - r),
i.slice(i.length - r)
];
}
function Oe({ target: e, node: t, offset: n }) {
return T(e) ? {
node: e,
offset: n ?? k(e).length
} : t ? {
node: t,
offset: n ?? (t.nodeType === 3 ? t.nodeValue.length : t.childNodes.length)
} : Ot(e, n);
}
function Ot(e, t, n = !0) {
let i = t === void 0 ? e.childNodes.length - 1 : 0;
const r = t === void 0 ? -1 : 1;
for (; t === void 0 ? i >= (n ? Math.max(e.childNodes.length - 1, 0) : 0) : i <= e.childNodes.length; ) {
if (t && i === e.childNodes.length)
throw new Error("The given offset is out of bounds.");
const o = e.childNodes.item(i), s = String(o.textContent);
if (s.length)
if (t !== void 0 && s.length < t)
t -= s.length;
else {
if (o.nodeType === 1)
return Ot(o, t, !1);
if (o.nodeType === 3)
return {
node: o,
offset: t ?? o.nodeValue.length
};
}
i += r;
}
return {
node: e,
offset: e.childNodes.length
};
}
function di({ document: e, target: t, clickCount: n, node: i, offset: r }) {
if (an(t))
return;
const o = T(t), s = String(o ? k(t) : t.textContent), [u, c] = i ? (
// which elements might be considered in the same line of text.
// TODO: support expanding initial range on multiple clicks if node is given
[
r,
r
]
) : li(s, r, n);
if (o)
return W(t, {
anchorOffset: u ?? s.length,
focusOffset: c ?? s.length
}), {
node: t,
start: u ?? 0,
end: c ?? s.length
};
{
const { node: a, offset: d } = Oe({
target: t,
node: i,
offset: u
}), { node: f, offset: p } = Oe({
target: t,
node: i,
offset: c
}), b = t.ownerDocument.createRange();
try {
b.setStart(a, d), b.setEnd(f, p);
} catch {
throw new Error("The given offset is out of bounds.");
}
const y = e.getSelection();
return y == null || y.removeAllRanges(), y == null || y.addRange(b.cloneRange()), b;
}
}
function li(e, t, n) {
if (n % 3 === 1 || e.length === 0)
return [
t,
t
];
const i = t ?? e.length;
return n % 3 === 2 ? [
i - e.substr(0, t).match(/(\w+|\s+|\W)?$/)[0].length,
t === void 0 ? t : t + e.substr(t).match(/^(\w+|\s+|\W)?/)[0].length
] : [
i - e.substr(0, t).match(/[^\r\n]*$/)[0].length,
t === void 0 ? t : t + e.substr(t).match(/^[^\r\n]*/)[0].length
];
}
function fi(e, { document: t, target: n, node