Current File : /home/tradevaly/www/node_modules/simplebar/dist/simplebar.esm.js.map |
{"version":3,"file":"simplebar.esm.js","sources":["../src/scrollbar-width.js","../src/simplebar.js"],"sourcesContent":["export default function scrollbarWidth() {\n if (typeof document === 'undefined') {\n return 0;\n }\n\n const body = document.body;\n const box = document.createElement('div');\n const boxStyle = box.style;\n\n boxStyle.position = 'fixed';\n boxStyle.left = 0;\n boxStyle.visibility = 'hidden';\n boxStyle.overflowY = 'scroll';\n\n body.appendChild(box);\n\n const width = box.getBoundingClientRect().right;\n\n body.removeChild(box);\n\n return width;\n}\n","import throttle from 'lodash.throttle';\nimport debounce from 'lodash.debounce';\nimport memoize from 'lodash.memoize';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport canUseDOM from 'can-use-dom';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default class SimpleBar {\n constructor(element, options) {\n this.el = element;\n this.flashTimeout;\n this.contentEl;\n this.contentWrapperEl;\n this.offsetEl;\n this.maskEl;\n this.globalObserver;\n this.mutationObserver;\n this.resizeObserver;\n this.scrollbarWidth;\n this.minScrollbarWidth = 20;\n this.options = { ...SimpleBar.defaultOptions, ...options };\n this.classNames = {\n ...SimpleBar.defaultOptions.classNames,\n ...this.options.classNames\n };\n this.isRtl;\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n isVisible: false,\n forceVisible: false,\n track: {},\n scrollbar: {}\n }\n };\n this.removePreventClickId = null;\n\n // Don't re-instantiate over an existing one\n if (this.el.SimpleBar) {\n return;\n }\n\n this.recalculate = throttle(this.recalculate.bind(this), 64);\n this.onMouseMove = throttle(this.onMouseMove.bind(this), 64);\n this.hideScrollbars = debounce(\n this.hideScrollbars.bind(this),\n this.options.timeout\n );\n this.onWindowResize = debounce(this.onWindowResize.bind(this), 64, {\n leading: true\n });\n\n SimpleBar.getRtlHelpers = memoize(SimpleBar.getRtlHelpers);\n\n this.init();\n }\n\n /**\n * Static properties\n */\n\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n static getRtlHelpers() {\n const dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '<div class=\"hs-dummy-scrollbar-size\"><div style=\"height: 200%; width: 200%; margin: 10px 0;\"></div></div>';\n const scrollbarDummyEl = dummyDiv.firstElementChild;\n document.body.appendChild(scrollbarDummyEl);\n const dummyContainerChild = scrollbarDummyEl.firstElementChild;\n scrollbarDummyEl.scrollLeft = 0;\n const dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);\n const dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);\n scrollbarDummyEl.scrollLeft = 999;\n const dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(\n dummyContainerChild\n );\n\n return {\n // determines if the scrolling is responding with negative values\n isRtlScrollingInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left &&\n dummyContainerChildOffset.left -\n dummyContainerScrollOffsetAfterScroll.left !==\n 0,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isRtlScrollbarInverted:\n dummyContainerOffset.left !== dummyContainerChildOffset.left\n };\n }\n\n static defaultOptions = {\n autoHide: true,\n forceVisible: false,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging'\n },\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n timeout: 1000\n };\n\n static initHtmlApi() {\n this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this);\n\n // MutationObserver is IE11+\n if (typeof MutationObserver !== 'undefined') {\n // Mutation observer to observe dynamically added elements\n this.globalObserver = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n Array.prototype.forEach.call(mutation.addedNodes, addedNode => {\n if (addedNode.nodeType === 1) {\n if (addedNode.hasAttribute('data-simplebar')) {\n !addedNode.SimpleBar &&\n new SimpleBar(addedNode, SimpleBar.getElOptions(addedNode));\n } else {\n Array.prototype.forEach.call(\n addedNode.querySelectorAll('[data-simplebar]'),\n el => {\n !el.SimpleBar &&\n new SimpleBar(el, SimpleBar.getElOptions(el));\n }\n );\n }\n }\n });\n\n Array.prototype.forEach.call(mutation.removedNodes, removedNode => {\n if (removedNode.nodeType === 1) {\n if (removedNode.hasAttribute('data-simplebar')) {\n removedNode.SimpleBar && removedNode.SimpleBar.unMount();\n } else {\n Array.prototype.forEach.call(\n removedNode.querySelectorAll('[data-simplebar]'),\n el => {\n el.SimpleBar && el.SimpleBar.unMount();\n }\n );\n }\n }\n });\n });\n });\n\n this.globalObserver.observe(document, { childList: true, subtree: true });\n }\n\n // Taken from jQuery `ready` function\n // Instantiate elements already present on the page\n if (\n document.readyState === 'complete' ||\n (document.readyState !== 'loading' && !document.documentElement.doScroll)\n ) {\n // Handle it asynchronously to allow scripts the opportunity to delay init\n window.setTimeout(this.initDOMLoadedElements);\n } else {\n document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.addEventListener('load', this.initDOMLoadedElements);\n }\n }\n\n // Helper function to retrieve options from element attributes\n static getElOptions(el) {\n const options = Array.prototype.reduce.call(\n el.attributes,\n (acc, attribute) => {\n const option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n const key = option[1].replace(/\\W+(.)/g, (x, chr) =>\n chr.toUpperCase()\n );\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n },\n {}\n );\n return options;\n }\n\n static removeObserver() {\n this.globalObserver.disconnect();\n }\n\n static initDOMLoadedElements() {\n document.removeEventListener(\n 'DOMContentLoaded',\n this.initDOMLoadedElements\n );\n window.removeEventListener('load', this.initDOMLoadedElements);\n\n Array.prototype.forEach.call(\n document.querySelectorAll('[data-simplebar]'),\n el => {\n if (!el.SimpleBar) new SimpleBar(el, SimpleBar.getElOptions(el));\n }\n );\n }\n\n static getOffset(el) {\n const rect = el.getBoundingClientRect();\n\n return {\n top:\n rect.top + (window.pageYOffset || document.documentElement.scrollTop),\n left:\n rect.left + (window.pageXOffset || document.documentElement.scrollLeft)\n };\n }\n\n init() {\n // Save a reference to the instance, so we know this DOM node has already been instancied\n this.el.SimpleBar = this;\n\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n\n this.scrollbarWidth = scrollbarWidth();\n\n this.recalculate();\n\n this.initListeners();\n }\n }\n\n initDOM() {\n // make sure this element doesn't have the elements yet\n if (\n Array.prototype.filter.call(this.el.children, child =>\n child.classList.contains(this.classNames.wrapper)\n ).length\n ) {\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(`.${this.classNames.wrapper}`);\n this.contentWrapperEl = this.el.querySelector(\n `.${this.classNames.contentWrapper}`\n );\n this.offsetEl = this.el.querySelector(`.${this.classNames.offset}`);\n this.maskEl = this.el.querySelector(`.${this.classNames.mask}`);\n this.contentEl = this.el.querySelector(`.${this.classNames.contentEl}`);\n this.placeholderEl = this.el.querySelector(\n `.${this.classNames.placeholder}`\n );\n this.heightAutoObserverWrapperEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverWrapperEl}`\n );\n this.heightAutoObserverEl = this.el.querySelector(\n `.${this.classNames.heightAutoObserverEl}`\n );\n this.axis.x.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.horizontal}`\n );\n this.axis.y.track.el = this.findChild(\n this.el,\n `.${this.classNames.track}.${this.classNames.vertical}`\n );\n } else {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n\n this.wrapperEl.classList.add(this.classNames.wrapper);\n this.contentWrapperEl.classList.add(this.classNames.contentWrapper);\n this.offsetEl.classList.add(this.classNames.offset);\n this.maskEl.classList.add(this.classNames.mask);\n this.contentEl.classList.add(this.classNames.contentEl);\n this.placeholderEl.classList.add(this.classNames.placeholder);\n this.heightAutoObserverWrapperEl.classList.add(\n this.classNames.heightAutoObserverWrapperEl\n );\n this.heightAutoObserverEl.classList.add(\n this.classNames.heightAutoObserverEl\n );\n\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n }\n\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n const track = document.createElement('div');\n const scrollbar = document.createElement('div');\n\n track.classList.add(this.classNames.track);\n scrollbar.classList.add(this.classNames.scrollbar);\n\n track.appendChild(scrollbar);\n\n this.axis.x.track.el = track.cloneNode(true);\n this.axis.x.track.el.classList.add(this.classNames.horizontal);\n\n this.axis.y.track.el = track.cloneNode(true);\n this.axis.y.track.el.classList.add(this.classNames.vertical);\n\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n\n this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector(\n `.${this.classNames.scrollbar}`\n );\n\n if (!this.options.autoHide) {\n this.axis.x.scrollbar.el.classList.add(this.classNames.visible);\n this.axis.y.scrollbar.el.classList.add(this.classNames.visible);\n }\n\n this.el.setAttribute('data-simplebar', 'init');\n }\n\n initListeners() {\n // Event listeners\n if (this.options.autoHide) {\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.addEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n\n this.contentWrapperEl.addEventListener('scroll', this.onScroll);\n\n // Browser zoom triggers a window resize\n window.addEventListener('resize', this.onWindowResize);\n\n this.resizeObserver = new ResizeObserver(this.recalculate);\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n }\n\n recalculate() {\n const isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n const isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;\n\n this.elStyles = window.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n\n this.contentEl.style.padding = `${this.elStyles.paddingTop} ${\n this.elStyles.paddingRight\n } ${this.elStyles.paddingBottom} ${this.elStyles.paddingLeft}`;\n\n this.wrapperEl.style.margin = `-${this.elStyles.paddingTop} -${\n this.elStyles.paddingRight\n } -${this.elStyles.paddingBottom} -${this.elStyles.paddingLeft}`;\n\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? `${this.contentEl.offsetWidth}px`\n : 'auto';\n this.placeholderEl.style.height = `${this.contentEl.scrollHeight}px`;\n\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n this.axis.x.isOverflowing =\n this.contentWrapperEl.scrollWidth > this.contentWrapperEl.offsetWidth;\n this.axis.y.isOverflowing =\n this.contentWrapperEl.scrollHeight > this.contentWrapperEl.offsetHeight;\n\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n this.elStyles.overflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n this.elStyles.overflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n\n this.hideNativeScrollbar();\n\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n\n this.axis.x.scrollbar.el.style.width = `${this.axis.x.scrollbar.size}px`;\n this.axis.y.scrollbar.el.style.height = `${this.axis.y.scrollbar.size}px`;\n\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n }\n\n /**\n * Calculate scrollbar size\n */\n getScrollbarSize(axis = 'y') {\n const contentSize = this.scrollbarWidth\n ? this.contentWrapperEl[this.axis[axis].scrollSizeAttr]\n : this.contentWrapperEl[this.axis[axis].scrollSizeAttr] -\n this.minScrollbarWidth;\n const trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];\n let scrollbarSize;\n\n if (!this.axis[axis].isOverflowing) {\n return;\n }\n\n let scrollbarRatio = trackSize / contentSize;\n\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(\n ~~(scrollbarRatio * trackSize),\n this.options.scrollbarMinSize\n );\n\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n\n return scrollbarSize;\n }\n\n positionScrollbar(axis = 'y') {\n const contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n const trackSize = this.axis[axis].track.rect[this.axis[axis].sizeAttr];\n const hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n const scrollbar = this.axis[axis].scrollbar;\n\n let scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollOffset\n : scrollOffset;\n let scrollPourcent = scrollOffset / (contentSize - hostSize);\n\n let handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' &&\n this.isRtl &&\n SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n\n scrollbar.el.style.transform =\n axis === 'x'\n ? `translate3d(${handleOffset}px, 0, 0)`\n : `translate3d(0, ${handleOffset}px, 0)`;\n }\n\n toggleTrackVisibility(axis = 'y') {\n const track = this.axis[axis].track.el;\n const scrollbar = this.axis[axis].scrollbar.el;\n\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n } else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n }\n\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n } else {\n scrollbar.style.display = 'none';\n }\n }\n\n hideNativeScrollbar() {\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? `-${this.scrollbarWidth || this.minScrollbarWidth}px`\n : 0;\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? `-${this.scrollbarWidth || this.minScrollbarWidth}px`\n : 0;\n\n // If floating scrollbar\n if (!this.scrollbarWidth) {\n const paddingDirection = [this.isRtl ? 'paddingLeft' : 'paddingRight'];\n this.contentWrapperEl.style[paddingDirection] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? `${this.minScrollbarWidth}px`\n : 0;\n this.contentWrapperEl.style.paddingBottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? `${this.minScrollbarWidth}px`\n : 0;\n }\n }\n\n /**\n * On scroll event handling\n */\n onScroll = () => {\n if (!this.scrollXTicking) {\n window.requestAnimationFrame(this.scrollX);\n this.scrollXTicking = true;\n }\n\n if (!this.scrollYTicking) {\n window.requestAnimationFrame(this.scrollY);\n this.scrollYTicking = true;\n }\n };\n\n scrollX = () => {\n if (this.axis.x.isOverflowing) {\n this.showScrollbar('x');\n this.positionScrollbar('x');\n }\n\n this.scrollXTicking = false;\n };\n\n scrollY = () => {\n if (this.axis.y.isOverflowing) {\n this.showScrollbar('y');\n this.positionScrollbar('y');\n }\n\n this.scrollYTicking = false;\n };\n\n onMouseEnter = () => {\n this.showScrollbar('x');\n this.showScrollbar('y');\n };\n\n onMouseMove = e => {\n this.mouseX = e.clientX;\n this.mouseY = e.clientY;\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseMoveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseMoveForAxis('y');\n }\n };\n\n onMouseMoveForAxis(axis = 'y') {\n this.axis[axis].track.rect = this.axis[\n axis\n ].track.el.getBoundingClientRect();\n this.axis[axis].scrollbar.rect = this.axis[\n axis\n ].scrollbar.el.getBoundingClientRect();\n\n const isWithinScrollbarBoundsX = this.isWithinBounds(\n this.axis[axis].scrollbar.rect\n );\n\n if (isWithinScrollbarBoundsX) {\n this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n if (this.isWithinBounds(this.axis[axis].track.rect)) {\n this.showScrollbar(axis);\n this.axis[axis].track.el.classList.add(this.classNames.hover);\n } else {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n }\n }\n\n onMouseLeave = () => {\n this.onMouseMove.cancel();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n this.onMouseLeaveForAxis('x');\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n this.onMouseLeaveForAxis('y');\n }\n\n this.mouseX = -1;\n this.mouseY = -1;\n };\n\n onMouseLeaveForAxis(axis = 'y') {\n this.axis[axis].track.el.classList.remove(this.classNames.hover);\n this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);\n }\n\n onWindowResize = () => {\n // Recalculate scrollbarWidth in case it's a zoom\n this.scrollbarWidth = scrollbarWidth();\n\n this.hideNativeScrollbar();\n };\n\n /**\n * Show scrollbar\n */\n showScrollbar(axis = 'y') {\n let scrollbar = this.axis[axis].scrollbar.el;\n\n if (!this.axis[axis].isVisible) {\n scrollbar.classList.add(this.classNames.visible);\n this.axis[axis].isVisible = true;\n }\n\n if (this.options.autoHide) {\n this.hideScrollbars();\n }\n }\n\n /**\n * Hide Scrollbar\n */\n hideScrollbars = () => {\n this.axis.x.track.rect = this.axis.x.track.el.getBoundingClientRect();\n this.axis.y.track.rect = this.axis.y.track.el.getBoundingClientRect();\n\n if (!this.isWithinBounds(this.axis.y.track.rect)) {\n this.axis.y.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.y.isVisible = false;\n }\n\n if (!this.isWithinBounds(this.axis.x.track.rect)) {\n this.axis.x.scrollbar.el.classList.remove(this.classNames.visible);\n this.axis.x.isVisible = false;\n }\n };\n\n onPointerEvent = e => {\n let isWithinBoundsY, isWithinBoundsX;\n this.axis.x.scrollbar.rect = this.axis.x.scrollbar.el.getBoundingClientRect();\n this.axis.y.scrollbar.rect = this.axis.y.scrollbar.el.getBoundingClientRect();\n\n if (this.axis.x.isOverflowing || this.axis.x.forceVisible) {\n isWithinBoundsX = this.isWithinBounds(this.axis.x.scrollbar.rect);\n }\n\n if (this.axis.y.isOverflowing || this.axis.y.forceVisible) {\n isWithinBoundsY = this.isWithinBounds(this.axis.y.scrollbar.rect);\n }\n\n // If any pointer event is called on the scrollbar\n if (isWithinBoundsY || isWithinBoundsX) {\n // Preventing the event's default action stops text being\n // selectable during the drag.\n e.preventDefault();\n // Prevent event leaking\n e.stopPropagation();\n\n if (e.type === 'mousedown') {\n if (isWithinBoundsY) {\n this.onDragStart(e, 'y');\n }\n\n if (isWithinBoundsX) {\n this.onDragStart(e, 'x');\n }\n }\n }\n };\n\n /**\n * on scrollbar handle drag movement starts\n */\n onDragStart(e, axis = 'y') {\n const scrollbar = this.axis[axis].scrollbar.el;\n\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n const eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset -\n scrollbar.getBoundingClientRect()[this.axis[axis].offsetAttr];\n this.draggedAxis = axis;\n\n this.el.classList.add(this.classNames.dragging);\n\n document.addEventListener('mousemove', this.drag, true);\n document.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n document.addEventListener('click', this.preventClick, true);\n document.addEventListener('dblclick', this.preventClick, true);\n } else {\n window.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n }\n\n /**\n * Drag scrollbar handle\n */\n drag = e => {\n let eventOffset;\n let track = this.axis[this.draggedAxis].track;\n const trackSize = track.rect[this.axis[this.draggedAxis].sizeAttr];\n const scrollbar = this.axis[this.draggedAxis].scrollbar;\n const contentSize = this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollSizeAttr\n ];\n const hostSize = parseInt(\n this.elStyles[this.axis[this.draggedAxis].sizeAttr],\n 10\n );\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n } else {\n eventOffset = e.pageX;\n }\n\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n let dragPos =\n eventOffset -\n track.rect[this.axis[this.draggedAxis].offsetAttr] -\n this.axis[this.draggedAxis].dragOffset;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n let dragPerc = dragPos / (trackSize - scrollbar.size);\n\n // Scroll the content by the same percentage.\n let scrollPos = dragPerc * (contentSize - hostSize);\n\n // Fix browsers inconsistency on RTL\n if (this.draggedAxis === 'x') {\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted\n ? scrollPos - (trackSize + scrollbar.size)\n : scrollPos;\n scrollPos =\n this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted\n ? -scrollPos\n : scrollPos;\n }\n\n this.contentWrapperEl[\n this.axis[this.draggedAxis].scrollOffsetAttr\n ] = scrollPos;\n };\n\n /**\n * End scroll handle drag\n */\n onEndDrag = e => {\n e.preventDefault();\n e.stopPropagation();\n\n this.el.classList.remove(this.classNames.dragging);\n\n document.removeEventListener('mousemove', this.drag, true);\n document.removeEventListener('mouseup', this.onEndDrag, true);\n this.removePreventClickId = window.setTimeout(() => {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n document.removeEventListener('click', this.preventClick, true);\n document.removeEventListener('dblclick', this.preventClick, true);\n this.removePreventClickId = null;\n });\n };\n\n /**\n * Handler to ignore click events during drag\n */\n preventClick = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n /**\n * Getter for content element\n */\n getContentElement() {\n return this.contentEl;\n }\n\n /**\n * Getter for original scrolling element\n */\n getScrollElement() {\n return this.contentWrapperEl;\n }\n\n removeListeners() {\n // Event listeners\n if (this.options.autoHide) {\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n }\n\n ['mousedown', 'click', 'dblclick'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, true);\n });\n\n ['touchstart', 'touchend', 'touchmove'].forEach(e => {\n this.el.removeEventListener(e, this.onPointerEvent, {\n capture: true,\n passive: true\n });\n });\n\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n window.removeEventListener('resize', this.onWindowResize);\n\n this.mutationObserver && this.mutationObserver.disconnect();\n this.resizeObserver.disconnect();\n\n // Cancel all debounced functions\n this.recalculate.cancel();\n this.onMouseMove.cancel();\n this.hideScrollbars.cancel();\n this.onWindowResize.cancel();\n }\n\n /**\n * UnMount mutation observer and delete SimpleBar instance from DOM element\n */\n unMount() {\n this.removeListeners();\n this.el.SimpleBar = null;\n }\n\n /**\n * Recursively walks up the parent nodes looking for this.el\n */\n isChildNode(el) {\n if (el === null) return false;\n if (el === this.el) return true;\n\n return this.isChildNode(el.parentNode);\n }\n\n /**\n * Check if mouse is within bounds\n */\n isWithinBounds(bbox) {\n return (\n this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height\n );\n }\n\n /**\n * Find element children matches query\n */\n findChild(el, query) {\n const matches =\n el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, child =>\n matches.call(child, query)\n )[0];\n }\n}\n\n/**\n * HTML API\n * Called only in a browser env.\n */\nif (canUseDOM) {\n SimpleBar.initHtmlApi();\n}\n"],"names":["scrollbarWidth","document","body","box","createElement","boxStyle","style","position","left","visibility","overflowY","appendChild","width","getBoundingClientRect","right","removeChild","SimpleBar","element","options","onScroll","scrollXTicking","window","requestAnimationFrame","scrollX","scrollYTicking","scrollY","axis","x","isOverflowing","showScrollbar","positionScrollbar","y","onMouseEnter","onMouseMove","e","mouseX","clientX","mouseY","clientY","forceVisible","onMouseMoveForAxis","onMouseLeave","cancel","onMouseLeaveForAxis","onWindowResize","hideNativeScrollbar","hideScrollbars","track","rect","el","isWithinBounds","scrollbar","classList","remove","classNames","visible","isVisible","onPointerEvent","isWithinBoundsY","isWithinBoundsX","preventDefault","stopPropagation","type","onDragStart","drag","eventOffset","draggedAxis","trackSize","sizeAttr","contentSize","contentWrapperEl","scrollSizeAttr","hostSize","parseInt","elStyles","pageY","pageX","dragPos","offsetAttr","dragOffset","dragPerc","size","scrollPos","isRtl","getRtlHelpers","isRtlScrollbarInverted","isRtlScrollingInverted","scrollOffsetAttr","onEndDrag","dragging","removeEventListener","removePreventClickId","setTimeout","preventClick","flashTimeout","contentEl","offsetEl","maskEl","globalObserver","mutationObserver","resizeObserver","minScrollbarWidth","defaultOptions","overflowAttr","recalculate","throttle","bind","debounce","timeout","leading","memoize","init","dummyDiv","innerHTML","scrollbarDummyEl","firstElementChild","dummyContainerChild","scrollLeft","dummyContainerOffset","getOffset","dummyContainerChildOffset","dummyContainerScrollOffsetAfterScroll","initHtmlApi","initDOMLoadedElements","MutationObserver","mutations","forEach","mutation","Array","prototype","call","addedNodes","addedNode","nodeType","hasAttribute","getElOptions","querySelectorAll","removedNodes","removedNode","unMount","observe","childList","subtree","readyState","documentElement","doScroll","addEventListener","reduce","attributes","acc","attribute","option","name","match","key","replace","chr","toUpperCase","value","undefined","removeObserver","disconnect","top","pageYOffset","scrollTop","pageXOffset","canUseDOM","initDOM","initListeners","filter","children","child","contains","wrapper","length","wrapperEl","querySelector","contentWrapper","offset","mask","placeholderEl","placeholder","heightAutoObserverWrapperEl","heightAutoObserverEl","findChild","horizontal","vertical","add","firstChild","cloneNode","autoHide","setAttribute","capture","passive","ResizeObserver","isHeightAuto","offsetHeight","isWidthAuto","offsetWidth","getComputedStyle","direction","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","margin","height","scrollHeight","scrollWidth","overflowX","getScrollbarSize","toggleTrackVisibility","scrollbarSize","scrollbarRatio","Math","max","scrollbarMinSize","scrollbarMaxSize","min","scrollOffset","scrollPourcent","handleOffset","transform","display","bottom","paddingDirection","isWithinScrollbarBoundsX","hover","clearTimeout","getContentElement","getScrollElement","removeListeners","isChildNode","parentNode","bbox","query","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector"],"mappings":"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"}