@finqu/cool 1.2.7 → 1.2.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cool.bundle.js","sources":["../../js/src/util/perfect-scrollbar.js","../../js/src/util/animate-css.js","../../js/src/common.js","../../js/src/util/index.js","../../js/src/abstract-ui-component.js","../../js/src/popover.js","../../js/src/select.js","../../js/src/dropdown.js","../../js/src/tooltip.js","../../js/src/section-tabs.js","../../js/src/collapse.js","../../js/src/toast.js","../../js/src/dialog.js","../../js/index.umd.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\n$.fn.extend({\n animateCss: function (animationName, callback) {\n\n var el = this;\n var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\n\n el.addClass('animated ' + animationName).one(animationEnd, function(e) {\n\n $(this).removeClass('animated ' + animationName);\n\n if (callback) {\n callback();\n }\n\n }).children().on(animationEnd, function(e) {\n\n e.stopPropagation();\n });\n }\n});","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport './util/animate-css';\n\nwindow.Cool = window.Cool || {};\nwindow.Cool.settings = window.Cool.settings || {};\n\nclass Common {\n\n\tstatic initialize(opts) {\n\n // There's an error if opts is not defined\n opts = opts || {};\n\n // Save settings for later use\n window.Cool.settings = opts;\n\n // Init plugins\n $('[data-toggle=\"popover\"]').coolPopover(opts.popover);\n $('[data-toggle=\"select\"]').coolSelect(opts.select);\n $('[data-toggle=\"dropdown\"]').coolDropdown(opts.dropdown);\n $('[data-toggle=\"tooltip\"]').coolTooltip(opts.tooltip);\n $('[data-toggle=\"collapse\"]').coolCollapse(opts.collapse);\n $('[data-toggle=\"section-tabs\"]').coolSectionTabs(opts.sectionTabs);\n $('body').coolToast(opts.toast);\n $('body').coolDialog(opts.dialog);\n\n // Dom ready\n\t\t$('html').addClass('dom-ready');\n\n // Input group focus in\n\t\t$(document).on('focus', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n let $inputGroup = $(this).closest('.input-group');\n\n if (!$inputGroup.hasClass('input-group-focus')) {\n $inputGroup.addClass('input-group-focus');\n }\n }\n });\n\n // Input group focus out\n $(document).on('blur', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n let $inputGroup = $(this).closest('.input-group');\n\n if ($inputGroup.hasClass('input-group-focus')) {\n $inputGroup.removeClass('input-group-focus');\n }\n }\n });\n\n // Custom Form group\n $('.form-label-group').each(function(i, formLabelGroup) {\n\n let $formLabelGroup = $(formLabelGroup);\n\n $formLabelGroup.find('input').on('blur input change', function () {\n\n let val = $(this).val();\n\n if (val) {\n $(formLabelGroup).addClass('label-on-top');\n } else {\n $(formLabelGroup).removeClass('label-on-top');\n }\n\n }).trigger('change');\n });\n\n // Table actions\n $.each($('.table'), function() {\n\n if ($(this).find('[data-table-link], [data-table-btn]').length && !$(this).hasClass('table-hover')) {\n $(this).addClass('table-hover');\n }\n });\n\n $(document).on('click', '[data-table-link]', function(e) {\n\n let $container = $(this).parents('table, .table');\n let href = $(this).data('tableLink');\n let target = $(e.target);\n let exceptions = ['input', 'button', 'a', 'label', 'td.col-select'];\n let linkDisabled = false;\n\n $.each(exceptions, function(item) {\n\n if (target.is(item) || (item == 'a' && target.parent().is(item))) {\n linkDisabled = true;\n }\n });\n\n if ($container.hasClass('bulk-actions-active')) {\n linkDisabled = true;\n }\n\n if (target.hasClass('table-link-exclude')) {\n linkDisabled = true;\n }\n\n if (target.is('td, .td, img') && !linkDisabled) {\n\n if (e.ctrlKey || e.metaKey) {\n\n window.open(href, '_blank');\n\n } else {\n\n window.location.href = href;\n }\n\n } else {\n\n return;\n }\n });\n\n $(document).on('click', '[data-table-btn]', function(e) {\n\n let $container = $(this).parents('table, .table');\n let $self = $(this);\n let btn = $(this).data('tableButton');\n let target = $(e.target);\n let exceptions = ['input', 'button', 'a', 'label', 'td.col-select'];\n let btnDisabled = false;\n\n if (!btn) {\n\n btn = $self.find('button')[0];\n\n if (!btn) {\n return;\n }\n }\n\n $.each(exceptions, function(item) {\n\n if (target.is(item) || (item == 'a' && target.parent().is(item))) {\n btnDisabled = true;\n }\n });\n\n if ($container.hasClass('bulk-actions-active')) {\n btnDisabled = true;\n }\n\n if (target.hasClass('table-btn-exclude')) {\n btnDisabled = true;\n }\n\n if (target.is('td, .td, img') && !btnDisabled) {\n\n $(btn).click();\n\n } else {\n\n return;\n }\n });\n\n // button toggle\n $(document).on('click', '.btn-group-toggle .btn > input', function(e) {\n e.stopPropagation();\n });\n\n $(document).on('click', '.btn-group-toggle .btn', function() {\n $(this).find('input').trigger('click');\n $(this).parent().find('input').trigger('change');\n });\n\n $(document).on('change', '.btn-group-toggle .btn > input', function() {\n if ($(this).is(':checked')) {\n $(this).parent().addClass('active');\n } else {\n $(this).parent().removeClass('active');\n }\n });\n\n // Force select element unfocus after change\n $('select').on('change', function() {\n $(this).blur();\n });\n\n // Tabs\n $('.tab-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).parent().toggleClass('open');\n });\n\n $(document).on('click', function() {\n\n $('.tabs-container').removeClass('open');\n });\n\n // Sidebar togglers\n $('.sidebar-left-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-left-open');\n });\n\n $('.sidebar-right-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-right-open');\n });\n\n // Sidebar scroll\n $('.sidebar-content .ps__thumb-y').mousedown(function() {\n $(this).parent().parent().addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if ($('.sidebar-content').hasClass('ps-mousedown-scroll')) {\n $('.sidebar-content').removeClass('ps-mousedown-scroll');\n }\n });\n\n // Sidebar left scroll\n let $sidebarLeft = $('.sidebar-left');\n let $sidebarLeftContent = $sidebarLeft.find('.sidebar-content');\n\n if ($sidebarLeftContent.length) {\n\n let sidebarLeftScroll = new PerfectScrollbar($sidebarLeftContent[0], {\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true\n });\n }\n\n // Sidebar tabs\n let $sidebarTabs = $(document).find('.sidebar-tab');\n\n if ($sidebarTabs.length) {\n\n $.each($sidebarTabs, function(i, el) {\n\n let scrollContainer = $(el).find('.tab-content');\n\n const sidebarTabsScroll = new PerfectScrollbar(scrollContainer[0], {\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true\n });\n });\n\n $('[name=\"sidebar-tab-select\"]').on('click', function() {\n\n let val = $(this).val();\n let $tab = $('#sidebar-tab-'+val);\n\n $sidebarTabs.not($tab).removeClass('active');\n $tab.addClass('active');\n\n $('[name=\"sidebar-tab-select\"]').not($(this)).removeClass('active');\n $(this).addClass('active');\n\n if ($tab[0] == $sidebarTabs.first()[0]) {\n\n $sidebarTabs.not($tab).find('.tab-content').css({\n 'transform': 'translate3d(100%, 0px, 0px)'\n });\n\n } else if ($tab[0] == $sidebarTabs.last()[0]) {\n\n $sidebarTabs.not($tab).find('.tab-content').css({\n 'transform': 'translate3d(-100%, 0px, 0px)'\n });\n\n } else {\n\n $sidebarTabs.first().not($tab).find('.tab-content').css({\n 'transform': 'translate3d(-100%, 0px, 0px)'\n });\n\n $sidebarTabs.last().not($tab).find('.tab-content').css({\n 'transform': 'translate3d(100%, 0px, 0px)'\n });\n }\n\n $tab.find('.tab-content').css({\n 'transform': 'none'\n });\n });\n }\n\t}\n}\n\nwindow.Cool.initialize = Common.initialize;\n\nexport default Common;","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\n$.event.special.destroyed = {\n\n\tremove: function(obj) {\n\n\t\tif (obj.handler) {\n\t\t\tobj.handler();\n\t\t}\n\t}\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);\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);\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);\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);\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);\n }\n }\n\n // Reset callback\n onReset() {\n\n let onReset = this.opts.onReset;\n\n if (typeof onReset === 'function') {\n\n onReset.call(this);\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 { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolPopover';\nconst DATA_KEY = 'plugin_coolPopover';\n\nclass Popover extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.popover) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.popover, 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 this.buildCache();\n this.bindEvents();\n this.onInit();\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.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.containerAutoDetect = this.$el.data('containerAutoDetect') ? this.$el.data('containerAutoDetect') : this.opts.containerAutoDetect;\n this.id = 'popover-'+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.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n\n if (this.containerAutoDetect) {\n this.$container = this.$el.offsetParent();\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n if (this.trigger === 'click') {\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n\n } else if (this.trigger === 'hover') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n } else if (this.trigger === 'focus') {\n\n this.$el.on('focusin'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('focusout'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(window).on('resize', debounce(() => {\n\n if (this.$popover) {\n this.setPosition();\n this.onUpdate();\n }\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 // Build popover\n buildPopover() {\n\n let content;\n\n \tif (typeof this.content === 'function') {\n \t\tcontent = this.content();\n \t} else {\n content = this.content;\n }\n\n \tthis.$popover = $(`\n \t\t<div class=\"popover\" role=\"tooltip\" id=\"${this.id}\">\n\n\t\t\t <div class=\"arrow\"></div>\n\n\t\t\t <h3 class=\"popover-header\">${this.title}</h3>\n\n\t\t\t <div class=\"popover-body\">${content}</div>\n\n\t\t\t</div>\n \t`);\n\n this.$container.append(this.$popover);\n this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$popover);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\n this.log('Trigger: '+this.trigger);\n this.log('Placement: '+this.placement);\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('Title: '+this.title);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$popover.addClass('popover-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let popoverWidth = this.$popover.outerWidth(true);\n let popoverHeight = this.$popover.outerHeight(true);\n let popoverTriggerWidth = this.$el.outerWidth();\n let popoverTriggerHeight = this.$el.outerHeight();\n let popoverTriggerPosX = this.$el.position().left;\n let popoverTriggerPosY = this.$el.position().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let popoverPosX;\n let popoverPosY;\n\n if (placement === 'top') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY - popoverHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n popoverPosX = Math.round(popoverTriggerPosX + popoverTriggerWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY + popoverTriggerHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n popoverPosX = Math.round(popoverTriggerPosX - popoverWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n // Correct placement if popover goes outside of container\n let popoverOverflowCount = 0;\n let popoverPosition = {\n left: this.$popover.position().left,\n top: this.$popover.position().top,\n right: containerInnerWidth - (this.$popover.position().left + popoverWidth),\n bottom: containerInnerHeight - (this.$popover.position().top + popoverHeight),\n };\n let popoverOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (popoverPosition.right < 0) {\n\n popoverOverflow.right = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from right');\n }\n\n if (popoverPosition.left < 0) {\n\n popoverOverflow.left = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from left');\n }\n\n if (popoverPosition.bottom < 0) {\n\n popoverOverflow.bottom = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from bottom');\n }\n\n if (popoverPosition.top < 0) {\n\n popoverOverflow.top = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from top');\n }\n\n if (popoverOverflowCount > 0) {\n\n if (!this.placementChanged && popoverOverflow.left && popoverPosition.right > popoverWidth) {\n\n this.log('Changing popover placement to right');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && popoverOverflow.top && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && popoverOverflow.right && popoverPosition.left > popoverWidth) {\n\n this.log('Changing popover placement to left');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && popoverOverflow.bottom && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (popoverOverflow.left || popoverOverflow.right)) {\n\n if (popoverPosition.top > popoverPosition.bottom) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixPopoverPosition = true;\n }\n\n if (this.fixPopoverPosition) {\n\n this.log('Adjusting popover size or position in order to popover fit in the container');\n\n if (popoverOverflow.left) {\n\n this.log('Popover overflowing from left');\n\n let overflowAmount = Math.abs(popoverPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX >= popoverPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n popoverPosX += overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (popoverOverflow.top) {\n\n this.log('Popover overflowing from top');\n\n let overflowAmount = Math.abs(popoverPosition.top);\n\n this.log('Popover adjusting position y');\n\n popoverPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (popoverOverflow.right) {\n\n this.log('Popover overflowing from right');\n\n let overflowAmount = Math.abs(popoverPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX <= popoverPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (popoverOverflow.bottom) {\n\n this.log('Popover overflowing from bottom');\n\n let overflowAmount = Math.abs(popoverPosition.bottom);\n\n this.log('Popover adjusting position y');\n\n popoverPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n width: popoverWidth,\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)'\n });\n\n this.fixPopoverPosition = false;\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n if (this.animation) {\n\n this.$popover.addClass(this.animationSpeed);\n this.$popover.animateCss(this.animationIn);\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n\n } else {\n\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$popover) {\n return;\n }\n\n if (this.animation && !this.$popover.hasClass('animated')) {\n\n this.$popover.animateCss(this.animationOut, () => {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n\n \treturn this.each(function() {\n\n \t\tlet data = $(this).data(DATA_KEY);\n \t\tconst _config = typeof config === 'object' && config;\n\n \t\tif (!data) {\n \t\t\tdata = new Popover(this, _config);\n \t\t\t$(this).data(DATA_KEY, data);\n \t\t}\n\n \t\tif (typeof config === 'string') {\n\n \t\t\tif (typeof data[config] === 'undefined') {\n\t\t \tthrow new TypeError(`No method named \"${config}\"`)\n\t\t }\n\n\t\t data[config]()\n \t\t}\n\t });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Popover._jQueryInterface;\n $.fn[NAME].Constructor = Popover;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Popover._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n container: '.content-inner',\n containerAutoDetect: false,\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Popover;","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSelect';\nconst DATA_KEY = 'plugin_coolSelect';\n\nclass Select extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.select) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.select, 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 this.buildCache().then(() => {\n\n this.buildScroll();\n this.bindEvents();\n\n if (this.data[this.name].length > 0) {\n this.setData();\n }\n\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.bindEvents();\n this.onUpdate();\n }\n\n // Reset plugin data\n reset() {\n\n this.data = {};\n this.data[this.name] = [];\n this.items = [];\n this.$select.find('.select-item').remove();\n this.$selectItems = [];\n this.$selectIconContainer.html(this.selectIconDefault);\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n\n this.$selectHeader.css('cursor', 'default');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.searchData = [];\n this.$searchInput.val('');\n this.searchString = '';\n this.search.call(this);\n }\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n return new Promise((primaryResolve, primaryReject) => {\n\n let self = this;\n\n this.$el = $(this.el);\n this.$container = this.$el.parent();\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectTitle = this.$el.find('.select-title');\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\n this.selectIconDefault = this.$selectHeader.find('.select-icon') ? this.$selectHeader.find('.select-icon').html() : '<i class=\"'+(this.opts.faPro ? 'fal' : 'fas')+'fa-angle-down icon\"></i>';\n this.name = this.$el.data('name') ? this.$el.data('name') : this.opts.name;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.items = this.$el.data('items') ? this.$el.data('items') : this.opts.items;\n this.data = {};\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;\n this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;\n this.contentOpen = false;\n this.searchPlaceholder = this.$el.data('search-placeholder') ? this.$el.data('search-placeholder') : this.opts.searchPlaceholder;\n this.btnCloseText = this.$el.data('btn-close-text') ? this.$el.data('btn-close-text') : this.opts.btnCloseText;\n this.labelTemplate = this.opts.labelTemplate;\n this.confirmCheck = this.opts.confirmCheck;\n this.confirmUncheck = this.opts.confirmUncheck;\n this.preventUncheck = this.opts.preventUncheck;\n this.dynamicTitle = this.$el.data('dynamicTitle') ? this.$el.data('dynamicTitle') : this.opts.dynamicTitle;\n this.dynamicTitleDefault = this.$el.data('dynamicTitleDefault') ? this.$el.data('dynamicTitleDefault') : this.opts.dynamicTitleDefault;\n this.dynamicTitleEmptyDefault = this.$el.data('dynamicTitleEmptyDefault') ? this.$el.data('dynamicTitleEmptyDefault') : this.opts.dynamicTitleEmptyDefault;\n this.allowNoneOnRadioSelect = this.$el.data('allowNoneOnRadioSelect') ? this.$el.data('allowNoneOnRadioSelect') : this.opts.allowNoneOnRadioSelect;\n this.showValidStateIcon = this.$el.data('showValidStateIcon') ? this.$el.data('showValidStateIcon') : this.opts.showValidStateIcon;\n this.itemsToExclude = this.$el.data('itemsToExclude') ? this.$el.data('itemsToExclude').replace(/\\s/g, '').split(',') : this.opts.itemsToExclude;\n this.primaryKeyword = this.$el.data('primaryKeyword') ? this.$el.data('primaryKeyword') : this.opts.primaryKeyword;\n this.preventClose = false;\n\n if (this.itemsToExclude.length > 0) {\n this.itemsToExclude = this.itemsToExclude.map(Number);\n }\n\n if (this.opts.setData) {\n this.data = this.opts.setData;\n }\n\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n if (this.data[this.name] !== 'undefined' && this.data[this.name].length > 0 && self.itemsToExclude) {\n\n this.data[this.name] = this.data[this.name].filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n }\n\n if (this.items !== 'undefined' && this.items.lengths > 0 && self.itemsToExclude) {\n\n this.items = this.items.filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n }\n\n if (this.$el.find('.select-search').length) {\n this.showSearch = true;\n } else {\n this.showSearch = this.$el.data('showSearch') ? this.$el.data('showSearch') : this.opts.showSearch;\n }\n\n if (this.$el.find('.select-footer').length) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n this.$select = this.$el.find('.select-content');\n\n new Promise((secondaryResolve, secondaryReject) => {\n\n if (!this.$select.length) {\n\n let items = this._renderItemList(this.items);\n\n this.$select = $(`\n <div class=\"select-content\">\n\n ${this._renderSearch()}\n\n <div class=\"select-scrollable-content\"></div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\n this.$select.find('.select-scrollable-content').append(items);\n\n secondaryResolve();\n\n } else {\n\n secondaryResolve();\n }\n\n }).then(() => {\n\n this.$scrollableContent = this.$select.find('.select-scrollable-content') ? this.$select.find('.select-scrollable-content') : false;\n this.$selectItems = this.$select.find('.select-item');\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n\n this.$selectHeader.css('cursor', 'default');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$searchIconContainer = this.$select.find('.select-search-icon');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n\n // Prevent tabfocus from breaking select functionality\n this.$searchInput[0].tabIndex = -1;\n }\n\n if (this.showFooter) {\n\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n\n // Prevent tabfocus from breaking select functionality\n this.$closeButton[0].tabIndex = -1;\n }\n\n this.buildSearchData();\n\n this.log(this.$el);\n this.log(this.$select);\n this.log(this.$scrollableContent);\n this.log('Name: '+this.name);\n this.log('Show search: '+this.showSearch);\n this.log('Show footer: '+this.showFooter);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n this.log(this.items);\n this.log(this.searchData);\n\n primaryResolve();\n })\n });\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.$scrollableContent.length > 0) {\n\n let scrollContentHeight = this.scrollContentHeight;\n\n if (this.showSearch) {\n scrollContentHeight = scrollContentHeight - (this.$searchContainer.outerHeight(true) || 0);\n }\n\n if (this.showFooter) {\n scrollContentHeight = scrollContentHeight - (this.$footerContainer.outerHeight(true) || 0);\n }\n\n this.$scrollableContent.css({\n 'max-height': (scrollContentHeight - parseInt(this.$scrollableContent.css('marginTop'), 10) - parseInt(this.$scrollableContent.css('marginBottom'), 10)) +'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.addClass('ps-dark');\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20,\n scrollYMarginOffset : -1,\n suppressScrollY: true,\n suppressScrollX: true,\n });\n\n // Prevent tabfocus from breaking select functionality\n this.$scrollableContent.find('[tabindex=\"0\"]').attr('tabindex', -1);\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n this.scroll.settings.suppressScrollY = false;\n }\n }\n }\n }\n\n // Build search data\n buildSearchData() {\n\n return new Promise((resolve, reject) => {\n\n this.searchData = [];\n\n let selectLabels = this.$select.find('[data-label]');\n\n $.each(selectLabels, (i, el) => {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\n\n resolve();\n });\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$selectHeader.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else if (this.$selectItems.length > 0 || this.searchApi) {\n this.show();\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"checkbox\"]', function() {\n\n let el = this;\n let val = $(this).val();\n let closeTimeout = 600; // ms\n\n self.preventClose = true;\n\n if (typeof self.confirmCheck === 'function' && el.checked) {\n\n el.checked = false;\n\n self.confirmCheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n el.checked = true;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (el.checked) {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (typeof self.confirmUncheck === 'function' && !el.checked) {\n\n el.checked = true;\n\n self.confirmUncheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n el.checked = false;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (!el.checked && !self.preventUncheck) {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (!el.checked && self.preventUncheck) {\n\n el.checked = true;\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n let val = $(this).val();\n\n if (this.checked) {\n\n self.data[self.name] = val;\n self.$select.find('input[type=\"radio\"]').not($(this)).prop('checked', false);\n self.$select.find('input[type=\"radio\"]').not($(this)).removeClass('checked');\n\n } else {\n\n self.data[self.name] = [];\n }\n });\n\n this.$el.on('click'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n if ($(this).hasClass('checked') && self.allowNoneOnRadioSelect) {\n\n self.data[self.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html(self.dynamicTitleDefault);\n }\n\n } else {\n\n $(this).addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($(this).parent().find('[data-label]').text());\n }\n }\n\n self.onSelect(this);\n });\n\n if (this.scroll) {\n\n this.$scrollableContent.find('.ps__thumb-y').mousedown(function() {\n self.$scrollableContent.addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if (self.$scrollableContent.hasClass('ps-mousedown-scroll')) {\n self.$scrollableContent.removeClass('ps-mousedown-scroll');\n }\n });\n }\n\n if (this.showSearch) {\n\n this.$searchInput.on('keydown'+'.'+NAME, debounce(function () {\n\n self.searchString = $(this).val().trim();\n self.search.call(self);\n\n }, 250));\n\n this.$searchInput.on('focusin'+'.'+NAME, function () {\n\n self.$searchContainer.addClass('focused');\n });\n\n this.$searchInput.on('focusout'+'.'+NAME, function () {\n\n self.$searchContainer.removeClass('focused');\n });\n\n this.$searchContainer.on('click'+'.'+NAME, '[data-clear-search]', function () {\n\n if (self.searchString.length) {\n\n self.$searchInput.val('');\n self.searchString = '';\n self.search.call(self);\n\n } else {\n\n return;\n }\n });\n }\n\n if (this.showFooter) {\n\n this.$closeButton.on('click'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(document).on('touchstart click', function(e) {\n\n if (!self.$el.is(e.target) && !self.$el.has(e.target).length && self.contentOpen && !self.preventClose) {\n\n self.close.call(self);\n }\n });\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Get data\n getData(data) {\n\n if (data) {\n return this.data[data];\n } else {\n return this.data;\n }\n }\n\n // Set data\n setData() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.searchApi.length) {\n\n let searchUrl = this.searchApi;\n let itemCount = this.data[this.name].length;\n let currentCount = 0;\n\n this.data[this.name].forEach(function(value) {\n\n searchUrl += encodeURIComponent('#'+value);\n currentCount++;\n\n if (currentCount !== itemCount) {\n searchUrl += '+';\n }\n });\n\n $.ajax({\n method: 'GET',\n url: searchUrl\n }).done(function(data) {\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n let itemIds = items.map(item => {\n return parseInt(item.id, 10);\n });\n\n // Remove value from data if it doesn't exist anymore\n self.data[self.name] = self.data[self.name].filter(function(value) {\n return itemIds.indexOf(parseInt(value, 10)) > -1;\n });\n\n if (self.data[self.name].length == 0) {\n self.$selectIconContainer.html(self.selectIconDefault);\n }\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let $inputs = self.$scrollableContent.find(':input');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n\n if (self.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n self.type = 'checkbox';\n } else if (self.$scrollableContent.find(':input[type=\"radio\"]').length) {\n self.type = 'radio';\n }\n\n if (self.type == 'checkbox') {\n\n self.data[self.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (self.type == 'radio') {\n\n let $input = $inputs.filter(function() { return this.value == self.data[self.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n self.onSelect($input[0]);\n }\n });\n });\n\n } else {\n\n // Remove value from data if it doesn't exist anymore\n let $inputs = this.$scrollableContent.find(':input');\n let inputValues = $inputs.length > 0 ? $inputs.map(function() {\n return parseInt(this.value, 10);\n }).get() : [];\n\n this.data[this.name] = this.data[this.name].filter(function(value) {\n return inputValues.indexOf(parseInt(value, 10)) > -1;\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$scrollableContent.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n this.data[this.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() {\n return this.value == value\n });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let $input = $inputs.filter(function() {\n return this.value == self.data[self.name]\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.onSelect($input[0]);\n }\n }\n }\n\n // Search\n search() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.searchString.length) {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n\n $.ajax({\n method: 'GET',\n url: this.searchApi + this.searchString\n }).done(function(data) {\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let faNameSpace = self.opts.faPro ? 'fal' : 'fas';\n\n self.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n self.$searchIconContainer.attr('data-clear-search', 'true');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n });\n });\n\n } else {\n\n let results = this.searchData.filter(function(item) {\n return item.val.toLocaleLowerCase().indexOf(self.searchString.toLocaleLowerCase()) > -1;\n });\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n\n results.forEach(function(item) {\n $(self.$selectItems[item.id]).addClass('visible');\n });\n\n this.$selectItems.not('.visible').addClass('d-none');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', 'true');\n }\n\n } else {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n\n } else {\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n }\n }\n\n if (this.scroll) {\n this.scroll.update();\n }\n\n this.onUpdate();\n }\n\n // Show\n show() {\n\n if (this.$el.hasClass('show')) {\n return;\n }\n\n let $otherSelects = $('.select.show');\n let zindex = 1;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if ($otherSelects.length) {\n zindex = parseInt($otherSelects.first().css('z-index'), 10) + 2;\n }\n\n this.$el.css({\n 'max-height': (this.scrollContentHeight + this.$selectHeader.outerHeight(true))+'px'\n });\n\n this.$el.addClass('show');\n\n if (!$otherSelects.length) {\n zindex = parseInt(this.$el.css('z-index'), 10) + 1;\n }\n\n this.$el.css({\n 'z-index': zindex\n });\n\n if (this.scroll && this.$scrollableContent.length) {\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n }\n\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-up icon\"></i>`);\n\n setTimeout(() => {\n this.$el[0].scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'nearest'});\n }, 300);\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.preventClose) {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.$el.css('max-height', '');\n this.$el.removeClass('show');\n\n setTimeout(() => {\n self.$el.removeAttr('style');\n }, 300);\n\n if (this.data[this.name].length > 0 && this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n }\n\n // On select\n onSelect(el) {\n\n let self = this;\n let onSelect = this.opts.onSelect;\n let data = $(el).parents('.select-item').data();\n\n if (this.searchApi.length && !$.isEmptyObject(data)) {\n\n if ($(el).length && el.checked) {\n\n this.items.push(data);\n\n } else {\n\n this.items = $.grep(this.items, function(item) { return item[self.primaryKeyword] != data.id });\n }\n }\n\n if (typeof onSelect === 'function') {\n\n onSelect.call(el, data, this);\n }\n }\n\n // Add more items after plugin is already initialized\n appendItems(items, selectItems) {\n\n return new Promise((resolve, reject) => {\n\n let self = this;\n\n if (!$.isArray(items)) {\n\n let itemsArr = [];\n\n itemsArr.push(items);\n items = itemsArr;\n }\n\n items = items.filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n\n items.forEach(item => {\n\n this.items.push(item);\n });\n\n let domItems = this._renderItemList(items);\n\n this.$scrollableContent.prepend(domItems);\n this.$selectItems = this.$select.find('.select-item');\n\n this.buildSearchData().then(() => {\n\n if (this.$selectItems.length > 0) {\n\n if (this.$select.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$select.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n items.forEach(item => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = parseInt($input.val(), 10);\n\n $input.prop('checked', true);\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name].push(val) : false;\n this.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let item = items[0];\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = parseInt($input.val(), 10);\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name] = [val] : false;\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.$select.find('input[type=\"radio\"]').not($input).prop('checked', false);\n this.$select.find('input[type=\"radio\"]').not($input).removeClass('checked');\n this.onSelect($input[0]);\n }\n }\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectHeader.attr('style')) {\n this.$selectHeader.removeAttr('style');\n }\n\n if (this.$selectIconContainer.hasClass('d-none')) {\n this.$selectIconContainer.removeClass('d-none');\n }\n\n resolve();\n });\n });\n }\n\n // Deselect items\n deselectItems(array) {\n\n return new Promise((resolve, reject) => {\n\n array.forEach(id => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == id });\n\n if ($input[0].checked) {\n\n $input.trigger('click');\n }\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n });\n }\n\n // Get item\n getItem(key, val) {\n\n let result = $.grep(this.items, function(item) { return item[key] == val })[0];\n\n return result ? result : null;\n }\n\n // Get selected items\n getSelectedItems(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(Number);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result;\n }\n\n // Get selected item\n getSelectedItem(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(Number);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result[0] == null ? null : result[0];\n }\n\n _renderItemList(items) {\n\n let result = [];\n\n for (let i = 0; i < items.length; ++i) {\n\n let item = items[i];\n let label = '';\n\n if (typeof this.labelTemplate === 'function') {\n\n label = this.labelTemplate(item);\n\n } else {\n\n if (item.name) {\n label = item.name;\n } else if (item.label) {\n label = item.label;\n } else if (item.value) {\n label = item.value;\n }\n }\n\n result.push($(`\n\n <div class=\"select-item\">\n\n <div class=\"select-item-${this.type}\">\n\n <div class=\"styled-${this.type}\">\n\n <input type=\"${this.type}\" id=\"select-${this.name}-${items[i].id}\" value=\"${items[i].id}\" tabindex=\"-1\">\n\n <label for=\"select-${this.name}-${items[i].id}\">\n\n <span class=\"radio-inner\">\n <svg viewBox=\"0 0 18 18\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n\n <span class=\"${this.type}-label\"${typeof this.labelTemplate !== 'function' ? ' data-label' : ''}>\n ${label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n\n `).data(item));\n }\n\n return result;\n }\n\n _renderSearch() {\n\n if (!this.showSearch) {\n\n return '';\n\n } else {\n\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n return `\n\n <div class=\"select-search\">\n\n <div class=\"select-search-input\">\n\n <input type=\"text\" name=\"select-search\" value=\"\" placeholder=\"${this.searchPlaceholder}\" tabindex=\"-1\">\n\n </div>\n\n <div class=\"select-search-icon\">\n\n <i class=\"${faNameSpace} fa-search icon\"></i>\n\n </div>\n\n </div>\n\n `;\n }\n }\n\n _renderFooter() {\n\n if (!this.showFooter) {\n\n return '';\n\n } else {\n\n return `\n\n <div class=\"select-footer\">\n\n <button class=\"btn btn-block btn-secondary\" type=\"button\" tabindex=\"-1\" data-select-close >\n ${this.btnCloseText}\n </button>\n\n </div>\n\n `;\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 Select(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}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Select._jQueryInterface;\n $.fn[NAME].Constructor = Select;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Select._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n name: '',\n type: 'checkbox',\n labelTemplate: null,\n confirmCheck: null,\n confirmUncheck: null,\n setData: null,\n scrollContentHeight: 100,\n faPro: false,\n items: [],\n showSearch: false,\n showFooter: false,\n searchApi: false,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onReset: null,\n onSearch: null,\n onSelect: null,\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n debug: false,\n dynamicTitle: false,\n dynamicTitleDefault: '',\n dynamicTitleEmptyDefault: '',\n allowNoneOnRadioSelect: true,\n preventUncheck: false,\n showValidStateIcon: true,\n itemsToExclude: [],\n primaryKeyword: 'id'\n }\n}\n\nexport default Select;","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.positionObserver = this.$el.attr('data-position-observer') ? JSON.parse(this.$el.attr('data-position-observer')) : this.opts.positionObserver;\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 = 0;\n let dropdownPosY = 0;\n let offsetX = 0;\n let offsetY = 0;\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 const offsets = this.offset.split(',');\n\n offsetX = offsets[0];\n offsetY = offsets[1];\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n if (this.positionObserver && this.$container.length > 0) {\n\n // this is not set during init so we have to fetch it\n // and let's assume that this containing parent fits and is inside\n // viewport\n let $containingParent = this.$container.parent();\n let index = 0;\n while (\n $containingParent.css('overflow-x') !== 'hidden' && \n $containingParent.css('overflow') !== 'hidden' &&\n ($containingParent.prop('tagName') || '').toLowerCase() !== 'body' &&\n index < 100\n ) {\n $containingParent = $containingParent.parent();\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n ++index;\n }\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n const containingBoundingRect = $containingParent.get(0).getBoundingClientRect();\n const containerBoundingRect = this.$container.get(0).getBoundingClientRect();\n\n if (containingBoundingRect.width < dropdownWidth) {\n this.$dropdown.css('max-width', containingBoundingRect.width);\n dropdownWidth = containingBoundingRect.width;\n } else {\n this.$dropdown.css('max-width', '');\n }\n\n if (containingBoundingRect.height < dropdownHeight) {\n this.$dropdown.css('max-height', containingBoundingRect.height);\n dropdownHeight = containingBoundingRect.height;\n } else {\n this.$dropdown.css('max-height', '');\n }\n\n const maxTop = Math.max(Math.abs(containingBoundingRect.y - containerBoundingRect.y), 0);\n const maxLeft = Math.max(Math.abs(containingBoundingRect.x - containerBoundingRect.x), 0);\n const maxRight = $containingParent.get(0).scrollWidth - (containerBoundingRect.x + containerBoundingRect.width);\n const maxBottom = $containingParent.get(0).scrollHeight - (containerBoundingRect.y + (placement === 'dropbottom' ? containerBoundingRect.height : 0));\n\n if (maxLeft < dropdownWidth && dropdownPosX < dropdownTriggerPosX) {\n dropdownPosX = dropdownTriggerPosX;\n\n // would be on top of the trigger\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (maxRight < dropdownWidth && dropdownPosX + dropdownWidth > dropdownTriggerPosX + dropdownTriggerWidth) {\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth;\n\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (dropdownPosY < dropdownTriggerPosY && maxTop < dropdownHeight) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + offsetY;\n }\n\n if (dropdownPosY >= dropdownTriggerPosY && maxBottom < dropdownHeight) {\n if (dropdownPosX >= dropdownTriggerPosX + dropdownTriggerWidth || dropdownTriggerPosX >= dropdownPosX + dropdownWidth) {\n dropdownPosY = dropdownTriggerPosY - (dropdownHeight - maxBottom);\n } else {\n dropdownPosY = dropdownTriggerPosY - dropdownHeight - offsetY\n }\n }\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 positionObserver: 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;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolTooltip';\nconst DATA_KEY = 'plugin_coolTooltip';\n\nclass Tooltip extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, 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 this.buildCache();\n this.bindEvents();\n this.onInit();\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.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'tooltip-'+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.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n this.$el.on('destroyed'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$tooltip) {\n this.setPosition();\n this.onUpdate();\n }\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 // Build tooltip\n buildTooltip() {\n\n this.$tooltip = $(`\n\n <div class=\"tooltip\" role=\"tooltip\" id=\"${this.id}\">\n\n <div class=\"arrow\"></div>\n\n <div class=\"tooltip-inner\">${this.content}</div>\n\n </div>\n\n `);\n\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$tooltip);\n this.log(this.$arrow);\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('Placement: '+this.placement);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$tooltip.addClass('tooltip-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let tooltipWidth = this.$tooltip.outerWidth(true);\n let tooltipHeight = this.$tooltip.outerHeight(true);\n let tooltipTriggerWidth = this.$el.outerWidth();\n let tooltipTriggerHeight = this.$el.outerHeight();\n let tooltipTriggerPosX = this.$el.offset().left;\n let tooltipTriggerPosY = this.$el.offset().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let tooltipPosX;\n let tooltipPosY;\n\n if (placement === 'top') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);\n arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);\n arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$tooltip.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n // Correct placement if tooltip goes outside of container\n let tooltipOverflowCount = 0;\n let tooltipPosition = {\n left: this.$tooltip.position().left,\n top: this.$tooltip.position().top,\n right: containerInnerWidth - (this.$tooltip.position().left + tooltipWidth),\n bottom: containerInnerHeight - (this.$tooltip.position().top + tooltipHeight),\n };\n let tooltipOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (tooltipPosition.right < 0) {\n\n tooltipOverflow.right = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from right');\n }\n\n if (tooltipPosition.left < 0) {\n\n tooltipOverflow.left = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from left');\n }\n\n if (tooltipPosition.bottom < 0) {\n\n tooltipOverflow.bottom = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from bottom');\n }\n\n if (tooltipPosition.top < 0) {\n\n tooltipOverflow.top = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from top');\n }\n\n if (tooltipOverflowCount > 0) {\n\n if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {\n\n this.log('Changing tooltip placement to right');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n\n this.log('Changing tooltip placement to left');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (tooltipOverflow.left || tooltipOverflow.right)) {\n\n if (tooltipPosition.top > tooltipPosition.bottom) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\n\n this.log('Adjusting tooltip size or position in order to tooltip fit in the container');\n\n if (tooltipOverflow.left) {\n\n this.log('Tooltip overflowing from left');\n\n let overflowAmount = Math.abs(tooltipPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX >= tooltipPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n tooltipPosX += overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (tooltipOverflow.top) {\n\n this.log('Tooltip overflowing from top');\n\n let overflowAmount = Math.abs(tooltipPosition.top);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (tooltipOverflow.right) {\n\n this.log('Tooltip overflowing from right');\n\n let overflowAmount = Math.abs(tooltipPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX <= tooltipPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n\n this.log('Tooltip overflowing from bottom');\n\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$tooltip.css({\n width: tooltipWidth,\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)'\n });\n\n this.fixTooltipPosition = false;\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n\n this.$tooltip.addClass(this.animationSpeed);\n this.$tooltip.animateCss(this.animationIn);\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n\n } else {\n\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animated')) {\n\n this.$tooltip.animateCss(this.animationOut, () => {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\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 Tooltip(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] = Tooltip._jQueryInterface;\n $.fn[NAME].Constructor = Tooltip;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Tooltip._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n container: 'body',\n animation: false,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n placement: 'bottom',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Tooltip;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSectionTabs';\nconst DATA_KEY = 'plugin_coolSectionTabs';\n\nclass SectionTabs extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.sectionTabs) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.sectionTabs, 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 this.buildCache();\n this.bindEvents();\n this.checkForChanges();\n this.onInit();\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.$dropdownContainer = this.$el.find('.dropdown-container');\n this.$dropdownList = this.$el.find('.dropdown-list');\n this.tabsCount = this.$el.find('> .tab-item').length;\n this.tabs = this.$el.find('> .tab-item:visible');\n\n $.each(this.tabs, function(i, el) {\n $(el).data('width', $(el).outerWidth(true));\n });\n\n this.log(this.$el);\n this.log(this.$dropdownContainer);\n this.log(this.$dropdownList);\n this.log(this.tabsCount);\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n $(window).on('resize', debounce(() => {\n this.checkForChanges();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this._name);\n }\n\n // Move to list\n moveToList(el) {\n\n $(el).insertBefore(this.$dropdownContainer);\n\n this.checkForChanges();\n }\n\n // Move to dropdown\n moveToDropdown(el) {\n\n $(el).appendTo(this.$dropdownList);\n\n this.checkForChanges();\n }\n\n // Overflow status\n overflowStatus() {\n\n if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {\n return true;\n } else {\n return false;\n }\n }\n\n // CheckForChanges\n checkForChanges() {\n\n let dropdownItems = this.$dropdownList.children();\n let moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);\n let tabs = this.$el.find('> .tab-item:visible');\n let usedSpace = 0;\n\n $.each(tabs, function(i, el) {\n usedSpace += $(el).outerWidth(true);\n });\n\n let freeSpace = this.$el[0].offsetWidth - usedSpace;\n\n if (dropdownItems.length > 0) {\n\n if (!this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.addClass('visible');\n }\n\n } else {\n\n if (this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.removeClass('visible');\n }\n }\n\n if (this.overflowStatus() == true) {\n\n if (moveableTabs.length > 0) {\n this.moveToDropdown(moveableTabs.last());\n }\n\n } else {\n\n if (dropdownItems.length > 0) {\n\n if (freeSpace > dropdownItems.last().data('width')) {\n this.moveToList(dropdownItems.last());\n }\n }\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 SectionTabs(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] = SectionTabs._jQueryInterface;\n $.fn[NAME].Constructor = SectionTabs;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return SectionTabs._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n debug: false\n }\n}\n\nexport default SectionTabs;\n","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolCollapse';\nconst DATA_KEY = 'plugin_coolCollapse';\n\nclass Collapse extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.collapse) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dialog, 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 this.buildCache()\n this.bindEvents();\n this.onInit();\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.$target = this.$el.data('target') ? $(document).find(this.$el.data('target')) : $(document).find(this.opts.target);\n this.expanded = this.$el.attr('aria-expanded') == 'true' ? true : false;\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(document).find('[data-collapse-indicator=\"' + this.$el.data('target') + '\"]');\n\n } else {\n\n this.$target = $(this.$el).parent().find('.collapse');\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(this.$el).parent().find('[data-collapse-indicator]');\n }\n\n if (this.expanded) {\n this.$target.css('height', 'auto');\n }\n\n this.log(this.$el);\n this.log(this.$target);\n this.log(this.$container);\n this.log(this.$indicator);\n this.log('Expanded: '+this.expanded);\n this.log('Target height: '+this.targetHeight+'px');\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n this.$el.on('click'+'.'+this.name, (e) => {\n\n if (this.expanded) {\n this.close();\n } else {\n this.show();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.log('Target height: '+this.targetHeight+'px');\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this.name);\n }\n\n // Which transition\n whichTransitionEvent() {\n\n let el = document.createElement('text-transition');\n let transEndEventNames = {\n 'WebkitTransition': 'webkitTransitionEnd', // Saf 6, Android Browser\n 'MozTransition': 'transitionend', // only for FF < 15\n 'transition': 'transitionend' // IE10, Opera, Chrome, FF 15+, Saf 7+\n };\n\n for (let t in transEndEventNames) {\n\n if (el.style[t] !== undefined) {\n return transEndEventNames[t];\n }\n }\n }\n\n // Show\n show() {\n\n // Update target height if something is added to dom which causes height to change\n if (this.targetHeight !== this.$target.height()) {\n this.targetHeight = this.$target.height();\n }\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.addClass('show');\n }\n\n this.$target.css('height');\n this.$target.css('height', this.targetHeight);\n\n if (this.$indicator.length) {\n this.$indicator.addClass('show');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse show');\n this.$el.attr('aria-expanded', true);\n this.$target.css('height', 'auto');\n this.expanded = true;\n });\n\n this.onShow();\n }\n\n // Close\n close() {\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.removeClass('show');\n }\n\n this.$target.css('height', this.$target.height());\n\n setTimeout(() => {\n this.$target.css('height', 0);\n }, 10);\n\n if (this.$indicator.length && this.$indicator.hasClass('show')) {\n this.$indicator.removeClass('show');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse');\n this.$el.attr('aria-expanded', false);\n this.expanded = false;\n\n // Update target height if something is added to dom which causes height to change\n if (this.targetHeight !== this.$target.height()) {\n this.targetHeight = this.$target.height();\n }\n });\n\n this.onClose();\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 Collapse(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] = Collapse._jQueryInterface;\n $.fn[NAME].Constructor = Collapse;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Collapse._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n target: null,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Collapse;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolToast';\nconst DATA_KEY = 'plugin_coolToast';\n\nclass Toast {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.toast) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.toast, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.toasts = [];\n this.queue = [];\n this.processingQueue = false;\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Add item to queue\n addQueue(toast) {\n\n this.queue.push(toast);\n\n if (this.processingQueue) {\n return;\n }\n\n return this.processQueue();\n }\n\n // Process queue\n processQueue() {\n\n if (this.processingQueue) {\n\n this.queue.shift();\n }\n\n if (!this.queue.length) {\n\n this.processingQueue = false;\n return;\n }\n\n this.processingQueue = true;\n\n return this.show(this.queue[0]);\n }\n\n // Init toast\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let toast = this.buildToast(settings);\n\n this.addQueue(toast);\n this.onInit(toast);\n\n return toast;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build toast\n buildToast(settings) {\n\n let toast = {\n uuid: 'toast-'+this.generateUUID(),\n placement: settings.placement,\n placementX: settings.placementX,\n placementY: settings.placementY,\n offset: settings.offset,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n dismiss: settings.dismiss,\n size: settings.size,\n header: settings.header,\n theme: settings.theme,\n title: settings.title,\n content: settings.content,\n template: settings.template,\n maxBodyHeight: settings.maxBodyHeight,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (typeof toast.content === 'function') {\n\n toast.$el = $(toast.template());\n\n } else {\n\n toast.$el = $(this._renderTemplate(toast));\n }\n\n toast.$inner = toast.$el.find('.toast-inner');\n toast.$closeBtn = toast.$el.find('[data-toast-close]');\n\n this.log(toast);\n this.toasts.push(toast);\n\n return toast;\n }\n\n // Bind events that trigger methods\n bindEvents(toast) {\n\n let self = this;\n\n toast.$el.on('click', '[data-toast-close]', () => {\n\n if (toast.$el) {\n self.close(toast);\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (toast.$el) {\n this.setPosition(toast);\n }\n }, 250));\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(toast, placement, placementY, placementX) {\n\n if (typeof placementY === 'undefined' || placementY === null) {\n placementY = toast.placementY;\n }\n\n if (typeof placementX === 'undefined' || placementX === null) {\n placementX = toast.placementX;\n }\n\n if (!placementX || !placementY) {\n placement = toast.placement\n }\n\n if (toast.offset) {\n\n let offsets = toast.offset.split(',')\n let offsetX = parseInt(offsets[0], 10);\n let offsetY = parseInt(offsets[1], 10);\n }\n\n let toastWidth = toast.$el.outerWidth(true);\n let toastHeight = toast.$el.outerHeight(true);\n let toastPosX;\n let toastPosY;\n\n if (placement) {\n\n if (placement === 'top-left') {\n\n toastPosX = 0;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n toastPosY += 30;\n }\n\n } else if (placement === 'top-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = 0;\n\n this.log(this.$container.width);\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosY += 30;\n }\n\n } else if (placement === 'top-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n toastPosY += 30;\n }\n\n } else if (placement === 'center-left') {\n\n toastPosX = 0;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n }\n\n } else if (placement === 'center-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n }\n\n } else if (placement === 'center-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n }\n\n } else if (placement === 'bottom-left') {\n\n toastPosX = 0;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += 30;\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-right') {\n\n toastPosX = this.$container.width() - toastWidth\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += -30;\n toastPosY += -30;\n }\n }\n\n } else {\n\n toastPosX = placementX;\n toastPosY = placementY;\n }\n\n toast.$el.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+toastPosX+'px, '+toastPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Toast width: '+toastWidth+'px');\n this.log('Toast height: '+toastHeight+'px');\n this.log('Toast position Y: '+toastPosX+'px');\n this.log('Toast position x: '+toastPosY+'px');\n }\n\n // Show\n show(toast) {\n\n this.$container.append(toast.$el);\n this.bindEvents(toast);\n this.setPosition(toast);\n\n if (toast.animation) {\n\n toast.$el.addClass('show');\n toast.$inner.addClass(toast.animationSpeed);\n toast.$inner.animateCss(toast.animationIn);\n\n } else {\n\n toast.$el.addClass('show');\n }\n\n if (toast.dismiss) {\n\n setTimeout(() => {\n this.close(toast);\n }, toast.dismiss * 1000);\n }\n\n this.onShow(toast);\n }\n\n // Close\n close(toast) {\n\n if (toast.animation && !toast.$inner.hasClass('animated')) {\n\n toast.$el.removeClass('show');\n toast.$inner.animateCss(toast.animationOut, () => {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n });\n\n } else {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n }\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(toast) {\n\n let onInit = toast.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(toast);\n }\n }\n\n // Show callback\n onShow(toast) {\n\n let onShow = toast.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(toast);\n }\n }\n\n // Close callback\n onClose(toast) {\n\n let onClose = toast.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(toast);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render template\n _renderTemplate(toast) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let content = '';\n let header = '';\n let body = '';\n let bodyCloseBtn = '';\n\n if (typeof toast.content === 'function') {\n\n content = toast.content();\n\n } else {\n\n content = toast.content;\n }\n\n if (toast.header) {\n\n header = `\n <div class=\"toast-header\">\n\n <span>${toast.title}</span>\n\n <button type=\"button\" data-toast-close>\n <i class=\"${faNameSpace} fa-times icon\"></i>\n </button>\n\n </div>\n `;\n\n } else {\n\n bodyCloseBtn = `\n <button type=\"button\" data-toast-close>\n\n <i class=\"${faNameSpace} fa-times icon\"></i>\n\n </button>\n `;\n }\n\n body = `\n <div class=\"toast-body\">\n\n <span>${content}</span>\n ${bodyCloseBtn}\n\n </div>\n `;\n\n return `\n <div class=\"toast toast-${toast.size} toast-${toast.theme}\" role=\"alert\" id=\"${toast.uuid}\">\n\n <div class=\"toast-inner\">\n\n ${header}\n ${body}\n\n </div>\n\n </div>\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 Toast(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] = Toast._jQueryInterface;\n $.fn[NAME].Constructor = Toast;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Toast._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n content: '',\n template: '',\n theme: 'dark',\n placement: 'bottom-center',\n placementX: null,\n placementY: null,\n animation: true,\n animationIn: 'slideInUp',\n animationOut: 'slideOutDown',\n animationSpeed: 'faster',\n offset: null,\n size: null,\n dismiss: 3,\n header: false,\n faPro: false,\n debug: false,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n }\n}\n\nexport default Toast;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\n\nconst NAME = 'coolDialog';\nconst DATA_KEY = 'plugin_coolDialog';\n\nclass Dialog {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.dialog) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.dialog, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.dialogs = [];\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Init dialog\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let dialog = this.buildDialog(settings);\n\n this.show(dialog);\n this.bindEvents(dialog);\n this.onInit(dialog);\n\n return dialog;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build dialog\n buildDialog(settings) {\n\n let self = this;\n let dialog = {\n uuid: 'dialog-'+this.generateUUID(),\n title: settings.title,\n template: settings.template,\n body: settings.body,\n footer: settings.footer,\n size: settings.size,\n classes: settings.classes,\n centered: settings.centered,\n backdrop: settings.backdrop,\n preventScroll: settings.preventScroll,\n closeBtn: settings.closeBtn,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n callbacks: settings.callbacks,\n maxBodyHeight: settings.maxBodyHeight,\n overflowVisible: settings.overflowVisible,\n actions: settings.actions,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (dialog.maxBodyHeight == null) {\n\n dialog.maxBodyHeight = window.innerHeight - 200;\n }\n\n if (typeof dialog.template === 'function') {\n\n dialog.$el = $(dialog.template());\n\n } else {\n\n dialog.$el = $(this._renderTemplate(dialog));\n }\n\n dialog.show = function() {\n self.show(dialog);\n };\n\n dialog.close = function() {\n self.close(dialog);\n };\n\n this.log(dialog);\n this.dialogs.push(dialog);\n\n return dialog;\n }\n\n // Bind events that trigger methods\n bindEvents(dialog) {\n\n let self = this;\n\n dialog.$el.on('click', '[data-dialog-close]', function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.close === 'function') {\n\n dialog.callbacks.close.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-remove]', function (e) {\n\n dialog.$el.trigger('dialog.remove');\n\n if (typeof dialog.callbacks.remove === 'function') {\n\n dialog.callbacks.remove.call(self, function () {\n self.close(dialog)\n }, dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-confirm]', debounce(function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.confirm === 'function') {\n\n dialog.callbacks.confirm.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n }));\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 // Show\n show(dialog) {\n\n if (!this.$container.hasClass('has-dialogs')) {\n this.$container.addClass('has-dialogs');\n }\n\n if (dialog.preventScroll && !this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.addClass('dialog-prevent-scroll');\n }\n\n if (this.dialogs.length > 1) {\n\n let $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n let zIndex = parseInt($prevDialog.css('z-index'), 10) + 1;\n\n dialog.$el.css('z-index', zIndex);\n\n $prevDialog.css({\n 'transition': 'opacity 0.3s',\n 'opacity': 0,\n 'visibility': 'visible'\n });\n }\n\n if (dialog.backdrop && $('.dialog-backdrop').length < 1) {\n\n this.$container.append('<div class=\"dialog-backdrop\"></div>');\n\n let checkForBackdrop = setInterval(() => {\n\n if (this.dialogs.length == 0 && $('.dialog-backdrop').length) {\n\n $('.dialog-backdrop').remove();\n clearInterval(checkForBackdrop);\n }\n\n }, 100);\n }\n\n this.$container.append(dialog.$el);\n\n if (dialog.animation) {\n dialog.$el.find('.dialog-content').addClass(dialog.animationSpeed).animateCss(dialog.animationIn);\n }\n\n this.onShow(dialog);\n }\n\n // Close\n close(dialog) {\n\n let $prevDialog = null;\n\n if (this.dialogs.length > 1) {\n $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n }\n\n if ($('.dialog[data-dialog-backdrop=\"true\"]').length === 0 && $('.dialog-backdrop').length) {\n $('.dialog-backdrop').remove();\n }\n\n if (dialog.animation) {\n\n dialog.$el.find('.dialog-content').animateCss(dialog.animationOut, () => {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n });\n\n } else {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n }\n\n this.onClose(dialog);\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(dialog) {\n\n let onInit = dialog.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(dialog);\n }\n }\n\n // Show callback\n onShow(dialog) {\n\n let onShow = dialog.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(dialog);\n }\n }\n\n // Close callback\n onClose(dialog) {\n\n let onClose = dialog.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(dialog);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render footer\n _renderFooter(dialog) {\n\n let footer = '';\n\n if (typeof dialog.footer === 'function') {\n\n footer = dialog.footer();\n\n } else if (dialog.footer !== '' && dialog.footer !== false && dialog.footer !== true) {\n\n footer = dialog.footer;\n\n } else if (dialog.footer === true) {\n\n let btnCancel = '';\n let btnRemove = '';\n let btnConfirm = '';\n let btnStyle = '';\n let btnClasses = '';\n let btnAttrs = '';\n\n if (dialog.actions.close.visible) {\n\n btnStyle = dialog.actions.close.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.close.classes ? ' '+dialog.actions.close.classes : '';\n btnAttrs = dialog.actions.close.attrs ? ' '+dialog.actions.close.attrs : '';\n btnCancel = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-close>\n ${dialog.actions.close.content}\n </button>\n `;\n }\n\n if (dialog.actions.remove.visible) {\n\n btnStyle = dialog.actions.remove.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.remove.classes ? ' '+dialog.actions.remove.classes : '';\n btnAttrs = dialog.actions.remove.attrs ? ' '+dialog.actions.remove.attrs : '';\n btnRemove = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-remove>\n ${dialog.actions.remove.content}\n </button>\n `;\n }\n\n if (dialog.actions.confirm.visible) {\n\n btnStyle = dialog.actions.confirm.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.confirm.classes ? ' '+dialog.actions.confirm.classes : '';\n btnAttrs = dialog.actions.confirm.attrs ? ' '+dialog.actions.confirm.attrs : '';\n btnConfirm = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-confirm>\n ${dialog.actions.confirm.content}\n </button>\n `;\n }\n\n footer = `\n ${btnCancel}\n ${btnRemove}\n ${btnConfirm}\n `;\n\n } else {\n\n return footer;\n }\n\n if (footer) {\n\n return `\n <div class=\"dialog-footer\">\n ${footer}\n </div>\n `;\n }\n }\n\n // Render template\n _renderTemplate(dialog) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let classes = dialog.classes ? ' '+dialog.classes : '';\n let centered = dialog.centered ? ' dialog-centered' : '';\n let size = dialog.size ? ' dialog-'+dialog.size : '';\n let overFlowVisible = dialog.overflowVisible ? ' dialog-overflow-visible' : '';\n let uuid = ' data-dialog-uuid=\"'+dialog.uuid+'\"';\n let backdrop = dialog.backdrop ? ' data-dialog-backdrop=\"true\"' : ' data-dialog-backdrop=\"false\"';\n let title = dialog.title;\n let closeBtn = dialog.closeBtn ? `<button type=\"button\" data-dialog-close><i class=\"${faNameSpace} fa-times icon\"></i></button>` : '';\n let maxBodyHeight = dialog.maxBodyHeight ? ' style=\"max-height: '+dialog.maxBodyHeight+'px\"' : '';\n let body = '';\n let footer = this._renderFooter(dialog);\n\n if (typeof dialog.body === 'function') {\n\n body = dialog.body();\n\n } else {\n\n body = dialog.body;\n }\n\n return `\n <div class=\"dialog${classes}${centered}${size}${overFlowVisible}\"${uuid}${backdrop}>\n\n <div class=\"dialog-container\">\n\n <div class=\"dialog-content\">\n\n <div class=\"dialog-header\">\n\n <span class=\"dialog-title\">\n ${title}\n </span>\n\n ${closeBtn}\n\n </div>\n\n <div class=\"dialog-body\"${maxBodyHeight}>\n\n ${body}\n\n </div>\n\n ${footer}\n\n </div>\n\n </div>\n\n </div>\n `;\n }\n\n static _jQueryInterface(config) {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dialog(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\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dialog._jQueryInterface;\n $.fn[NAME].Constructor = Dialog;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Dialog._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n template: '',\n body: '',\n footer: true,\n size: '', // sm/lg\n classes: '',\n centered: true,\n backdrop: true,\n preventScroll: true,\n closeBtn: true,\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n callbacks: {},\n maxBodyHeight: null,\n overflowVisible: false,\n faPro: false,\n debug: true,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n actions: {\n close: {\n primary: false,\n visible: true,\n content: 'Close',\n classes: '',\n attrs: ''\n },\n remove: {\n primary: false,\n visible: true,\n content: 'Remove',\n classes: '',\n attrs: ''\n },\n confirm: {\n primary: true,\n visible: true,\n content: 'Confirm',\n classes: '',\n attrs: ''\n }\n }\n }\n}\n\nexport default Dialog;","import Common from './src/common';\nimport Popover from './src/popover.js';\nimport Select from './src/select';\nimport Dropdown from './src/dropdown';\nimport Tooltip from './src/tooltip';\nimport SectionTabs from './src/section-tabs';\nimport Collapse from './src/collapse';\nimport Toast from './src/toast';\nimport Dialog from './src/dialog';\n\nexport default {\n\tCommon,\n\tPopover,\n\tSelect,\n\tDropdown,\n\tTooltip,\n\tSectionTabs,\n\tCollapse,\n\tToast,\n\tDialog\n}"],"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","$","fn","extend","animateCss","animationName","callback","animationEnd","addClass","one","removeClass","on","Cool","Common","initialize","opts","coolPopover","popover","coolSelect","select","coolDropdown","dropdown","coolTooltip","tooltip","coolCollapse","collapse","coolSectionTabs","sectionTabs","coolToast","toast","coolDialog","dialog","hasClass","not","attr","$inputGroup","closest","each","formLabelGroup","$formLabelGroup","find","trigger","$container","parents","href","data","exceptions","linkDisabled","item","is","parent","open","location","$self","btn","btnDisabled","click","toggleClass","mousedown","mouseup","$sidebarLeft","$sidebarLeftContent","sidebarLeftScroll","$sidebarTabs","scrollContainer","sidebarTabsScroll","$tab","first","css","last","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","touchEvents","special","destroyed","AbstractUIComponent","onInit","onUpdate","onDestroy","onShow","onClose","onReset","log","debug","console","NAME","DATA_KEY","Popover","defaults","init","buildCache","bindEvents","unbindEvents","$el","removeData","container","containerAutoDetect","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","title","content","offsetParent","$popover","close","show","setPosition","off","replace","c","r","random","v","toString","buildPopover","append","$arrow","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","popoverWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","popoverTriggerPosY","arrowWidth","arrowHeight","arrowPos","popoverPosX","popoverPosY","round","transform","popoverOverflowCount","popoverPosition","popoverOverflow","removeAttr","fixPopoverPosition","overflowAmount","excludePlacements","_jQueryInterface","config","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict","Select","then","buildScroll","setData","reset","items","$select","$selectItems","$selectIconContainer","html","selectIconDefault","dynamicTitle","dynamicTitleDefault","$selectTitle","text","trim","searchApi","dynamicTitleEmptyDefault","$selectHeader","showSearch","searchData","$searchInput","searchString","search","Promise","primaryResolve","primaryReject","self","faPro","scrollContentHeight","type","contentOpen","searchPlaceholder","btnCloseText","labelTemplate","confirmCheck","confirmUncheck","preventUncheck","allowNoneOnRadioSelect","showValidStateIcon","itemsToExclude","primaryKeyword","preventClose","map","Number","lengths","showFooter","secondaryResolve","secondaryReject","_renderItemList","_renderSearch","_renderFooter","$scrollableContent","$searchContainer","$searchIconContainer","$clearSearchButton","tabIndex","$footerContainer","$closeButton","buildSearchData","scroll","resolve","reject","selectLabels","closeTimeout","checked","cb","onSelect","n","prop","has","getData","faNameSpace","searchUrl","itemCount","currentCount","value","encodeURIComponent","ajax","method","url","done","itemIds","when","$inputs","$input","inputValues","results","toLocaleLowerCase","$otherSelects","zindex","scrollIntoView","behavior","block","inline","isEmptyObject","grep","appendItems","selectItems","isArray","itemsArr","domItems","prepend","deselectItems","array","getItem","getSelectedItems","segment","ids","getSelectedItem","label","onSearch","Dropdown","offset","minWidth","positionObserver","JSON","parse","closeOnItemClick","menuRight","align","$dropdown","after","$dropdownItem","next","onItemClick","str","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsetX","offsetY","offsets","$containingParent","index","toLowerCase","containingBoundingRect","containerBoundingRect","maxTop","maxLeft","maxRight","maxBottom","Tooltip","$tooltip","buildTooltip","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","tooltipPosX","tooltipPosY","tooltipOverflowCount","tooltipPosition","tooltipOverflow","fixTooltipPosition","SectionTabs","checkForChanges","$dropdownContainer","$dropdownList","tabsCount","tabs","_name","moveToList","insertBefore","moveToDropdown","appendTo","overflowStatus","dropdownItems","moveableTabs","usedSpace","freeSpace","Collapse","$target","expanded","targetHeight","$indicator","whichTransitionEvent","transEndEventNames","t","Toast","toasts","queue","processingQueue","onInitialize","addQueue","processQueue","shift","buildToast","uuid","placementX","placementY","dismiss","size","header","theme","template","maxBodyHeight","_renderTemplate","$inner","$closeBtn","toastWidth","toastHeight","toastPosX","toastPosY","body","bodyCloseBtn","Dialog","dialogs","buildDialog","footer","classes","centered","backdrop","preventScroll","closeBtn","callbacks","overflowVisible","actions","confirm","$prevDialog","eq","zIndex","checkForBackdrop","btnCancel","btnRemove","btnConfirm","btnStyle","btnClasses","btnAttrs","visible","primary","attrs","overFlowVisible"],"mappings":"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"}
1
+ {"version":3,"file":"cool.bundle.js","sources":["../../js/src/util/perfect-scrollbar.js","../../js/src/util/animate-css.js","../../js/src/common.js","../../js/src/util/index.js","../../js/src/abstract-ui-component.js","../../js/src/popover.js","../../js/src/select.js","../../js/src/dropdown.js","../../js/src/tooltip.js","../../js/src/section-tabs.js","../../js/src/collapse.js","../../js/src/toast.js","../../js/src/dialog.js","../../js/index.umd.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\n$.fn.extend({\n animateCss: function (animationName, callback) {\n\n var el = this;\n var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';\n\n el.addClass('animated ' + animationName).one(animationEnd, function(e) {\n\n $(this).removeClass('animated ' + animationName);\n\n if (callback) {\n callback();\n }\n\n }).children().on(animationEnd, function(e) {\n\n e.stopPropagation();\n });\n }\n});","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport './util/animate-css';\n\nwindow.Cool = window.Cool || {};\nwindow.Cool.settings = window.Cool.settings || {};\n\nclass Common {\n\n\tstatic initialize(opts) {\n\n // There's an error if opts is not defined\n opts = opts || {};\n\n // Save settings for later use\n window.Cool.settings = opts;\n\n // Init plugins\n $('[data-toggle=\"popover\"]').coolPopover(opts.popover);\n $('[data-toggle=\"select\"]').coolSelect(opts.select);\n $('[data-toggle=\"dropdown\"]').coolDropdown(opts.dropdown);\n $('[data-toggle=\"tooltip\"]').coolTooltip(opts.tooltip);\n $('[data-toggle=\"collapse\"]').coolCollapse(opts.collapse);\n $('[data-toggle=\"section-tabs\"]').coolSectionTabs(opts.sectionTabs);\n $('body').coolToast(opts.toast);\n $('body').coolDialog(opts.dialog);\n\n // Dom ready\n\t\t$('html').addClass('dom-ready');\n\n // Input group focus in\n\t\t$(document).on('focus', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n let $inputGroup = $(this).closest('.input-group');\n\n if (!$inputGroup.hasClass('input-group-focus')) {\n $inputGroup.addClass('input-group-focus');\n }\n }\n });\n\n // Input group focus out\n $(document).on('blur', '.form-control', function () {\n\n if (!$(this).hasClass('disabled') && $(this).not(':disabled') && !$(this).attr('readonly')) {\n\n let $inputGroup = $(this).closest('.input-group');\n\n if ($inputGroup.hasClass('input-group-focus')) {\n $inputGroup.removeClass('input-group-focus');\n }\n }\n });\n\n // Custom Form group\n $('.form-label-group').each(function(i, formLabelGroup) {\n\n let $formLabelGroup = $(formLabelGroup);\n\n $formLabelGroup.find('input').on('blur input change', function () {\n\n let val = $(this).val();\n\n if (val) {\n $(formLabelGroup).addClass('label-on-top');\n } else {\n $(formLabelGroup).removeClass('label-on-top');\n }\n\n }).trigger('change');\n });\n\n // Table actions\n $.each($('.table'), function() {\n\n if ($(this).find('[data-table-link], [data-table-btn]').length && !$(this).hasClass('table-hover')) {\n $(this).addClass('table-hover');\n }\n });\n\n $(document).on('click', '[data-table-link]', function(e) {\n\n let $container = $(this).parents('table, .table');\n let href = $(this).data('tableLink');\n let target = $(e.target);\n let exceptions = ['input', 'button', 'a', 'label', 'td.col-select'];\n let linkDisabled = false;\n\n $.each(exceptions, function(item) {\n\n if (target.is(item) || (item == 'a' && target.parent().is(item))) {\n linkDisabled = true;\n }\n });\n\n if ($container.hasClass('bulk-actions-active')) {\n linkDisabled = true;\n }\n\n if (target.hasClass('table-link-exclude')) {\n linkDisabled = true;\n }\n\n if (target.is('td, .td, img') && !linkDisabled) {\n\n if (e.ctrlKey || e.metaKey) {\n\n window.open(href, '_blank');\n\n } else {\n\n window.location.href = href;\n }\n\n } else {\n\n return;\n }\n });\n\n $(document).on('click', '[data-table-btn]', function(e) {\n\n let $container = $(this).parents('table, .table');\n let $self = $(this);\n let btn = $(this).data('tableButton');\n let target = $(e.target);\n let exceptions = ['input', 'button', 'a', 'label', 'td.col-select'];\n let btnDisabled = false;\n\n if (!btn) {\n\n btn = $self.find('button')[0];\n\n if (!btn) {\n return;\n }\n }\n\n $.each(exceptions, function(item) {\n\n if (target.is(item) || (item == 'a' && target.parent().is(item))) {\n btnDisabled = true;\n }\n });\n\n if ($container.hasClass('bulk-actions-active')) {\n btnDisabled = true;\n }\n\n if (target.hasClass('table-btn-exclude')) {\n btnDisabled = true;\n }\n\n if (target.is('td, .td, img') && !btnDisabled) {\n\n $(btn).click();\n\n } else {\n\n return;\n }\n });\n\n // button toggle\n $(document).on('click', '.btn-group-toggle .btn > input', function(e) {\n e.stopPropagation();\n });\n\n $(document).on('click', '.btn-group-toggle .btn', function() {\n $(this).find('input').trigger('click');\n $(this).parent().find('input').trigger('change');\n });\n\n $(document).on('change', '.btn-group-toggle .btn > input', function() {\n if ($(this).is(':checked')) {\n $(this).parent().addClass('active');\n } else {\n $(this).parent().removeClass('active');\n }\n });\n\n // Force select element unfocus after change\n $('select').on('change', function() {\n $(this).blur();\n });\n\n // Tabs\n $('.tab-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).parent().toggleClass('open');\n });\n\n $(document).on('click', function() {\n\n $('.tabs-container').removeClass('open');\n });\n\n // Sidebar togglers\n $('.sidebar-left-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-left-open');\n });\n\n $('.sidebar-right-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-right-open');\n });\n\n // Sidebar scroll\n $('.sidebar-content .ps__thumb-y').mousedown(function() {\n $(this).parent().parent().addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if ($('.sidebar-content').hasClass('ps-mousedown-scroll')) {\n $('.sidebar-content').removeClass('ps-mousedown-scroll');\n }\n });\n\n // Sidebar left scroll\n let $sidebarLeft = $('.sidebar-left');\n let $sidebarLeftContent = $sidebarLeft.find('.sidebar-content');\n\n if ($sidebarLeftContent.length) {\n\n let sidebarLeftScroll = new PerfectScrollbar($sidebarLeftContent[0], {\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true\n });\n }\n\n // Sidebar tabs\n let $sidebarTabs = $(document).find('.sidebar-tab');\n\n if ($sidebarTabs.length) {\n\n $.each($sidebarTabs, function(i, el) {\n\n let scrollContainer = $(el).find('.tab-content');\n\n const sidebarTabsScroll = new PerfectScrollbar(scrollContainer[0], {\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true\n });\n });\n\n $('[name=\"sidebar-tab-select\"]').on('click', function() {\n\n let val = $(this).val();\n let $tab = $('#sidebar-tab-'+val);\n\n $sidebarTabs.not($tab).removeClass('active');\n $tab.addClass('active');\n\n $('[name=\"sidebar-tab-select\"]').not($(this)).removeClass('active');\n $(this).addClass('active');\n\n if ($tab[0] == $sidebarTabs.first()[0]) {\n\n $sidebarTabs.not($tab).find('.tab-content').css({\n 'transform': 'translate3d(100%, 0px, 0px)'\n });\n\n } else if ($tab[0] == $sidebarTabs.last()[0]) {\n\n $sidebarTabs.not($tab).find('.tab-content').css({\n 'transform': 'translate3d(-100%, 0px, 0px)'\n });\n\n } else {\n\n $sidebarTabs.first().not($tab).find('.tab-content').css({\n 'transform': 'translate3d(-100%, 0px, 0px)'\n });\n\n $sidebarTabs.last().not($tab).find('.tab-content').css({\n 'transform': 'translate3d(100%, 0px, 0px)'\n });\n }\n\n $tab.find('.tab-content').css({\n 'transform': 'none'\n });\n });\n }\n\t}\n}\n\nwindow.Cool.initialize = Common.initialize;\n\nexport default Common;","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\n$.event.special.destroyed = {\n\n\tremove: function(obj) {\n\n\t\tif (obj.handler) {\n\t\t\tobj.handler();\n\t\t}\n\t}\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);\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);\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);\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);\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);\n }\n }\n\n // Reset callback\n onReset() {\n\n let onReset = this.opts.onReset;\n\n if (typeof onReset === 'function') {\n\n onReset.call(this);\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 { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolPopover';\nconst DATA_KEY = 'plugin_coolPopover';\n\nclass Popover extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.popover) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.popover, 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 this.buildCache();\n this.bindEvents();\n this.onInit();\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.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.containerAutoDetect = this.$el.data('containerAutoDetect') ? this.$el.data('containerAutoDetect') : this.opts.containerAutoDetect;\n this.id = 'popover-'+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.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n\n if (this.containerAutoDetect) {\n this.$container = this.$el.offsetParent();\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n if (this.trigger === 'click') {\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n\n } else if (this.trigger === 'hover') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n } else if (this.trigger === 'focus') {\n\n this.$el.on('focusin'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('focusout'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(window).on('resize', debounce(() => {\n\n if (this.$popover) {\n this.setPosition();\n this.onUpdate();\n }\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 // Build popover\n buildPopover() {\n\n let content;\n\n \tif (typeof this.content === 'function') {\n \t\tcontent = this.content();\n \t} else {\n content = this.content;\n }\n\n \tthis.$popover = $(`\n \t\t<div class=\"popover\" role=\"tooltip\" id=\"${this.id}\">\n\n\t\t\t <div class=\"arrow\"></div>\n\n\t\t\t <h3 class=\"popover-header\">${this.title}</h3>\n\n\t\t\t <div class=\"popover-body\">${content}</div>\n\n\t\t\t</div>\n \t`);\n\n this.$container.append(this.$popover);\n this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$popover);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\n this.log('Trigger: '+this.trigger);\n this.log('Placement: '+this.placement);\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('Title: '+this.title);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$popover.addClass('popover-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let popoverWidth = this.$popover.outerWidth(true);\n let popoverHeight = this.$popover.outerHeight(true);\n let popoverTriggerWidth = this.$el.outerWidth();\n let popoverTriggerHeight = this.$el.outerHeight();\n let popoverTriggerPosX = this.$el.position().left;\n let popoverTriggerPosY = this.$el.position().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let popoverPosX;\n let popoverPosY;\n\n if (placement === 'top') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY - popoverHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n popoverPosX = Math.round(popoverTriggerPosX + popoverTriggerWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY + popoverTriggerHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n popoverPosX = Math.round(popoverTriggerPosX - popoverWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n // Correct placement if popover goes outside of container\n let popoverOverflowCount = 0;\n let popoverPosition = {\n left: this.$popover.position().left,\n top: this.$popover.position().top,\n right: containerInnerWidth - (this.$popover.position().left + popoverWidth),\n bottom: containerInnerHeight - (this.$popover.position().top + popoverHeight),\n };\n let popoverOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (popoverPosition.right < 0) {\n\n popoverOverflow.right = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from right');\n }\n\n if (popoverPosition.left < 0) {\n\n popoverOverflow.left = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from left');\n }\n\n if (popoverPosition.bottom < 0) {\n\n popoverOverflow.bottom = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from bottom');\n }\n\n if (popoverPosition.top < 0) {\n\n popoverOverflow.top = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from top');\n }\n\n if (popoverOverflowCount > 0) {\n\n if (!this.placementChanged && popoverOverflow.left && popoverPosition.right > popoverWidth) {\n\n this.log('Changing popover placement to right');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && popoverOverflow.top && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && popoverOverflow.right && popoverPosition.left > popoverWidth) {\n\n this.log('Changing popover placement to left');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && popoverOverflow.bottom && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (popoverOverflow.left || popoverOverflow.right)) {\n\n if (popoverPosition.top > popoverPosition.bottom) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixPopoverPosition = true;\n }\n\n if (this.fixPopoverPosition) {\n\n this.log('Adjusting popover size or position in order to popover fit in the container');\n\n if (popoverOverflow.left) {\n\n this.log('Popover overflowing from left');\n\n let overflowAmount = Math.abs(popoverPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX >= popoverPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n popoverPosX += overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (popoverOverflow.top) {\n\n this.log('Popover overflowing from top');\n\n let overflowAmount = Math.abs(popoverPosition.top);\n\n this.log('Popover adjusting position y');\n\n popoverPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (popoverOverflow.right) {\n\n this.log('Popover overflowing from right');\n\n let overflowAmount = Math.abs(popoverPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX <= popoverPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (popoverOverflow.bottom) {\n\n this.log('Popover overflowing from bottom');\n\n let overflowAmount = Math.abs(popoverPosition.bottom);\n\n this.log('Popover adjusting position y');\n\n popoverPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n width: popoverWidth,\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)'\n });\n\n this.fixPopoverPosition = false;\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n if (this.animation) {\n\n this.$popover.addClass(this.animationSpeed);\n this.$popover.animateCss(this.animationIn);\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n\n } else {\n\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$popover) {\n return;\n }\n\n if (this.animation && !this.$popover.hasClass('animated')) {\n\n this.$popover.animateCss(this.animationOut, () => {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n\n \treturn this.each(function() {\n\n \t\tlet data = $(this).data(DATA_KEY);\n \t\tconst _config = typeof config === 'object' && config;\n\n \t\tif (!data) {\n \t\t\tdata = new Popover(this, _config);\n \t\t\t$(this).data(DATA_KEY, data);\n \t\t}\n\n \t\tif (typeof config === 'string') {\n\n \t\t\tif (typeof data[config] === 'undefined') {\n\t\t \tthrow new TypeError(`No method named \"${config}\"`)\n\t\t }\n\n\t\t data[config]()\n \t\t}\n\t });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Popover._jQueryInterface;\n $.fn[NAME].Constructor = Popover;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Popover._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n container: '.content-inner',\n containerAutoDetect: false,\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Popover;","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSelect';\nconst DATA_KEY = 'plugin_coolSelect';\n\nclass Select extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.select) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.select, 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 this.buildCache().then(() => {\n\n this.buildScroll();\n this.bindEvents();\n\n if (this.data[this.name].length > 0) {\n this.setData();\n }\n\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.bindEvents();\n this.onUpdate();\n }\n\n // Reset plugin data\n reset() {\n\n this.data = {};\n this.data[this.name] = [];\n this.items = [];\n this.$select.find('.select-item').remove();\n this.$selectItems = [];\n this.$selectIconContainer.html(this.selectIconDefault);\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n\n this.$selectHeader.css('cursor', 'default');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.searchData = [];\n this.$searchInput.val('');\n this.searchString = '';\n this.search.call(this);\n }\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n return new Promise((primaryResolve, primaryReject) => {\n\n let self = this;\n\n this.$el = $(this.el);\n this.$container = this.$el.parent();\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectTitle = this.$el.find('.select-title');\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\n this.selectIconDefault = this.$selectHeader.find('.select-icon') ? this.$selectHeader.find('.select-icon').html() : '<i class=\"'+(this.opts.faPro ? 'fal' : 'fas')+'fa-angle-down icon\"></i>';\n this.name = this.$el.data('name') ? this.$el.data('name') : this.opts.name;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.items = this.$el.data('items') ? this.$el.data('items') : this.opts.items;\n this.data = {};\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;\n this.searchRequest = null;\n this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;\n this.contentOpen = false;\n this.searchPlaceholder = this.$el.data('search-placeholder') ? this.$el.data('search-placeholder') : this.opts.searchPlaceholder;\n this.btnCloseText = this.$el.data('btn-close-text') ? this.$el.data('btn-close-text') : this.opts.btnCloseText;\n this.labelTemplate = this.opts.labelTemplate;\n this.confirmCheck = this.opts.confirmCheck;\n this.confirmUncheck = this.opts.confirmUncheck;\n this.preventUncheck = this.opts.preventUncheck;\n this.dynamicTitle = this.$el.data('dynamicTitle') ? this.$el.data('dynamicTitle') : this.opts.dynamicTitle;\n this.dynamicTitleDefault = this.$el.data('dynamicTitleDefault') ? this.$el.data('dynamicTitleDefault') : this.opts.dynamicTitleDefault;\n this.dynamicTitleEmptyDefault = this.$el.data('dynamicTitleEmptyDefault') ? this.$el.data('dynamicTitleEmptyDefault') : this.opts.dynamicTitleEmptyDefault;\n this.allowNoneOnRadioSelect = this.$el.data('allowNoneOnRadioSelect') ? this.$el.data('allowNoneOnRadioSelect') : this.opts.allowNoneOnRadioSelect;\n this.showValidStateIcon = this.$el.data('showValidStateIcon') ? this.$el.data('showValidStateIcon') : this.opts.showValidStateIcon;\n this.itemsToExclude = this.$el.data('itemsToExclude') ? this.$el.data('itemsToExclude').replace(/\\s/g, '').split(',') : this.opts.itemsToExclude;\n this.primaryKeyword = this.$el.data('primaryKeyword') ? this.$el.data('primaryKeyword') : this.opts.primaryKeyword;\n this.preventClose = false;\n\n if (this.itemsToExclude.length > 0) {\n this.itemsToExclude = this.itemsToExclude.map(Number);\n }\n\n if (this.opts.setData) {\n this.data = this.opts.setData;\n }\n\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n if (this.data[this.name] !== 'undefined' && this.data[this.name].length > 0 && self.itemsToExclude) {\n\n this.data[this.name] = this.data[this.name].filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n }\n\n if (this.items !== 'undefined' && this.items.lengths > 0 && self.itemsToExclude) {\n\n this.items = this.items.filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n }\n\n if (this.$el.find('.select-search').length) {\n this.showSearch = true;\n } else {\n this.showSearch = this.$el.data('showSearch') ? this.$el.data('showSearch') : this.opts.showSearch;\n }\n\n if (this.$el.find('.select-footer').length) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n this.$select = this.$el.find('.select-content');\n\n new Promise((secondaryResolve, secondaryReject) => {\n\n if (!this.$select.length) {\n\n let items = this._renderItemList(this.items);\n\n this.$select = $(`\n <div class=\"select-content\">\n\n ${this._renderSearch()}\n\n <div class=\"select-scrollable-content\"></div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\n this.$select.find('.select-scrollable-content').append(items);\n\n secondaryResolve();\n\n } else {\n\n secondaryResolve();\n }\n\n }).then(() => {\n\n this.$scrollableContent = this.$select.find('.select-scrollable-content') ? this.$select.find('.select-scrollable-content') : false;\n this.$selectItems = this.$select.find('.select-item');\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n\n this.$selectHeader.css('cursor', 'default');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$searchIconContainer = this.$select.find('.select-search-icon');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n\n // Prevent tabfocus from breaking select functionality\n this.$searchInput[0].tabIndex = -1;\n }\n\n if (this.showFooter) {\n\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n\n // Prevent tabfocus from breaking select functionality\n this.$closeButton[0].tabIndex = -1;\n }\n\n this.buildSearchData();\n\n this.log(this.$el);\n this.log(this.$select);\n this.log(this.$scrollableContent);\n this.log('Name: '+this.name);\n this.log('Show search: '+this.showSearch);\n this.log('Show footer: '+this.showFooter);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n this.log(this.items);\n this.log(this.searchData);\n\n primaryResolve();\n })\n });\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.$scrollableContent.length > 0) {\n\n let scrollContentHeight = this.scrollContentHeight;\n\n if (this.showSearch) {\n scrollContentHeight = scrollContentHeight - (this.$searchContainer.outerHeight(true) || 0);\n }\n\n if (this.showFooter) {\n scrollContentHeight = scrollContentHeight - (this.$footerContainer.outerHeight(true) || 0);\n }\n\n this.$scrollableContent.css({\n 'max-height': (scrollContentHeight - parseInt(this.$scrollableContent.css('marginTop'), 10) - parseInt(this.$scrollableContent.css('marginBottom'), 10)) +'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.addClass('ps-dark');\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20,\n scrollYMarginOffset : -1,\n suppressScrollY: true,\n suppressScrollX: true,\n });\n\n // Prevent tabfocus from breaking select functionality\n this.$scrollableContent.find('[tabindex=\"0\"]').attr('tabindex', -1);\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n this.scroll.settings.suppressScrollY = false;\n }\n }\n }\n }\n\n // Build search data\n buildSearchData() {\n\n return new Promise((resolve, reject) => {\n\n this.searchData = [];\n\n let selectLabels = this.$select.find('[data-label]');\n\n $.each(selectLabels, (i, el) => {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\n\n resolve();\n });\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$selectHeader.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else if (this.$selectItems.length > 0 || this.searchApi) {\n this.show();\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"checkbox\"]', function() {\n\n let el = this;\n let val = $(this).val();\n let closeTimeout = 600; // ms\n\n self.preventClose = true;\n\n if (typeof self.confirmCheck === 'function' && el.checked) {\n\n el.checked = false;\n\n self.confirmCheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n el.checked = true;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (el.checked) {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (typeof self.confirmUncheck === 'function' && !el.checked) {\n\n el.checked = true;\n\n self.confirmUncheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n el.checked = false;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (!el.checked && !self.preventUncheck) {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (!el.checked && self.preventUncheck) {\n\n el.checked = true;\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n let val = $(this).val();\n\n if (this.checked) {\n\n self.data[self.name] = val;\n self.$select.find('input[type=\"radio\"]').not($(this)).prop('checked', false);\n self.$select.find('input[type=\"radio\"]').not($(this)).removeClass('checked');\n\n } else {\n\n self.data[self.name] = [];\n }\n });\n\n this.$el.on('click'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n if ($(this).hasClass('checked') && self.allowNoneOnRadioSelect) {\n\n self.data[self.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html(self.dynamicTitleDefault);\n }\n\n } else {\n\n $(this).addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($(this).parent().find('[data-label]').text());\n }\n }\n\n self.onSelect(this);\n });\n\n if (this.scroll) {\n\n this.$scrollableContent.find('.ps__thumb-y').mousedown(function() {\n self.$scrollableContent.addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if (self.$scrollableContent.hasClass('ps-mousedown-scroll')) {\n self.$scrollableContent.removeClass('ps-mousedown-scroll');\n }\n });\n }\n\n if (this.showSearch) {\n\n this.$searchInput.on('keydown'+'.'+NAME, debounce(function () {\n\n self.searchString = $(this).val().trim();\n self.search.call(self);\n\n }, 250));\n\n this.$searchInput.on('focusin'+'.'+NAME, function () {\n\n self.$searchContainer.addClass('focused');\n });\n\n this.$searchInput.on('focusout'+'.'+NAME, function () {\n\n self.$searchContainer.removeClass('focused');\n });\n\n this.$searchContainer.on('click'+'.'+NAME, '[data-clear-search]', function () {\n\n if (self.searchString.length) {\n\n self.$searchInput.val('');\n self.searchString = '';\n self.search.call(self);\n\n } else {\n\n return;\n }\n });\n }\n\n if (this.showFooter) {\n\n this.$closeButton.on('click'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(document).on('touchstart click', function(e) {\n\n if (!self.$el.is(e.target) && !self.$el.has(e.target).length && self.contentOpen && !self.preventClose) {\n\n self.close.call(self);\n }\n });\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Get data\n getData(data) {\n\n if (data) {\n return this.data[data];\n } else {\n return this.data;\n }\n }\n\n // Set data\n setData() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.searchApi.length) {\n\n let searchUrl = this.searchApi;\n let itemCount = this.data[this.name].length;\n let currentCount = 0;\n\n this.data[this.name].forEach(function(value) {\n\n searchUrl += encodeURIComponent('#'+value);\n currentCount++;\n\n if (currentCount !== itemCount) {\n searchUrl += '+';\n }\n });\n\n $.ajax({\n method: 'GET',\n url: searchUrl\n }).done(function(data) {\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n let itemIds = items.map(item => {\n return parseInt(item.id, 10);\n });\n\n // Remove value from data if it doesn't exist anymore\n self.data[self.name] = self.data[self.name].filter(function(value) {\n return itemIds.indexOf(parseInt(value, 10)) > -1;\n });\n\n if (self.data[self.name].length == 0) {\n self.$selectIconContainer.html(self.selectIconDefault);\n }\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let $inputs = self.$scrollableContent.find(':input');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n\n if (self.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n self.type = 'checkbox';\n } else if (self.$scrollableContent.find(':input[type=\"radio\"]').length) {\n self.type = 'radio';\n }\n\n if (self.type == 'checkbox') {\n\n self.data[self.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (self.type == 'radio') {\n\n let $input = $inputs.filter(function() { return this.value == self.data[self.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n self.onSelect($input[0]);\n }\n });\n });\n\n } else {\n\n // Remove value from data if it doesn't exist anymore\n let $inputs = this.$scrollableContent.find(':input');\n let inputValues = $inputs.length > 0 ? $inputs.map(function() {\n return parseInt(this.value, 10);\n }).get() : [];\n\n this.data[this.name] = this.data[this.name].filter(function(value) {\n return inputValues.indexOf(parseInt(value, 10)) > -1;\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$scrollableContent.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n this.data[this.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() {\n return this.value == value\n });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let $input = $inputs.filter(function() {\n return this.value == self.data[self.name]\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.onSelect($input[0]);\n }\n }\n }\n\n // Search\n search() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.searchString.length) {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n\n if (this.searchRequest !== null) {\n this.searchRequest.abort();\n }\n\n this.searchRequest = $.ajax({\n method: 'GET',\n url: this.searchApi + this.searchString\n }).done(function(data) {\n\n self.searchRequest = null;\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1 && parseInt(item.id, 10) > 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let faNameSpace = self.opts.faPro ? 'fal' : 'fas';\n\n self.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n self.$searchIconContainer.attr('data-clear-search', 'true');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n });\n });\n\n } else {\n\n let results = this.searchData.filter(function(item) {\n return item.val.toLocaleLowerCase().indexOf(self.searchString.toLocaleLowerCase()) > -1;\n });\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n\n results.forEach(function(item) {\n $(self.$selectItems[item.id]).addClass('visible');\n });\n\n this.$selectItems.not('.visible').addClass('d-none');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', 'true');\n }\n\n } else {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n\n } else {\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n }\n }\n\n if (this.scroll) {\n this.scroll.update();\n }\n\n this.onUpdate();\n }\n\n // Show\n show() {\n\n if (this.$el.hasClass('show')) {\n return;\n }\n\n let $otherSelects = $('.select.show');\n let zindex = 1;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if ($otherSelects.length) {\n zindex = parseInt($otherSelects.first().css('z-index'), 10) + 2;\n }\n\n this.$el.css({\n 'max-height': (this.scrollContentHeight + this.$selectHeader.outerHeight(true))+'px'\n });\n\n this.$el.addClass('show');\n\n if (!$otherSelects.length) {\n zindex = parseInt(this.$el.css('z-index'), 10) + 1;\n }\n\n this.$el.css({\n 'z-index': zindex\n });\n\n if (this.scroll && this.$scrollableContent.length) {\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n }\n\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-up icon\"></i>`);\n\n setTimeout(() => {\n this.$el[0].scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'nearest'});\n }, 300);\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.preventClose) {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.$el.css('max-height', '');\n this.$el.removeClass('show');\n\n setTimeout(() => {\n self.$el.removeAttr('style');\n }, 300);\n\n if (this.data[this.name].length > 0 && this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n }\n\n // On select\n onSelect(el) {\n\n let self = this;\n let onSelect = this.opts.onSelect;\n let data = $(el).parents('.select-item').data();\n\n if (this.searchApi.length && !$.isEmptyObject(data)) {\n\n if ($(el).length && el.checked) {\n\n this.items.push(data);\n\n } else {\n\n this.items = $.grep(this.items, function(item) { return item[self.primaryKeyword] != data.id });\n }\n }\n\n if (typeof onSelect === 'function') {\n\n onSelect.call(el, data, this);\n }\n }\n\n // Add more items after plugin is already initialized\n appendItems(items, selectItems) {\n\n return new Promise((resolve, reject) => {\n\n let self = this;\n\n if (!$.isArray(items)) {\n\n let itemsArr = [];\n\n itemsArr.push(items);\n items = itemsArr;\n }\n\n items = items.filter(function(item) {\n return self.itemsToExclude.indexOf(parseInt(item.id, 10)) === -1;\n });\n\n items.forEach(item => {\n\n this.items.push(item);\n });\n\n let domItems = this._renderItemList(items);\n\n this.$scrollableContent.prepend(domItems);\n this.$selectItems = this.$select.find('.select-item');\n\n this.buildSearchData().then(() => {\n\n if (this.$selectItems.length > 0) {\n\n if (this.$select.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$select.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n items.forEach(item => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = parseInt($input.val(), 10);\n\n $input.prop('checked', true);\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name].push(val) : false;\n this.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let item = items[0];\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = parseInt($input.val(), 10);\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name] = [val] : false;\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.$select.find('input[type=\"radio\"]').not($input).prop('checked', false);\n this.$select.find('input[type=\"radio\"]').not($input).removeClass('checked');\n this.onSelect($input[0]);\n }\n }\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectHeader.attr('style')) {\n this.$selectHeader.removeAttr('style');\n }\n\n if (this.$selectIconContainer.hasClass('d-none')) {\n this.$selectIconContainer.removeClass('d-none');\n }\n\n resolve();\n });\n });\n }\n\n // Deselect items\n deselectItems(array) {\n\n return new Promise((resolve, reject) => {\n\n array.forEach(id => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == id });\n\n if ($input[0].checked) {\n\n $input.trigger('click');\n }\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n });\n }\n\n // Get item\n getItem(key, val) {\n\n let result = $.grep(this.items, function(item) { return item[key] == val })[0];\n\n return result ? result : null;\n }\n\n // Get selected items\n getSelectedItems(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(Number);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result;\n }\n\n // Get selected item\n getSelectedItem(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(Number);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(parseInt(item.id, 10)) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result[0] == null ? null : result[0];\n }\n\n _renderItemList(items) {\n\n let result = [];\n\n for (let i = 0; i < items.length; ++i) {\n\n let item = items[i];\n let label = '';\n\n if (typeof this.labelTemplate === 'function') {\n\n label = this.labelTemplate(item);\n\n } else {\n\n if (item.name) {\n label = item.name;\n } else if (item.label) {\n label = item.label;\n } else if (item.value) {\n label = item.value;\n }\n }\n\n result.push($(`\n\n <div class=\"select-item\">\n\n <div class=\"select-item-${this.type}\">\n\n <div class=\"styled-${this.type}\">\n\n <input type=\"${this.type}\" id=\"select-${this.name}-${items[i].id}\" value=\"${items[i].id}\" tabindex=\"-1\">\n\n <label for=\"select-${this.name}-${items[i].id}\">\n\n <span class=\"radio-inner\">\n <svg viewBox=\"0 0 18 18\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n\n <span class=\"${this.type}-label\"${typeof this.labelTemplate !== 'function' ? ' data-label' : ''}>\n ${label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n\n `).data(item));\n }\n\n return result;\n }\n\n _renderSearch() {\n\n if (!this.showSearch) {\n\n return '';\n\n } else {\n\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n return `\n\n <div class=\"select-search\">\n\n <div class=\"select-search-input\">\n\n <input type=\"text\" name=\"select-search\" value=\"\" placeholder=\"${this.searchPlaceholder}\" tabindex=\"-1\">\n\n </div>\n\n <div class=\"select-search-icon\">\n\n <i class=\"${faNameSpace} fa-search icon\"></i>\n\n </div>\n\n </div>\n\n `;\n }\n }\n\n _renderFooter() {\n\n if (!this.showFooter) {\n\n return '';\n\n } else {\n\n return `\n\n <div class=\"select-footer\">\n\n <button class=\"btn btn-block btn-secondary\" type=\"button\" tabindex=\"-1\" data-select-close >\n ${this.btnCloseText}\n </button>\n\n </div>\n\n `;\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 Select(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}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Select._jQueryInterface;\n $.fn[NAME].Constructor = Select;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Select._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n name: '',\n type: 'checkbox',\n labelTemplate: null,\n confirmCheck: null,\n confirmUncheck: null,\n setData: null,\n scrollContentHeight: 100,\n faPro: false,\n items: [],\n showSearch: false,\n showFooter: false,\n searchApi: false,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onReset: null,\n onSearch: null,\n onSelect: null,\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n debug: false,\n dynamicTitle: false,\n dynamicTitleDefault: '',\n dynamicTitleEmptyDefault: '',\n allowNoneOnRadioSelect: true,\n preventUncheck: false,\n showValidStateIcon: true,\n itemsToExclude: [],\n primaryKeyword: 'id'\n }\n}\n\nexport default Select;","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.positionObserver = this.$el.attr('data-position-observer') ? JSON.parse(this.$el.attr('data-position-observer')) : this.opts.positionObserver;\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 = 0;\n let dropdownPosY = 0;\n let offsetX = 0;\n let offsetY = 0;\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 const offsets = this.offset.split(',');\n\n offsetX = offsets[0];\n offsetY = offsets[1];\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n if (this.positionObserver && this.$container.length > 0) {\n\n // this is not set during init so we have to fetch it\n // and let's assume that this containing parent fits and is inside\n // viewport\n let $containingParent = this.$container.parent();\n let index = 0;\n while (\n $containingParent.css('overflow-x') !== 'hidden' && \n $containingParent.css('overflow') !== 'hidden' &&\n ($containingParent.prop('tagName') || '').toLowerCase() !== 'body' &&\n index < 100\n ) {\n $containingParent = $containingParent.parent();\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n ++index;\n }\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n const containingBoundingRect = $containingParent.get(0).getBoundingClientRect();\n const containerBoundingRect = this.$container.get(0).getBoundingClientRect();\n\n if (containingBoundingRect.width < dropdownWidth) {\n this.$dropdown.css('max-width', containingBoundingRect.width);\n dropdownWidth = containingBoundingRect.width;\n } else {\n this.$dropdown.css('max-width', '');\n }\n\n if (containingBoundingRect.height < dropdownHeight) {\n this.$dropdown.css('max-height', containingBoundingRect.height);\n dropdownHeight = containingBoundingRect.height;\n } else {\n this.$dropdown.css('max-height', '');\n }\n\n const maxTop = Math.max(Math.abs(containingBoundingRect.y - containerBoundingRect.y), 0);\n const maxLeft = Math.max(Math.abs(containingBoundingRect.x - containerBoundingRect.x), 0);\n const maxRight = $containingParent.get(0).scrollWidth - (containerBoundingRect.x + containerBoundingRect.width);\n const maxBottom = $containingParent.get(0).scrollHeight - (containerBoundingRect.y + (placement === 'dropbottom' ? containerBoundingRect.height : 0));\n\n if (maxLeft < dropdownWidth && dropdownPosX < dropdownTriggerPosX) {\n dropdownPosX = dropdownTriggerPosX;\n\n // would be on top of the trigger\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (maxRight < dropdownWidth && dropdownPosX + dropdownWidth > dropdownTriggerPosX + dropdownTriggerWidth) {\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth;\n\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (dropdownPosY < dropdownTriggerPosY && maxTop < dropdownHeight) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + offsetY;\n }\n\n if (dropdownPosY >= dropdownTriggerPosY && maxBottom < dropdownHeight) {\n if (dropdownPosX >= dropdownTriggerPosX + dropdownTriggerWidth || dropdownTriggerPosX >= dropdownPosX + dropdownWidth) {\n dropdownPosY = dropdownTriggerPosY - (dropdownHeight - maxBottom);\n } else {\n dropdownPosY = dropdownTriggerPosY - dropdownHeight - offsetY\n }\n }\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 positionObserver: 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;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolTooltip';\nconst DATA_KEY = 'plugin_coolTooltip';\n\nclass Tooltip extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, 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 this.buildCache();\n this.bindEvents();\n this.onInit();\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.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'tooltip-'+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.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n this.$el.on('destroyed'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$tooltip) {\n this.setPosition();\n this.onUpdate();\n }\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 // Build tooltip\n buildTooltip() {\n\n this.$tooltip = $(`\n\n <div class=\"tooltip\" role=\"tooltip\" id=\"${this.id}\">\n\n <div class=\"arrow\"></div>\n\n <div class=\"tooltip-inner\">${this.content}</div>\n\n </div>\n\n `);\n\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$tooltip);\n this.log(this.$arrow);\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('Placement: '+this.placement);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$tooltip.addClass('tooltip-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let tooltipWidth = this.$tooltip.outerWidth(true);\n let tooltipHeight = this.$tooltip.outerHeight(true);\n let tooltipTriggerWidth = this.$el.outerWidth();\n let tooltipTriggerHeight = this.$el.outerHeight();\n let tooltipTriggerPosX = this.$el.offset().left;\n let tooltipTriggerPosY = this.$el.offset().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let tooltipPosX;\n let tooltipPosY;\n\n if (placement === 'top') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY - tooltipHeight);\n arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX + tooltipTriggerWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - (tooltipWidth - tooltipTriggerWidth) / 2);\n tooltipPosY = Math.round(tooltipTriggerPosY + tooltipTriggerHeight);\n arrowPos = Math.round(tooltipWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n tooltipPosX = Math.round(tooltipTriggerPosX - tooltipWidth);\n tooltipPosY = Math.round(tooltipTriggerPosY - (tooltipHeight - tooltipTriggerHeight) / 2);\n arrowPos = Math.round(tooltipHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$tooltip.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n // Correct placement if tooltip goes outside of container\n let tooltipOverflowCount = 0;\n let tooltipPosition = {\n left: this.$tooltip.position().left,\n top: this.$tooltip.position().top,\n right: containerInnerWidth - (this.$tooltip.position().left + tooltipWidth),\n bottom: containerInnerHeight - (this.$tooltip.position().top + tooltipHeight),\n };\n let tooltipOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (tooltipPosition.right < 0) {\n\n tooltipOverflow.right = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from right');\n }\n\n if (tooltipPosition.left < 0) {\n\n tooltipOverflow.left = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from left');\n }\n\n if (tooltipPosition.bottom < 0) {\n\n tooltipOverflow.bottom = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from bottom');\n }\n\n if (tooltipPosition.top < 0) {\n\n tooltipOverflow.top = true;\n tooltipOverflowCount++;\n\n this.log('Tooltip overflowing from top');\n }\n\n if (tooltipOverflowCount > 0) {\n\n if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {\n\n this.log('Changing tooltip placement to right');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n\n this.log('Changing tooltip placement to left');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (tooltipOverflow.left || tooltipOverflow.right)) {\n\n if (tooltipPosition.top > tooltipPosition.bottom) {\n\n this.log('Changing tooltip placement to top');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing tooltip placement to bottom');\n\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\n\n this.log('Adjusting tooltip size or position in order to tooltip fit in the container');\n\n if (tooltipOverflow.left) {\n\n this.log('Tooltip overflowing from left');\n\n let overflowAmount = Math.abs(tooltipPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX >= tooltipPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n tooltipPosX += overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (tooltipOverflow.top) {\n\n this.log('Tooltip overflowing from top');\n\n let overflowAmount = Math.abs(tooltipPosition.top);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (tooltipOverflow.right) {\n\n this.log('Tooltip overflowing from right');\n\n let overflowAmount = Math.abs(tooltipPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((tooltipTriggerPosX <= tooltipPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Tooltip adjusting width');\n\n tooltipWidth -= overflowAmount;\n\n } else {\n\n this.log('Tooltip adjusting position x');\n\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n\n this.log('Tooltip overflowing from bottom');\n\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n\n this.log('Tooltip adjusting position y');\n\n tooltipPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$tooltip.css({\n width: tooltipWidth,\n transform: 'translate3d('+tooltipPosX+'px, '+tooltipPosY+'px, 0px)'\n });\n\n this.fixTooltipPosition = false;\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Tooltip placement changed: '+this.placementChanged);\n this.log('Tooltip container inner width: '+containerInnerWidth+'px');\n this.log('Tooltip container inner height: '+containerInnerHeight+'px');\n this.log('Tooltip trigger width: '+tooltipTriggerWidth+'px');\n this.log('Tooltip trigger height: '+tooltipTriggerHeight+'px');\n this.log('Tooltip trigger position x: '+tooltipTriggerPosX+'px');\n this.log('Tooltip trigger position Y: '+tooltipTriggerPosY+'px');\n this.log('Tooltip width: '+tooltipWidth+'px');\n this.log('Tooltip height: '+tooltipHeight+'px');\n this.log('Tooltip position x: '+tooltipPosX+'px');\n this.log('Tooltip position y: '+tooltipPosY+'px');\n this.log('Tooltip position left: '+tooltipPosition.left+'px');\n this.log('Tooltip position top: '+tooltipPosition.top+'px');\n this.log('Tooltip position right: '+tooltipPosition.right+'px');\n this.log('Tooltip position bottom: '+tooltipPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n\n this.$tooltip.addClass(this.animationSpeed);\n this.$tooltip.animateCss(this.animationIn);\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n\n } else {\n\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animated')) {\n\n this.$tooltip.animateCss(this.animationOut, () => {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\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 Tooltip(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] = Tooltip._jQueryInterface;\n $.fn[NAME].Constructor = Tooltip;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Tooltip._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n container: 'body',\n animation: false,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n placement: 'bottom',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Tooltip;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSectionTabs';\nconst DATA_KEY = 'plugin_coolSectionTabs';\n\nclass SectionTabs extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.sectionTabs) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.sectionTabs, 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 this.buildCache();\n this.bindEvents();\n this.checkForChanges();\n this.onInit();\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.$dropdownContainer = this.$el.find('.dropdown-container');\n this.$dropdownList = this.$el.find('.dropdown-list');\n this.tabsCount = this.$el.find('> .tab-item').length;\n this.tabs = this.$el.find('> .tab-item:visible');\n\n $.each(this.tabs, function(i, el) {\n $(el).data('width', $(el).outerWidth(true));\n });\n\n this.log(this.$el);\n this.log(this.$dropdownContainer);\n this.log(this.$dropdownList);\n this.log(this.tabsCount);\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n $(window).on('resize', debounce(() => {\n this.checkForChanges();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this._name);\n }\n\n // Move to list\n moveToList(el) {\n\n $(el).insertBefore(this.$dropdownContainer);\n\n this.checkForChanges();\n }\n\n // Move to dropdown\n moveToDropdown(el) {\n\n $(el).appendTo(this.$dropdownList);\n\n this.checkForChanges();\n }\n\n // Overflow status\n overflowStatus() {\n\n if (this.$el[0].offsetWidth < this.$el[0].scrollWidth) {\n return true;\n } else {\n return false;\n }\n }\n\n // CheckForChanges\n checkForChanges() {\n\n let dropdownItems = this.$dropdownList.children();\n let moveableTabs = this.$el.find('> .tab-item').not(this.$dropdownContainer);\n let tabs = this.$el.find('> .tab-item:visible');\n let usedSpace = 0;\n\n $.each(tabs, function(i, el) {\n usedSpace += $(el).outerWidth(true);\n });\n\n let freeSpace = this.$el[0].offsetWidth - usedSpace;\n\n if (dropdownItems.length > 0) {\n\n if (!this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.addClass('visible');\n }\n\n } else {\n\n if (this.$dropdownContainer.hasClass('visible')) {\n this.$dropdownContainer.removeClass('visible');\n }\n }\n\n if (this.overflowStatus() == true) {\n\n if (moveableTabs.length > 0) {\n this.moveToDropdown(moveableTabs.last());\n }\n\n } else {\n\n if (dropdownItems.length > 0) {\n\n if (freeSpace > dropdownItems.last().data('width')) {\n this.moveToList(dropdownItems.last());\n }\n }\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 SectionTabs(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] = SectionTabs._jQueryInterface;\n $.fn[NAME].Constructor = SectionTabs;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return SectionTabs._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n debug: false\n }\n}\n\nexport default SectionTabs;\n","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolCollapse';\nconst DATA_KEY = 'plugin_coolCollapse';\n\nclass Collapse extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.collapse) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dialog, 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 this.buildCache()\n this.bindEvents();\n this.onInit();\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.$target = this.$el.data('target') ? $(document).find(this.$el.data('target')) : $(document).find(this.opts.target);\n this.expanded = this.$el.attr('aria-expanded') == 'true' ? true : false;\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(document).find('[data-collapse-indicator=\"' + this.$el.data('target') + '\"]');\n\n } else {\n\n this.$target = $(this.$el).parent().find('.collapse');\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(this.$el).parent().find('[data-collapse-indicator]');\n }\n\n if (this.expanded) {\n this.$target.css('height', 'auto');\n }\n\n this.log(this.$el);\n this.log(this.$target);\n this.log(this.$container);\n this.log(this.$indicator);\n this.log('Expanded: '+this.expanded);\n this.log('Target height: '+this.targetHeight+'px');\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n this.$el.on('click'+'.'+this.name, (e) => {\n\n if (this.expanded) {\n this.close();\n } else {\n this.show();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.log('Target height: '+this.targetHeight+'px');\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+this.name);\n }\n\n // Which transition\n whichTransitionEvent() {\n\n let el = document.createElement('text-transition');\n let transEndEventNames = {\n 'WebkitTransition': 'webkitTransitionEnd', // Saf 6, Android Browser\n 'MozTransition': 'transitionend', // only for FF < 15\n 'transition': 'transitionend' // IE10, Opera, Chrome, FF 15+, Saf 7+\n };\n\n for (let t in transEndEventNames) {\n\n if (el.style[t] !== undefined) {\n return transEndEventNames[t];\n }\n }\n }\n\n // Show\n show() {\n\n // Update target height if something is added to dom which causes height to change\n if (this.targetHeight !== this.$target.height()) {\n this.targetHeight = this.$target.height();\n }\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.addClass('show');\n }\n\n this.$target.css('height');\n this.$target.css('height', this.targetHeight);\n\n if (this.$indicator.length) {\n this.$indicator.addClass('show');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse show');\n this.$el.attr('aria-expanded', true);\n this.$target.css('height', 'auto');\n this.expanded = true;\n });\n\n this.onShow();\n }\n\n // Close\n close() {\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.removeClass('show');\n }\n\n this.$target.css('height', this.$target.height());\n\n setTimeout(() => {\n this.$target.css('height', 0);\n }, 10);\n\n if (this.$indicator.length && this.$indicator.hasClass('show')) {\n this.$indicator.removeClass('show');\n }\n\n this.$target.one(this.whichTransitionEvent(), () => {\n\n this.$target.removeClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', false);\n }\n\n this.$target.removeAttr('style');\n this.$target.addClass('collapse');\n this.$el.attr('aria-expanded', false);\n this.expanded = false;\n\n // Update target height if something is added to dom which causes height to change\n if (this.targetHeight !== this.$target.height()) {\n this.targetHeight = this.$target.height();\n }\n });\n\n this.onClose();\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 Collapse(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] = Collapse._jQueryInterface;\n $.fn[NAME].Constructor = Collapse;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Collapse._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n target: null,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Collapse;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolToast';\nconst DATA_KEY = 'plugin_coolToast';\n\nclass Toast {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.toast) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.toast, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.toasts = [];\n this.queue = [];\n this.processingQueue = false;\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Add item to queue\n addQueue(toast) {\n\n this.queue.push(toast);\n\n if (this.processingQueue) {\n return;\n }\n\n return this.processQueue();\n }\n\n // Process queue\n processQueue() {\n\n if (this.processingQueue) {\n\n this.queue.shift();\n }\n\n if (!this.queue.length) {\n\n this.processingQueue = false;\n return;\n }\n\n this.processingQueue = true;\n\n return this.show(this.queue[0]);\n }\n\n // Init toast\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let toast = this.buildToast(settings);\n\n this.addQueue(toast);\n this.onInit(toast);\n\n return toast;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build toast\n buildToast(settings) {\n\n let toast = {\n uuid: 'toast-'+this.generateUUID(),\n placement: settings.placement,\n placementX: settings.placementX,\n placementY: settings.placementY,\n offset: settings.offset,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n dismiss: settings.dismiss,\n size: settings.size,\n header: settings.header,\n theme: settings.theme,\n title: settings.title,\n content: settings.content,\n template: settings.template,\n maxBodyHeight: settings.maxBodyHeight,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (typeof toast.content === 'function') {\n\n toast.$el = $(toast.template());\n\n } else {\n\n toast.$el = $(this._renderTemplate(toast));\n }\n\n toast.$inner = toast.$el.find('.toast-inner');\n toast.$closeBtn = toast.$el.find('[data-toast-close]');\n\n this.log(toast);\n this.toasts.push(toast);\n\n return toast;\n }\n\n // Bind events that trigger methods\n bindEvents(toast) {\n\n let self = this;\n\n toast.$el.on('click', '[data-toast-close]', () => {\n\n if (toast.$el) {\n self.close(toast);\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (toast.$el) {\n this.setPosition(toast);\n }\n }, 250));\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(toast, placement, placementY, placementX) {\n\n if (typeof placementY === 'undefined' || placementY === null) {\n placementY = toast.placementY;\n }\n\n if (typeof placementX === 'undefined' || placementX === null) {\n placementX = toast.placementX;\n }\n\n if (!placementX || !placementY) {\n placement = toast.placement\n }\n\n if (toast.offset) {\n\n let offsets = toast.offset.split(',')\n let offsetX = parseInt(offsets[0], 10);\n let offsetY = parseInt(offsets[1], 10);\n }\n\n let toastWidth = toast.$el.outerWidth(true);\n let toastHeight = toast.$el.outerHeight(true);\n let toastPosX;\n let toastPosY;\n\n if (placement) {\n\n if (placement === 'top-left') {\n\n toastPosX = 0;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n toastPosY += 30;\n }\n\n } else if (placement === 'top-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = 0;\n\n this.log(this.$container.width);\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosY += 30;\n }\n\n } else if (placement === 'top-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n toastPosY += 30;\n }\n\n } else if (placement === 'center-left') {\n\n toastPosX = 0;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n }\n\n } else if (placement === 'center-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n }\n\n } else if (placement === 'center-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n }\n\n } else if (placement === 'bottom-left') {\n\n toastPosX = 0;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += 30;\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-right') {\n\n toastPosX = this.$container.width() - toastWidth\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += -30;\n toastPosY += -30;\n }\n }\n\n } else {\n\n toastPosX = placementX;\n toastPosY = placementY;\n }\n\n toast.$el.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+toastPosX+'px, '+toastPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Toast width: '+toastWidth+'px');\n this.log('Toast height: '+toastHeight+'px');\n this.log('Toast position Y: '+toastPosX+'px');\n this.log('Toast position x: '+toastPosY+'px');\n }\n\n // Show\n show(toast) {\n\n this.$container.append(toast.$el);\n this.bindEvents(toast);\n this.setPosition(toast);\n\n if (toast.animation) {\n\n toast.$el.addClass('show');\n toast.$inner.addClass(toast.animationSpeed);\n toast.$inner.animateCss(toast.animationIn);\n\n } else {\n\n toast.$el.addClass('show');\n }\n\n if (toast.dismiss) {\n\n setTimeout(() => {\n this.close(toast);\n }, toast.dismiss * 1000);\n }\n\n this.onShow(toast);\n }\n\n // Close\n close(toast) {\n\n if (toast.animation && !toast.$inner.hasClass('animated')) {\n\n toast.$el.removeClass('show');\n toast.$inner.animateCss(toast.animationOut, () => {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n });\n\n } else {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n }\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(toast) {\n\n let onInit = toast.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(toast);\n }\n }\n\n // Show callback\n onShow(toast) {\n\n let onShow = toast.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(toast);\n }\n }\n\n // Close callback\n onClose(toast) {\n\n let onClose = toast.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(toast);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render template\n _renderTemplate(toast) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let content = '';\n let header = '';\n let body = '';\n let bodyCloseBtn = '';\n\n if (typeof toast.content === 'function') {\n\n content = toast.content();\n\n } else {\n\n content = toast.content;\n }\n\n if (toast.header) {\n\n header = `\n <div class=\"toast-header\">\n\n <span>${toast.title}</span>\n\n <button type=\"button\" data-toast-close>\n <i class=\"${faNameSpace} fa-times icon\"></i>\n </button>\n\n </div>\n `;\n\n } else {\n\n bodyCloseBtn = `\n <button type=\"button\" data-toast-close>\n\n <i class=\"${faNameSpace} fa-times icon\"></i>\n\n </button>\n `;\n }\n\n body = `\n <div class=\"toast-body\">\n\n <span>${content}</span>\n ${bodyCloseBtn}\n\n </div>\n `;\n\n return `\n <div class=\"toast toast-${toast.size} toast-${toast.theme}\" role=\"alert\" id=\"${toast.uuid}\">\n\n <div class=\"toast-inner\">\n\n ${header}\n ${body}\n\n </div>\n\n </div>\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 Toast(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] = Toast._jQueryInterface;\n $.fn[NAME].Constructor = Toast;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Toast._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n content: '',\n template: '',\n theme: 'dark',\n placement: 'bottom-center',\n placementX: null,\n placementY: null,\n animation: true,\n animationIn: 'slideInUp',\n animationOut: 'slideOutDown',\n animationSpeed: 'faster',\n offset: null,\n size: null,\n dismiss: 3,\n header: false,\n faPro: false,\n debug: false,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n }\n}\n\nexport default Toast;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\n\nconst NAME = 'coolDialog';\nconst DATA_KEY = 'plugin_coolDialog';\n\nclass Dialog {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.dialog) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.dialog, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.dialogs = [];\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Init dialog\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let dialog = this.buildDialog(settings);\n\n this.show(dialog);\n this.bindEvents(dialog);\n this.onInit(dialog);\n\n return dialog;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build dialog\n buildDialog(settings) {\n\n let self = this;\n let dialog = {\n uuid: 'dialog-'+this.generateUUID(),\n title: settings.title,\n template: settings.template,\n body: settings.body,\n footer: settings.footer,\n size: settings.size,\n classes: settings.classes,\n centered: settings.centered,\n backdrop: settings.backdrop,\n preventScroll: settings.preventScroll,\n closeBtn: settings.closeBtn,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n callbacks: settings.callbacks,\n maxBodyHeight: settings.maxBodyHeight,\n overflowVisible: settings.overflowVisible,\n actions: settings.actions,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (dialog.maxBodyHeight == null) {\n\n dialog.maxBodyHeight = window.innerHeight - 200;\n }\n\n if (typeof dialog.template === 'function') {\n\n dialog.$el = $(dialog.template());\n\n } else {\n\n dialog.$el = $(this._renderTemplate(dialog));\n }\n\n dialog.show = function() {\n self.show(dialog);\n };\n\n dialog.close = function() {\n self.close(dialog);\n };\n\n this.log(dialog);\n this.dialogs.push(dialog);\n\n return dialog;\n }\n\n // Bind events that trigger methods\n bindEvents(dialog) {\n\n let self = this;\n\n dialog.$el.on('click', '[data-dialog-close]', function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.close === 'function') {\n\n dialog.callbacks.close.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-remove]', function (e) {\n\n dialog.$el.trigger('dialog.remove');\n\n if (typeof dialog.callbacks.remove === 'function') {\n\n dialog.callbacks.remove.call(self, function () {\n self.close(dialog)\n }, dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-confirm]', debounce(function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.confirm === 'function') {\n\n dialog.callbacks.confirm.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n }));\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 // Show\n show(dialog) {\n\n if (!this.$container.hasClass('has-dialogs')) {\n this.$container.addClass('has-dialogs');\n }\n\n if (dialog.preventScroll && !this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.addClass('dialog-prevent-scroll');\n }\n\n if (this.dialogs.length > 1) {\n\n let $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n let zIndex = parseInt($prevDialog.css('z-index'), 10) + 1;\n\n dialog.$el.css('z-index', zIndex);\n\n $prevDialog.css({\n 'transition': 'opacity 0.3s',\n 'opacity': 0,\n 'visibility': 'visible'\n });\n }\n\n if (dialog.backdrop && $('.dialog-backdrop').length < 1) {\n\n this.$container.append('<div class=\"dialog-backdrop\"></div>');\n\n let checkForBackdrop = setInterval(() => {\n\n if (this.dialogs.length == 0 && $('.dialog-backdrop').length) {\n\n $('.dialog-backdrop').remove();\n clearInterval(checkForBackdrop);\n }\n\n }, 100);\n }\n\n this.$container.append(dialog.$el);\n\n if (dialog.animation) {\n dialog.$el.find('.dialog-content').addClass(dialog.animationSpeed).animateCss(dialog.animationIn);\n }\n\n this.onShow(dialog);\n }\n\n // Close\n close(dialog) {\n\n let $prevDialog = null;\n\n if (this.dialogs.length > 1) {\n $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n }\n\n if ($('.dialog[data-dialog-backdrop=\"true\"]').length === 0 && $('.dialog-backdrop').length) {\n $('.dialog-backdrop').remove();\n }\n\n if (dialog.animation) {\n\n dialog.$el.find('.dialog-content').animateCss(dialog.animationOut, () => {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n });\n\n } else {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n }\n\n this.onClose(dialog);\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(dialog) {\n\n let onInit = dialog.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(dialog);\n }\n }\n\n // Show callback\n onShow(dialog) {\n\n let onShow = dialog.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(dialog);\n }\n }\n\n // Close callback\n onClose(dialog) {\n\n let onClose = dialog.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(dialog);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render footer\n _renderFooter(dialog) {\n\n let footer = '';\n\n if (typeof dialog.footer === 'function') {\n\n footer = dialog.footer();\n\n } else if (dialog.footer !== '' && dialog.footer !== false && dialog.footer !== true) {\n\n footer = dialog.footer;\n\n } else if (dialog.footer === true) {\n\n let btnCancel = '';\n let btnRemove = '';\n let btnConfirm = '';\n let btnStyle = '';\n let btnClasses = '';\n let btnAttrs = '';\n\n if (dialog.actions.close.visible) {\n\n btnStyle = dialog.actions.close.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.close.classes ? ' '+dialog.actions.close.classes : '';\n btnAttrs = dialog.actions.close.attrs ? ' '+dialog.actions.close.attrs : '';\n btnCancel = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-close>\n ${dialog.actions.close.content}\n </button>\n `;\n }\n\n if (dialog.actions.remove.visible) {\n\n btnStyle = dialog.actions.remove.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.remove.classes ? ' '+dialog.actions.remove.classes : '';\n btnAttrs = dialog.actions.remove.attrs ? ' '+dialog.actions.remove.attrs : '';\n btnRemove = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-remove>\n ${dialog.actions.remove.content}\n </button>\n `;\n }\n\n if (dialog.actions.confirm.visible) {\n\n btnStyle = dialog.actions.confirm.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.confirm.classes ? ' '+dialog.actions.confirm.classes : '';\n btnAttrs = dialog.actions.confirm.attrs ? ' '+dialog.actions.confirm.attrs : '';\n btnConfirm = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-confirm>\n ${dialog.actions.confirm.content}\n </button>\n `;\n }\n\n footer = `\n ${btnCancel}\n ${btnRemove}\n ${btnConfirm}\n `;\n\n } else {\n\n return footer;\n }\n\n if (footer) {\n\n return `\n <div class=\"dialog-footer\">\n ${footer}\n </div>\n `;\n }\n }\n\n // Render template\n _renderTemplate(dialog) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let classes = dialog.classes ? ' '+dialog.classes : '';\n let centered = dialog.centered ? ' dialog-centered' : '';\n let size = dialog.size ? ' dialog-'+dialog.size : '';\n let overFlowVisible = dialog.overflowVisible ? ' dialog-overflow-visible' : '';\n let uuid = ' data-dialog-uuid=\"'+dialog.uuid+'\"';\n let backdrop = dialog.backdrop ? ' data-dialog-backdrop=\"true\"' : ' data-dialog-backdrop=\"false\"';\n let title = dialog.title;\n let closeBtn = dialog.closeBtn ? `<button type=\"button\" data-dialog-close><i class=\"${faNameSpace} fa-times icon\"></i></button>` : '';\n let maxBodyHeight = dialog.maxBodyHeight ? ' style=\"max-height: '+dialog.maxBodyHeight+'px\"' : '';\n let body = '';\n let footer = this._renderFooter(dialog);\n\n if (typeof dialog.body === 'function') {\n\n body = dialog.body();\n\n } else {\n\n body = dialog.body;\n }\n\n return `\n <div class=\"dialog${classes}${centered}${size}${overFlowVisible}\"${uuid}${backdrop}>\n\n <div class=\"dialog-container\">\n\n <div class=\"dialog-content\">\n\n <div class=\"dialog-header\">\n\n <span class=\"dialog-title\">\n ${title}\n </span>\n\n ${closeBtn}\n\n </div>\n\n <div class=\"dialog-body\"${maxBodyHeight}>\n\n ${body}\n\n </div>\n\n ${footer}\n\n </div>\n\n </div>\n\n </div>\n `;\n }\n\n static _jQueryInterface(config) {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dialog(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\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dialog._jQueryInterface;\n $.fn[NAME].Constructor = Dialog;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Dialog._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n template: '',\n body: '',\n footer: true,\n size: '', // sm/lg\n classes: '',\n centered: true,\n backdrop: true,\n preventScroll: true,\n closeBtn: true,\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n callbacks: {},\n maxBodyHeight: null,\n overflowVisible: false,\n faPro: false,\n debug: true,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n actions: {\n close: {\n primary: false,\n visible: true,\n content: 'Close',\n classes: '',\n attrs: ''\n },\n remove: {\n primary: false,\n visible: true,\n content: 'Remove',\n classes: '',\n attrs: ''\n },\n confirm: {\n primary: true,\n visible: true,\n content: 'Confirm',\n classes: '',\n attrs: ''\n }\n }\n }\n}\n\nexport default Dialog;","import Common from './src/common';\nimport Popover from './src/popover.js';\nimport Select from './src/select';\nimport Dropdown from './src/dropdown';\nimport Tooltip from './src/tooltip';\nimport SectionTabs from './src/section-tabs';\nimport Collapse from './src/collapse';\nimport Toast from './src/toast';\nimport Dialog from './src/dialog';\n\nexport default {\n\tCommon,\n\tPopover,\n\tSelect,\n\tDropdown,\n\tTooltip,\n\tSectionTabs,\n\tCollapse,\n\tToast,\n\tDialog\n}"],"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","$","fn","extend","animateCss","animationName","callback","animationEnd","addClass","one","removeClass","on","Cool","Common","initialize","opts","coolPopover","popover","coolSelect","select","coolDropdown","dropdown","coolTooltip","tooltip","coolCollapse","collapse","coolSectionTabs","sectionTabs","coolToast","toast","coolDialog","dialog","hasClass","not","attr","$inputGroup","closest","each","formLabelGroup","$formLabelGroup","find","trigger","$container","parents","href","data","exceptions","linkDisabled","item","is","parent","open","location","$self","btn","btnDisabled","click","toggleClass","mousedown","mouseup","$sidebarLeft","$sidebarLeftContent","sidebarLeftScroll","$sidebarTabs","scrollContainer","sidebarTabsScroll","$tab","first","css","last","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","touchEvents","special","destroyed","AbstractUIComponent","onInit","onUpdate","onDestroy","onShow","onClose","onReset","log","debug","console","NAME","DATA_KEY","Popover","defaults","init","buildCache","bindEvents","unbindEvents","$el","removeData","container","containerAutoDetect","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","title","content","offsetParent","$popover","close","show","setPosition","off","replace","c","r","random","v","toString","buildPopover","append","$arrow","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","popoverWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","popoverTriggerPosY","arrowWidth","arrowHeight","arrowPos","popoverPosX","popoverPosY","round","transform","popoverOverflowCount","popoverPosition","popoverOverflow","removeAttr","fixPopoverPosition","overflowAmount","excludePlacements","_jQueryInterface","config","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict","Select","then","buildScroll","setData","reset","items","$select","$selectItems","$selectIconContainer","html","selectIconDefault","dynamicTitle","dynamicTitleDefault","$selectTitle","text","trim","searchApi","dynamicTitleEmptyDefault","$selectHeader","showSearch","searchData","$searchInput","searchString","search","Promise","primaryResolve","primaryReject","self","faPro","scrollContentHeight","searchRequest","type","contentOpen","searchPlaceholder","btnCloseText","labelTemplate","confirmCheck","confirmUncheck","preventUncheck","allowNoneOnRadioSelect","showValidStateIcon","itemsToExclude","primaryKeyword","preventClose","map","Number","lengths","showFooter","secondaryResolve","secondaryReject","_renderItemList","_renderSearch","_renderFooter","$scrollableContent","$searchContainer","$searchIconContainer","$clearSearchButton","tabIndex","$footerContainer","$closeButton","buildSearchData","scroll","resolve","reject","selectLabels","closeTimeout","checked","cb","onSelect","n","prop","has","getData","faNameSpace","searchUrl","itemCount","currentCount","value","encodeURIComponent","ajax","method","url","done","itemIds","when","$inputs","$input","inputValues","abort","results","toLocaleLowerCase","$otherSelects","zindex","scrollIntoView","behavior","block","inline","isEmptyObject","grep","appendItems","selectItems","isArray","itemsArr","domItems","prepend","deselectItems","array","getItem","getSelectedItems","segment","ids","getSelectedItem","label","onSearch","Dropdown","offset","minWidth","positionObserver","JSON","parse","closeOnItemClick","menuRight","align","$dropdown","after","$dropdownItem","next","onItemClick","str","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsetX","offsetY","offsets","$containingParent","index","toLowerCase","containingBoundingRect","containerBoundingRect","maxTop","maxLeft","maxRight","maxBottom","Tooltip","$tooltip","buildTooltip","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","tooltipPosX","tooltipPosY","tooltipOverflowCount","tooltipPosition","tooltipOverflow","fixTooltipPosition","SectionTabs","checkForChanges","$dropdownContainer","$dropdownList","tabsCount","tabs","_name","moveToList","insertBefore","moveToDropdown","appendTo","overflowStatus","dropdownItems","moveableTabs","usedSpace","freeSpace","Collapse","$target","expanded","targetHeight","$indicator","whichTransitionEvent","transEndEventNames","t","Toast","toasts","queue","processingQueue","onInitialize","addQueue","processQueue","shift","buildToast","uuid","placementX","placementY","dismiss","size","header","theme","template","maxBodyHeight","_renderTemplate","$inner","$closeBtn","toastWidth","toastHeight","toastPosX","toastPosY","body","bodyCloseBtn","Dialog","dialogs","buildDialog","footer","classes","centered","backdrop","preventScroll","closeBtn","callbacks","overflowVisible","actions","confirm","$prevDialog","eq","zIndex","checkForBackdrop","btnCancel","btnRemove","btnConfirm","btnStyle","btnClasses","btnAttrs","visible","primary","attrs","overFlowVisible"],"mappings":"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"}