/*! * perfect-scrollbar v1.4.0 * (c) 2018 Hyunje Jun * @license MIT */ !(function (t, e) { 'object' == typeof exports && 'undefined' != typeof module ? (module.exports = e()) : 'function' == typeof define && define.amd ? define(e) : (t.PerfectScrollbar = e()); })(this, function () { 'use strict'; function t(t) { return getComputedStyle(t); } function e(t, e) { for (var i in e) { var r = e[i]; 'number' == typeof r && (r += 'px'), (t.style[i] = r); } return t; } function i(t) { var e = document.createElement('div'); return (e.className = t), e; } function r(t, e) { if (!v) throw new Error('No element matching method supported'); return v.call(t, e); } function l(t) { t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t); } function n(t, e) { return Array.prototype.filter.call(t.children, function (t) { return r(t, e); }); } function o(t, e) { var i = t.element.classList, r = m.state.scrolling(e); i.contains(r) ? clearTimeout(Y[e]) : i.add(r); } function s(t, e) { Y[e] = setTimeout(function () { return t.isAlive && t.element.classList.remove(m.state.scrolling(e)); }, t.settings.scrollingThreshold); } function a(t, e) { o(t, e), s(t, e); } function c(t) { if ('function' == typeof window.CustomEvent) return new CustomEvent(t); var e = document.createEvent('CustomEvent'); return e.initCustomEvent(t, !1, !1, void 0), e; } function h(t, e, i, r, l) { var n = i[0], o = i[1], s = i[2], h = i[3], u = i[4], d = i[5]; void 0 === r && (r = !0), void 0 === l && (l = !1); var f = t.element; (t.reach[h] = null), f[s] < 1 && (t.reach[h] = 'start'), f[s] > t[n] - t[o] - 1 && (t.reach[h] = 'end'), e && (f.dispatchEvent(c('ps-scroll-' + h)), e < 0 ? f.dispatchEvent(c('ps-scroll-' + u)) : e > 0 && f.dispatchEvent(c('ps-scroll-' + d)), r && a(t, h)), t.reach[h] && (e || l) && f.dispatchEvent(c('ps-' + h + '-reach-' + t.reach[h])); } function u(t) { return parseInt(t, 10) || 0; } function d(t) { return ( r(t, 'input,[contenteditable]') || r(t, 'select,[contenteditable]') || r(t, 'textarea,[contenteditable]') || r(t, 'button,[contenteditable]') ); } function f(e) { var i = t(e); return u(i.width) + u(i.paddingLeft) + u(i.paddingRight) + u(i.borderLeftWidth) + u(i.borderRightWidth); } function p(t, e) { return ( t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e ); } function b(t, i) { var r = { width: i.railXWidth }, l = Math.floor(t.scrollTop); i.isRtl ? (r.left = i.negativeScrollAdjustment + t.scrollLeft + i.containerWidth - i.contentWidth) : (r.left = t.scrollLeft), i.isScrollbarXUsingBottom ? (r.bottom = i.scrollbarXBottom - l) : (r.top = i.scrollbarXTop + l), e(i.scrollbarXRail, r); var n = { top: l, height: i.railYHeight }; i.isScrollbarYUsingRight ? i.isRtl ? (n.right = i.contentWidth - (i.negativeScrollAdjustment + t.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth) : (n.right = i.scrollbarYRight - t.scrollLeft) : i.isRtl ? (n.left = i.negativeScrollAdjustment + t.scrollLeft + 2 * i.containerWidth - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth) : (n.left = i.scrollbarYLeft + t.scrollLeft), e(i.scrollbarYRail, n), e(i.scrollbarX, { left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth }), e(i.scrollbarY, { top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth }); } function g(t, e) { function i(e) { (b[d] = g + Y * (e[a] - v)), o(t, f), R(t), e.stopPropagation(), e.preventDefault(); } function r() { s(t, f), t[p].classList.remove(m.state.clicking), t.event.unbind(t.ownerDocument, 'mousemove', i); } var l = e[0], n = e[1], a = e[2], c = e[3], h = e[4], u = e[5], d = e[6], f = e[7], p = e[8], b = t.element, g = null, v = null, Y = null; t.event.bind(t[h], 'mousedown', function (e) { (g = b[d]), (v = e[a]), (Y = (t[n] - t[l]) / (t[c] - t[u])), t.event.bind(t.ownerDocument, 'mousemove', i), t.event.once(t.ownerDocument, 'mouseup', r), t[p].classList.add(m.state.clicking), e.stopPropagation(), e.preventDefault(); }); } var v = 'undefined' != typeof Element && (Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector), m = { main: 'ps', element: { thumb: function (t) { return 'ps__thumb-' + t; }, rail: function (t) { return 'ps__rail-' + t; }, consuming: 'ps__child--consume', }, state: { focus: 'ps--focus', clicking: 'ps--clicking', active: function (t) { return 'ps--active-' + t; }, scrolling: function (t) { return 'ps--scrolling-' + t; }, }, }, Y = { x: null, y: null }, X = function (t) { (this.element = t), (this.handlers = {}); }, w = { isEmpty: { configurable: !0 } }; (X.prototype.bind = function (t, e) { void 0 === this.handlers[t] && (this.handlers[t] = []), this.handlers[t].push(e), this.element.addEventListener(t, e, !1); }), (X.prototype.unbind = function (t, e) { var i = this; this.handlers[t] = this.handlers[t].filter(function (r) { return !(!e || r === e) || (i.element.removeEventListener(t, r, !1), !1); }); }), (X.prototype.unbindAll = function () { var t = this; for (var e in t.handlers) t.unbind(e); }), (w.isEmpty.get = function () { var t = this; return Object.keys(this.handlers).every(function (e) { return 0 === t.handlers[e].length; }); }), Object.defineProperties(X.prototype, w); var y = function () { this.eventElements = []; }; (y.prototype.eventElement = function (t) { var e = this.eventElements.filter(function (e) { return e.element === t; })[0]; return e || ((e = new X(t)), this.eventElements.push(e)), e; }), (y.prototype.bind = function (t, e, i) { this.eventElement(t).bind(e, i); }), (y.prototype.unbind = function (t, e, i) { var r = this.eventElement(t); r.unbind(e, i), r.isEmpty && this.eventElements.splice(this.eventElements.indexOf(r), 1); }), (y.prototype.unbindAll = function () { this.eventElements.forEach(function (t) { return t.unbindAll(); }), (this.eventElements = []); }), (y.prototype.once = function (t, e, i) { var r = this.eventElement(t), l = function (t) { r.unbind(e, l), i(t); }; r.bind(e, l); }); var W = function (t, e, i, r, l) { void 0 === r && (r = !0), void 0 === l && (l = !1); var n; if ('top' === e) n = ['contentHeight', 'containerHeight', 'scrollTop', 'y', 'up', 'down']; else { if ('left' !== e) throw new Error('A proper axis should be provided'); n = ['contentWidth', 'containerWidth', 'scrollLeft', 'x', 'left', 'right']; } h(t, i, n, r, l); }, L = { isWebKit: 'undefined' != typeof document && 'WebkitAppearance' in document.documentElement.style, supportsTouch: 'undefined' != typeof window && ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)), supportsIePointer: 'undefined' != typeof navigator && navigator.msMaxTouchPoints, isChrome: 'undefined' != typeof navigator && /Chrome/i.test(navigator && navigator.userAgent), }, R = function (t) { var e = t.element, i = Math.floor(e.scrollTop); (t.containerWidth = e.clientWidth), (t.containerHeight = e.clientHeight), (t.contentWidth = e.scrollWidth), (t.contentHeight = e.scrollHeight), e.contains(t.scrollbarXRail) || (n(e, m.element.rail('x')).forEach(function (t) { return l(t); }), e.appendChild(t.scrollbarXRail)), e.contains(t.scrollbarYRail) || (n(e, m.element.rail('y')).forEach(function (t) { return l(t); }), e.appendChild(t.scrollbarYRail)), !t.settings.suppressScrollX && t.containerWidth + t.settings.scrollXMarginOffset < t.contentWidth ? ((t.scrollbarXActive = !0), (t.railXWidth = t.containerWidth - t.railXMarginWidth), (t.railXRatio = t.containerWidth / t.railXWidth), (t.scrollbarXWidth = p(t, u((t.railXWidth * t.containerWidth) / t.contentWidth))), (t.scrollbarXLeft = u( ((t.negativeScrollAdjustment + e.scrollLeft) * (t.railXWidth - t.scrollbarXWidth)) / (t.contentWidth - t.containerWidth) ))) : (t.scrollbarXActive = !1), !t.settings.suppressScrollY && t.containerHeight + t.settings.scrollYMarginOffset < t.contentHeight ? ((t.scrollbarYActive = !0), (t.railYHeight = t.containerHeight - t.railYMarginHeight), (t.railYRatio = t.containerHeight / t.railYHeight), (t.scrollbarYHeight = p(t, u((t.railYHeight * t.containerHeight) / t.contentHeight))), (t.scrollbarYTop = u((i * (t.railYHeight - t.scrollbarYHeight)) / (t.contentHeight - t.containerHeight)))) : (t.scrollbarYActive = !1), t.scrollbarXLeft >= t.railXWidth - t.scrollbarXWidth && (t.scrollbarXLeft = t.railXWidth - t.scrollbarXWidth), t.scrollbarYTop >= t.railYHeight - t.scrollbarYHeight && (t.scrollbarYTop = t.railYHeight - t.scrollbarYHeight), b(e, t), t.scrollbarXActive ? e.classList.add(m.state.active('x')) : (e.classList.remove(m.state.active('x')), (t.scrollbarXWidth = 0), (t.scrollbarXLeft = 0), (e.scrollLeft = 0)), t.scrollbarYActive ? e.classList.add(m.state.active('y')) : (e.classList.remove(m.state.active('y')), (t.scrollbarYHeight = 0), (t.scrollbarYTop = 0), (e.scrollTop = 0)); }, T = { 'click-rail': function (t) { t.event.bind(t.scrollbarY, 'mousedown', function (t) { return t.stopPropagation(); }), t.event.bind(t.scrollbarYRail, 'mousedown', function (e) { var i = e.pageY - window.pageYOffset - t.scrollbarYRail.getBoundingClientRect().top > t.scrollbarYTop ? 1 : -1; (t.element.scrollTop += i * t.containerHeight), R(t), e.stopPropagation(); }), t.event.bind(t.scrollbarX, 'mousedown', function (t) { return t.stopPropagation(); }), t.event.bind(t.scrollbarXRail, 'mousedown', function (e) { var i = e.pageX - window.pageXOffset - t.scrollbarXRail.getBoundingClientRect().left > t.scrollbarXLeft ? 1 : -1; (t.element.scrollLeft += i * t.containerWidth), R(t), e.stopPropagation(); }); }, 'drag-thumb': function (t) { g(t, [ 'containerWidth', 'contentWidth', 'pageX', 'railXWidth', 'scrollbarX', 'scrollbarXWidth', 'scrollLeft', 'x', 'scrollbarXRail', ]), g(t, [ 'containerHeight', 'contentHeight', 'pageY', 'railYHeight', 'scrollbarY', 'scrollbarYHeight', 'scrollTop', 'y', 'scrollbarYRail', ]); }, keyboard: function (t) { function e(e, r) { var l = Math.floor(i.scrollTop); if (0 === e) { if (!t.scrollbarYActive) return !1; if ((0 === l && r > 0) || (l >= t.contentHeight - t.containerHeight && r < 0)) return !t.settings.wheelPropagation; } var n = i.scrollLeft; if (0 === r) { if (!t.scrollbarXActive) return !1; if ((0 === n && e < 0) || (n >= t.contentWidth - t.containerWidth && e > 0)) return !t.settings.wheelPropagation; } return !0; } var i = t.element, l = function () { return r(i, ':hover'); }, n = function () { return r(t.scrollbarX, ':focus') || r(t.scrollbarY, ':focus'); }; t.event.bind(t.ownerDocument, 'keydown', function (r) { if (!((r.isDefaultPrevented && r.isDefaultPrevented()) || r.defaultPrevented) && (l() || n())) { var o = document.activeElement ? document.activeElement : t.ownerDocument.activeElement; if (o) { if ('IFRAME' === o.tagName) o = o.contentDocument.activeElement; else for (; o.shadowRoot; ) o = o.shadowRoot.activeElement; if (d(o)) return; } var s = 0, a = 0; switch (r.which) { case 37: s = r.metaKey ? -t.contentWidth : r.altKey ? -t.containerWidth : -30; break; case 38: a = r.metaKey ? t.contentHeight : r.altKey ? t.containerHeight : 30; break; case 39: s = r.metaKey ? t.contentWidth : r.altKey ? t.containerWidth : 30; break; case 40: a = r.metaKey ? -t.contentHeight : r.altKey ? -t.containerHeight : -30; break; case 32: a = r.shiftKey ? t.containerHeight : -t.containerHeight; break; case 33: a = t.containerHeight; break; case 34: a = -t.containerHeight; break; case 36: a = t.contentHeight; break; case 35: a = -t.contentHeight; break; default: return; } (t.settings.suppressScrollX && 0 !== s) || (t.settings.suppressScrollY && 0 !== a) || ((i.scrollTop -= a), (i.scrollLeft += s), R(t), e(s, a) && r.preventDefault()); } }); }, wheel: function (e) { function i(t, i) { var r = Math.floor(o.scrollTop), l = 0 === o.scrollTop, n = r + o.offsetHeight === o.scrollHeight, s = 0 === o.scrollLeft, a = o.scrollLeft + o.offsetWidth === o.scrollWidth; return !(Math.abs(i) > Math.abs(t) ? l || n : s || a) || !e.settings.wheelPropagation; } function r(t) { var e = t.deltaX, i = -1 * t.deltaY; return ( (void 0 !== e && void 0 !== i) || ((e = (-1 * t.wheelDeltaX) / 6), (i = t.wheelDeltaY / 6)), t.deltaMode && 1 === t.deltaMode && ((e *= 10), (i *= 10)), e !== e && i !== i && ((e = 0), (i = t.wheelDelta)), t.shiftKey ? [-i, -e] : [e, i] ); } function l(e, i, r) { if (!L.isWebKit && o.querySelector('select:focus')) return !0; if (!o.contains(e)) return !1; for (var l = e; l && l !== o; ) { if (l.classList.contains(m.element.consuming)) return !0; var n = t(l); if ([n.overflow, n.overflowX, n.overflowY].join('').match(/(scroll|auto)/)) { var s = l.scrollHeight - l.clientHeight; if (s > 0 && !((0 === l.scrollTop && r > 0) || (l.scrollTop === s && r < 0))) return !0; var a = l.scrollWidth - l.clientWidth; if (a > 0 && !((0 === l.scrollLeft && i < 0) || (l.scrollLeft === a && i > 0))) return !0; } l = l.parentNode; } return !1; } function n(t) { var n = r(t), s = n[0], a = n[1]; if (!l(t.target, s, a)) { var c = !1; e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (a ? (o.scrollTop -= a * e.settings.wheelSpeed) : (o.scrollTop += s * e.settings.wheelSpeed), (c = !0)) : e.scrollbarXActive && !e.scrollbarYActive && (s ? (o.scrollLeft += s * e.settings.wheelSpeed) : (o.scrollLeft -= a * e.settings.wheelSpeed), (c = !0)) : ((o.scrollTop -= a * e.settings.wheelSpeed), (o.scrollLeft += s * e.settings.wheelSpeed)), R(e), (c = c || i(s, a)) && !t.ctrlKey && (t.stopPropagation(), t.preventDefault()); } } var o = e.element; void 0 !== window.onwheel ? e.event.bind(o, 'wheel', n) : void 0 !== window.onmousewheel && e.event.bind(o, 'mousewheel', n); }, touch: function (e) { function i(t, i) { var r = Math.floor(h.scrollTop), l = h.scrollLeft, n = Math.abs(t), o = Math.abs(i); if (o > n) { if ((i < 0 && r === e.contentHeight - e.containerHeight) || (i > 0 && 0 === r)) return 0 === window.scrollY && i > 0 && L.isChrome; } else if (n > o && ((t < 0 && l === e.contentWidth - e.containerWidth) || (t > 0 && 0 === l))) return !0; return !0; } function r(t, i) { (h.scrollTop -= i), (h.scrollLeft -= t), R(e); } function l(t) { return t.targetTouches ? t.targetTouches[0] : t; } function n(t) { return !( (t.pointerType && 'pen' === t.pointerType && 0 === t.buttons) || ((!t.targetTouches || 1 !== t.targetTouches.length) && (!t.pointerType || 'mouse' === t.pointerType || t.pointerType === t.MSPOINTER_TYPE_MOUSE)) ); } function o(t) { if (n(t)) { var e = l(t); (u.pageX = e.pageX), (u.pageY = e.pageY), (d = new Date().getTime()), null !== p && clearInterval(p); } } function s(e, i, r) { if (!h.contains(e)) return !1; for (var l = e; l && l !== h; ) { if (l.classList.contains(m.element.consuming)) return !0; var n = t(l); if ([n.overflow, n.overflowX, n.overflowY].join('').match(/(scroll|auto)/)) { var o = l.scrollHeight - l.clientHeight; if (o > 0 && !((0 === l.scrollTop && r > 0) || (l.scrollTop === o && r < 0))) return !0; var s = l.scrollLeft - l.clientWidth; if (s > 0 && !((0 === l.scrollLeft && i < 0) || (l.scrollLeft === s && i > 0))) return !0; } l = l.parentNode; } return !1; } function a(t) { if (n(t)) { var e = l(t), o = { pageX: e.pageX, pageY: e.pageY }, a = o.pageX - u.pageX, c = o.pageY - u.pageY; if (s(t.target, a, c)) return; r(a, c), (u = o); var h = new Date().getTime(), p = h - d; p > 0 && ((f.x = a / p), (f.y = c / p), (d = h)), i(a, c) && t.preventDefault(); } } function c() { e.settings.swipeEasing && (clearInterval(p), (p = setInterval(function () { e.isInitialized ? clearInterval(p) : f.x || f.y ? Math.abs(f.x) < 0.01 && Math.abs(f.y) < 0.01 ? clearInterval(p) : (r(30 * f.x, 30 * f.y), (f.x *= 0.8), (f.y *= 0.8)) : clearInterval(p); }, 10))); } if (L.supportsTouch || L.supportsIePointer) { var h = e.element, u = {}, d = 0, f = {}, p = null; L.supportsTouch ? (e.event.bind(h, 'touchstart', o), e.event.bind(h, 'touchmove', a), e.event.bind(h, 'touchend', c)) : L.supportsIePointer && (window.PointerEvent ? (e.event.bind(h, 'pointerdown', o), e.event.bind(h, 'pointermove', a), e.event.bind(h, 'pointerup', c)) : window.MSPointerEvent && (e.event.bind(h, 'MSPointerDown', o), e.event.bind(h, 'MSPointerMove', a), e.event.bind(h, 'MSPointerUp', c))); } }, }, H = function (r, l) { var n = this; if ((void 0 === l && (l = {}), 'string' == typeof r && (r = document.querySelector(r)), !r || !r.nodeName)) throw new Error('no element is specified to initialize PerfectScrollbar'); (this.element = r), r.classList.add(m.main), (this.settings = { handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'], maxScrollbarLength: null, minScrollbarLength: null, scrollingThreshold: 1e3, scrollXMarginOffset: 0, scrollYMarginOffset: 0, suppressScrollX: !1, suppressScrollY: !1, swipeEasing: !0, useBothWheelAxes: !1, wheelPropagation: !0, wheelSpeed: 1, }); for (var o in l) n.settings[o] = l[o]; (this.containerWidth = null), (this.containerHeight = null), (this.contentWidth = null), (this.contentHeight = null); var s = function () { return r.classList.add(m.state.focus); }, a = function () { return r.classList.remove(m.state.focus); }; (this.isRtl = 'rtl' === t(r).direction), (this.isNegativeScroll = (function () { var t = r.scrollLeft, e = null; return (r.scrollLeft = -1), (e = r.scrollLeft < 0), (r.scrollLeft = t), e; })()), (this.negativeScrollAdjustment = this.isNegativeScroll ? r.scrollWidth - r.clientWidth : 0), (this.event = new y()), (this.ownerDocument = r.ownerDocument || document), (this.scrollbarXRail = i(m.element.rail('x'))), r.appendChild(this.scrollbarXRail), (this.scrollbarX = i(m.element.thumb('x'))), this.scrollbarXRail.appendChild(this.scrollbarX), this.scrollbarX.setAttribute('tabindex', 0), this.event.bind(this.scrollbarX, 'focus', s), this.event.bind(this.scrollbarX, 'blur', a), (this.scrollbarXActive = null), (this.scrollbarXWidth = null), (this.scrollbarXLeft = null); var c = t(this.scrollbarXRail); (this.scrollbarXBottom = parseInt(c.bottom, 10)), isNaN(this.scrollbarXBottom) ? ((this.isScrollbarXUsingBottom = !1), (this.scrollbarXTop = u(c.top))) : (this.isScrollbarXUsingBottom = !0), (this.railBorderXWidth = u(c.borderLeftWidth) + u(c.borderRightWidth)), e(this.scrollbarXRail, { display: 'block' }), (this.railXMarginWidth = u(c.marginLeft) + u(c.marginRight)), e(this.scrollbarXRail, { display: '' }), (this.railXWidth = null), (this.railXRatio = null), (this.scrollbarYRail = i(m.element.rail('y'))), r.appendChild(this.scrollbarYRail), (this.scrollbarY = i(m.element.thumb('y'))), this.scrollbarYRail.appendChild(this.scrollbarY), this.scrollbarY.setAttribute('tabindex', 0), this.event.bind(this.scrollbarY, 'focus', s), this.event.bind(this.scrollbarY, 'blur', a), (this.scrollbarYActive = null), (this.scrollbarYHeight = null), (this.scrollbarYTop = null); var h = t(this.scrollbarYRail); (this.scrollbarYRight = parseInt(h.right, 10)), isNaN(this.scrollbarYRight) ? ((this.isScrollbarYUsingRight = !1), (this.scrollbarYLeft = u(h.left))) : (this.isScrollbarYUsingRight = !0), (this.scrollbarYOuterWidth = this.isRtl ? f(this.scrollbarY) : null), (this.railBorderYWidth = u(h.borderTopWidth) + u(h.borderBottomWidth)), e(this.scrollbarYRail, { display: 'block' }), (this.railYMarginHeight = u(h.marginTop) + u(h.marginBottom)), e(this.scrollbarYRail, { display: '' }), (this.railYHeight = null), (this.railYRatio = null), (this.reach = { x: r.scrollLeft <= 0 ? 'start' : r.scrollLeft >= this.contentWidth - this.containerWidth ? 'end' : null, y: r.scrollTop <= 0 ? 'start' : r.scrollTop >= this.contentHeight - this.containerHeight ? 'end' : null, }), (this.isAlive = !0), this.settings.handlers.forEach(function (t) { return T[t](n); }), (this.lastScrollTop = Math.floor(r.scrollTop)), (this.lastScrollLeft = r.scrollLeft), this.event.bind(this.element, 'scroll', function (t) { return n.onScroll(t); }), R(this); }; return ( (H.prototype.update = function () { this.isAlive && ((this.negativeScrollAdjustment = this.isNegativeScroll ? this.element.scrollWidth - this.element.clientWidth : 0), e(this.scrollbarXRail, { display: 'block' }), e(this.scrollbarYRail, { display: 'block' }), (this.railXMarginWidth = u(t(this.scrollbarXRail).marginLeft) + u(t(this.scrollbarXRail).marginRight)), (this.railYMarginHeight = u(t(this.scrollbarYRail).marginTop) + u(t(this.scrollbarYRail).marginBottom)), e(this.scrollbarXRail, { display: 'none' }), e(this.scrollbarYRail, { display: 'none' }), R(this), W(this, 'top', 0, !1, !0), W(this, 'left', 0, !1, !0), e(this.scrollbarXRail, { display: '' }), e(this.scrollbarYRail, { display: '' })); }), (H.prototype.onScroll = function (t) { this.isAlive && (R(this), W(this, 'top', this.element.scrollTop - this.lastScrollTop), W(this, 'left', this.element.scrollLeft - this.lastScrollLeft), (this.lastScrollTop = Math.floor(this.element.scrollTop)), (this.lastScrollLeft = this.element.scrollLeft)); }), (H.prototype.destroy = function () { this.isAlive && (this.event.unbindAll(), l(this.scrollbarX), l(this.scrollbarY), l(this.scrollbarXRail), l(this.scrollbarYRail), this.removePsClasses(), (this.element = null), (this.scrollbarX = null), (this.scrollbarY = null), (this.scrollbarXRail = null), (this.scrollbarYRail = null), (this.isAlive = !1)); }), (H.prototype.removePsClasses = function () { this.element.className = this.element.className .split(' ') .filter(function (t) { return !t.match(/^ps([-_].+|)$/); }) .join(' '); }), H ); });