UNPKG

overlayscrollbars

Version:

A javascript scrollbar plugin that hides the native scrollbars, provides custom styleable overlay scrollbars, and preserves the native functionality and feel.

1,965 lines 77.5 kB
/*! * OverlayScrollbars * Version: 2.10.0 * * Copyright (c) Rene Haas | KingSora. * https://github.com/KingSora * * Released under the MIT license. */ var OverlayScrollbarsGlobal = function(r) { "use strict"; var e = function createCache(r, e) { var a = r.v, t = r.i, n = r.o; var v = a; var i; var o = function cacheUpdateContextual(r, e) { var a = v; var o = r; var u = e || (t ? !t(a, o) : a !== o); if (u || n) { v = o; i = a; } return [ v, u, i ]; }; var u = function cacheUpdateIsolated(r) { return o(e(v, i), r); }; var c = function getCurrentCache(r) { return [ v, !!r, i ]; }; return [ e ? u : o, c ]; }; var a = typeof window !== "undefined" && typeof HTMLElement !== "undefined" && !!window.document; var t = a ? window : {}; var n = Math.max; var v = Math.min; var i = Math.round; var o = Math.abs; var u = Math.sign; var c = t.cancelAnimationFrame; var l = t.requestAnimationFrame; var f = t.setTimeout; var s = t.clearTimeout; var d = function getApi(r) { return typeof t[r] !== "undefined" ? t[r] : void 0; }; var p = d("MutationObserver"); var _ = d("IntersectionObserver"); var g = d("ResizeObserver"); var h = d("ScrollTimeline"); var b = function isUndefined(r) { return r === void 0; }; var m = function isNull(r) { return r === null; }; var S = function type(r) { return b(r) || m(r) ? "" + r : Object.prototype.toString.call(r).replace(/^\[object (.+)\]$/, "$1").toLowerCase(); }; var y = function isNumber(r) { return typeof r === "number"; }; var w = function isString(r) { return typeof r === "string"; }; var O = function isBoolean(r) { return typeof r === "boolean"; }; var C = function isFunction(r) { return typeof r === "function"; }; var x = function isArray(r) { return Array.isArray(r); }; var E = function isObject(r) { return typeof r === "object" && !x(r) && !m(r); }; var A = function isArrayLike(r) { var e = !!r && r.length; var a = y(e) && e > -1 && e % 1 == 0; return x(r) || !C(r) && a ? e > 0 && E(r) ? e - 1 in r : true : false; }; var H = function isPlainObject(r) { return !!r && r.constructor === Object; }; var P = function isHTMLElement(r) { return r instanceof HTMLElement; }; var T = function isElement(r) { return r instanceof Element; }; var D = function animationCurrentTime() { return performance.now(); }; var z = function animateNumber(r, e, a, t, v) { var i = 0; var o = D(); var u = n(0, a); var f = function frame(a) { var c = D(); var f = c - o; var s = f >= u; var d = a ? 1 : 1 - (n(0, o + u - c) / u || 0); var p = (e - r) * (C(v) ? v(d, d * u, 0, 1, u) : d) + r; var _ = s || d === 1; t && t(p, d, _); i = _ ? 0 : l((function() { return frame(); })); }; f(); return function(r) { c(i); r && f(r); }; }; function each(r, e) { if (A(r)) { for (var a = 0; a < r.length; a++) { if (e(r[a], a, r) === false) { break; } } } else if (r) { each(Object.keys(r), (function(a) { return e(r[a], a, r); })); } return r; } var M = function inArray(r, e) { return r.indexOf(e) >= 0; }; var L = function concat(r, e) { return r.concat(e); }; var I = function push(r, e, a) { !a && !w(e) && A(e) ? Array.prototype.push.apply(r, e) : r.push(e); return r; }; var V = function from(r) { return Array.from(r || []); }; var k = function createOrKeepArray(r) { if (x(r)) { return r; } return !w(r) && A(r) ? V(r) : [ r ]; }; var R = function isEmptyArray(r) { return !!r && !r.length; }; var F = function deduplicateArray(r) { return V(new Set(r)); }; var N = function runEachAndClear(r, e, a) { var t = function runFn(r) { return r ? r.apply(void 0, e || []) : true; }; each(r, t); !a && (r.length = 0); }; var j = "paddingTop"; var U = "paddingRight"; var q = "paddingLeft"; var B = "paddingBottom"; var Y = "marginLeft"; var W = "marginRight"; var X = "marginBottom"; var Z = "overflowX"; var G = "overflowY"; var $ = "width"; var J = "height"; var K = "visible"; var Q = "hidden"; var rr = "scroll"; var er = function capitalizeFirstLetter(r) { var e = String(r || ""); return e ? e[0].toUpperCase() + e.slice(1) : ""; }; var ar = function equal(r, e, a, t) { if (r && e) { var n = true; each(a, (function(a) { var v = t ? t(r[a]) : r[a]; var i = t ? t(e[a]) : e[a]; if (v !== i) { n = false; } })); return n; } return false; }; var tr = function equalWH(r, e) { return ar(r, e, [ "w", "h" ]); }; var nr = function equalXY(r, e) { return ar(r, e, [ "x", "y" ]); }; var vr = function equalTRBL(r, e) { return ar(r, e, [ "t", "r", "b", "l" ]); }; var ir = function noop() {}; var or = function bind(r) { for (var e = arguments.length, a = new Array(e > 1 ? e - 1 : 0), t = 1; t < e; t++) { a[t - 1] = arguments[t]; } return r.bind.apply(r, [ 0 ].concat(a)); }; var ur = function selfClearTimeout(r) { var e; var a = r ? f : l; var t = r ? s : c; return [ function(n) { t(e); e = a((function() { return n(); }), C(r) ? r() : r); }, function() { return t(e); } ]; }; var cr = function debounce(r, e) { var a = e || {}, t = a.u, n = a.p, v = a._, i = a.m; var o; var u; var d; var p; var _ = ir; var g = function invokeFunctionToDebounce(e) { _(); s(o); p = o = u = void 0; _ = ir; r.apply(this, e); }; var h = function mergeParms(r) { return i && u ? i(u, r) : r; }; var b = function flush() { if (_ !== ir) { g(h(d) || d); } }; var m = function debouncedFn() { var r = V(arguments); var e = C(t) ? t() : t; var a = y(e) && e >= 0; if (a) { var i = C(n) ? n() : n; var m = y(i) && i >= 0; var S = e > 0 ? f : l; var w = e > 0 ? s : c; var O = h(r); var x = O || r; var E = g.bind(0, x); var A; _(); if (v && !p) { E(); p = true; A = S((function() { return p = void 0; }), e); } else { A = S(E, e); if (m && !o) { o = f(b, i); } } _ = function clear() { return w(A); }; u = d = x; } else { g(r); } }; m.S = b; return m; }; var lr = function hasOwnProperty(r, e) { return Object.prototype.hasOwnProperty.call(r, e); }; var fr = function keys(r) { return r ? Object.keys(r) : []; }; var sr = function assignDeep(r, e, a, t, n, v, i) { var o = [ e, a, t, n, v, i ]; if ((typeof r !== "object" || m(r)) && !C(r)) { r = {}; } each(o, (function(e) { each(e, (function(a, t) { var n = e[t]; if (r === n) { return true; } var v = x(n); if (n && H(n)) { var i = r[t]; var o = i; if (v && !x(i)) { o = []; } else if (!v && !H(i)) { o = {}; } r[t] = assignDeep(o, n); } else { r[t] = v ? n.slice() : n; } })); })); return r; }; var dr = function removeUndefinedProperties(r, e) { return each(sr({}, r), (function(r, a, t) { if (r === void 0) { delete t[a]; } else if (e && r && H(r)) { t[a] = removeUndefinedProperties(r, e); } })); }; var pr = function isEmptyObject(r) { return !fr(r).length; }; var _r = function capNumber(r, e, a) { return n(r, v(e, a)); }; var gr = function getDomTokensArray(r) { return F((x(r) ? r : (r || "").split(" ")).filter((function(r) { return r; }))); }; var hr = function getAttr(r, e) { return r && r.getAttribute(e); }; var br = function hasAttr(r, e) { return r && r.hasAttribute(e); }; var mr = function setAttrs(r, e, a) { each(gr(e), (function(e) { r && r.setAttribute(e, String(a || "")); })); }; var Sr = function removeAttrs(r, e) { each(gr(e), (function(e) { return r && r.removeAttribute(e); })); }; var yr = function domTokenListAttr(r, e) { var a = gr(hr(r, e)); var t = or(mr, r, e); var n = function domTokenListOperation(r, e) { var t = new Set(a); each(gr(r), (function(r) { t[e](r); })); return V(t).join(" "); }; return { O: function _remove(r) { return t(n(r, "delete")); }, C: function _add(r) { return t(n(r, "add")); }, A: function _has(r) { var e = gr(r); return e.reduce((function(r, e) { return r && a.includes(e); }), e.length > 0); } }; }; var wr = function removeAttrClass(r, e, a) { yr(r, e).O(a); return or(Or, r, e, a); }; var Or = function addAttrClass(r, e, a) { yr(r, e).C(a); return or(wr, r, e, a); }; var Cr = function addRemoveAttrClass(r, e, a, t) { return (t ? Or : wr)(r, e, a); }; var xr = function hasAttrClass(r, e, a) { return yr(r, e).A(a); }; var Er = function createDomTokenListClass(r) { return yr(r, "class"); }; var Ar = function removeClass(r, e) { Er(r).O(e); }; var Hr = function addClass(r, e) { Er(r).C(e); return or(Ar, r, e); }; var Pr = function find(r, e) { var a = e ? T(e) && e : document; return a ? V(a.querySelectorAll(r)) : []; }; var Tr = function findFirst(r, e) { var a = e ? T(e) && e : document; return a && a.querySelector(r); }; var Dr = function is(r, e) { return T(r) && r.matches(e); }; var zr = function isBodyElement(r) { return Dr(r, "body"); }; var Mr = function contents(r) { return r ? V(r.childNodes) : []; }; var Lr = function parent(r) { return r && r.parentElement; }; var Ir = function closest(r, e) { return T(r) && r.closest(e); }; var Vr = function getFocusedElement(r) { return (r || document).activeElement; }; var kr = function liesBetween(r, e, a) { var t = Ir(r, e); var n = r && Tr(a, t); var v = Ir(n, e) === t; return t && n ? t === r || n === r || v && Ir(Ir(r, a), e) !== t : false; }; var Rr = function removeElements(r) { each(k(r), (function(r) { var e = Lr(r); r && e && e.removeChild(r); })); }; var Fr = function appendChildren(r, e) { return or(Rr, r && e && each(k(e), (function(e) { e && r.appendChild(e); }))); }; var Nr = function createDiv(r) { var e = document.createElement("div"); mr(e, "class", r); return e; }; var jr = function createDOM(r) { var e = Nr(); e.innerHTML = r.trim(); return each(Mr(e), (function(r) { return Rr(r); })); }; var Ur = function getCSSVal(r, e) { return r.getPropertyValue(e) || r[e] || ""; }; var qr = function validFiniteNumber(r) { var e = r || 0; return isFinite(e) ? e : 0; }; var Br = function parseToZeroOrNumber(r) { return qr(parseFloat(r || "")); }; var Yr = function roundCssNumber(r) { return Math.round(r * 1e4) / 1e4; }; var Wr = function numberToCssPx(r) { return Yr(qr(r)) + "px"; }; function setStyles(r, e) { r && e && each(e, (function(e, a) { try { var t = r.style; var n = m(e) || O(e) ? "" : y(e) ? Wr(e) : e; if (a.indexOf("--") === 0) { t.setProperty(a, n); } else { t[a] = n; } } catch (v) {} })); } function getStyles(r, e, a) { var n = w(e); var v = n ? "" : {}; if (r) { var i = t.getComputedStyle(r, a) || r.style; v = n ? Ur(i, e) : V(e).reduce((function(r, e) { r[e] = Ur(i, e); return r; }), v); } return v; } var Xr = function topRightBottomLeft(r, e, a) { var t = e ? e + "-" : ""; var n = a ? "-" + a : ""; var v = t + "top" + n; var i = t + "right" + n; var o = t + "bottom" + n; var u = t + "left" + n; var c = getStyles(r, [ v, i, o, u ]); return { t: Br(c[v]), r: Br(c[i]), b: Br(c[o]), l: Br(c[u]) }; }; var Zr = function getTrasformTranslateValue(r, e) { return "translate" + (E(r) ? "(" + r.x + "," + r.y + ")" : (e ? "X" : "Y") + "(" + r + ")"); }; var Gr = function elementHasDimensions(r) { return !!(r.offsetWidth || r.offsetHeight || r.getClientRects().length); }; var $r = { w: 0, h: 0 }; var Jr = function getElmWidthHeightProperty(r, e) { return e ? { w: e[r + "Width"], h: e[r + "Height"] } : $r; }; var Kr = function getWindowSize(r) { return Jr("inner", r || t); }; var Qr = or(Jr, "offset"); var re = or(Jr, "client"); var ee = or(Jr, "scroll"); var ae = function getFractionalSize(r) { var e = parseFloat(getStyles(r, $)) || 0; var a = parseFloat(getStyles(r, J)) || 0; return { w: e - i(e), h: a - i(a) }; }; var te = function getBoundingClientRect(r) { return r.getBoundingClientRect(); }; var ne = function hasDimensions(r) { return !!r && Gr(r); }; var ve = function domRectHasDimensions(r) { return !!(r && (r[J] || r[$])); }; var ie = function domRectAppeared(r, e) { var a = ve(r); var t = ve(e); return !t && a; }; var oe = function removeEventListener(r, e, a, t) { each(gr(e), (function(e) { r && r.removeEventListener(e, a, t); })); }; var ue = function addEventListener(r, e, a, t) { var n; var v = (n = t && t.H) != null ? n : true; var i = t && t.P || false; var o = t && t.T || false; var u = { passive: v, capture: i }; return or(N, gr(e).map((function(e) { var t = o ? function(n) { oe(r, e, t, i); a && a(n); } : a; r && r.addEventListener(e, t, u); return or(oe, r, e, t, i); }))); }; var ce = function stopPropagation(r) { return r.stopPropagation(); }; var le = function preventDefault(r) { return r.preventDefault(); }; var fe = function stopAndPrevent(r) { return ce(r) || le(r); }; var se = function scrollElementTo(r, e) { var a = y(e) ? { x: e, y: e } : e || {}, t = a.x, n = a.y; y(t) && (r.scrollLeft = t); y(n) && (r.scrollTop = n); }; var de = function getElementScroll(r) { return { x: r.scrollLeft, y: r.scrollTop }; }; var pe = function getZeroScrollCoordinates() { return { D: { x: 0, y: 0 }, M: { x: 0, y: 0 } }; }; var _e = function sanitizeScrollCoordinates(r, e) { var a = r.D, t = r.M; var n = e.w, v = e.h; var i = function sanitizeAxis(r, e, a) { var t = u(r) * a; var n = u(e) * a; if (t === n) { var v = o(r); var i = o(e); n = v > i ? 0 : n; t = v < i ? 0 : t; } t = t === n ? 0 : t; return [ t + 0, n + 0 ]; }; var c = i(a.x, t.x, n), l = c[0], f = c[1]; var s = i(a.y, t.y, v), d = s[0], p = s[1]; return { D: { x: l, y: d }, M: { x: f, y: p } }; }; var ge = function isDefaultDirectionScrollCoordinates(r) { var e = r.D, a = r.M; var t = function getAxis(r, e) { return r === 0 && r <= e; }; return { x: t(e.x, a.x), y: t(e.y, a.y) }; }; var he = function getScrollCoordinatesPercent(r, e) { var a = r.D, t = r.M; var n = function getAxis(r, e, a) { return _r(0, 1, (r - a) / (r - e) || 0); }; return { x: n(a.x, t.x, e.x), y: n(a.y, t.y, e.y) }; }; var be = function focusElement(r) { if (r && r.focus) { r.focus({ preventScroll: true }); } }; var me = function manageListener(r, e) { each(k(e), r); }; var Se = function createEventListenerHub(r) { var e = new Map; var a = function removeEvent(r, a) { if (r) { var t = e.get(r); me((function(r) { if (t) { t[r ? "delete" : "clear"](r); } }), a); } else { e.forEach((function(r) { r.clear(); })); e.clear(); } }; var t = function addEvent(r, t) { if (w(r)) { var n = e.get(r) || new Set; e.set(r, n); me((function(r) { C(r) && n.add(r); }), t); return or(a, r, t); } if (O(t) && t) { a(); } var v = fr(r); var i = []; each(v, (function(e) { var a = r[e]; a && I(i, addEvent(e, a)); })); return or(N, i); }; var n = function triggerEvent(r, a) { each(V(e.get(r)), (function(r) { if (a && !R(a)) { r.apply(0, a); } else { r(); } })); }; t(r || {}); return [ t, a, n ]; }; var ye = function opsStringify(r) { return JSON.stringify(r, (function(r, e) { if (C(e)) { throw 0; } return e; })); }; var we = function getPropByPath(r, e) { return r ? ("" + e).split(".").reduce((function(r, e) { return r && lr(r, e) ? r[e] : void 0; }), r) : void 0; }; var Oe = { paddingAbsolute: false, showNativeOverlaidScrollbars: false, update: { elementEvents: [ [ "img", "load" ] ], debounce: [ 0, 33 ], attributes: null, ignoreMutation: null }, overflow: { x: "scroll", y: "scroll" }, scrollbars: { theme: "os-theme-dark", visibility: "auto", autoHide: "never", autoHideDelay: 1300, autoHideSuspend: false, dragScroll: true, clickScroll: false, pointers: [ "mouse", "touch", "pen" ] } }; var Ce = function getOptionsDiff(r, e) { var a = {}; var t = L(fr(e), fr(r)); each(t, (function(t) { var n = r[t]; var v = e[t]; if (E(n) && E(v)) { sr(a[t] = {}, getOptionsDiff(n, v)); if (pr(a[t])) { delete a[t]; } } else if (lr(e, t) && v !== n) { var i = true; if (x(n) || x(v)) { try { if (ye(n) === ye(v)) { i = false; } } catch (o) {} } if (i) { a[t] = v; } } })); return a; }; var xe = function createOptionCheck(r, e, a) { return function(t) { return [ we(r, t), a || we(e, t) !== void 0 ]; }; }; var Ee = "data-overlayscrollbars"; var Ae = "os-environment"; var He = Ae + "-scrollbar-hidden"; var Pe = Ee + "-initialize"; var Te = "noClipping"; var De = Ee + "-body"; var ze = Ee; var Me = "host"; var Le = Ee + "-viewport"; var Ie = Z; var Ve = G; var ke = "arrange"; var Re = "measuring"; var Fe = "scrolling"; var Ne = "scrollbarHidden"; var je = "noContent"; var Ue = Ee + "-padding"; var qe = Ee + "-content"; var Be = "os-size-observer"; var Ye = Be + "-appear"; var We = Be + "-listener"; var Xe = We + "-scroll"; var Ze = We + "-item"; var Ge = Ze + "-final"; var $e = "os-trinsic-observer"; var Je = "os-theme-none"; var Ke = "os-scrollbar"; var Qe = Ke + "-rtl"; var ra = Ke + "-horizontal"; var ea = Ke + "-vertical"; var aa = Ke + "-track"; var ta = Ke + "-handle"; var na = Ke + "-visible"; var va = Ke + "-cornerless"; var ia = Ke + "-interaction"; var oa = Ke + "-unusable"; var ua = Ke + "-auto-hide"; var ca = ua + "-hidden"; var la = Ke + "-wheel"; var fa = aa + "-interactive"; var sa = ta + "-interactive"; var da; var pa = function getNonce() { return da; }; var _a = function setNonce(r) { da = r; }; var ga; var ha = function createEnvironment() { var r = function getNativeScrollbarSize(r, e, a) { Fr(document.body, r); Fr(document.body, r); var t = re(r); var n = Qr(r); var v = ae(e); a && Rr(r); return { x: n.h - t.h + v.h, y: n.w - t.w + v.w }; }; var a = function getNativeScrollbarsHiding(r) { var e = false; var a = Hr(r, He); try { e = getStyles(r, "scrollbar-width") === "none" || getStyles(r, "display", "::-webkit-scrollbar") === "none"; } catch (t) {} a(); return e; }; var n = "." + Ae + "{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}." + Ae + " div{width:200%;height:200%;margin:10px 0}." + He + "{scrollbar-width:none!important}." + He + "::-webkit-scrollbar,." + He + "::-webkit-scrollbar-corner{appearance:none!important;display:none!important;width:0!important;height:0!important}"; var v = jr('<div class="' + Ae + '"><div></div><style>' + n + "</style></div>"); var i = v[0]; var o = i.firstChild; var u = i.lastChild; var c = pa(); if (c) { u.nonce = c; } var l = Se(), f = l[0], s = l[2]; var d = e({ v: r(i, o), i: nr }, or(r, i, o, true)), p = d[0], _ = d[1]; var g = _(), b = g[0]; var m = a(i); var S = { x: b.x === 0, y: b.y === 0 }; var y = { elements: { host: null, padding: !m, viewport: function viewport(r) { return m && zr(r) && r; }, content: false }, scrollbars: { slot: true }, cancel: { nativeScrollbarsOverlaid: false, body: null } }; var w = sr({}, Oe); var O = or(sr, {}, w); var x = or(sr, {}, y); var E = { L: b, I: S, V: m, k: !!h, R: or(f, "r"), F: x, N: function _setDefaultInitialization(r) { return sr(y, r) && x(); }, j: O, U: function _setDefaultOptions(r) { return sr(w, r) && O(); }, q: sr({}, y), B: sr({}, w) }; Sr(i, "style"); Rr(i); ue(t, "resize", (function() { s("r", []); })); if (C(t.matchMedia) && !m && (!S.x || !S.y)) { var A = function addZoomListener(r) { var e = t.matchMedia("(resolution: " + t.devicePixelRatio + "dppx)"); ue(e, "change", (function() { r(); addZoomListener(r); }), { T: true }); }; A((function() { var r = p(), e = r[0], a = r[1]; sr(E.L, e); s("r", [ a ]); })); } return E; }; var ba = function getEnvironment() { if (!ga) { ga = ha(); } return ga; }; var ma = function resolveInitialization(r, e) { return C(e) ? e.apply(0, r) : e; }; var Sa = function staticInitializationElement(r, e, a, t) { var n = b(t) ? a : t; var v = ma(r, n); return v || e.apply(0, r); }; var ya = function dynamicInitializationElement(r, e, a, t) { var n = b(t) ? a : t; var v = ma(r, n); return !!v && (P(v) ? v : e.apply(0, r)); }; var wa = function cancelInitialization(r, e) { var a = e || {}, t = a.nativeScrollbarsOverlaid, n = a.body; var v = ba(), i = v.I, o = v.V, u = v.F; var c = u().cancel, l = c.nativeScrollbarsOverlaid, f = c.body; var s = t != null ? t : l; var d = b(n) ? f : n; var p = (i.x || i.y) && s; var _ = r && (m(d) ? !o : d); return !!p || !!_; }; var Oa = new WeakMap; var Ca = function addInstance(r, e) { Oa.set(r, e); }; var xa = function removeInstance(r) { Oa.delete(r); }; var Ea = function getInstance(r) { return Oa.get(r); }; var Aa = function createEventContentChange(r, e, a) { var t = false; var n = a ? new WeakMap : false; var v = function destroy() { t = true; }; var i = function updateElements(v) { if (n && a) { var i = a.map((function(e) { var a = e || [], t = a[0], n = a[1]; var i = n && t ? (v || Pr)(t, r) : []; return [ i, n ]; })); each(i, (function(a) { return each(a[0], (function(v) { var i = a[1]; var o = n.get(v) || []; var u = r.contains(v); if (u && i) { var c = ue(v, i, (function(r) { if (t) { c(); n.delete(v); } else { e(r); } })); n.set(v, I(o, c)); } else { N(o); n.delete(v); } })); })); } }; i(); return [ v, i ]; }; var Ha = function createDOMObserver(r, e, a, t) { var n = false; var v = t || {}, i = v.Y, o = v.W, u = v.X, c = v.Z, l = v.G, f = v.$; var s = cr((function() { return n && a(true); }), { u: 33, p: 99 }); var d = Aa(r, s, u), _ = d[0], g = d[1]; var h = i || []; var b = o || []; var m = L(h, b); var S = function observerCallback(n, v) { if (!R(v)) { var i = l || ir; var o = f || ir; var u = []; var s = []; var d = false; var p = false; each(v, (function(a) { var n = a.attributeName, v = a.target, l = a.type, f = a.oldValue, _ = a.addedNodes, g = a.removedNodes; var h = l === "attributes"; var m = l === "childList"; var S = r === v; var y = h && n; var O = y && hr(v, n || ""); var C = w(O) ? O : null; var x = y && f !== C; var E = M(b, n) && x; if (e && (m || !S)) { var A = h && x; var H = A && c && Dr(v, c); var P = H ? !i(v, n, f, C) : !h || A; var T = P && !o(a, !!H, r, t); each(_, (function(r) { return I(u, r); })); each(g, (function(r) { return I(u, r); })); p = p || T; } if (!e && S && x && !i(v, n, f, C)) { I(s, n); d = d || E; } })); g((function(r) { return F(u).reduce((function(e, a) { I(e, Pr(r, a)); return Dr(a, r) ? I(e, a) : e; }), []); })); if (e) { !n && p && a(false); return [ false ]; } if (!R(s) || d) { var _ = [ F(s), d ]; !n && a.apply(0, _); return _; } } }; var y = new p(or(S, false)); return [ function() { y.observe(r, { attributes: true, attributeOldValue: true, attributeFilter: m, subtree: e, childList: e, characterData: e }); n = true; return function() { if (n) { _(); y.disconnect(); n = false; } }; }, function() { if (n) { s.S(); return S(true, y.takeRecords()); } } ]; }; var Pa = {}; var Ta = {}; var Da = function addPlugins(r) { each(r, (function(r) { return each(r, (function(e, a) { Pa[a] = r[a]; })); })); }; var za = function registerPluginModuleInstances(r, e, a) { return fr(r).map((function(t) { var n = r[t], v = n.static, i = n.instance; var o = a || [], u = o[0], c = o[1], l = o[2]; var f = a ? i : v; if (f) { var s = a ? f(u, c, e) : f(e); return (l || Ta)[t] = s; } })); }; var Ma = function getStaticPluginModuleInstance(r) { return Ta[r]; }; function getDefaultExportFromCjs(r) { return r && r.J && Object.prototype.hasOwnProperty.call(r, "default") ? r["default"] : r; } var La = { exports: {} }; (function(r) { function _extends() { r.exports = _extends = Object.assign ? Object.assign.bind() : function(r) { for (var e = 1; e < arguments.length; e++) { var a = arguments[e]; for (var t in a) { if (Object.prototype.hasOwnProperty.call(a, t)) { r[t] = a[t]; } } } return r; }, r.exports.J = true, r.exports["default"] = r.exports; return _extends.apply(this, arguments); } r.exports = _extends, r.exports.J = true, r.exports["default"] = r.exports; })(La); var Ia = La.exports; var Va = /*@__PURE__*/ getDefaultExportFromCjs(Ia); var ka = { boolean: "__TPL_boolean_TYPE__", number: "__TPL_number_TYPE__", string: "__TPL_string_TYPE__", array: "__TPL_array_TYPE__", object: "__TPL_object_TYPE__", function: "__TPL_function_TYPE__", null: "__TPL_null_TYPE__" }; var Ra = function validateRecursive(r, e, a, t) { var n = {}; var v = Va({}, e); var i = fr(r).filter((function(r) { return lr(e, r); })); each(i, (function(i) { var o = e[i]; var u = r[i]; var c = H(u); var l = t ? t + "." : ""; if (c && H(o)) { var f = validateRecursive(u, o, a, l + i), s = f[0], d = f[1]; n[i] = s; v[i] = d; each([ v, n ], (function(r) { if (pr(r[i])) { delete r[i]; } })); } else if (!c) { var p = false; var _ = []; var g = []; var h = S(o); var m = k(u); each(m, (function(r) { var e; each(ka, (function(a, t) { if (a === r) { e = t; } })); var a = b(e); if (a && w(o)) { var t = r.split(" "); p = !!t.find((function(r) { return r === o; })); I(_, t); } else { p = ka[h] === r; } I(g, a ? ka.string : e); return !p; })); if (p) { n[i] = o; } else if (a) { console.warn('The option "' + l + i + "\" wasn't set, because it doesn't accept the type [ " + h.toUpperCase() + ' ] with the value of "' + o + '".\r\n' + "Accepted types are: [ " + g.join(", ").toUpperCase() + " ].\r\n" + (_.length > 0 ? "\r\nValid strings are: [ " + _.join(", ") + " ]." : "")); } delete v[i]; } })); return [ n, v ]; }; var Fa = function validateOptions(r, e, a) { return Ra(r, e, a); }; var Na = "__osOptionsValidationPlugin"; /* @__PURE__ */ (function(r) { return r = {}, r[Na] = { static: function _static() { var r = ka.number; var e = ka.boolean; var a = [ ka.array, ka.null ]; var t = "hidden scroll visible visible-hidden"; var n = "visible hidden auto"; var v = "never scroll leavemove"; var i = [ e, ka.string ]; var o = { paddingAbsolute: e, showNativeOverlaidScrollbars: e, update: { elementEvents: a, attributes: a, debounce: [ ka.number, ka.array, ka.null ], ignoreMutation: [ ka.function, ka.null ] }, overflow: { x: t, y: t }, scrollbars: { theme: [ ka.string, ka.null ], visibility: n, autoHide: v, autoHideDelay: r, autoHideSuspend: e, dragScroll: e, clickScroll: i, pointers: [ ka.array, ka.null ] } }; return function(r, e) { var a = Fa(o, r, e), t = a[0], n = a[1]; return Va({}, n, t); }; } }, r; })(); var ja = "__osSizeObserverPlugin"; var Ua = /* @__PURE__ */ function(r) { return r = {}, r[ja] = { static: function _static() { return function(r, e, a) { var t; var n = 3333333; var v = "scroll"; var i = jr('<div class="' + Ze + '" dir="ltr"><div class="' + Ze + '"><div class="' + Ge + '"></div></div><div class="' + Ze + '"><div class="' + Ge + '" style="width: 200%; height: 200%"></div></div></div>'); var o = i[0]; var u = o.lastChild; var f = o.firstChild; var s = f == null ? void 0 : f.firstChild; var d = Qr(o); var p = d; var _ = false; var g; var h = function reset() { se(f, n); se(u, n); }; var b = function onResized(r) { g = 0; if (_) { d = p; e(r === true); } }; var m = function onScroll(r) { p = Qr(o); _ = !r || !tr(p, d); if (r) { ce(r); if (_ && !g) { c(g); g = l(b); } } else { b(r === false); } h(); }; var S = [ Fr(r, i), ue(f, v, m), ue(u, v, m) ]; Hr(r, Xe); setStyles(s, (t = {}, t[$] = n, t[J] = n, t)); l(h); return [ a ? or(m, false) : h, S ]; }; } }, r; }(); var qa = function getShowNativeOverlaidScrollbars(r, e) { var a = e.I; var t = r("showNativeOverlaidScrollbars"), n = t[0], v = t[1]; return [ n && a.x && a.y, v ]; }; var Ba = function overflowIsVisible(r) { return r.indexOf(K) === 0; }; var Ya = function createViewportOverflowState(r, e) { var a = function getAxisOverflowStyle(r, e, a, t) { var n = r === K ? Q : r.replace(K + "-", ""); var v = Ba(r); var i = Ba(a); if (!e && !t) { return Q; } if (v && i) { return K; } if (v) { var o = e ? K : Q; return e && t ? n : o; } var u = i && t ? K : Q; return e ? n : u; }; var t = { x: a(e.x, r.x, e.y, r.y), y: a(e.y, r.y, e.x, r.x) }; return { K: t, rr: { x: t.x === rr, y: t.y === rr } }; }; var Wa = "__osScrollbarsHidingPlugin"; var Xa = /* @__PURE__ */ function(r) { return r = {}, r[Wa] = { static: function _static() { return { er: function _viewportArrangement(r, e, a, t, n) { var v = r.ar, i = r.tr; var o = t.V, u = t.I, c = t.L; var l = !v && !o && (u.x || u.y); var f = qa(n, t), s = f[0]; var d = function readViewportOverflowState() { var r = function getStatePerAxis(r) { var e = getStyles(i, r); var a = e === rr; return [ e, a ]; }; var e = r(Z), a = e[0], t = e[1]; var n = r(G), v = n[0], o = n[1]; return { K: { x: a, y: v }, rr: { x: t, y: o } }; }; var p = function _getViewportOverflowHideOffset(r) { var e = r.rr; var a = o || s ? 0 : 42; var t = function getHideOffsetPerAxis(r, e, t) { var n = r ? a : t; var v = e && !o ? n : 0; var i = r && !!a; return [ v, i ]; }; var n = t(u.x, e.x, c.x), v = n[0], i = n[1]; var l = t(u.y, e.y, c.y), f = l[0], d = l[1]; return { nr: { x: v, y: f }, vr: { x: i, y: d } }; }; var _ = function _hideNativeScrollbars(r, a, t) { var n = a.ir; if (!v) { var i; var o = sr({}, (i = {}, i[W] = 0, i[X] = 0, i[Y] = 0, i)); var u = p(r), c = u.nr, l = u.vr; var f = l.x, s = l.y; var d = c.x, _ = c.y; var g = e.ur; var h = n ? Y : W; var b = n ? q : U; var m = g[h]; var S = g[X]; var y = g[b]; var w = g[B]; o[$] = "calc(100% + " + (_ + m * -1) + "px)"; o[h] = -_ + m; o[X] = -d + S; if (t) { o[b] = y + (s ? _ : 0); o[B] = w + (f ? d : 0); } return o; } }; var g = function _arrangeViewport(r, t, n) { if (l) { var v = e.ur; var o = p(r), u = o.nr, c = o.vr; var f = c.x, s = c.y; var d = u.x, _ = u.y; var g = a.ir; var h = g ? U : q; var b = v[h]; var m = v.paddingTop; var S = t.w + n.w; var y = t.h + n.h; var w = { w: _ && s ? _ + S - b + "px" : "", h: d && f ? d + y - m + "px" : "" }; setStyles(i, { "--os-vaw": w.w, "--os-vah": w.h }); } return l; }; var h = function _undoViewportArrange(r) { if (l) { var t = r || d(); var n = e.ur; var v = p(t), o = v.vr; var u = o.x, c = o.y; var f = {}; var s = function assignProps(r) { return each(r, (function(r) { f[r] = n[r]; })); }; if (u) { s([ X, j, B ]); } if (c) { s([ Y, W, q, U ]); } var g = getStyles(i, fr(f)); var h = wr(i, Le, ke); setStyles(i, f); return [ function() { setStyles(i, sr({}, g, _(t, a, l))); h(); }, t ]; } return [ ir ]; }; return { cr: p, lr: g, sr: h, dr: _ }; } }; } }, r; }(); var Za = "__osClickScrollPlugin"; var Ga = /* @__PURE__ */ function(r) { return r = {}, r[Za] = { static: function _static() { return function(r, e, a, t) { var n = false; var v = ir; var i = 133; var o = 222; var u = ur(i), c = u[0], l = u[1]; var f = Math.sign(e); var s = a * f; var d = s / 2; var p = function easing(r) { return 1 - (1 - r) * (1 - r); }; var _ = function easedEndPressAnimation(e, a) { return z(e, a, o, r, p); }; var g = function linearPressAnimation(a, t) { return z(a, e - s, i * t, (function(a, t, n) { r(a); if (n) { v = _(a, e); } })); }; var h = z(0, s, o, (function(i, o, u) { r(i); if (u) { t(n); if (!n) { var l = e - i; var p = Math.sign(l - d) === f; p && c((function() { var r = l - s; var t = Math.sign(r) === f; v = t ? g(i, Math.abs(r) / a) : _(i, e); })); } } }), p); return function(r) { n = true; if (r) { h(); } l(); v(); }; }; } }, r; }(); var $a = function createSizeObserver(r, a, t) { var n = t || {}, v = n.pr; var i = Ma(ja); var o = e({ v: false, o: true }), u = o[0]; return function() { var e = []; var t = jr('<div class="' + Be + '"><div class="' + We + '"></div></div>'); var n = t[0]; var o = n.firstChild; var c = function onSizeChangedCallbackProxy(r) { var e = r instanceof ResizeObserverEntry; var t = false; var n = false; if (e) { var v = u(r.contentRect), i = v[0], o = v[2]; var c = ve(i); n = ie(i, o); t = !n && !c; } else { n = r === true; } if (!t) { a({ _r: true, pr: n }); } }; if (g) { var l = new g((function(r) { return c(r.pop()); })); l.observe(o); I(e, (function() { l.disconnect(); })); } else if (i) { var f = i(o, c, v), s = f[0], d = f[1]; I(e, L([ Hr(n, Ye), ue(n, "animationstart", s) ], d)); } else { return ir; } return or(N, I(e, Fr(r, n))); }; }; var Ja = function createTrinsicObserver(r, a) { var t; var n = function isHeightIntrinsic(r) { return r.h === 0 || r.isIntersecting || r.intersectionRatio > 0; }; var v = Nr($e); var i = e({ v: false }), o = i[0]; var u = function triggerOnTrinsicChangedCallback(r, e) { if (r) { var t = o(n(r)); var v = t[1]; return v && !e && a(t) && [ t ]; } }; var c = function intersectionObserverCallback(r, e) { return u(e.pop(), r); }; return [ function() { var e = []; if (_) { t = new _(or(c, false), { root: r }); t.observe(v); I(e, (function() { t.disconnect(); })); } else { var a = function onSizeChanged() { var r = Qr(v); u(r); }; I(e, $a(v, a)()); a(); } return or(N, I(e, Fr(r, v))); }, function() { return t && c(true, t.takeRecords()); } ]; }; var Ka = function createObserversSetup(r, a, t, n) { var v; var i; var o; var u; var c; var l; var f = "[" + ze + "]"; var s = "[" + Le + "]"; var d = [ "id", "class", "style", "open", "wrap", "cols", "rows" ]; var p = r.gr, _ = r.hr, h = r.tr, b = r.br, m = r.mr, S = r.ar, w = r.Sr, O = r.yr, E = r.wr, A = r.Or; var H = function getDirectionIsRTL(r) { return getStyles(r, "direction") === "rtl"; }; var P = { Cr: false, ir: H(p) }; var T = ba(); var D = Ma(Wa); var z = e({ i: tr, v: { w: 0, h: 0 } }, (function() { var e = D && D.er(r, a, P, T, t).sr; var n = w && S; var v = !n && xr(_, ze, Te); var i = !S && O(ke); var o = i && de(b); var u = o && A(); var c = E(Re, v); var l = i && e && e()[0]; var f = ee(h); var s = ae(h); l && l(); se(b, o); u && u(); v && c(); return { w: f.w + s.w, h: f.h + s.h }; })), M = z[0]; var I = cr(n, { u: function _timeout() { return v; }, p: function _maxDelay() { return i; }, m: function _mergeParams(r, e) { var a = r[0]; var t = e[0]; return [ L(fr(a), fr(t)).reduce((function(r, e) { r[e] = a[e] || t[e]; return r; }), {}) ]; } }); var V = function setDirection(r) { var e = H(p); sr(r, { Er: l !== e }); sr(P, { ir: e }); l = e; }; var k = function onTrinsicChanged(r, e) { var a = r[0], t = r[1]; var v = { Ar: t }; sr(P, { Cr: a }); !e && n(v); return v; }; var R = function onSizeChanged(r) { var e = r._r, a = r.pr; var t = e && !a; var v = !t && T.V ? I : n; var i = { _r: e || a, pr: a }; V(i); v(i); }; var F = function onContentMutation(r, e) { var a = M(), t = a[1]; var v = { Hr: t }; V(v); var i = r ? n : I; t && !e && i(v); return v; }; var N = function onHostMutation(r, e, a) { var t = { Pr: e }; V(t); if (e && !a) { I(t); } return t; }; var j = m ? Ja(_, k) : [], U = j[0], q = j[1]; var B = !S && $a(_, R, { pr: true }); var Y = Ha(_, false, N, { W: d, Y: d }), W = Y[0], X = Y[1]; var Z = S && g && new g((function(r) { var e = r[r.length - 1].contentRect; R({ _r: true, pr: ie(e, c) }); c = e; })); var G = cr((function() { var r = M(), e = r[1]; n({ Hr: e }); }), { u: 222, _: true }); return [ function() { Z && Z.observe(_); var r = B && B(); var e = U && U(); var a = W(); var t = T.R((function(r) { if (r) { I({ Tr: r }); } else { G(); } })); return function() { Z && Z.disconnect(); r && r(); e && e(); u && u(); a(); t(); }; }, function(r) { var e = r.Dr, a = r.zr, t = r.Mr; var n = {}; var c = e("update.ignoreMutation"), l = c[0]; var p = e("update.attributes"), _ = p[0], g = p[1]; var b = e("update.elementEvents"), w = b[0], O = b[1]; var E = e("update.debounce"), A = E[0], H = E[1]; var P = O || g; var T = a || t; var D = function ignoreMutationFromOptions(r) { return C(l) && l(r); }; if (P) { o && o(); u && u(); var z = Ha(m || h, true, F, { Y: L(d, _ || []), X: w, Z: f, $: function _ignoreContentChange(r, e) { var a = r.target, t = r.attributeName; var n = !e && t && !S ? kr(a, f, s) : false; return n || !!Ir(a, "." + Ke) || !!D(r); } }), M = z[0], R = z[1]; u = M(); o = R; } if (H) { I.S(); if (x(A)) { var j = A[0]; var U = A[1]; v = y(j) && j; i = y(U) && U; } else if (y(A)) { v = A; i = false; } else { v = false; i = false; } } if (T) { var B = X(); var Y = q && q(); var W = o && o(); B && sr(n, N(B[0], B[1], T)); Y && sr(n, k(Y[0], T)); W && sr(n, F(W[0], T)); } V(n); return n; }, P ]; }; var Qa = function createScrollbarsSetupElements(r, e, a, t) { var n = "--os-viewport-percent"; var v = "--os-scroll-percent"; var i = "--os-scroll-direction"; var o = ba(), u = o.F; var c = u(), l = c.scrollbars; var f = l.slot; var s = e.gr, d = e.hr, p = e.tr, _ = e.Lr, g = e.br, b = e.Sr, m = e.ar; var S = _ ? {} : r, y = S.scrollbars; var w = y || {}, C = w.slot; var x = []; var E = []; var A = []; var H = ya([ s, d, p ], (function() { return m && b ? s : d; }), f, C); var P = function initScrollTimeline(r) { if (h) { var e = new h({ source: g, axis: r }); var a = function _addScrollPercentAnimation(r) { var a; var t = r.Ir.animate((a = { clear: [ "left" ] }, a[v] = [ 0, 1 ], a), { timeline: e }); return function() { return t.cancel(); }; }; return { Vr: a }; } }; var T = { x: P("x"), y: P("y") }; var D = function getViewportPercent() { var r = a.kr, e = a.Rr; var t = function getAxisValue(r, e) { return _r(0, 1, r / (r + e) || 0); }; return { x: t(e.x, r.x), y: t(e.y, r.y) }; }; var z = function scrollbarStructureAddRemoveClass(r, e, a) { var t = a ? Hr : Ar; each(r, (function(r) { t(r.Ir, e); })); }; var M = function scrollbarStyle(r, e) { each(r, (function(r) { var a = e(r), t = a[0], n = a[1]; setStyles(t, n); })); }; var L = function scrollbarsAddRemoveClass(r, e, a) { var t = O(a); var n = t ? a : true; var v = t ? !a : true; n && z(E, r, e); v && z(A, r, e); }; var V = function refreshScrollbarsHandleLength() { var r = D(); var e = function createScrollbarStyleFn(r) { return function(e) { var a; return [ e.Ir, (a = {}, a[n] = Yr(r) + "", a) ]; }; }; M(E, e(r.x)); M(A, e(r.y)); }; var k = function refreshScrollbarsHandleOffset() { if (!h) { var r = a.Fr; var e = he(r, de(g)); var t = function createScrollbarStyleFn(r) { return function(e) { var a; return [ e.Ir, (a = {}, a[v] = Yr(r) + "", a) ]; }; }; M(E, t(e.x)); M(A, t(e.y)); } }; var R = function refreshScrollbarsScrollCoordinates() { var r = a.Fr; var e = ge(r); var t = function createScrollbarStyleFn(r) { return function(e) { var a; return [ e.Ir, (a = {}, a[i] = r ? "0" : "1", a) ]; }; }; M(E, t(e.x)); M(A, t(e.y)); }; var F = function refreshScroll