{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js"],"names":["get","element","getComputedStyle","set","obj","key","val","style","div","className","document","createElement","elMatches","Element","prototype","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","query","Error","call","remove","parentNode","removeChild","queryChildren","selector","Array","filter","children","child","cls","main","rtl","thumb","x","rail","consuming","state","focus","clicking","active","scrolling","scrollingClassTimeout","y","addScrollingClass","i","classList","contains","clearTimeout","add","removeScrollingClass","setTimeout","isAlive","settings","scrollingThreshold","EventElement","this","handlers","prototypeAccessors","isEmpty","configurable","bind","eventName","handler","push","addEventListener","unbind","target","this$1","removeEventListener","unbindAll","name","Object","keys","every","length","defineProperties","EventManager","eventElements","createEvent","window","CustomEvent","evt","initCustomEvent","undefined","processScrollDiff","axis","diff","useScrollingClass","forceFireReachEvent","fields","ref","contentHeight","containerHeight","scrollTop","up","down","reach","dispatchEvent","setScrollingClassInstantly","processScrollDiff$1","toInt","parseInt","eventElement","ee","splice","indexOf","forEach","e","once","onceHandler","env","isWebKit","documentElement","supportsTouch","navigator","maxTouchPoints","DocumentTouch","supportsIePointer","msMaxTouchPoints","isChrome","test","userAgent","updateGeometry","roundedScrollTop","Math","floor","rect","getBoundingClientRect","containerWidth","round","width","height","contentWidth","scrollWidth","scrollHeight","scrollbarXRail","el","appendChild","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","scrollLeft","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","xRailOffset","isRtl","left","isScrollbarXUsingBottom","bottom","scrollbarXBottom","top","scrollbarXTop","yRailOffset","isScrollbarYUsingRight","right","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","updateCss","thumbSize","minScrollbarLength","max","maxScrollbarLength","min","bindMouseScrollHandler","pageY","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","touches","stopPropagation","type","startsWith","changedTouches","preventDefault","mouseUpHandler","event","ownerDocument","bindMoves","touchMode","click-rail","direction","pageYOffset","pageX","pageXOffset","drag-thumb","keyboard","isDefaultPrevented","defaultPrevented","activeElement","tagName","contentDocument","shadowRoot","deltaX","deltaY","which","metaKey","altKey","shiftKey","wheelPropagation","shouldPreventDefault","wheel","mousewheelHandler","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","getDeltaFromEvent","querySelector","cursor","overflowY","match","maxScrollTop","clientHeight","overflowX","maxScrollLeft","clientWidth","shouldBeConsumedByChild","shouldPrevent","useBothWheelAxes","wheelSpeed","isTop","isBottom","offsetHeight","isLeft","isRight","offsetWidth","abs","ctrlKey","onwheel","onmousewheel","touch","startOffset","startTime","speed","easingLoop","touchStart","touchMove","touchEnd","PointerEvent","MSPointerEvent","applyTouchMove","differenceX","differenceY","getTouch","targetTouches","shouldHandle","pointerType","buttons","MSPOINTER_TYPE_MOUSE","Date","getTime","clearInterval","currentOffset","currentTime","timeGap","magnitudeX","magnitudeY","scrollY","swipeEasing","setInterval","isInitialized","PerfectScrollbar","userSettings","nodeName","result","originalScrollLeft","blur","isNegativeScroll","setAttribute","railXStyle","isNaN","borderLeftWidth","borderRightWidth","display","marginLeft","marginRight","railYStyle","styles","paddingLeft","paddingRight","outerWidth","borderTopWidth","borderBottomWidth","marginTop","marginBottom","handlerName","lastScrollTop","lastScrollLeft","onScroll","update","destroy","removePsClasses","split","join","__webpack_exports__"],"mappings":"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","file":"vendors~widget-11.1bd94366870a71a61540.js","sourcesContent":["/*!\n * perfect-scrollbar v1.5.3\n * Copyright 2021 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\n  return getComputedStyle(element);\n}\n\nfunction set(element, obj) {\n  for (var key in obj) {\n    var val = obj[key];\n    if (typeof val === 'number') {\n      val = val + \"px\";\n    }\n    element.style[key] = val;\n  }\n  return element;\n}\n\nfunction div(className) {\n  var div = document.createElement('div');\n  div.className = className;\n  return div;\n}\n\nvar elMatches =\n  typeof Element !== 'undefined' &&\n  (Element.prototype.matches ||\n    Element.prototype.webkitMatchesSelector ||\n    Element.prototype.mozMatchesSelector ||\n    Element.prototype.msMatchesSelector);\n\nfunction matches(element, query) {\n  if (!elMatches) {\n    throw new Error('No element matching method supported');\n  }\n\n  return elMatches.call(element, query);\n}\n\nfunction remove(element) {\n  if (element.remove) {\n    element.remove();\n  } else {\n    if (element.parentNode) {\n      element.parentNode.removeChild(element);\n    }\n  }\n}\n\nfunction queryChildren(element, selector) {\n  return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\n  );\n}\n\nvar cls = {\n  main: 'ps',\n  rtl: 'ps__rtl',\n  element: {\n    thumb: function (x) { return (\"ps__thumb-\" + x); },\n    rail: function (x) { return (\"ps__rail-\" + x); },\n    consuming: 'ps__child--consume',\n  },\n  state: {\n    focus: 'ps--focus',\n    clicking: 'ps--clicking',\n    active: function (x) { return (\"ps--active-\" + x); },\n    scrolling: function (x) { return (\"ps--scrolling-\" + x); },\n  },\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = { x: null, y: null };\n\nfunction addScrollingClass(i, x) {\n  var classList = i.element.classList;\n  var className = cls.state.scrolling(x);\n\n  if (classList.contains(className)) {\n    clearTimeout(scrollingClassTimeout[x]);\n  } else {\n    classList.add(className);\n  }\n}\n\nfunction removeScrollingClass(i, x) {\n  scrollingClassTimeout[x] = setTimeout(\n    function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\n    i.settings.scrollingThreshold\n  );\n}\n\nfunction setScrollingClassInstantly(i, x) {\n  addScrollingClass(i, x);\n  removeScrollingClass(i, x);\n}\n\nvar EventElement = function EventElement(element) {\n  this.element = element;\n  this.handlers = {};\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\n\nEventElement.prototype.bind = function bind (eventName, handler) {\n  if (typeof this.handlers[eventName] === 'undefined') {\n    this.handlers[eventName] = [];\n  }\n  this.handlers[eventName].push(handler);\n  this.element.addEventListener(eventName, handler, false);\n};\n\nEventElement.prototype.unbind = function unbind (eventName, target) {\n    var this$1 = this;\n\n  this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n    if (target && handler !== target) {\n      return true;\n    }\n    this$1.element.removeEventListener(eventName, handler, false);\n    return false;\n  });\n};\n\nEventElement.prototype.unbindAll = function unbindAll () {\n  for (var name in this.handlers) {\n    this.unbind(name);\n  }\n};\n\nprototypeAccessors.isEmpty.get = function () {\n    var this$1 = this;\n\n  return Object.keys(this.handlers).every(\n    function (key) { return this$1.handlers[key].length === 0; }\n  );\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\n\nvar EventManager = function EventManager() {\n  this.eventElements = [];\n};\n\nEventManager.prototype.eventElement = function eventElement (element) {\n  var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\n  if (!ee) {\n    ee = new EventElement(element);\n    this.eventElements.push(ee);\n  }\n  return ee;\n};\n\nEventManager.prototype.bind = function bind (element, eventName, handler) {\n  this.eventElement(element).bind(eventName, handler);\n};\n\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\n  var ee = this.eventElement(element);\n  ee.unbind(eventName, handler);\n\n  if (ee.isEmpty) {\n    // remove\n    this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n  }\n};\n\nEventManager.prototype.unbindAll = function unbindAll () {\n  this.eventElements.forEach(function (e) { return e.unbindAll(); });\n  this.eventElements = [];\n};\n\nEventManager.prototype.once = function once (element, eventName, handler) {\n  var ee = this.eventElement(element);\n  var onceHandler = function (evt) {\n    ee.unbind(eventName, onceHandler);\n    handler(evt);\n  };\n  ee.bind(eventName, onceHandler);\n};\n\nfunction createEvent(name) {\n  if (typeof window.CustomEvent === 'function') {\n    return new CustomEvent(name);\n  } else {\n    var evt = document.createEvent('CustomEvent');\n    evt.initCustomEvent(name, false, false, undefined);\n    return evt;\n  }\n}\n\nfunction processScrollDiff(\n  i,\n  axis,\n  diff,\n  useScrollingClass,\n  forceFireReachEvent\n) {\n  if ( useScrollingClass === void 0 ) useScrollingClass = true;\n  if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n  var fields;\n  if (axis === 'top') {\n    fields = [\n      'contentHeight',\n      'containerHeight',\n      'scrollTop',\n      'y',\n      'up',\n      'down' ];\n  } else if (axis === 'left') {\n    fields = [\n      'contentWidth',\n      'containerWidth',\n      'scrollLeft',\n      'x',\n      'left',\n      'right' ];\n  } else {\n    throw new Error('A proper axis should be provided');\n  }\n\n  processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n}\n\nfunction processScrollDiff$1(\n  i,\n  diff,\n  ref,\n  useScrollingClass,\n  forceFireReachEvent\n) {\n  var contentHeight = ref[0];\n  var containerHeight = ref[1];\n  var scrollTop = ref[2];\n  var y = ref[3];\n  var up = ref[4];\n  var down = ref[5];\n  if ( useScrollingClass === void 0 ) useScrollingClass = true;\n  if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n  var element = i.element;\n\n  // reset reach\n  i.reach[y] = null;\n\n  // 1 for subpixel rounding\n  if (element[scrollTop] < 1) {\n    i.reach[y] = 'start';\n  }\n\n  // 1 for subpixel rounding\n  if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n    i.reach[y] = 'end';\n  }\n\n  if (diff) {\n    element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\n\n    if (diff < 0) {\n      element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\n    } else if (diff > 0) {\n      element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\n    }\n\n    if (useScrollingClass) {\n      setScrollingClassInstantly(i, y);\n    }\n  }\n\n  if (i.reach[y] && (diff || forceFireReachEvent)) {\n    element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\n  }\n}\n\nfunction toInt(x) {\n  return parseInt(x, 10) || 0;\n}\n\nfunction isEditable(el) {\n  return (\n    matches(el, 'input,[contenteditable]') ||\n    matches(el, 'select,[contenteditable]') ||\n    matches(el, 'textarea,[contenteditable]') ||\n    matches(el, 'button,[contenteditable]')\n  );\n}\n\nfunction outerWidth(element) {\n  var styles = get(element);\n  return (\n    toInt(styles.width) +\n    toInt(styles.paddingLeft) +\n    toInt(styles.paddingRight) +\n    toInt(styles.borderLeftWidth) +\n    toInt(styles.borderRightWidth)\n  );\n}\n\nvar env = {\n  isWebKit:\n    typeof document !== 'undefined' &&\n    'WebkitAppearance' in document.documentElement.style,\n  supportsTouch:\n    typeof window !== 'undefined' &&\n    ('ontouchstart' in window ||\n      ('maxTouchPoints' in window.navigator &&\n        window.navigator.maxTouchPoints > 0) ||\n      (window.DocumentTouch && document instanceof window.DocumentTouch)),\n  supportsIePointer:\n    typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n  isChrome:\n    typeof navigator !== 'undefined' &&\n    /Chrome/i.test(navigator && navigator.userAgent),\n};\n\nfunction updateGeometry(i) {\n  var element = i.element;\n  var roundedScrollTop = Math.floor(element.scrollTop);\n  var rect = element.getBoundingClientRect();\n\n  i.containerWidth = Math.round(rect.width);\n  i.containerHeight = Math.round(rect.height);\n\n  i.contentWidth = element.scrollWidth;\n  i.contentHeight = element.scrollHeight;\n\n  if (!element.contains(i.scrollbarXRail)) {\n    // clean up and append\n    queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); }\n    );\n    element.appendChild(i.scrollbarXRail);\n  }\n  if (!element.contains(i.scrollbarYRail)) {\n    // clean up and append\n    queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); }\n    );\n    element.appendChild(i.scrollbarYRail);\n  }\n\n  if (\n    !i.settings.suppressScrollX &&\n    i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth\n  ) {\n    i.scrollbarXActive = true;\n    i.railXWidth = i.containerWidth - i.railXMarginWidth;\n    i.railXRatio = i.containerWidth / i.railXWidth;\n    i.scrollbarXWidth = getThumbSize(\n      i,\n      toInt((i.railXWidth * i.containerWidth) / i.contentWidth)\n    );\n    i.scrollbarXLeft = toInt(\n      ((i.negativeScrollAdjustment + element.scrollLeft) *\n        (i.railXWidth - i.scrollbarXWidth)) /\n        (i.contentWidth - i.containerWidth)\n    );\n  } else {\n    i.scrollbarXActive = false;\n  }\n\n  if (\n    !i.settings.suppressScrollY &&\n    i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\n  ) {\n    i.scrollbarYActive = true;\n    i.railYHeight = i.containerHeight - i.railYMarginHeight;\n    i.railYRatio = i.containerHeight / i.railYHeight;\n    i.scrollbarYHeight = getThumbSize(\n      i,\n      toInt((i.railYHeight * i.containerHeight) / i.contentHeight)\n    );\n    i.scrollbarYTop = toInt(\n      (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /\n        (i.contentHeight - i.containerHeight)\n    );\n  } else {\n    i.scrollbarYActive = false;\n  }\n\n  if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n    i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n  }\n  if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n    i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n  }\n\n  updateCss(element, i);\n\n  if (i.scrollbarXActive) {\n    element.classList.add(cls.state.active('x'));\n  } else {\n    element.classList.remove(cls.state.active('x'));\n    i.scrollbarXWidth = 0;\n    i.scrollbarXLeft = 0;\n    element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\n  }\n  if (i.scrollbarYActive) {\n    element.classList.add(cls.state.active('y'));\n  } else {\n    element.classList.remove(cls.state.active('y'));\n    i.scrollbarYHeight = 0;\n    i.scrollbarYTop = 0;\n    element.scrollTop = 0;\n  }\n}\n\nfunction getThumbSize(i, thumbSize) {\n  if (i.settings.minScrollbarLength) {\n    thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n  }\n  if (i.settings.maxScrollbarLength) {\n    thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n  }\n  return thumbSize;\n}\n\nfunction updateCss(element, i) {\n  var xRailOffset = { width: i.railXWidth };\n  var roundedScrollTop = Math.floor(element.scrollTop);\n\n  if (i.isRtl) {\n    xRailOffset.left =\n      i.negativeScrollAdjustment +\n      element.scrollLeft +\n      i.containerWidth -\n      i.contentWidth;\n  } else {\n    xRailOffset.left = element.scrollLeft;\n  }\n  if (i.isScrollbarXUsingBottom) {\n    xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n  } else {\n    xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n  }\n  set(i.scrollbarXRail, xRailOffset);\n\n  var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\n  if (i.isScrollbarYUsingRight) {\n    if (i.isRtl) {\n      yRailOffset.right =\n        i.contentWidth -\n        (i.negativeScrollAdjustment + element.scrollLeft) -\n        i.scrollbarYRight -\n        i.scrollbarYOuterWidth -\n        9;\n    } else {\n      yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n    }\n  } else {\n    if (i.isRtl) {\n      yRailOffset.left =\n        i.negativeScrollAdjustment +\n        element.scrollLeft +\n        i.containerWidth * 2 -\n        i.contentWidth -\n        i.scrollbarYLeft -\n        i.scrollbarYOuterWidth;\n    } else {\n      yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n    }\n  }\n  set(i.scrollbarYRail, yRailOffset);\n\n  set(i.scrollbarX, {\n    left: i.scrollbarXLeft,\n    width: i.scrollbarXWidth - i.railBorderXWidth,\n  });\n  set(i.scrollbarY, {\n    top: i.scrollbarYTop,\n    height: i.scrollbarYHeight - i.railBorderYWidth,\n  });\n}\n\nfunction clickRail(i) {\n  var element = i.element;\n\n  i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\n  i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n    var positionTop =\n      e.pageY -\n      window.pageYOffset -\n      i.scrollbarYRail.getBoundingClientRect().top;\n    var direction = positionTop > i.scrollbarYTop ? 1 : -1;\n\n    i.element.scrollTop += direction * i.containerHeight;\n    updateGeometry(i);\n\n    e.stopPropagation();\n  });\n\n  i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); });\n  i.event.bind(i.scrollbarXRail, 'mousedown', function (e) {\n    var positionLeft =\n      e.pageX -\n      window.pageXOffset -\n      i.scrollbarXRail.getBoundingClientRect().left;\n    var direction = positionLeft > i.scrollbarXLeft ? 1 : -1;\n\n    i.element.scrollLeft += direction * i.containerWidth;\n    updateGeometry(i);\n\n    e.stopPropagation();\n  });\n}\n\nfunction dragThumb(i) {\n  bindMouseScrollHandler(i, [\n    'containerWidth',\n    'contentWidth',\n    'pageX',\n    'railXWidth',\n    'scrollbarX',\n    'scrollbarXWidth',\n    'scrollLeft',\n    'x',\n    'scrollbarXRail' ]);\n  bindMouseScrollHandler(i, [\n    'containerHeight',\n    'contentHeight',\n    'pageY',\n    'railYHeight',\n    'scrollbarY',\n    'scrollbarYHeight',\n    'scrollTop',\n    'y',\n    'scrollbarYRail' ]);\n}\n\nfunction bindMouseScrollHandler(\n  i,\n  ref\n) {\n  var containerHeight = ref[0];\n  var contentHeight = ref[1];\n  var pageY = ref[2];\n  var railYHeight = ref[3];\n  var scrollbarY = ref[4];\n  var scrollbarYHeight = ref[5];\n  var scrollTop = ref[6];\n  var y = ref[7];\n  var scrollbarYRail = ref[8];\n\n  var element = i.element;\n\n  var startingScrollTop = null;\n  var startingMousePageY = null;\n  var scrollBy = null;\n\n  function mouseMoveHandler(e) {\n    if (e.touches && e.touches[0]) {\n      e[pageY] = e.touches[0].pageY;\n    }\n    element[scrollTop] =\n      startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\n    addScrollingClass(i, y);\n    updateGeometry(i);\n\n    e.stopPropagation();\n    if (e.type.startsWith('touch') && e.changedTouches.length > 1) {\n      e.preventDefault();\n    }\n  }\n\n  function mouseUpHandler() {\n    removeScrollingClass(i, y);\n    i[scrollbarYRail].classList.remove(cls.state.clicking);\n    i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n  }\n\n  function bindMoves(e, touchMode) {\n    startingScrollTop = element[scrollTop];\n    if (touchMode && e.touches) {\n      e[pageY] = e.touches[0].pageY;\n    }\n    startingMousePageY = e[pageY];\n    scrollBy =\n      (i[contentHeight] - i[containerHeight]) /\n      (i[railYHeight] - i[scrollbarYHeight]);\n    if (!touchMode) {\n      i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n      i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\n      e.preventDefault();\n    } else {\n      i.event.bind(i.ownerDocument, 'touchmove', mouseMoveHandler);\n    }\n\n    i[scrollbarYRail].classList.add(cls.state.clicking);\n\n    e.stopPropagation();\n  }\n\n  i.event.bind(i[scrollbarY], 'mousedown', function (e) {\n    bindMoves(e);\n  });\n  i.event.bind(i[scrollbarY], 'touchstart', function (e) {\n    bindMoves(e, true);\n  });\n}\n\nfunction keyboard(i) {\n  var element = i.element;\n\n  var elementHovered = function () { return matches(element, ':hover'); };\n  var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\n\n  function shouldPreventDefault(deltaX, deltaY) {\n    var scrollTop = Math.floor(element.scrollTop);\n    if (deltaX === 0) {\n      if (!i.scrollbarYActive) {\n        return false;\n      }\n      if (\n        (scrollTop === 0 && deltaY > 0) ||\n        (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\n      ) {\n        return !i.settings.wheelPropagation;\n      }\n    }\n\n    var scrollLeft = element.scrollLeft;\n    if (deltaY === 0) {\n      if (!i.scrollbarXActive) {\n        return false;\n      }\n      if (\n        (scrollLeft === 0 && deltaX < 0) ||\n        (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\n      ) {\n        return !i.settings.wheelPropagation;\n      }\n    }\n    return true;\n  }\n\n  i.event.bind(i.ownerDocument, 'keydown', function (e) {\n    if (\n      (e.isDefaultPrevented && e.isDefaultPrevented()) ||\n      e.defaultPrevented\n    ) {\n      return;\n    }\n\n    if (!elementHovered() && !scrollbarFocused()) {\n      return;\n    }\n\n    var activeElement = document.activeElement\n      ? document.activeElement\n      : i.ownerDocument.activeElement;\n    if (activeElement) {\n      if (activeElement.tagName === 'IFRAME') {\n        activeElement = activeElement.contentDocument.activeElement;\n      } else {\n        // go deeper if element is a webcomponent\n        while (activeElement.shadowRoot) {\n          activeElement = activeElement.shadowRoot.activeElement;\n        }\n      }\n      if (isEditable(activeElement)) {\n        return;\n      }\n    }\n\n    var deltaX = 0;\n    var deltaY = 0;\n\n    switch (e.which) {\n      case 37: // left\n        if (e.metaKey) {\n          deltaX = -i.contentWidth;\n        } else if (e.altKey) {\n          deltaX = -i.containerWidth;\n        } else {\n          deltaX = -30;\n        }\n        break;\n      case 38: // up\n        if (e.metaKey) {\n          deltaY = i.contentHeight;\n        } else if (e.altKey) {\n          deltaY = i.containerHeight;\n        } else {\n          deltaY = 30;\n        }\n        break;\n      case 39: // right\n        if (e.metaKey) {\n          deltaX = i.contentWidth;\n        } else if (e.altKey) {\n          deltaX = i.containerWidth;\n        } else {\n          deltaX = 30;\n        }\n        break;\n      case 40: // down\n        if (e.metaKey) {\n          deltaY = -i.contentHeight;\n        } else if (e.altKey) {\n          deltaY = -i.containerHeight;\n        } else {\n          deltaY = -30;\n        }\n        break;\n      case 32: // space bar\n        if (e.shiftKey) {\n          deltaY = i.containerHeight;\n        } else {\n          deltaY = -i.containerHeight;\n        }\n        break;\n      case 33: // page up\n        deltaY = i.containerHeight;\n        break;\n      case 34: // page down\n        deltaY = -i.containerHeight;\n        break;\n      case 36: // home\n        deltaY = i.contentHeight;\n        break;\n      case 35: // end\n        deltaY = -i.contentHeight;\n        break;\n      default:\n        return;\n    }\n\n    if (i.settings.suppressScrollX && deltaX !== 0) {\n      return;\n    }\n    if (i.settings.suppressScrollY && deltaY !== 0) {\n      return;\n    }\n\n    element.scrollTop -= deltaY;\n    element.scrollLeft += deltaX;\n    updateGeometry(i);\n\n    if (shouldPreventDefault(deltaX, deltaY)) {\n      e.preventDefault();\n    }\n  });\n}\n\nfunction wheel(i) {\n  var element = i.element;\n\n  function shouldPreventDefault(deltaX, deltaY) {\n    var roundedScrollTop = Math.floor(element.scrollTop);\n    var isTop = element.scrollTop === 0;\n    var isBottom =\n      roundedScrollTop + element.offsetHeight === element.scrollHeight;\n    var isLeft = element.scrollLeft === 0;\n    var isRight =\n      element.scrollLeft + element.offsetWidth === element.scrollWidth;\n\n    var hitsBound;\n\n    // pick axis with primary direction\n    if (Math.abs(deltaY) > Math.abs(deltaX)) {\n      hitsBound = isTop || isBottom;\n    } else {\n      hitsBound = isLeft || isRight;\n    }\n\n    return hitsBound ? !i.settings.wheelPropagation : true;\n  }\n\n  function getDeltaFromEvent(e) {\n    var deltaX = e.deltaX;\n    var deltaY = -1 * e.deltaY;\n\n    if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n      // OS X Safari\n      deltaX = (-1 * e.wheelDeltaX) / 6;\n      deltaY = e.wheelDeltaY / 6;\n    }\n\n    if (e.deltaMode && e.deltaMode === 1) {\n      // Firefox in deltaMode 1: Line scrolling\n      deltaX *= 10;\n      deltaY *= 10;\n    }\n\n    if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n      // IE in some mouse drivers\n      deltaX = 0;\n      deltaY = e.wheelDelta;\n    }\n\n    if (e.shiftKey) {\n      // reverse axis with shift key\n      return [-deltaY, -deltaX];\n    }\n    return [deltaX, deltaY];\n  }\n\n  function shouldBeConsumedByChild(target, deltaX, deltaY) {\n    // FIXME: this is a workaround for <select> issue in FF and IE #571\n    if (!env.isWebKit && element.querySelector('select:focus')) {\n      return true;\n    }\n\n    if (!element.contains(target)) {\n      return false;\n    }\n\n    var cursor = target;\n\n    while (cursor && cursor !== element) {\n      if (cursor.classList.contains(cls.element.consuming)) {\n        return true;\n      }\n\n      var style = get(cursor);\n\n      // if deltaY && vertical scrollable\n      if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n        var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n        if (maxScrollTop > 0) {\n          if (\n            (cursor.scrollTop > 0 && deltaY < 0) ||\n            (cursor.scrollTop < maxScrollTop && deltaY > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n      // if deltaX && horizontal scrollable\n      if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n        var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n        if (maxScrollLeft > 0) {\n          if (\n            (cursor.scrollLeft > 0 && deltaX < 0) ||\n            (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n\n      cursor = cursor.parentNode;\n    }\n\n    return false;\n  }\n\n  function mousewheelHandler(e) {\n    var ref = getDeltaFromEvent(e);\n    var deltaX = ref[0];\n    var deltaY = ref[1];\n\n    if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {\n      return;\n    }\n\n    var shouldPrevent = false;\n    if (!i.settings.useBothWheelAxes) {\n      // deltaX will only be used for horizontal scrolling and deltaY will\n      // only be used for vertical scrolling - this is the default\n      element.scrollTop -= deltaY * i.settings.wheelSpeed;\n      element.scrollLeft += deltaX * i.settings.wheelSpeed;\n    } else if (i.scrollbarYActive && !i.scrollbarXActive) {\n      // only vertical scrollbar is active and useBothWheelAxes option is\n      // active, so let's scroll vertical bar using both mouse wheel axes\n      if (deltaY) {\n        element.scrollTop -= deltaY * i.settings.wheelSpeed;\n      } else {\n        element.scrollTop += deltaX * i.settings.wheelSpeed;\n      }\n      shouldPrevent = true;\n    } else if (i.scrollbarXActive && !i.scrollbarYActive) {\n      // useBothWheelAxes and only horizontal bar is active, so use both\n      // wheel axes for horizontal bar\n      if (deltaX) {\n        element.scrollLeft += deltaX * i.settings.wheelSpeed;\n      } else {\n        element.scrollLeft -= deltaY * i.settings.wheelSpeed;\n      }\n      shouldPrevent = true;\n    }\n\n    updateGeometry(i);\n\n    shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);\n    if (shouldPrevent && !e.ctrlKey) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  }\n\n  if (typeof window.onwheel !== 'undefined') {\n    i.event.bind(element, 'wheel', mousewheelHandler);\n  } else if (typeof window.onmousewheel !== 'undefined') {\n    i.event.bind(element, 'mousewheel', mousewheelHandler);\n  }\n}\n\nfunction touch(i) {\n  if (!env.supportsTouch && !env.supportsIePointer) {\n    return;\n  }\n\n  var element = i.element;\n\n  function shouldPrevent(deltaX, deltaY) {\n    var scrollTop = Math.floor(element.scrollTop);\n    var scrollLeft = element.scrollLeft;\n    var magnitudeX = Math.abs(deltaX);\n    var magnitudeY = Math.abs(deltaY);\n\n    if (magnitudeY > magnitudeX) {\n      // user is perhaps trying to swipe up/down the page\n\n      if (\n        (deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||\n        (deltaY > 0 && scrollTop === 0)\n      ) {\n        // set prevent for mobile Chrome refresh\n        return window.scrollY === 0 && deltaY > 0 && env.isChrome;\n      }\n    } else if (magnitudeX > magnitudeY) {\n      // user is perhaps trying to swipe left/right across the page\n\n      if (\n        (deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||\n        (deltaX > 0 && scrollLeft === 0)\n      ) {\n        return true;\n      }\n    }\n\n    return true;\n  }\n\n  function applyTouchMove(differenceX, differenceY) {\n    element.scrollTop -= differenceY;\n    element.scrollLeft -= differenceX;\n\n    updateGeometry(i);\n  }\n\n  var startOffset = {};\n  var startTime = 0;\n  var speed = {};\n  var easingLoop = null;\n\n  function getTouch(e) {\n    if (e.targetTouches) {\n      return e.targetTouches[0];\n    } else {\n      // Maybe IE pointer\n      return e;\n    }\n  }\n\n  function shouldHandle(e) {\n    if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {\n      return false;\n    }\n    if (e.targetTouches && e.targetTouches.length === 1) {\n      return true;\n    }\n    if (\n      e.pointerType &&\n      e.pointerType !== 'mouse' &&\n      e.pointerType !== e.MSPOINTER_TYPE_MOUSE\n    ) {\n      return true;\n    }\n    return false;\n  }\n\n  function touchStart(e) {\n    if (!shouldHandle(e)) {\n      return;\n    }\n\n    var touch = getTouch(e);\n\n    startOffset.pageX = touch.pageX;\n    startOffset.pageY = touch.pageY;\n\n    startTime = new Date().getTime();\n\n    if (easingLoop !== null) {\n      clearInterval(easingLoop);\n    }\n  }\n\n  function shouldBeConsumedByChild(target, deltaX, deltaY) {\n    if (!element.contains(target)) {\n      return false;\n    }\n\n    var cursor = target;\n\n    while (cursor && cursor !== element) {\n      if (cursor.classList.contains(cls.element.consuming)) {\n        return true;\n      }\n\n      var style = get(cursor);\n\n      // if deltaY && vertical scrollable\n      if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n        var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n        if (maxScrollTop > 0) {\n          if (\n            (cursor.scrollTop > 0 && deltaY < 0) ||\n            (cursor.scrollTop < maxScrollTop && deltaY > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n      // if deltaX && horizontal scrollable\n      if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n        var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n        if (maxScrollLeft > 0) {\n          if (\n            (cursor.scrollLeft > 0 && deltaX < 0) ||\n            (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n          ) {\n            return true;\n          }\n        }\n      }\n\n      cursor = cursor.parentNode;\n    }\n\n    return false;\n  }\n\n  function touchMove(e) {\n    if (shouldHandle(e)) {\n      var touch = getTouch(e);\n\n      var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };\n\n      var differenceX = currentOffset.pageX - startOffset.pageX;\n      var differenceY = currentOffset.pageY - startOffset.pageY;\n\n      if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {\n        return;\n      }\n\n      applyTouchMove(differenceX, differenceY);\n      startOffset = currentOffset;\n\n      var currentTime = new Date().getTime();\n\n      var timeGap = currentTime - startTime;\n      if (timeGap > 0) {\n        speed.x = differenceX / timeGap;\n        speed.y = differenceY / timeGap;\n        startTime = currentTime;\n      }\n\n      if (shouldPrevent(differenceX, differenceY)) {\n        e.preventDefault();\n      }\n    }\n  }\n  function touchEnd() {\n    if (i.settings.swipeEasing) {\n      clearInterval(easingLoop);\n      easingLoop = setInterval(function() {\n        if (i.isInitialized) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        if (!speed.x && !speed.y) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        if (!i.element) {\n          clearInterval(easingLoop);\n          return;\n        }\n\n        applyTouchMove(speed.x * 30, speed.y * 30);\n\n        speed.x *= 0.8;\n        speed.y *= 0.8;\n      }, 10);\n    }\n  }\n\n  if (env.supportsTouch) {\n    i.event.bind(element, 'touchstart', touchStart);\n    i.event.bind(element, 'touchmove', touchMove);\n    i.event.bind(element, 'touchend', touchEnd);\n  } else if (env.supportsIePointer) {\n    if (window.PointerEvent) {\n      i.event.bind(element, 'pointerdown', touchStart);\n      i.event.bind(element, 'pointermove', touchMove);\n      i.event.bind(element, 'pointerup', touchEnd);\n    } else if (window.MSPointerEvent) {\n      i.event.bind(element, 'MSPointerDown', touchStart);\n      i.event.bind(element, 'MSPointerMove', touchMove);\n      i.event.bind(element, 'MSPointerUp', touchEnd);\n    }\n  }\n}\n\nvar defaultSettings = function () { return ({\n  handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'],\n  maxScrollbarLength: null,\n  minScrollbarLength: null,\n  scrollingThreshold: 1000,\n  scrollXMarginOffset: 0,\n  scrollYMarginOffset: 0,\n  suppressScrollX: false,\n  suppressScrollY: false,\n  swipeEasing: true,\n  useBothWheelAxes: false,\n  wheelPropagation: true,\n  wheelSpeed: 1,\n}); };\n\nvar handlers = {\n  'click-rail': clickRail,\n  'drag-thumb': dragThumb,\n  keyboard: keyboard,\n  wheel: wheel,\n  touch: touch,\n};\n\nvar PerfectScrollbar = function PerfectScrollbar(element, userSettings) {\n  var this$1 = this;\n  if ( userSettings === void 0 ) userSettings = {};\n\n  if (typeof element === 'string') {\n    element = document.querySelector(element);\n  }\n\n  if (!element || !element.nodeName) {\n    throw new Error('no element is specified to initialize PerfectScrollbar');\n  }\n\n  this.element = element;\n\n  element.classList.add(cls.main);\n\n  this.settings = defaultSettings();\n  for (var key in userSettings) {\n    this.settings[key] = userSettings[key];\n  }\n\n  this.containerWidth = null;\n  this.containerHeight = null;\n  this.contentWidth = null;\n  this.contentHeight = null;\n\n  var focus = function () { return element.classList.add(cls.state.focus); };\n  var blur = function () { return element.classList.remove(cls.state.focus); };\n\n  this.isRtl = get(element).direction === 'rtl';\n  if (this.isRtl === true) {\n    element.classList.add(cls.rtl);\n  }\n  this.isNegativeScroll = (function () {\n    var originalScrollLeft = element.scrollLeft;\n    var result = null;\n    element.scrollLeft = -1;\n    result = element.scrollLeft < 0;\n    element.scrollLeft = originalScrollLeft;\n    return result;\n  })();\n  this.negativeScrollAdjustment = this.isNegativeScroll\n    ? element.scrollWidth - element.clientWidth\n    : 0;\n  this.event = new EventManager();\n  this.ownerDocument = element.ownerDocument || document;\n\n  this.scrollbarXRail = div(cls.element.rail('x'));\n  element.appendChild(this.scrollbarXRail);\n  this.scrollbarX = div(cls.element.thumb('x'));\n  this.scrollbarXRail.appendChild(this.scrollbarX);\n  this.scrollbarX.setAttribute('tabindex', 0);\n  this.event.bind(this.scrollbarX, 'focus', focus);\n  this.event.bind(this.scrollbarX, 'blur', blur);\n  this.scrollbarXActive = null;\n  this.scrollbarXWidth = null;\n  this.scrollbarXLeft = null;\n  var railXStyle = get(this.scrollbarXRail);\n  this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);\n  if (isNaN(this.scrollbarXBottom)) {\n    this.isScrollbarXUsingBottom = false;\n    this.scrollbarXTop = toInt(railXStyle.top);\n  } else {\n    this.isScrollbarXUsingBottom = true;\n  }\n  this.railBorderXWidth =\n    toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);\n  // Set rail to display:block to calculate margins\n  set(this.scrollbarXRail, { display: 'block' });\n  this.railXMarginWidth =\n    toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight);\n  set(this.scrollbarXRail, { display: '' });\n  this.railXWidth = null;\n  this.railXRatio = null;\n\n  this.scrollbarYRail = div(cls.element.rail('y'));\n  element.appendChild(this.scrollbarYRail);\n  this.scrollbarY = div(cls.element.thumb('y'));\n  this.scrollbarYRail.appendChild(this.scrollbarY);\n  this.scrollbarY.setAttribute('tabindex', 0);\n  this.event.bind(this.scrollbarY, 'focus', focus);\n  this.event.bind(this.scrollbarY, 'blur', blur);\n  this.scrollbarYActive = null;\n  this.scrollbarYHeight = null;\n  this.scrollbarYTop = null;\n  var railYStyle = get(this.scrollbarYRail);\n  this.scrollbarYRight = parseInt(railYStyle.right, 10);\n  if (isNaN(this.scrollbarYRight)) {\n    this.isScrollbarYUsingRight = false;\n    this.scrollbarYLeft = toInt(railYStyle.left);\n  } else {\n    this.isScrollbarYUsingRight = true;\n  }\n  this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null;\n  this.railBorderYWidth =\n    toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);\n  set(this.scrollbarYRail, { display: 'block' });\n  this.railYMarginHeight =\n    toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom);\n  set(this.scrollbarYRail, { display: '' });\n  this.railYHeight = null;\n  this.railYRatio = null;\n\n  this.reach = {\n    x:\n      element.scrollLeft <= 0\n        ? 'start'\n        : element.scrollLeft >= this.contentWidth - this.containerWidth\n        ? 'end'\n        : null,\n    y:\n      element.scrollTop <= 0\n        ? 'start'\n        : element.scrollTop >= this.contentHeight - this.containerHeight\n        ? 'end'\n        : null,\n  };\n\n  this.isAlive = true;\n\n  this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); });\n\n  this.lastScrollTop = Math.floor(element.scrollTop); // for onScroll only\n  this.lastScrollLeft = element.scrollLeft; // for onScroll only\n  this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); });\n  updateGeometry(this);\n};\n\nPerfectScrollbar.prototype.update = function update () {\n  if (!this.isAlive) {\n    return;\n  }\n\n  // Recalcuate negative scrollLeft adjustment\n  this.negativeScrollAdjustment = this.isNegativeScroll\n    ? this.element.scrollWidth - this.element.clientWidth\n    : 0;\n\n  // Recalculate rail margins\n  set(this.scrollbarXRail, { display: 'block' });\n  set(this.scrollbarYRail, { display: 'block' });\n  this.railXMarginWidth =\n    toInt(get(this.scrollbarXRail).marginLeft) +\n    toInt(get(this.scrollbarXRail).marginRight);\n  this.railYMarginHeight =\n    toInt(get(this.scrollbarYRail).marginTop) +\n    toInt(get(this.scrollbarYRail).marginBottom);\n\n  // Hide scrollbars not to affect scrollWidth and scrollHeight\n  set(this.scrollbarXRail, { display: 'none' });\n  set(this.scrollbarYRail, { display: 'none' });\n\n  updateGeometry(this);\n\n  processScrollDiff(this, 'top', 0, false, true);\n  processScrollDiff(this, 'left', 0, false, true);\n\n  set(this.scrollbarXRail, { display: '' });\n  set(this.scrollbarYRail, { display: '' });\n};\n\nPerfectScrollbar.prototype.onScroll = function onScroll (e) {\n  if (!this.isAlive) {\n    return;\n  }\n\n  updateGeometry(this);\n  processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop);\n  processScrollDiff(\n    this,\n    'left',\n    this.element.scrollLeft - this.lastScrollLeft\n  );\n\n  this.lastScrollTop = Math.floor(this.element.scrollTop);\n  this.lastScrollLeft = this.element.scrollLeft;\n};\n\nPerfectScrollbar.prototype.destroy = function destroy () {\n  if (!this.isAlive) {\n    return;\n  }\n\n  this.event.unbindAll();\n  remove(this.scrollbarX);\n  remove(this.scrollbarY);\n  remove(this.scrollbarXRail);\n  remove(this.scrollbarYRail);\n  this.removePsClasses();\n\n  // unset elements\n  this.element = null;\n  this.scrollbarX = null;\n  this.scrollbarY = null;\n  this.scrollbarXRail = null;\n  this.scrollbarYRail = null;\n\n  this.isAlive = false;\n};\n\nPerfectScrollbar.prototype.removePsClasses = function removePsClasses () {\n  this.element.className = this.element.className\n    .split(' ')\n    .filter(function (name) { return !name.match(/^ps([-_].+|)$/); })\n    .join(' ');\n};\n\nexport default PerfectScrollbar;\n//# sourceMappingURL=perfect-scrollbar.esm.js.map\n"],"sourceRoot":""}