@finqu/cool 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/.eslintrc.json +10 -0
- package/build/banner.js +14 -0
- package/build/build-plugins.js +92 -0
- package/build/rollup.config.js +78 -0
- package/dist/css/cool-grid.css +3672 -0
- package/dist/css/cool-grid.css.map +30 -0
- package/dist/css/cool-grid.min.css +7 -0
- package/dist/css/cool-grid.min.css.map +1 -0
- package/dist/css/cool-reboot.css +281 -0
- package/dist/css/cool-reboot.css.map +58 -0
- package/dist/css/cool-reboot.min.css +7 -0
- package/dist/css/cool-reboot.min.css.map +1 -0
- package/dist/css/cool.css +14841 -0
- package/dist/css/cool.css.map +144 -0
- package/dist/css/cool.min.css +7 -0
- package/dist/css/cool.min.css.map +1 -0
- package/dist/js/cool.bundle.js +15304 -0
- package/dist/js/cool.bundle.js.map +1 -0
- package/dist/js/cool.bundle.min.js +45 -0
- package/dist/js/cool.bundle.min.js.map +1 -0
- package/dist/js/cool.esm.js +4766 -0
- package/dist/js/cool.esm.js.map +1 -0
- package/dist/js/cool.esm.min.js +7 -0
- package/dist/js/cool.esm.min.js.map +1 -0
- package/dist/js/cool.js +4948 -0
- package/dist/js/cool.js.map +1 -0
- package/dist/js/cool.min.js +7 -0
- package/dist/js/cool.min.js.map +1 -0
- package/html/index.html +892 -0
- package/js/dist/collapse.js +321 -0
- package/js/dist/collapse.js.map +1 -0
- package/js/dist/common.js +1474 -0
- package/js/dist/common.js.map +1 -0
- package/js/dist/cooldropdown.js +467 -0
- package/js/dist/cooldropdown.js.map +1 -0
- package/js/dist/coolpopover.js +391 -0
- package/js/dist/coolpopover.js.map +1 -0
- package/js/dist/coolsectiontabs.js +256 -0
- package/js/dist/coolsectiontabs.js.map +1 -0
- package/js/dist/coolselect.js +796 -0
- package/js/dist/coolselect.js.map +1 -0
- package/js/dist/cooltooltip.js +360 -0
- package/js/dist/cooltooltip.js.map +1 -0
- package/js/dist/coolui.js +73 -0
- package/js/dist/coolui.js.map +1 -0
- package/js/dist/dropdown.js +1716 -0
- package/js/dist/dropdown.js.map +1 -0
- package/js/dist/popover.js +587 -0
- package/js/dist/popover.js.map +1 -0
- package/js/dist/sectiontabs.js +263 -0
- package/js/dist/sectiontabs.js.map +1 -0
- package/js/dist/select.js +2029 -0
- package/js/dist/select.js.map +1 -0
- package/js/dist/tooltip.js +555 -0
- package/js/dist/tooltip.js.map +1 -0
- package/js/index.esm.js +21 -0
- package/js/index.umd.js +21 -0
- package/js/src/abstract-ui-component.js +70 -0
- package/js/src/collapse.js +258 -0
- package/js/src/common.js +280 -0
- package/js/src/dialog.js +570 -0
- package/js/src/dropdown.js +443 -0
- package/js/src/popover.js +615 -0
- package/js/src/section-tabs.js +204 -0
- package/js/src/select.js +832 -0
- package/js/src/toast.js +581 -0
- package/js/src/tooltip.js +575 -0
- package/js/src/util/animate-css.js +22 -0
- package/js/src/util/index.js +112 -0
- package/js/src/util/perfect-scrollbar.js +1316 -0
- package/less/alert.less +345 -0
- package/less/badge.less +38 -0
- package/less/bootstrap-noconflict.less +23 -0
- package/less/bootstrap.less +23 -0
- package/less/button-group.less +153 -0
- package/less/buttons.less +287 -0
- package/less/dialog-noconflict.less +174 -0
- package/less/dialog.less +203 -0
- package/less/dropdown.less +209 -0
- package/less/forms.less +770 -0
- package/less/images.less +242 -0
- package/less/input-group.less +163 -0
- package/less/list-group.less +73 -0
- package/less/mixins/aspect-ratio.less +23 -0
- package/less/mixins/border-radius.less +24 -0
- package/less/mixins/box-shadow.less +4 -0
- package/less/mixins/buttons.less +17 -0
- package/less/mixins/caret.less +51 -0
- package/less/mixins/clearfix.less +10 -0
- package/less/mixins/gradients.less +34 -0
- package/less/mixins/nav-divider.less +7 -0
- package/less/mixins/object-fit.less +13 -0
- package/less/mixins/reset-text.less +16 -0
- package/less/mixins.less +11 -0
- package/less/package.json +11 -0
- package/less/pagination.less +69 -0
- package/less/popover.less +143 -0
- package/less/project.sublime-workspace +774 -0
- package/less/reboot.less +235 -0
- package/less/section.less +793 -0
- package/less/select.less +150 -0
- package/less/tables.less +737 -0
- package/less/tabs.less +162 -0
- package/less/tooltip.less +87 -0
- package/less/type.less +71 -0
- package/less/utilities/align.less +27 -0
- package/less/utilities/animate.less +3512 -0
- package/less/utilities/background.less +70 -0
- package/less/utilities/borders.less +16 -0
- package/less/utilities/color.less +70 -0
- package/less/utilities/cursor.less +8 -0
- package/less/utilities/display.less +38 -0
- package/less/utilities/embed.less +61 -0
- package/less/utilities/flex.less +76 -0
- package/less/utilities/jquery-ui.less +116 -0
- package/less/utilities/lazyload.less +29 -0
- package/less/utilities/overflow.less +11 -0
- package/less/utilities/pace.less +25 -0
- package/less/utilities/placeholder.less +60 -0
- package/less/utilities/position.less +42 -0
- package/less/utilities/scrollbar.less +152 -0
- package/less/utilities/spacing.less +197 -0
- package/less/utilities/text.less +68 -0
- package/less/utilities/transform.less +7 -0
- package/less/utilities.less +21 -0
- package/less/variables.less +343 -0
- package/package.json +71 -0
- package/scss/LISENCE +15 -0
- package/scss/_alert.scss +125 -0
- package/scss/_badge.scss +58 -0
- package/scss/_button-group.scss +124 -0
- package/scss/_buttons.scss +206 -0
- package/scss/_custom-forms.scss +423 -0
- package/scss/_dialog.scss +149 -0
- package/scss/_dropdown.scss +234 -0
- package/scss/_forms.scss +257 -0
- package/scss/_frame.scss +523 -0
- package/scss/_functions.scss +114 -0
- package/scss/_grid.scss +35 -0
- package/scss/_images.scss +312 -0
- package/scss/_input-group.scss +245 -0
- package/scss/_list-group.scss +82 -0
- package/scss/_mixins.scss +32 -0
- package/scss/_navbar.scss +214 -0
- package/scss/_pagination.scss +79 -0
- package/scss/_popover.scss +165 -0
- package/scss/_reboot.scss +279 -0
- package/scss/_root.scss +15 -0
- package/scss/_section.scss +851 -0
- package/scss/_select.scss +166 -0
- package/scss/_tables.scss +707 -0
- package/scss/_tabs.scss +175 -0
- package/scss/_toast.scss +182 -0
- package/scss/_tooltip.scss +101 -0
- package/scss/_type.scss +90 -0
- package/scss/_utilities.scss +21 -0
- package/scss/_variables.scss +697 -0
- package/scss/cool-grid.scss +29 -0
- package/scss/cool-reboot.scss +11 -0
- package/scss/cool.scss +36 -0
- package/scss/mixins/_alert-variant.scss +40 -0
- package/scss/mixins/_aspect-ratio.scss +29 -0
- package/scss/mixins/_background-variant.scss +25 -0
- package/scss/mixins/_badge-variant.scss +13 -0
- package/scss/mixins/_breakpoints.scss +102 -0
- package/scss/mixins/_buttons.scss +104 -0
- package/scss/mixins/_caret.scss +80 -0
- package/scss/mixins/_clearfix.scss +10 -0
- package/scss/mixins/_float.scss +14 -0
- package/scss/mixins/_forms.scss +51 -0
- package/scss/mixins/_gradients.scss +40 -0
- package/scss/mixins/_grid-framework.scss +72 -0
- package/scss/mixins/_grid.scss +60 -0
- package/scss/mixins/_nav-divider.scss +9 -0
- package/scss/mixins/_object-fit.scss +16 -0
- package/scss/mixins/_reset-text.scss +19 -0
- package/scss/mixins/_text-emphasis.scss +21 -0
- package/scss/mixins/_text-hide.scss +10 -0
- package/scss/mixins/_text-truncate.scss +8 -0
- package/scss/project.sublime-workspace +491 -0
- package/scss/utilities/_align.scss +41 -0
- package/scss/utilities/_animate.scss +3512 -0
- package/scss/utilities/_background.scss +14 -0
- package/scss/utilities/_borders.scss +146 -0
- package/scss/utilities/_clearfix.scss +6 -0
- package/scss/utilities/_collapse.scss +33 -0
- package/scss/utilities/_cursor.scss +10 -0
- package/scss/utilities/_display.scss +16 -0
- package/scss/utilities/_embed.scss +78 -0
- package/scss/utilities/_flex.scss +50 -0
- package/scss/utilities/_lazyload.scss +31 -0
- package/scss/utilities/_overflow.scss +6 -0
- package/scss/utilities/_perfect-scrollbar.scss +154 -0
- package/scss/utilities/_placeholder.scss +76 -0
- package/scss/utilities/_position.scss +30 -0
- package/scss/utilities/_sizing.scss +32 -0
- package/scss/utilities/_spacing.scss +92 -0
- package/scss/utilities/_text.scss +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.js","sources":["../src/util/perfect-scrollbar.js","../src/util/index.js","../src/abstract-ui-component.js","../src/dropdown.js"],"sourcesContent":["/*!\n * perfect-scrollbar v1.4.0\n * (c) 2018 Hyunje Jun\n * @license MIT\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 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 var this$1 = this;\n\n for (var name in this$1.handlers) {\n this$1.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\nvar processScrollDiff = function(\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 (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\nvar updateGeometry = function(i) {\n var element = i.element;\n var roundedScrollTop = Math.floor(element.scrollTop);\n\n i.containerWidth = element.clientWidth;\n i.containerHeight = element.clientHeight;\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 *\n (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 = 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 } 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\nvar clickRail = function(i) {\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\nvar dragThumb = function(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 element[scrollTop] =\n startingScrollTop + scrollBy * (e[pageY] - startingMousePageY);\n addScrollingClass(i, y);\n updateGeometry(i);\n\n e.stopPropagation();\n e.preventDefault();\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 i.event.bind(i[scrollbarY], 'mousedown', function (e) {\n startingScrollTop = element[scrollTop];\n startingMousePageY = e[pageY];\n scrollBy =\n (i[contentHeight] - i[containerHeight]) /\n (i[railYHeight] - i[scrollbarYHeight]);\n\n i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\n i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\n\n i[scrollbarYRail].classList.add(cls.state.clicking);\n\n e.stopPropagation();\n e.preventDefault();\n });\n}\n\nvar keyboard = function(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\nvar wheel = function(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 var overflow = [style.overflow, style.overflowX, style.overflowY].join(\n ''\n );\n\n // if scrollable\n if (overflow.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 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\nvar touch = function(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 var overflow = [style.overflow, style.overflowX, style.overflowY].join(\n ''\n );\n\n // if scrollable\n if (overflow.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 var maxScrollLeft = cursor.scrollLeft - 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 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$1.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 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;","import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\n\tlet timeout;\n\n\treturn function() {\n\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function() {\n\n\t\t\ttimeout = null;\n\n\t\t\tif (!immediate) {\n\t\t\t\tfunc.apply(context, args)\n\t\t\t};\n\t\t};\n\n\t\tlet callNow = immediate && !timeout;\n\n\t\tclearTimeout(timeout);\n\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n};\n\nconst shallowProperty = function(key) {\n\n\treturn function(obj) {\n\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\n\tlet length = shallowProperty('length');\n\n\treturn typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n\n if (context === void 0) {\n \treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\n\t\tcase 1: return function(value) {\n\t\t\treturn func.call(context, value);\n\t\t};\n\n\t\tcase 3: return function(value, index, collection) {\n\t\t\treturn func.call(context, value, index, collection);\n\t\t};\n\t\tcase 4: return function(accumulator, value, index, collection) {\n\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t};\n\t}\n\n return function() {\n\t\treturn func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\n\t} else {\n\n\t\tlet keys = Object.keys(obj);\n\n\t\tfor (i = 0, length = keys.length; i < length; i++) {\n\t\t\titeratee(obj[keys[i]], keys[i], obj);\n\t\t}\n\t}\n\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\n\tlet result = false;\n\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\tresult = true;\n\t}\n\n\treturn result;\n};\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this.el);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.el);\n }\n }\n\n // Show callback\n onShow() {\n\n let onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this.el);\n }\n }\n\n // Close callback\n onClose() {\n\n let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolDropdown';\nconst DATA_KEY = 'plugin_coolDropdown';\n\nclass Dropdown extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.dropdown) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dropdown, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n $.when(this.buildCache()).then(() => {\n this.buildScroll();\n this.bindEvents();\n this.onInit();\n });\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$el.addClass('dropdown-trigger');\n this.$container = this.$el.parent('.dropdown');\n this.id = 'dropdown-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.offset = this.$el.data('offset') ? this.$el.data('offset') : this.opts.offset;\n this.minWidth = this.$el.data('minWidth') ? this.$el.data('minWidth') : this.opts.minWidth;\n this.scroll = this.$el.data('scroll') ? this.$el.data('scroll') : this.opts.scroll;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.closeOnItemClick = this.$el.data('closeOnItemClick') ? this.$el.data('closeOnItemClick') : this.opts.closeOnItemClick;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.contentOpen = false;\n\n if (this.$container.hasClass('dropup')) {\n this.placement = 'top';\n } else if (this.$container.hasClass('dropright')) {\n this.placement = 'right';\n } else if (this.$container.hasClass('dropbottom')) {\n this.placement = 'bottom';\n } else {\n this.placement = 'left';\n }\n\n if (typeof this.content === 'function') {\n\n let menuRight = this.opts.align === 'end' ? ' dropdown-menu-right' : '';\n\n this.$dropdown = $(`\n <div class=\"dropdown-menu${menuRight}\" id=\"${this.id}\">\n ${this.content}\n </div>\n `);\n\n $.when(this.$el.after(this.$dropdown)).then(() => {\n\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n });\n\n } else {\n\n this.$dropdown = this.$el.next('.dropdown-menu') ? this.$el.next('.dropdown-menu') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.opts.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n }\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.opts.scroll && this.$scrollableContent.length) {\n\n this.$scrollableContent.css({\n 'max-height': this.scrollContentHeight+'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20\n });\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n }\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n });\n\n this.$dropdownItem.on('click'+'.'+NAME, function() {\n\n if (self.closeOnItemClick) {\n self.close();\n }\n\n self.onItemClick(this);\n });\n\n $(document).on('touchstart click', (e) => {\n\n if (!this.$el.is(e.target) && !this.$dropdown.is(e.target) && this.$dropdown.has(e.target).length === 0 && this.contentOpen) {\n this.close();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n this.setPosition();\n this.onUpdate();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n let dropdownWidth = this.$dropdown.outerWidth(true);\n let dropdownHeight = this.$dropdown.outerHeight(true);\n let dropdownTriggerWidth = this.$el.outerWidth(true);\n let dropdownTriggerHeight = this.$el.outerHeight(true);\n let dropdownTriggerPosX = this.$el.position().left;\n let dropdownTriggerPosY = this.$el.position().top;\n let dropdownPosX;\n let dropdownPosY;\n\n if (placement === 'top') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY - dropdownHeight;\n\n } else if (placement === 'right') {\n\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth;\n dropdownPosY = dropdownTriggerPosY;\n\n } else if (placement === 'bottom') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight;\n\n } else if (placement === 'left') {\n\n dropdownPosX = dropdownTriggerPosX - dropdownWidth;\n dropdownPosY = dropdownTriggerPosY;\n }\n\n if (this.offset) {\n\n let offsets = this.offset.split(',')\n let offsetX = offsets[0];\n let offsetY = offsets[1];\n\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n this.$dropdown.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+Math.round(dropdownPosX)+'px, '+Math.round(dropdownPosY)+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Dropdown trigger width: '+dropdownTriggerWidth+'px');\n this.log('Dropdown trigger height: '+dropdownTriggerHeight+'px');\n this.log('Dropdown trigger position x: '+dropdownTriggerPosX+'px');\n this.log('Dropdown trigger position Y: '+dropdownTriggerPosY+'px');\n this.log('Dropdown width: '+dropdownWidth+'px');\n this.log('Dropdown height: '+dropdownHeight+'px');\n this.log('Dropdown position x: '+dropdownPosX+'px');\n this.log('Dropdown position y: '+dropdownPosY+'px');\n }\n\n // Show\n show() {\n\n if (!this.$dropdown || this.$dropdown.hasClass('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass(this.animationSpeed);\n this.$dropdown.animateCss(this.animationIn);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n\n } else {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n }\n\n if (this.opts.scroll && this.scroll && this.$scrollableContent.length) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$dropdown) {\n return;\n }\n\n if (this.animation && !this.$dropdown.hasClass('animated')) {\n\n this.$dropdown.animateCss(this.animationOut, () => {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n });\n\n } else {\n\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n // Item callback\n onItemClick(el) {\n\n let onItemClick = this.opts.onItemClick;\n\n if (typeof onItemClick === 'function') {\n\n onItemClick.call(el);\n }\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dropdown._jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT\n\n return Dropdown._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'zoomOut',\n animationSpeed: 'fastest',\n offset: null,\n minWidth: null,\n align: 'start',\n closeOnItemClick: true,\n content: false,\n scroll: true,\n scrollContentHeight: 100,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onItemClick: null,\n debug: false\n }\n}\n\nexport default Dropdown;"],"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","thumb","x","rail","consuming","state","focus","clicking","active","scrolling","scrollingClassTimeout","y","addScrollingClass","i","classList","contains","clearTimeout","add","removeScrollingClass","setTimeout","isAlive","settings","scrollingThreshold","setScrollingClassInstantly","EventElement","handlers","prototypeAccessors","isEmpty","configurable","bind","eventName","handler","push","addEventListener","unbind","target","this$1","removeEventListener","unbindAll","name","Object","keys","every","length","defineProperties","EventManager","eventElements","eventElement","ee","splice","indexOf","forEach","e","once","onceHandler","evt","createEvent","window","CustomEvent","initCustomEvent","undefined","processScrollDiff","axis","diff","useScrollingClass","forceFireReachEvent","fields","processScrollDiff$1","ref","contentHeight","containerHeight","scrollTop","up","down","reach","dispatchEvent","toInt","parseInt","isEditable","el","outerWidth","styles","width","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","env","isWebKit","documentElement","supportsTouch","DocumentTouch","supportsIePointer","navigator","msMaxTouchPoints","isChrome","test","userAgent","updateGeometry","roundedScrollTop","Math","floor","containerWidth","clientWidth","clientHeight","contentWidth","scrollWidth","scrollHeight","scrollbarXRail","appendChild","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","scrollLeft","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","updateCss","thumbSize","minScrollbarLength","max","maxScrollbarLength","min","xRailOffset","isRtl","left","isScrollbarXUsingBottom","bottom","scrollbarXBottom","top","scrollbarXTop","yRailOffset","height","isScrollbarYUsingRight","right","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","clickRail","event","stopPropagation","positionTop","pageY","pageYOffset","getBoundingClientRect","direction","positionLeft","pageX","pageXOffset","dragThumb","bindMouseScrollHandler","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","preventDefault","mouseUpHandler","ownerDocument","keyboard","elementHovered","scrollbarFocused","shouldPreventDefault","deltaX","deltaY","wheelPropagation","isDefaultPrevented","defaultPrevented","activeElement","tagName","contentDocument","shadowRoot","which","metaKey","altKey","shiftKey","wheel","isTop","isBottom","offsetHeight","isLeft","isRight","offsetWidth","hitsBound","abs","getDeltaFromEvent","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","shouldBeConsumedByChild","querySelector","cursor","overflow","overflowX","overflowY","join","match","maxScrollTop","maxScrollLeft","mousewheelHandler","shouldPrevent","useBothWheelAxes","wheelSpeed","ctrlKey","onwheel","onmousewheel","touch","magnitudeX","magnitudeY","scrollY","applyTouchMove","differenceX","differenceY","startOffset","startTime","speed","easingLoop","getTouch","targetTouches","shouldHandle","pointerType","buttons","MSPOINTER_TYPE_MOUSE","touchStart","Date","getTime","clearInterval","touchMove","currentOffset","currentTime","timeGap","touchEnd","swipeEasing","setInterval","isInitialized","PointerEvent","MSPointerEvent","defaultSettings","PerfectScrollbar","userSettings","nodeName","blur","isNegativeScroll","originalScrollLeft","result","setAttribute","railXStyle","isNaN","display","marginLeft","marginRight","railYStyle","borderTopWidth","borderBottomWidth","marginTop","marginBottom","handlerName","lastScrollTop","lastScrollLeft","onScroll","update","destroy","removePsClasses","split","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","touchEvents","AbstractUIComponent","onInit","opts","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","Dropdown","constructor","Cool","dropdown","$","extend","fn","defaults","init","when","buildCache","then","buildScroll","bindEvents","unbindEvents","$el","removeData","addClass","$container","parent","id","generateUUID","animation","data","animationIn","animationOut","animationSpeed","offset","minWidth","scroll","scrollContentHeight","closeOnItemClick","content","contentOpen","hasClass","placement","menuRight","align","$dropdown","after","$scrollableContent","find","$dropdownItem","css","next","self","on","close","show","onItemClick","is","has","setPosition","off","replace","c","r","random","v","toString","str","dropdownWidth","dropdownHeight","outerHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","position","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsets","offsetX","offsetY","transform","round","attr","animateCss","removeClass","removeAttr","_jQueryInterface","config","each","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"}
|