@finqu/cool 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +1 -0
  2. package/build/.eslintrc.json +10 -0
  3. package/build/banner.js +14 -0
  4. package/build/build-plugins.js +92 -0
  5. package/build/rollup.config.js +78 -0
  6. package/dist/css/cool-grid.css +3672 -0
  7. package/dist/css/cool-grid.css.map +30 -0
  8. package/dist/css/cool-grid.min.css +7 -0
  9. package/dist/css/cool-grid.min.css.map +1 -0
  10. package/dist/css/cool-reboot.css +281 -0
  11. package/dist/css/cool-reboot.css.map +58 -0
  12. package/dist/css/cool-reboot.min.css +7 -0
  13. package/dist/css/cool-reboot.min.css.map +1 -0
  14. package/dist/css/cool.css +14841 -0
  15. package/dist/css/cool.css.map +144 -0
  16. package/dist/css/cool.min.css +7 -0
  17. package/dist/css/cool.min.css.map +1 -0
  18. package/dist/js/cool.bundle.js +15304 -0
  19. package/dist/js/cool.bundle.js.map +1 -0
  20. package/dist/js/cool.bundle.min.js +45 -0
  21. package/dist/js/cool.bundle.min.js.map +1 -0
  22. package/dist/js/cool.esm.js +4766 -0
  23. package/dist/js/cool.esm.js.map +1 -0
  24. package/dist/js/cool.esm.min.js +7 -0
  25. package/dist/js/cool.esm.min.js.map +1 -0
  26. package/dist/js/cool.js +4948 -0
  27. package/dist/js/cool.js.map +1 -0
  28. package/dist/js/cool.min.js +7 -0
  29. package/dist/js/cool.min.js.map +1 -0
  30. package/html/index.html +892 -0
  31. package/js/dist/collapse.js +321 -0
  32. package/js/dist/collapse.js.map +1 -0
  33. package/js/dist/common.js +1474 -0
  34. package/js/dist/common.js.map +1 -0
  35. package/js/dist/cooldropdown.js +467 -0
  36. package/js/dist/cooldropdown.js.map +1 -0
  37. package/js/dist/coolpopover.js +391 -0
  38. package/js/dist/coolpopover.js.map +1 -0
  39. package/js/dist/coolsectiontabs.js +256 -0
  40. package/js/dist/coolsectiontabs.js.map +1 -0
  41. package/js/dist/coolselect.js +796 -0
  42. package/js/dist/coolselect.js.map +1 -0
  43. package/js/dist/cooltooltip.js +360 -0
  44. package/js/dist/cooltooltip.js.map +1 -0
  45. package/js/dist/coolui.js +73 -0
  46. package/js/dist/coolui.js.map +1 -0
  47. package/js/dist/dropdown.js +1716 -0
  48. package/js/dist/dropdown.js.map +1 -0
  49. package/js/dist/popover.js +587 -0
  50. package/js/dist/popover.js.map +1 -0
  51. package/js/dist/sectiontabs.js +263 -0
  52. package/js/dist/sectiontabs.js.map +1 -0
  53. package/js/dist/select.js +2029 -0
  54. package/js/dist/select.js.map +1 -0
  55. package/js/dist/tooltip.js +555 -0
  56. package/js/dist/tooltip.js.map +1 -0
  57. package/js/index.esm.js +21 -0
  58. package/js/index.umd.js +21 -0
  59. package/js/src/abstract-ui-component.js +70 -0
  60. package/js/src/collapse.js +258 -0
  61. package/js/src/common.js +280 -0
  62. package/js/src/dialog.js +570 -0
  63. package/js/src/dropdown.js +443 -0
  64. package/js/src/popover.js +615 -0
  65. package/js/src/section-tabs.js +204 -0
  66. package/js/src/select.js +832 -0
  67. package/js/src/toast.js +581 -0
  68. package/js/src/tooltip.js +575 -0
  69. package/js/src/util/animate-css.js +22 -0
  70. package/js/src/util/index.js +112 -0
  71. package/js/src/util/perfect-scrollbar.js +1316 -0
  72. package/less/alert.less +345 -0
  73. package/less/badge.less +38 -0
  74. package/less/bootstrap-noconflict.less +23 -0
  75. package/less/bootstrap.less +23 -0
  76. package/less/button-group.less +153 -0
  77. package/less/buttons.less +287 -0
  78. package/less/dialog-noconflict.less +174 -0
  79. package/less/dialog.less +203 -0
  80. package/less/dropdown.less +209 -0
  81. package/less/forms.less +770 -0
  82. package/less/images.less +242 -0
  83. package/less/input-group.less +163 -0
  84. package/less/list-group.less +73 -0
  85. package/less/mixins/aspect-ratio.less +23 -0
  86. package/less/mixins/border-radius.less +24 -0
  87. package/less/mixins/box-shadow.less +4 -0
  88. package/less/mixins/buttons.less +17 -0
  89. package/less/mixins/caret.less +51 -0
  90. package/less/mixins/clearfix.less +10 -0
  91. package/less/mixins/gradients.less +34 -0
  92. package/less/mixins/nav-divider.less +7 -0
  93. package/less/mixins/object-fit.less +13 -0
  94. package/less/mixins/reset-text.less +16 -0
  95. package/less/mixins.less +11 -0
  96. package/less/package.json +11 -0
  97. package/less/pagination.less +69 -0
  98. package/less/popover.less +143 -0
  99. package/less/project.sublime-workspace +774 -0
  100. package/less/reboot.less +235 -0
  101. package/less/section.less +793 -0
  102. package/less/select.less +150 -0
  103. package/less/tables.less +737 -0
  104. package/less/tabs.less +162 -0
  105. package/less/tooltip.less +87 -0
  106. package/less/type.less +71 -0
  107. package/less/utilities/align.less +27 -0
  108. package/less/utilities/animate.less +3512 -0
  109. package/less/utilities/background.less +70 -0
  110. package/less/utilities/borders.less +16 -0
  111. package/less/utilities/color.less +70 -0
  112. package/less/utilities/cursor.less +8 -0
  113. package/less/utilities/display.less +38 -0
  114. package/less/utilities/embed.less +61 -0
  115. package/less/utilities/flex.less +76 -0
  116. package/less/utilities/jquery-ui.less +116 -0
  117. package/less/utilities/lazyload.less +29 -0
  118. package/less/utilities/overflow.less +11 -0
  119. package/less/utilities/pace.less +25 -0
  120. package/less/utilities/placeholder.less +60 -0
  121. package/less/utilities/position.less +42 -0
  122. package/less/utilities/scrollbar.less +152 -0
  123. package/less/utilities/spacing.less +197 -0
  124. package/less/utilities/text.less +68 -0
  125. package/less/utilities/transform.less +7 -0
  126. package/less/utilities.less +21 -0
  127. package/less/variables.less +343 -0
  128. package/package.json +71 -0
  129. package/scss/LISENCE +15 -0
  130. package/scss/_alert.scss +125 -0
  131. package/scss/_badge.scss +58 -0
  132. package/scss/_button-group.scss +124 -0
  133. package/scss/_buttons.scss +206 -0
  134. package/scss/_custom-forms.scss +423 -0
  135. package/scss/_dialog.scss +149 -0
  136. package/scss/_dropdown.scss +234 -0
  137. package/scss/_forms.scss +257 -0
  138. package/scss/_frame.scss +523 -0
  139. package/scss/_functions.scss +114 -0
  140. package/scss/_grid.scss +35 -0
  141. package/scss/_images.scss +312 -0
  142. package/scss/_input-group.scss +245 -0
  143. package/scss/_list-group.scss +82 -0
  144. package/scss/_mixins.scss +32 -0
  145. package/scss/_navbar.scss +214 -0
  146. package/scss/_pagination.scss +79 -0
  147. package/scss/_popover.scss +165 -0
  148. package/scss/_reboot.scss +279 -0
  149. package/scss/_root.scss +15 -0
  150. package/scss/_section.scss +851 -0
  151. package/scss/_select.scss +166 -0
  152. package/scss/_tables.scss +707 -0
  153. package/scss/_tabs.scss +175 -0
  154. package/scss/_toast.scss +182 -0
  155. package/scss/_tooltip.scss +101 -0
  156. package/scss/_type.scss +90 -0
  157. package/scss/_utilities.scss +21 -0
  158. package/scss/_variables.scss +697 -0
  159. package/scss/cool-grid.scss +29 -0
  160. package/scss/cool-reboot.scss +11 -0
  161. package/scss/cool.scss +36 -0
  162. package/scss/mixins/_alert-variant.scss +40 -0
  163. package/scss/mixins/_aspect-ratio.scss +29 -0
  164. package/scss/mixins/_background-variant.scss +25 -0
  165. package/scss/mixins/_badge-variant.scss +13 -0
  166. package/scss/mixins/_breakpoints.scss +102 -0
  167. package/scss/mixins/_buttons.scss +104 -0
  168. package/scss/mixins/_caret.scss +80 -0
  169. package/scss/mixins/_clearfix.scss +10 -0
  170. package/scss/mixins/_float.scss +14 -0
  171. package/scss/mixins/_forms.scss +51 -0
  172. package/scss/mixins/_gradients.scss +40 -0
  173. package/scss/mixins/_grid-framework.scss +72 -0
  174. package/scss/mixins/_grid.scss +60 -0
  175. package/scss/mixins/_nav-divider.scss +9 -0
  176. package/scss/mixins/_object-fit.scss +16 -0
  177. package/scss/mixins/_reset-text.scss +19 -0
  178. package/scss/mixins/_text-emphasis.scss +21 -0
  179. package/scss/mixins/_text-hide.scss +10 -0
  180. package/scss/mixins/_text-truncate.scss +8 -0
  181. package/scss/project.sublime-workspace +491 -0
  182. package/scss/utilities/_align.scss +41 -0
  183. package/scss/utilities/_animate.scss +3512 -0
  184. package/scss/utilities/_background.scss +14 -0
  185. package/scss/utilities/_borders.scss +146 -0
  186. package/scss/utilities/_clearfix.scss +6 -0
  187. package/scss/utilities/_collapse.scss +33 -0
  188. package/scss/utilities/_cursor.scss +10 -0
  189. package/scss/utilities/_display.scss +16 -0
  190. package/scss/utilities/_embed.scss +78 -0
  191. package/scss/utilities/_flex.scss +50 -0
  192. package/scss/utilities/_lazyload.scss +31 -0
  193. package/scss/utilities/_overflow.scss +6 -0
  194. package/scss/utilities/_perfect-scrollbar.scss +154 -0
  195. package/scss/utilities/_placeholder.scss +76 -0
  196. package/scss/utilities/_position.scss +30 -0
  197. package/scss/utilities/_sizing.scss +32 -0
  198. package/scss/utilities/_spacing.scss +92 -0
  199. package/scss/utilities/_text.scss +97 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cool.esm.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.esm.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.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.is('td, .td, img') && !btnDisabled) {\n\n $(btn).click();\n\n } else {\n\n return;\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\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this.el);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this.el);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.el);\n }\n }\n\n // Show callback\n onShow() {\n\n let onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this.el);\n }\n }\n\n // Close callback\n onClose() {\n\n let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this.el);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import 'jquery';\nimport { 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.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\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 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 $.when(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 // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\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\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n if (this.$el.find('.select-search')) {\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')) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n if (this.items.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\">${items}</div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\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 this.$selectLabels = this.$select.find('[data-label]');\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\n if (this.showFooter) {\n\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n }\n\n $.each(this.$selectLabels, function(i, el) {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\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 } else {\n\n this.$select = this.$el.find('.select-content');\n this.$scrollableContent = this.$select.find('.select-scrollable-content');\n this.$selectItems = this.$select.find('.select-item');\n this.$selectLabels = this.$select.find('[data-label]');\n\n if (this.showSearch) {\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\n if (this.showFooter) {\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n }\n\n $.each(this.$selectLabels, (i, el) => {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\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 return true;\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 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 // 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 {\n this.show();\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"checkbox\"]', function() {\n\n let val = $(this).val();\n\n if (this.checked) {\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n } else {\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n }\n\n self.onSelect(this);\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')) {\n\n self.data[plugin.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n } else {\n\n $(this).addClass('checked');\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.$clearSearchButton.on('click'+'.'+NAME, function() {\n\n if (self.searchString.length) {\n\n self.$searchInput.val('');\n self.searchString = '';\n\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 === 0 && self.contentOpen) {\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 type = null;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\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(function (item) {\n\n if (item.name) {\n let label = item.name;\n } else if (item.label) {\n let label = item.label;\n } else if (item.value) {\n let label = item.value;\n }\n\n return {\n id: item.id.toString(),\n label: label\n }\n });\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) > -1;\n });\n\n let result = $(self._renderItemList(items));\n\n $.when(self.$scrollableContent.append(result)).then(function() {\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.$select.find(':input[type=\"checkbox\"]').length) {\n type = 'checkbox';\n } else if (self.$select.find(':input[type=\"radio\"]').length) {\n type = 'radio';\n }\n\n if (type == 'checkbox') {\n\n self.data[self.name].forEach(function(value) {\n\n let $input = self.$select.find(':input').filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (type == 'radio') {\n\n let $input = self.$select.find(':input').filter(function() { return this.value == self.data[self.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n self.onSelect($input[0]);\n }\n });\n });\n\n } else {\n\n if (this.$select.find(':input[type=\"checkbox\"]').length) {\n type = 'checkbox';\n } else if (this.$select.find(':input[type=\"radio\"]').length) {\n type = 'radio';\n }\n\n if (type == 'checkbox') {\n\n this.data[this.name].forEach(function(value) {\n\n let $input = self.$select.find(':input').filter(function() { return this.value == value });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (type == 'radio') {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == self.data[self.name] });\n\n $input.prop('checked', true);\n $input.addClass('checked');\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(function (item) {\n return {\n id: item.id.toString(),\n label: item.name || item.label || item.value || null\n }\n });\n\n items = items.filter(function(item) {\n return !(self.data[self.name].indexOf(item.id) > -1);\n });\n\n // Remove 0 id from results\n items = items.filter(function(item) {\n return [0].indexOf(item.id) > -1;\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\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 this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\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) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-green icon\"></i>`);\n } else {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-down icon\"></i>`);\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n onSelect(el) {\n\n let onSelect = this.opts.onSelect;\n\n if (typeof onSelect === 'function') {\n\n onSelect.call(el);\n }\n }\n\n _renderItemList(items) {\n\n let html = '';\n\n for (let i = 0; i < items.length; ++i) {\n\n html += `\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}\">\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\" data-label>\n ${items[i].label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n\n `;\n }\n }\n\n _renderSearch() {\n\n if (!this.showSearch) {\n return '';\n }\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.opts.searchPlaceholder}\">\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 _renderFooter() {\n\n if (!this.showFooter) {\n return '';\n }\n\n return `\n\n <div class=\"select-footer\">\n\n <button class=\"btn btn-primary\" type=\"button\" data-select-close>\n ${this.opts.btnCloseText}\n </button>\n\n </div>\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 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 onSearch: null,\n onSelect: null,\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n debug: false\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.closeOnItemClick = this.$el.data('closeOnItemClick') ? this.$el.data('closeOnItemClick') : this.opts.closeOnItemClick;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.contentOpen = false;\n\n if (this.$container.hasClass('dropup')) {\n this.placement = 'top';\n } else if (this.$container.hasClass('dropright')) {\n this.placement = 'right';\n } else if (this.$container.hasClass('dropbottom')) {\n this.placement = 'bottom';\n } else {\n this.placement = 'left';\n }\n\n if (typeof this.content === 'function') {\n\n let menuRight = this.opts.align === 'end' ? ' dropdown-menu-right' : '';\n\n this.$dropdown = $(`\n <div class=\"dropdown-menu${menuRight}\" id=\"${this.id}\">\n ${this.content}\n </div>\n `);\n\n $.when(this.$el.after(this.$dropdown)).then(() => {\n\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n });\n\n } else {\n\n this.$dropdown = this.$el.next('.dropdown-menu') ? this.$el.next('.dropdown-menu') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.opts.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n }\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.opts.scroll && this.$scrollableContent.length) {\n\n this.$scrollableContent.css({\n 'max-height': this.scrollContentHeight+'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20\n });\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n }\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n });\n\n this.$dropdownItem.on('click'+'.'+NAME, function() {\n\n if (self.closeOnItemClick) {\n self.close();\n }\n\n self.onItemClick(this);\n });\n\n $(document).on('touchstart click', (e) => {\n\n if (!this.$el.is(e.target) && !this.$dropdown.is(e.target) && this.$dropdown.has(e.target).length === 0 && this.contentOpen) {\n this.close();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n this.setPosition();\n this.onUpdate();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n let dropdownWidth = this.$dropdown.outerWidth(true);\n let dropdownHeight = this.$dropdown.outerHeight(true);\n let dropdownTriggerWidth = this.$el.outerWidth(true);\n let dropdownTriggerHeight = this.$el.outerHeight(true);\n let dropdownTriggerPosX = this.$el.position().left;\n let dropdownTriggerPosY = this.$el.position().top;\n let dropdownPosX;\n let dropdownPosY;\n\n if (placement === 'top') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY - dropdownHeight;\n\n } else if (placement === 'right') {\n\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth;\n dropdownPosY = dropdownTriggerPosY;\n\n } else if (placement === 'bottom') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight;\n\n } else if (placement === 'left') {\n\n dropdownPosX = dropdownTriggerPosX - dropdownWidth;\n dropdownPosY = dropdownTriggerPosY;\n }\n\n if (this.offset) {\n\n let offsets = this.offset.split(',')\n let offsetX = offsets[0];\n let offsetY = offsets[1];\n\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n this.$dropdown.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+Math.round(dropdownPosX)+'px, '+Math.round(dropdownPosY)+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Dropdown trigger width: '+dropdownTriggerWidth+'px');\n this.log('Dropdown trigger height: '+dropdownTriggerHeight+'px');\n this.log('Dropdown trigger position x: '+dropdownTriggerPosX+'px');\n this.log('Dropdown trigger position Y: '+dropdownTriggerPosY+'px');\n this.log('Dropdown width: '+dropdownWidth+'px');\n this.log('Dropdown height: '+dropdownHeight+'px');\n this.log('Dropdown position x: '+dropdownPosX+'px');\n this.log('Dropdown position y: '+dropdownPosY+'px');\n }\n\n // Show\n show() {\n\n if (!this.$dropdown || this.$dropdown.hasClass('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass(this.animationSpeed);\n this.$dropdown.animateCss(this.animationIn);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n\n } else {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n }\n\n if (this.opts.scroll && this.scroll && this.$scrollableContent.length) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$dropdown) {\n return;\n }\n\n if (this.animation && !this.$dropdown.hasClass('animated')) {\n\n this.$dropdown.animateCss(this.animationOut, () => {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n });\n\n } else {\n\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n // Item callback\n onItemClick(el) {\n\n let onItemClick = this.opts.onItemClick;\n\n if (typeof onItemClick === 'function') {\n\n onItemClick.call(el);\n }\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dropdown._jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT\n\n return Dropdown._jQueryInterface\n }\n\n $.fn[NAME].defaults = {\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'zoomOut',\n animationSpeed: 'fastest',\n offset: null,\n minWidth: null,\n align: 'start',\n closeOnItemClick: true,\n content: false,\n scroll: true,\n scrollContentHeight: 100,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onItemClick: null,\n debug: false\n }\n}\n\nexport default Dropdown;","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 $(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 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 this.$target.removeClass('collapse visible');\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('visible');\n }\n\n this.$target.css('height');\n this.$target.css('height', this.targetHeight);\n\n if (this.$indicator.length) {\n this.$indicator.addClass('visible');\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 visible');\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 visible');\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('visible');\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('visible')) {\n this.$indicator.removeClass('visible');\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\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 } 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 actions: settings.actions,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\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 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}\"${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: window.innerHeight - 200,\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","AbstractUIComponent","onInit","onUpdate","onDestroy","onShow","onClose","log","debug","console","NAME","DATA_KEY","Popover","constructor","defaults","init","buildCache","bindEvents","unbindEvents","$el","removeData","container","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","title","content","$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","when","then","buildScroll","setData","$selectHeader","$selectIconContainer","scrollContentHeight","items","searchData","searchApi","type","contentOpen","showSearch","showFooter","_renderItemList","$select","_renderSearch","_renderFooter","$scrollableContent","$selectItems","$selectLabels","$searchContainer","$searchInput","$searchIconContainer","$clearSearchButton","$footerContainer","$closeButton","text","trim","scroll","self","checked","n","onSelect","prop","plugin","searchString","search","has","getData","faNameSpace","faPro","html","searchUrl","itemCount","currentCount","value","encodeURIComponent","ajax","method","url","done","map","label","$input","results","toLocaleLowerCase","$otherSelects","zindex","searchPlaceholder","btnCloseText","onSearch","Dropdown","offset","minWidth","closeOnItemClick","menuRight","align","$dropdown","after","$dropdownItem","next","onItemClick","str","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsets","offsetX","offsetY","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","grep","body","bodyCloseBtn","Dialog","dialogs","buildDialog","footer","classes","centered","backdrop","preventScroll","closeBtn","callbacks","actions","confirm","$prevDialog","eq","zIndex","checkForBackdrop","btnCancel","btnRemove","btnConfirm","btnStyle","btnClasses","btnAttrs","visible","primary","attrs"],"mappings":"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"}