UNPKG

js.foresight-devtools

Version:

Visual debugging tools for ForesightJS - mouse trajectory prediction and element interaction visualization

1 lines 58.7 kB
{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@thednp+shorty@2.0.11/node_modules/@thednp/shorty/dist/shorty.mjs","../../../node_modules/.pnpm/@thednp+position-observer@1.1.0/node_modules/@thednp/position-observer/dist/index.mjs","../../src/Debugger/helpers/objectToMethodCall.ts","../../src/Debugger/helpers/createAndAppend.ts","../../src/Debugger/helpers/getIntersectingIcon.ts","../../src/Debugger/constants.ts","../../src/Debugger/DebuggerControlPanel.ts","../../src/Debugger/helpers/updateElementOverlays.ts","../../src/Debugger/helpers/shouldUpdateSetting.ts","../../src/Debugger/ForesightDebugger.ts","../../src/Debugger/helpers/evaluateRegistrationConditions.ts"],"sourcesContent":["const Ce = \"2.0.11\", Me = \"aria-checked\", De = \"aria-description\", Le = \"aria-describedby\", Oe = \"aria-expanded\", xe = \"aria-haspopup\", X = \"aria-hidden\", ze = \"aria-label\", Ie = \"aria-labelledby\", Pe = \"aria-modal\", Fe = \"aria-pressed\", Be = \"aria-selected\", Ve = \"aria-valuemin\", He = \"aria-valuemax\", Ue = \"aria-valuenow\", We = \"aria-valuetext\", Y = \"abort\", tt = \"beforeunload\", et = \"blur\", nt = \"change\", ot = \"contextmenu\", U = \"DOMContentLoaded\", st = \"DOMMouseScroll\", rt = \"error\", ct = \"focus\", at = \"focusin\", it = \"focusout\", ut = \"gesturechange\", lt = \"gestureend\", dt = \"gesturestart\", ft = \"keydown\", pt = \"keypress\", gt = \"keyup\", mt = \"load\", vt = \"click\", bt = \"dblclick\", Et = \"mousedown\", ht = \"mouseup\", yt = \"hover\", wt = \"mouseenter\", At = \"mouseleave\", St = \"mousein\", kt = \"mouseout\", Nt = \"mouseover\", Tt = \"mousemove\", Ct = \"mousewheel\", Mt = \"move\", Dt = \"orientationchange\", Lt = \"pointercancel\", Ot = \"pointerdown\", xt = \"pointerleave\", zt = \"pointermove\", It = \"pointerup\", Pt = \"readystatechange\", Ft = \"reset\", Bt = \"resize\", Vt = \"select\", Ht = \"selectend\", Ut = \"selectstart\", Wt = \"scroll\", Rt = \"submit\", Qt = \"touchstart\", jt = \"touchmove\", Kt = \"touchcancel\", qt = \"touchend\", Gt = \"unload\", Re = {\n DOMContentLoaded: U,\n DOMMouseScroll: st,\n abort: Y,\n beforeunload: tt,\n blur: et,\n change: nt,\n click: vt,\n contextmenu: ot,\n dblclick: bt,\n error: rt,\n focus: ct,\n focusin: at,\n focusout: it,\n gesturechange: ut,\n gestureend: lt,\n gesturestart: dt,\n hover: yt,\n keydown: ft,\n keypress: pt,\n keyup: gt,\n load: mt,\n mousedown: Et,\n mousemove: Tt,\n mousein: St,\n mouseout: kt,\n mouseenter: wt,\n mouseleave: At,\n mouseover: Nt,\n mouseup: ht,\n mousewheel: Ct,\n move: Mt,\n orientationchange: Dt,\n pointercancel: Lt,\n pointerdown: Ot,\n pointerleave: xt,\n pointermove: zt,\n pointerup: It,\n readystatechange: Pt,\n reset: Ft,\n resize: Bt,\n scroll: Wt,\n select: Vt,\n selectend: Ht,\n selectstart: Ut,\n submit: Rt,\n touchcancel: Kt,\n touchend: qt,\n touchmove: jt,\n touchstart: Qt,\n unload: Gt\n}, Qe = \"drag\", je = \"dragstart\", Ke = \"dragenter\", qe = \"dragleave\", Ge = \"dragover\", Ze = \"dragend\", _e = \"loadstart\", $e = {\n start: \"mousedown\",\n end: \"mouseup\",\n move: \"mousemove\",\n cancel: \"mouseleave\"\n}, Je = { down: \"mousedown\", up: \"mouseup\" }, Xe = \"onmouseleave\" in document ? [\"mouseenter\", \"mouseleave\"] : [\"mouseover\", \"mouseout\"], Ye = {\n start: \"touchstart\",\n end: \"touchend\",\n move: \"touchmove\",\n cancel: \"touchcancel\"\n}, tn = { in: \"focusin\", out: \"focusout\" }, Zt = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"]', en = {\n Backspace: \"Backspace\",\n Tab: \"Tab\",\n Enter: \"Enter\",\n Shift: \"Shift\",\n Control: \"Control\",\n Alt: \"Alt\",\n Pause: \"Pause\",\n CapsLock: \"CapsLock\",\n Escape: \"Escape\",\n Scape: \"Space\",\n ArrowLeft: \"ArrowLeft\",\n ArrowUp: \"ArrowUp\",\n ArrowRight: \"ArrowRight\",\n ArrowDown: \"ArrowDown\",\n Insert: \"Insert\",\n Delete: \"Delete\",\n Meta: \"Meta\",\n ContextMenu: \"ContextMenu\",\n ScrollLock: \"ScrollLock\"\n}, nn = \"Alt\", on = \"ArrowDown\", sn = \"ArrowUp\", rn = \"ArrowLeft\", cn = \"ArrowRight\", an = \"Backspace\", un = \"CapsLock\", ln = \"Control\", dn = \"Delete\", fn = \"Enter\", pn = \"NumpadEnter\", gn = \"Escape\", mn = \"Insert\", vn = \"Meta\", bn = \"Pause\", En = \"ScrollLock\", hn = \"Shift\", yn = \"Space\", wn = \"Tab\", _t = \"animationDuration\", $t = \"animationDelay\", W = \"animationName\", C = \"animationend\", Jt = \"transitionDuration\", Xt = \"transitionDelay\", M = \"transitionend\", R = \"transitionProperty\", An = \"addEventListener\", Sn = \"removeEventListener\", kn = {\n linear: \"linear\",\n easingSinusoidalIn: \"cubic-bezier(0.47,0,0.745,0.715)\",\n easingSinusoidalOut: \"cubic-bezier(0.39,0.575,0.565,1)\",\n easingSinusoidalInOut: \"cubic-bezier(0.445,0.05,0.55,0.95)\",\n easingQuadraticIn: \"cubic-bezier(0.550,0.085,0.680,0.530)\",\n easingQuadraticOut: \"cubic-bezier(0.250,0.460,0.450,0.940)\",\n easingQuadraticInOut: \"cubic-bezier(0.455,0.030,0.515,0.955)\",\n easingCubicIn: \"cubic-bezier(0.55,0.055,0.675,0.19)\",\n easingCubicOut: \"cubic-bezier(0.215,0.61,0.355,1)\",\n easingCubicInOut: \"cubic-bezier(0.645,0.045,0.355,1)\",\n easingQuarticIn: \"cubic-bezier(0.895,0.03,0.685,0.22)\",\n easingQuarticOut: \"cubic-bezier(0.165,0.84,0.44,1)\",\n easingQuarticInOut: \"cubic-bezier(0.77,0,0.175,1)\",\n easingQuinticIn: \"cubic-bezier(0.755,0.05,0.855,0.06)\",\n easingQuinticOut: \"cubic-bezier(0.23,1,0.32,1)\",\n easingQuinticInOut: \"cubic-bezier(0.86,0,0.07,1)\",\n easingExponentialIn: \"cubic-bezier(0.95,0.05,0.795,0.035)\",\n easingExponentialOut: \"cubic-bezier(0.19,1,0.22,1)\",\n easingExponentialInOut: \"cubic-bezier(1,0,0,1)\",\n easingCircularIn: \"cubic-bezier(0.6,0.04,0.98,0.335)\",\n easingCircularOut: \"cubic-bezier(0.075,0.82,0.165,1)\",\n easingCircularInOut: \"cubic-bezier(0.785,0.135,0.15,0.86)\",\n easingBackIn: \"cubic-bezier(0.6,-0.28,0.735,0.045)\",\n easingBackOut: \"cubic-bezier(0.175,0.885,0.32,1.275)\",\n easingBackInOut: \"cubic-bezier(0.68,-0.55,0.265,1.55)\"\n}, Nn = \"offsetHeight\", Tn = \"offsetWidth\", Cn = \"scrollHeight\", Mn = \"scrollWidth\", Dn = \"tabindex\", Ln = navigator.userAgentData, { userAgent: Yt } = navigator, On = Yt, xn = () => {\n const t = /iPhone|iPad|iPod|Android/i;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(navigator?.userAgent) || !1;\n}, zn = () => {\n const t = /(iPhone|iPod|iPad)/;\n return navigator?.userAgentData?.brands.some(\n (e) => t.test(e.brand)\n ) || t.test(\n navigator?.userAgent\n ) || !1;\n}, In = () => navigator?.userAgent?.includes(\"Firefox\") || !1, te = () => typeof CSS > \"u\" || !CSS.supports ? !1 : CSS.supports(\"-webkit-backdrop-filter\", \"none\"), Pn = () => [\"webkitPerspective\", \"perspective\"].some((t) => t in document.head.style), ee = () => {\n}, Q = (t, e, n, o) => {\n const s = o || !1;\n t.addEventListener(\n e,\n n,\n s\n );\n}, j = (t, e, n, o) => {\n const s = o || !1;\n t.removeEventListener(\n e,\n n,\n s\n );\n}, ne = (t, e, n, o) => {\n const s = (r) => {\n (r.target === t || r.currentTarget === t) && (n.apply(t, [r]), j(t, e, s, o));\n };\n Q(t, e, s, o);\n}, Fn = () => {\n let t = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get: () => (t = !0, t)\n });\n ne(document, U, ee, e);\n } catch {\n }\n return t;\n}, Bn = () => [\"webkitTransform\", \"transform\"].some((t) => t in document.head.style), Vn = () => \"ontouchstart\" in window || \"msMaxTouchPoints\" in navigator, Hn = () => [\"webkitAnimation\", \"animation\"].some((t) => t in document.head.style), Un = () => [\"webkitTransition\", \"transition\"].some((t) => t in document.head.style), K = (t, e) => t.getAttribute(e), Wn = (t, e, n) => e.getAttributeNS(t, n), oe = (t, e) => t.hasAttribute(e), Rn = (t, e, n) => e.hasAttributeNS(t, n), Qn = (t, e, n) => t.setAttribute(e, n), jn = (t, e, n, o) => e.setAttributeNS(t, n, o), Kn = (t, e) => t.removeAttribute(e), qn = (t, e, n) => e.removeAttributeNS(t, n), Gn = (t, ...e) => {\n t.classList.add(...e);\n}, Zn = (t, ...e) => {\n t.classList.remove(...e);\n}, _n = (t, e) => t.classList.contains(e), { body: $n } = document, { documentElement: Jn } = document, { head: Xn } = document, Yn = (t) => Array.from(t), v = (t) => t != null && typeof t == \"object\" || !1, u = (t) => v(t) && typeof t.nodeType == \"number\" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some(\n (e) => t.nodeType === e\n) || !1, i = (t) => u(t) && t.nodeType === 1 || !1, E = /* @__PURE__ */ new Map(), L = {\n data: E,\n set: (t, e, n) => {\n if (!i(t)) return;\n E.has(e) || E.set(e, /* @__PURE__ */ new Map()), E.get(e).set(t, n);\n },\n getAllFor: (t) => E.get(t) || null,\n get: (t, e) => {\n if (!i(t) || !e) return null;\n const n = L.getAllFor(e);\n return t && n && n.get(t) || null;\n },\n remove: (t, e) => {\n const n = L.getAllFor(e);\n !n || !i(t) || (n.delete(t), n.size === 0 && E.delete(e));\n }\n}, to = (t, e) => L.get(t, e), eo = (t) => t?.charAt(0).toUpperCase() + t?.slice(1), P = (t) => t?.trim().replace(\n /(?:^\\w|[A-Z]|\\b\\w)/g,\n (e, n) => n === 0 ? e.toLowerCase() : e.toUpperCase()\n).replace(/\\s+/g, \"\"), N = (t) => typeof t == \"string\" || !1, q = (t) => v(t) && t.constructor.name === \"Window\" || !1, G = (t) => u(t) && t.nodeType === 9 || !1, d = (t) => G(t) ? t : u(t) ? t.ownerDocument : q(t) ? t.document : globalThis.document, T = (t, ...e) => Object.assign(t, ...e), se = (t) => {\n if (!t) return;\n if (N(t))\n return d().createElement(t);\n const { tagName: e } = t, n = se(e);\n if (!n) return;\n const o = { ...t };\n return delete o.tagName, T(n, o);\n}, re = (t, e) => {\n if (!t || !e) return;\n if (N(e))\n return d().createElementNS(t, e);\n const { tagName: n } = e, o = re(t, n);\n if (!o) return;\n const s = { ...e };\n return delete s.tagName, T(o, s);\n}, Z = (t, e) => t.dispatchEvent(e), no = (t, e, n) => n.indexOf(t) === e, f = (t, e, n) => {\n const o = getComputedStyle(t, n), s = e.replace(\"webkit\", \"Webkit\").replace(/([A-Z])/g, \"-$1\").toLowerCase();\n return o.getPropertyValue(s);\n}, ce = (t) => {\n const e = f(t, W), n = f(t, $t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, ae = (t) => {\n const e = f(t, W), n = f(t, _t), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, oo = (t, e) => {\n let n = 0;\n const o = new Event(C), s = ae(t), r = ce(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(C, a), n = 1);\n };\n t.addEventListener(C, a), setTimeout(() => {\n n || Z(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, ie = (t) => {\n const e = f(t, R), n = f(t, Xt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, ue = (t) => {\n const e = f(t, R), n = f(t, Jt), o = n.includes(\"ms\") ? 1 : 1e3, s = e && e !== \"none\" ? parseFloat(n) * o : 0;\n return Number.isNaN(s) ? 0 : s;\n}, so = (t, e) => {\n let n = 0;\n const o = new Event(M), s = ue(t), r = ie(t);\n if (s) {\n const a = (l) => {\n l.target === t && (e.apply(t, [l]), t.removeEventListener(M, a), n = 1);\n };\n t.addEventListener(M, a), setTimeout(() => {\n n || Z(t, o);\n }, s + r + 17);\n } else\n e.apply(t, [o]);\n}, ro = (t) => Float32Array.from(Array.from(t)), co = (t) => Float64Array.from(Array.from(t)), ao = (t, e) => t.focus(e), io = (t) => t?.trim().replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/\\s+/g, \"-\").toLowerCase(), F = (t) => [\"true\", !0].includes(t) ? !0 : [\"false\", !1].includes(t) ? !1 : [\"null\", \"\", null, void 0].includes(t) ? null : t !== \"\" && !Number.isNaN(+t) ? +t : t, S = (t) => Object.entries(t), uo = (t, e, n, o) => {\n if (!i(t)) return e;\n const s = { ...n }, r = { ...t.dataset }, a = { ...e }, l = {}, p = \"title\";\n return S(r).forEach(([c, g]) => {\n const A = o && typeof c == \"string\" && c.includes(o) ? P(c.replace(o, \"\")) : P(c);\n l[A] = F(g);\n }), S(s).forEach(([c, g]) => {\n s[c] = F(g);\n }), S(e).forEach(([c, g]) => {\n c in s ? a[c] = s[c] : c in l ? a[c] = l[c] : a[c] = c === p ? K(t, p) : g;\n }), a;\n}, lo = (t, e) => v(t) && (Object.hasOwn(t, e) || e in t), fo = (t) => Object.keys(t), po = (t) => Object.values(t), go = (t) => Object.fromEntries(t), mo = (t, e) => {\n const n = new CustomEvent(t, {\n cancelable: !0,\n bubbles: !0\n });\n return v(e) && T(n, e), n;\n}, vo = { passive: !0 }, bo = (t) => t.offsetHeight, Eo = (t, e) => {\n S(e).forEach(([n, o]) => {\n if (o && N(n) && n.includes(\"--\"))\n t.style.setProperty(n, o);\n else {\n const s = {};\n s[n] = o, T(t.style, s);\n }\n });\n}, O = (t) => v(t) && t.constructor.name === \"Map\" || !1, le = (t) => typeof t == \"number\" || !1, m = /* @__PURE__ */ new Map(), ho = {\n set: (t, e, n, o) => {\n i(t) && (o && o.length ? (m.has(t) || m.set(t, /* @__PURE__ */ new Map()), m.get(t).set(o, setTimeout(e, n))) : m.set(t, setTimeout(e, n)));\n },\n get: (t, e) => {\n if (!i(t)) return null;\n const n = m.get(t);\n return e && n && O(n) ? n.get(e) || null : le(n) ? n : null;\n },\n clear: (t, e) => {\n if (!i(t)) return;\n const n = m.get(t);\n e && e.length && O(n) ? (clearTimeout(n.get(e)), n.delete(e), n.size === 0 && m.delete(t)) : (clearTimeout(n), m.delete(t));\n }\n}, yo = (t) => t.toLowerCase(), wo = (t) => t.toUpperCase(), de = (t, e) => (u(e) ? e : d()).querySelectorAll(t), z = /* @__PURE__ */ new Map();\nfunction _(t) {\n const { shiftKey: e, code: n } = t, o = d(this), s = [\n ...de(Zt, this)\n ].filter(\n (l) => !oe(l, \"disabled\") && !K(l, X)\n );\n if (!s.length) return;\n const r = s[0], a = s[s.length - 1];\n n === \"Tab\" && (e && o.activeElement === r ? (a.focus(), t.preventDefault()) : !e && o.activeElement === a && (r.focus(), t.preventDefault()));\n}\nconst I = (t) => z.has(t) === !0, fe = (t) => {\n I(t) || (Q(t, \"keydown\", _), z.set(t, !0));\n}, pe = (t) => {\n I(t) && (j(t, \"keydown\", _), z.delete(t));\n}, Ao = (t) => {\n I(t) ? pe(t) : fe(t);\n}, b = (t) => i(t) && \"offsetWidth\" in t || !1, y = (t, e) => {\n const { width: n, height: o, top: s, right: r, bottom: a, left: l } = t.getBoundingClientRect();\n let p = 1, c = 1;\n if (e && b(t)) {\n const { offsetWidth: g, offsetHeight: A } = t;\n p = g > 0 ? Math.round(n) / g : 1, c = A > 0 ? Math.round(o) / A : 1;\n }\n return {\n width: n / p,\n height: o / c,\n top: s / c,\n right: r / p,\n bottom: a / c,\n left: l / p,\n x: l / p,\n y: s / c\n };\n}, So = (t) => d(t).body, w = (t) => d(t).documentElement, ko = (t) => d(t).head, ge = (t) => u(t) ? (t.nodeName || \"\").toLowerCase() : \"#document\", No = (t) => {\n const e = q(t), n = e ? t.scrollX : t.scrollLeft, o = e ? t.scrollY : t.scrollTop;\n return { x: n, y: o };\n}, me = (t) => u(t) && t.constructor.name === \"ShadowRoot\" || !1, k = (t) => t.nodeName === \"HTML\" ? t : i(t) && t.assignedSlot || u(t) && t.parentNode || me(t) && t.host || w(t), ve = (t) => t ? G(t) ? t.defaultView : u(t) ? t?.ownerDocument?.defaultView : t : window, be = (t) => u(t) && [\"TABLE\", \"TD\", \"TH\"].includes(t.nodeName) || !1, Ee = (t, e) => t.matches(e), D = (t) => f(t, \"position\") === \"static\", he = (t) => f(t, \"position\") === \"fixed\", $ = (t) => [\":popover-open\", \":modal\"].some((e) => {\n try {\n return Ee(t, e);\n } catch {\n return !1;\n }\n}), J = (t) => {\n const e = te(), n = i(t) ? getComputedStyle(t) : t;\n return n.transform !== \"none\" || n.perspective !== \"none\" || (n.containerType ? n.containerType !== \"normal\" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== \"none\" : !1) || !e && (n.filter ? n.filter !== \"none\" : !1) || [\"transform\", \"perspective\", \"filter\"].some(\n (o) => (n.willChange || \"\").includes(o)\n ) || [\"paint\", \"layout\", \"strict\", \"content\"].some(\n (o) => (n.contain || \"\").includes(o)\n );\n}, ye = (t) => {\n let e = k(t);\n for (; i(e) && !x(e); ) {\n if (J(e))\n return e;\n if ($(e))\n return null;\n e = k(e);\n }\n return null;\n}, x = (t) => [\"html\", \"body\", \"#document\"].includes(ge(t)), B = (t) => {\n if (!b(t) || he(t))\n return null;\n let e = t.offsetParent;\n return w(t) === e && (e = e.ownerDocument.body), e;\n}, To = (t) => {\n const e = ve(t);\n if (!u(t) || $(t))\n return e;\n if (!b(t)) {\n let o = k(t);\n for (; o && !x(o); ) {\n if (i(o) && !D(o))\n return o;\n o = k(o);\n }\n return e;\n }\n let n = B(t);\n for (; n && be(n) && D(n); )\n n = B(n);\n return n && x(n) && D(n) && !J(n) ? e : n || ye(t) || e;\n}, we = (t) => {\n if (!b(t)) return !1;\n const { width: e, height: n } = y(t), { offsetWidth: o, offsetHeight: s } = t;\n return Math.round(e) !== o || Math.round(n) !== s;\n}, Co = (t, e, n) => {\n const o = b(e), s = y(\n t,\n o && we(e)\n ), r = { x: 0, y: 0 };\n if (o) {\n const a = y(e, !0);\n r.x = a.x + e.clientLeft, r.y = a.y + e.clientTop;\n }\n return {\n x: s.left + n.x - r.x,\n y: s.top + n.y - r.y,\n width: s.width,\n height: s.height\n };\n};\nlet V = 0, H = 0;\nconst h = /* @__PURE__ */ new Map(), Ae = (t, e) => {\n let n = e ? V : H;\n if (e) {\n const o = Ae(t), s = h.get(o) || /* @__PURE__ */ new Map();\n h.has(o) || h.set(o, s), O(s) && !s.has(e) ? (s.set(e, n), V += 1) : n = s.get(e);\n } else {\n const o = t.id || t;\n h.has(o) ? n = h.get(o) : (h.set(o, n), H += 1);\n }\n return n;\n}, Se = (t) => Array.isArray(t) || !1, Mo = (t) => u(t) && t.nodeName === \"CANVAS\" || !1, ke = (t) => b(t) && !!t.shadowRoot || !1, Do = (t) => {\n if (!u(t)) return !1;\n const { top: e, bottom: n } = y(t), { clientHeight: o } = w(t);\n return e <= o && n >= 0;\n}, Lo = (t) => {\n if (!i(t)) return !1;\n const { clientWidth: e, clientHeight: n } = w(t), { top: o, left: s, bottom: r, right: a } = y(t, !0);\n return o >= 0 && s >= 0 && r <= n && a <= e;\n}, Oo = (t) => Se(t) && t.every(i) || !1, xo = (t) => typeof t == \"function\" || !1, zo = (t) => v(t) && t.constructor.name === \"HTMLCollection\" || !1, Io = (t) => b(t) && t.tagName === \"IMG\" || !1, Po = (t) => {\n if (!N(t)) return !1;\n try {\n JSON.parse(t);\n } catch {\n return !1;\n }\n return !0;\n}, Fo = (t) => v(t) && t.constructor.name === \"WeakMap\" || !1, Bo = (t) => u(t) && [\"SVG\", \"Image\", \"Video\", \"Canvas\"].some(\n (e) => t.constructor.name.includes(e)\n) || !1, Vo = (t) => v(t) && t.constructor.name === \"NodeList\" || !1, Ho = (t) => w(t).dir === \"rtl\", Uo = (t) => u(t) && t.constructor.name.includes(\"SVG\") || !1, Ne = (t, e) => !t || !e ? null : t.closest(e) || Ne(t.getRootNode().host, e) || null, Wo = (t, e) => i(t) ? t : (i(e) ? e : d()).querySelector(t), Te = (t, e) => (u(e) ? e : d()).getElementsByTagName(\n t\n), Ro = (t) => [...Te(\"*\", t)].filter(ke), Qo = (t, e) => d(e).getElementById(t), jo = (t, e) => (e && u(e) ? e : d()).getElementsByClassName(\n t\n);\nexport {\n Yn as ArrayFrom,\n U as DOMContentLoadedEvent,\n st as DOMMouseScrollEvent,\n L as Data,\n ro as Float32ArrayFrom,\n co as Float64ArrayFrom,\n T as ObjectAssign,\n S as ObjectEntries,\n go as ObjectFromEntries,\n lo as ObjectHasOwn,\n fo as ObjectKeys,\n po as ObjectValues,\n ho as Timer,\n Y as abortEvent,\n Gn as addClass,\n An as addEventListener,\n fe as addFocusTrap,\n $t as animationDelay,\n _t as animationDuration,\n C as animationEndEvent,\n W as animationName,\n Me as ariaChecked,\n Le as ariaDescribedBy,\n De as ariaDescription,\n Oe as ariaExpanded,\n xe as ariaHasPopup,\n X as ariaHidden,\n ze as ariaLabel,\n Ie as ariaLabelledBy,\n Pe as ariaModal,\n Fe as ariaPressed,\n Be as ariaSelected,\n He as ariaValueMax,\n Ve as ariaValueMin,\n Ue as ariaValueNow,\n We as ariaValueText,\n tt as beforeunloadEvent,\n kn as bezierEasings,\n et as blurEvent,\n P as camelCase,\n eo as capitalize,\n nt as changeEvent,\n Ne as closest,\n ot as contextmenuEvent,\n mo as createCustomEvent,\n se as createElement,\n re as createElementNS,\n Z as dispatchEvent,\n no as distinct,\n $n as documentBody,\n Jn as documentElement,\n Xn as documentHead,\n Qe as dragEvent,\n Ze as dragendEvent,\n Ke as dragenterEvent,\n qe as dragleaveEvent,\n Ge as dragoverEvent,\n je as dragstartEvent,\n oo as emulateAnimationEnd,\n so as emulateTransitionEnd,\n rt as errorEvent,\n ao as focus,\n ct as focusEvent,\n tn as focusEvents,\n Zt as focusableSelector,\n at as focusinEvent,\n it as focusoutEvent,\n ut as gesturechangeEvent,\n lt as gestureendEvent,\n dt as gesturestartEvent,\n K as getAttribute,\n Wn as getAttributeNS,\n y as getBoundingClientRect,\n Ro as getCustomElements,\n d as getDocument,\n So as getDocumentBody,\n w as getDocumentElement,\n ko as getDocumentHead,\n ce as getElementAnimationDelay,\n ae as getElementAnimationDuration,\n Qo as getElementById,\n f as getElementStyle,\n ie as getElementTransitionDelay,\n ue as getElementTransitionDuration,\n jo as getElementsByClassName,\n Te as getElementsByTagName,\n to as getInstance,\n ge as getNodeName,\n No as getNodeScroll,\n To as getOffsetParent,\n k as getParentNode,\n Co as getRectRelativeToOffsetParent,\n Ae as getUID,\n ve as getWindow,\n _ as handleKeyboardNavigation,\n oe as hasAttribute,\n Rn as hasAttributeNS,\n _n as hasClass,\n I as hasFocusTrap,\n zn as isApple,\n Se as isArray,\n Mo as isCanvas,\n ke as isCustomElement,\n G as isDocument,\n i as isElement,\n Do as isElementInScrollRange,\n Lo as isElementInViewport,\n Oo as isElementsArray,\n In as isFirefox,\n xo as isFunction,\n zo as isHTMLCollection,\n b as isHTMLElement,\n Io as isHTMLImageElement,\n Po as isJSON,\n O as isMap,\n Bo as isMedia,\n xn as isMobile,\n u as isNode,\n Vo as isNodeList,\n le as isNumber,\n v as isObject,\n Ho as isRTL,\n Uo as isSVGElement,\n we as isScaledElement,\n me as isShadowRoot,\n N as isString,\n be as isTableElement,\n Fo as isWeakMap,\n te as isWebKit,\n q as isWindow,\n io as kebabCase,\n nn as keyAlt,\n on as keyArrowDown,\n rn as keyArrowLeft,\n cn as keyArrowRight,\n sn as keyArrowUp,\n an as keyBackspace,\n un as keyCapsLock,\n ln as keyControl,\n dn as keyDelete,\n fn as keyEnter,\n gn as keyEscape,\n mn as keyInsert,\n vn as keyMeta,\n pn as keyNumpadEnter,\n bn as keyPause,\n En as keyScrollLock,\n hn as keyShift,\n yn as keySpace,\n wn as keyTab,\n en as keyboardEventKeys,\n ft as keydownEvent,\n pt as keypressEvent,\n gt as keyupEvent,\n mt as loadEvent,\n _e as loadstartEvent,\n Ee as matches,\n Je as mouseClickEvents,\n Xe as mouseHoverEvents,\n $e as mouseSwipeEvents,\n vt as mouseclickEvent,\n bt as mousedblclickEvent,\n Et as mousedownEvent,\n wt as mouseenterEvent,\n yt as mousehoverEvent,\n St as mouseinEvent,\n At as mouseleaveEvent,\n Tt as mousemoveEvent,\n kt as mouseoutEvent,\n Nt as mouseoverEvent,\n ht as mouseupEvent,\n Ct as mousewheelEvent,\n Mt as moveEvent,\n Re as nativeEvents,\n ee as noop,\n uo as normalizeOptions,\n F as normalizeValue,\n j as off,\n Nn as offsetHeight,\n Tn as offsetWidth,\n Q as on,\n ne as one,\n Dt as orientationchangeEvent,\n vo as passiveHandler,\n Lt as pointercancelEvent,\n Ot as pointerdownEvent,\n xt as pointerleaveEvent,\n zt as pointermoveEvent,\n It as pointerupEvent,\n Wo as querySelector,\n de as querySelectorAll,\n Pt as readystatechangeEvent,\n bo as reflow,\n Kn as removeAttribute,\n qn as removeAttributeNS,\n Zn as removeClass,\n Sn as removeEventListener,\n pe as removeFocusTrap,\n Ft as resetEvent,\n Bt as resizeEvent,\n Wt as scrollEvent,\n Cn as scrollHeight,\n Mn as scrollWidth,\n Vt as selectEvent,\n Ht as selectendEvent,\n Ut as selectstartEvent,\n Qn as setAttribute,\n jn as setAttributeNS,\n Eo as setElementStyle,\n Rt as submitEvent,\n Pn as support3DTransform,\n Hn as supportAnimation,\n Fn as supportPassive,\n Vn as supportTouch,\n Bn as supportTransform,\n Un as supportTransition,\n Dn as tabindex,\n yo as toLowerCase,\n wo as toUpperCase,\n Ao as toggleFocusTrap,\n Ye as touchEvents,\n Kt as touchcancelEvent,\n qt as touchendEvent,\n jt as touchmoveEvent,\n Qt as touchstartEvent,\n Xt as transitionDelay,\n Jt as transitionDuration,\n M as transitionEndEvent,\n R as transitionProperty,\n Gt as unloadEvent,\n On as userAgent,\n Ln as userAgentData,\n Ce as version\n};\n//# sourceMappingURL=shorty.mjs.map\n","import { isElement, isFunction } from \"@thednp/shorty\";\n\n//#region package.json\nvar version = \"1.1.0\";\n\n//#endregion\n//#region src/index.ts\nconst callbackModes = [\n\t\"all\",\n\t\"intersecting\",\n\t\"update\"\n];\nconst errorString = \"PositionObserver Error\";\n/**\n* The PositionObserver class is a utility class that observes the position\n* of DOM elements and triggers a callback when their position changes.\n*/\nvar PositionObserver = class {\n\tentries;\n\tstatic version = version;\n\t/** `PositionObserver.tick` */\n\t_t;\n\t/** `PositionObserver.root` */\n\t_r;\n\t/** `PositionObserver.callbackMode` */\n\t_cm;\n\t/** `PositionObserver.root.clientWidth` */\n\t_w;\n\t/** `PositionObserver.root.clientHeight` */\n\t_h;\n\t/** `IntersectionObserver.options.rootMargin` */\n\t_rm;\n\t/** `IntersectionObserver.options.threshold` */\n\t_th;\n\t/** `PositionObserver.callback` */\n\t_c;\n\t/**\n\t* The constructor takes two arguments, a `callback`, which is called\n\t* whenever the position of an observed element changes and an `options` object.\n\t* The callback function takes an array of `PositionObserverEntry` objects\n\t* as its first argument and the PositionObserver instance as its second argument.\n\t*\n\t* @param callback the callback that applies to all targets of this observer\n\t* @param options the options of this observer\n\t*/\n\tconstructor(callback, options) {\n\t\tif (!isFunction(callback)) throw new Error(`${errorString}: ${callback} is not a function.`);\n\t\tthis.entries = /* @__PURE__ */ new Map();\n\t\tthis._c = callback;\n\t\tthis._t = 0;\n\t\tconst root = isElement(options?.root) ? options.root : document?.documentElement;\n\t\tthis._r = root;\n\t\tthis._rm = options?.rootMargin;\n\t\tthis._th = options?.threshold;\n\t\t/* istanbul ignore next @preserve */\n\t\tthis._cm = callbackModes.indexOf(options?.callbackMode || \"intersecting\");\n\t\tthis._w = root.clientWidth;\n\t\tthis._h = root.clientHeight;\n\t}\n\t/**\n\t* Start observing the position of the specified element.\n\t* If the element is not currently attached to the DOM,\n\t* it will NOT be added to the entries.\n\t*\n\t* @param target an `Element` target\n\t*/\n\tobserve = (target) => {\n\t\tif (!isElement(target)) throw new Error(`${errorString}: ${target} is not an instance of Element.`);\n\t\t/* istanbul ignore else @preserve - a guard must be set */\n\t\tif (!this._r.contains(target)) return;\n\t\tthis._n(target).then((ioEntry) => {\n\t\t\t/* istanbul ignore else @preserve - don't allow duplicate entries */\n\t\t\tif (ioEntry.boundingClientRect && !this.getEntry(target)) this.entries.set(target, ioEntry);\n\t\t\t/* istanbul ignore else @preserve */\n\t\t\tif (!this._t) this._t = requestAnimationFrame(this._rc);\n\t\t});\n\t};\n\t/**\n\t* Stop observing the position of the specified element.\n\t*\n\t* @param target an `Element` target\n\t*/\n\tunobserve = (target) => {\n\t\t/* istanbul ignore else @preserve */\n\t\tif (this.entries.has(target)) this.entries.delete(target);\n\t};\n\t/**\n\t* Private method responsible for all the heavy duty,\n\t* the observer's runtime.\n\t* `PositionObserver.runCallback`\n\t*/\n\t_rc = () => {\n\t\t/* istanbul ignore if @preserve - a guard must be set */\n\t\tif (!this.entries.size) {\n\t\t\tthis._t = 0;\n\t\t\treturn;\n\t\t}\n\t\tconst { clientWidth, clientHeight } = this._r;\n\t\tconst queue = new Promise((resolve) => {\n\t\t\tconst updates = [];\n\t\t\tthis.entries.forEach(({ target, boundingClientRect: oldBoundingBox, isIntersecting: oldIsIntersecting }) => {\n\t\t\t\t/* istanbul ignore if @preserve - a guard must be set when target has been removed */\n\t\t\t\tif (!this._r.contains(target)) return;\n\t\t\t\tthis._n(target).then((ioEntry) => {\n\t\t\t\t\t/* istanbul ignore if @preserve - make sure to only count visible entries */\n\t\t\t\t\tif (!ioEntry.isIntersecting) {\n\t\t\t\t\t\tif (this._cm === 1) return;\n\t\t\t\t\t\telse if (this._cm === 2) {\n\t\t\t\t\t\t\tif (oldIsIntersecting) {\n\t\t\t\t\t\t\t\tthis.entries.set(target, ioEntry);\n\t\t\t\t\t\t\t\tupdates.push(ioEntry);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst { left, top } = ioEntry.boundingClientRect;\n\t\t\t\t\t/* istanbul ignore else @preserve - only schedule entries that changed position */\n\t\t\t\t\tif (oldBoundingBox.top !== top || oldBoundingBox.left !== left || this._w !== clientWidth || this._h !== clientHeight) {\n\t\t\t\t\t\tthis.entries.set(target, ioEntry);\n\t\t\t\t\t\tupdates.push(ioEntry);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis._w = clientWidth;\n\t\t\tthis._h = clientHeight;\n\t\t\tresolve(updates);\n\t\t});\n\t\tthis._t = requestAnimationFrame(async () => {\n\t\t\tconst updates = await queue;\n\t\t\t/* istanbul ignore else @preserve */\n\t\t\tif (updates.length) this._c(updates, this);\n\t\t\tthis._rc();\n\t\t});\n\t};\n\t/**\n\t* Check intersection status and resolve it\n\t* right away.\n\t*\n\t* `PositionObserver.newEntryForTarget`\n\t*\n\t* @param target an `Element` target\n\t*/\n\t_n = (target) => {\n\t\treturn new Promise((resolve) => {\n\t\t\tconst intersectionObserver = new IntersectionObserver(([ioEntry], ob) => {\n\t\t\t\tob.disconnect();\n\t\t\t\tresolve(ioEntry);\n\t\t\t}, {\n\t\t\t\tthreshold: this._th,\n\t\t\t\trootMargin: this._rm\n\t\t\t});\n\t\t\tintersectionObserver.observe(target);\n\t\t});\n\t};\n\t/**\n\t* Find the entry for a given target.\n\t*\n\t* @param target an `HTMLElement` target\n\t*/\n\tgetEntry = (target) => this.entries.get(target);\n\t/**\n\t* Immediately stop observing all elements.\n\t*/\n\tdisconnect = () => {\n\t\tcancelAnimationFrame(this._t);\n\t\tthis.entries.clear();\n\t\tthis._t = 0;\n\t};\n};\n\n//#endregion\nexport { PositionObserver as default };\n//# sourceMappingURL=index.mjs.map",null,null,null,null,null,null,null,null,null],"names":["i","t","v","nodeType","some","e","u","callbackModes","errorString","PositionObserver","entries","static","_t","_r","_cm","_w","_h","_rm","_th","_c","constructor","callback","options","Error","this","Map","root","isElement","document","documentElement","rootMargin","threshold","indexOf","callbackMode","clientWidth","clientHeight","observe","target","contains","_n","then","ioEntry","boundingClientRect","getEntry","set","requestAnimationFrame","_rc","unobserve","has","delete","size","queue","Promise","resolve","updates","forEach","oldBoundingBox","isIntersecting","oldIsIntersecting","push","left","top","async","length","IntersectionObserver","ob","disconnect","get","cancelAnimationFrame","clear","formatValue","value","indent","spaces","repeat","Array","isArray","Object","map","key","val","join","String","undefined","JSON","stringify","createAndAppendElement","tag","parent","attributes","element","createElement","id","className","data","setAttribute","appendChild","createAndAppendStyle","styleSheet","textContent","getIntersectingIcon","isIntersectingWithViewport","DEFAULT_SHOW_NAME_TAGS","POSITION_HISTORY_SIZE_UNIT","TAB_OFFSET_UNIT","TRAJECTORY_PREDICTION_TIME_UNIT","COPY_SVG_ICON","NO_ELEMENTS_STRING","DebuggerControlPanel","foresightManager","debuggerInstance","elementListItemsContainer","elementCountSpan","callbackCountSpan","elementListItems","trajectoryEnabledCheckbox","tabEnabledCheckbox","scrollEnabledCheckbox","historySizeSlider","historyValueSpan","predictionTimeSlider","predictionValueSpan","tabOffsetSlider","tabOffsetValueSpan","scrollMarginSlider","scrollMarginValueSpan","showNameTagsCheckbox","sortOptionsPopup","sortButton","containerMinimizeButton","allSettingsSectionsContainer","debuggerElementsSection","isContainerMinimized","isMouseSettingsMinimized","isKeyboardSettingsMinimized","isScrollSettingsMinimized","isGeneralSettingsMinimized","SESSION_STORAGE_KEY","copySettingsButton","minimizedElementCount","copyTimeoutId","closeSortDropdownHandler","foresightManagerInstance","initialize","shadowRoot","debuggerSettings","isInitiated","debuggerControlPanelInstance","instance","_setupDOMAndListeners","controlsContainer","isControlPanelDefaultMinimized","createControlContainer","controlPanelStyleElement","getStyles","queryDOMElements","originalSectionStates","setupEventListeners","updateContainerVisibilityState","updateControlsState","getManagerData","globalSettings","loadSectionStatesFromSessionStorage","storedStatesRaw","sessionStorage","getItem","loadedStates","parse","mouse","keyboard","scroll","general","saveSectionStatesToSessionStorage","states","setItem","console","error","querySelector","handleCopySettings","obj","methodName","navigator","clipboard","writeText","filter","innerHTML","clearTimeout","setTimeout","catch","err","createInputEventListener","spanElement","unit","setting","addEventListener","parseInt","alterGlobalSettings","createChangeEventListener","getDebuggerData","settings","isChecked","checked","alterDebuggerSettings","createSectionVisibilityToggleEventListener","section","isMinimizedFlagName","sectionHeader","stopPropagation","toggleMinimizeSection","classList","toggle","closest","dataset","sort","sortElementList","sortAndReorderElements","updateSortOptionUI","remove","bind","shouldMinimize","sectionContent","minimizeButton","style","display","elementListContent","add","currentSort","querySelectorAll","button","btn","managerSettings","enableMousePrediction","enableTabPrediction","enableScrollPrediction","showNameTags","positionHistorySize","toString","trajectoryPredictionTime","tabOffset","scrollMargin","refreshRegisteredElementCountDisplay","elementsMap","visibleElementCount","totalElements","tab","total","globalCallbackHits","visibleTitle","title","hover","trajectory","forwards","reverse","down","right","up","removeElementFromList","elementData","listItem","registeredElements","updateElementVisibilityStatus","addElementToList","intersectingElement","intersectingIcon","sortOrder","elementsData","from","values","sortByDocumentPosition","a","b","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","fragment","createDocumentFragment","updateListItemContent","hitSlopText","elementBounds","hitSlop","bottom","comprehensiveTitle","name","cleanup","removeEventListener","container","updateElementOverlays","currentOverlays","newData","expandedOverlay","nameLabel","expandedRect","expandedWidth","expandedHeight","width","height","transform","shouldUpdateSetting","newValue","currentValue","ForesightDebugger","callbackAnimations","_debuggerSettings","showDebugger","debugElementOverlays","predictedMouseIndicator","mouseTrajectoryLine","scrollTrajectoryLine","managerSubscriptionsController","animationPositionObserver","handleAnimationPositionChange","entry","animationData","rect","overlay","newLeft","newTop","newWidth","newHeight","handleElementDataUpdated","updatedProp","createOrUpdateElementOverlay","removeElementOverlay","controlPanel","handleUnregisterElement","handleCallbackFired","showCallbackAnimation","handleRegisterElement","handleMouseTrajectoryUpdate","debugContainer","predictedPoint","currentPoint","trajectoryPositions","x","y","predictionEnabled","dx","dy","Math","sqrt","angle","atan2","PI","handleScrollTrajectoryUpdate","handleSettingsChanged","managerData","props","window","subscribeToManagerEvents","shadowHost","_setupDOM","body","attachShadow","mode","debuggerCSS","toggleNameTagVisibility","AbortController","signal","manager","createElementOverlays","overlays","existingAnimation","timeoutId","animationOverlay","abort"],"mappings":"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