@finqu/cool 1.2.29 → 1.3.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 (206) hide show
  1. package/README.md +680 -1
  2. package/dist/css/cool.css +23575 -16644
  3. package/dist/css/cool.css.map +1 -154
  4. package/dist/css/cool.min.css +89 -3
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +15402 -3800
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +20 -8
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +4269 -3360
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +9 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +4271 -3362
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +9 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +94 -61
  19. package/.babelrc.js +0 -20
  20. package/.browserslistrc +0 -13
  21. package/build/.eslintrc.json +0 -10
  22. package/build/banner.js +0 -14
  23. package/build/build-plugins.js +0 -92
  24. package/build/rollup.config.js +0 -46
  25. package/dist/css/cool-grid.css +0 -4390
  26. package/dist/css/cool-grid.css.map +0 -30
  27. package/dist/css/cool-grid.min.css +0 -7
  28. package/dist/css/cool-grid.min.css.map +0 -1
  29. package/dist/css/cool-reboot.css +0 -286
  30. package/dist/css/cool-reboot.css.map +0 -62
  31. package/dist/css/cool-reboot.min.css +0 -7
  32. package/dist/css/cool-reboot.min.css.map +0 -1
  33. package/html/index.html +0 -2703
  34. package/js/dist/collapse.js +0 -5535
  35. package/js/dist/collapse.js.map +0 -1
  36. package/js/dist/common.js +0 -21996
  37. package/js/dist/common.js.map +0 -1
  38. package/js/dist/cooldropdown.js +0 -467
  39. package/js/dist/cooldropdown.js.map +0 -1
  40. package/js/dist/coolpopover.js +0 -391
  41. package/js/dist/coolpopover.js.map +0 -1
  42. package/js/dist/coolsectiontabs.js +0 -256
  43. package/js/dist/coolsectiontabs.js.map +0 -1
  44. package/js/dist/coolselect.js +0 -796
  45. package/js/dist/coolselect.js.map +0 -1
  46. package/js/dist/cooltooltip.js +0 -360
  47. package/js/dist/cooltooltip.js.map +0 -1
  48. package/js/dist/coolui.js +0 -73
  49. package/js/dist/coolui.js.map +0 -1
  50. package/js/dist/dropdown.js +0 -27421
  51. package/js/dist/dropdown.js.map +0 -1
  52. package/js/dist/popover.js +0 -9472
  53. package/js/dist/popover.js.map +0 -1
  54. package/js/dist/sectiontabs.js +0 -4483
  55. package/js/dist/sectiontabs.js.map +0 -1
  56. package/js/dist/select.js +0 -37080
  57. package/js/dist/select.js.map +0 -1
  58. package/js/dist/tooltip.js +0 -8786
  59. package/js/dist/tooltip.js.map +0 -1
  60. package/js/index.esm.js +0 -21
  61. package/js/index.umd.js +0 -21
  62. package/js/src/abstract-ui-component.js +0 -81
  63. package/js/src/collapse.js +0 -286
  64. package/js/src/common.js +0 -296
  65. package/js/src/dialog.js +0 -579
  66. package/js/src/dropdown.js +0 -525
  67. package/js/src/popover.js +0 -632
  68. package/js/src/section-tabs.js +0 -215
  69. package/js/src/select.js +0 -1342
  70. package/js/src/toast.js +0 -581
  71. package/js/src/tooltip.js +0 -591
  72. package/js/src/util/animate-css.js +0 -22
  73. package/js/src/util/index.js +0 -122
  74. package/js/src/util/perfect-scrollbar.js +0 -1316
  75. package/less/alert.less +0 -345
  76. package/less/badge.less +0 -38
  77. package/less/bootstrap-noconflict.less +0 -23
  78. package/less/bootstrap.less +0 -23
  79. package/less/button-group.less +0 -153
  80. package/less/buttons.less +0 -287
  81. package/less/dialog-noconflict.less +0 -174
  82. package/less/dialog.less +0 -203
  83. package/less/dropdown.less +0 -209
  84. package/less/forms.less +0 -770
  85. package/less/images.less +0 -242
  86. package/less/input-group.less +0 -163
  87. package/less/list-group.less +0 -73
  88. package/less/mixins/aspect-ratio.less +0 -23
  89. package/less/mixins/border-radius.less +0 -24
  90. package/less/mixins/box-shadow.less +0 -4
  91. package/less/mixins/buttons.less +0 -17
  92. package/less/mixins/caret.less +0 -51
  93. package/less/mixins/clearfix.less +0 -10
  94. package/less/mixins/gradients.less +0 -34
  95. package/less/mixins/nav-divider.less +0 -7
  96. package/less/mixins/object-fit.less +0 -13
  97. package/less/mixins/reset-text.less +0 -16
  98. package/less/mixins.less +0 -11
  99. package/less/package.json +0 -11
  100. package/less/pagination.less +0 -69
  101. package/less/popover.less +0 -143
  102. package/less/project.sublime-workspace +0 -774
  103. package/less/reboot.less +0 -235
  104. package/less/section.less +0 -793
  105. package/less/select.less +0 -150
  106. package/less/tables.less +0 -737
  107. package/less/tabs.less +0 -162
  108. package/less/tooltip.less +0 -87
  109. package/less/type.less +0 -71
  110. package/less/utilities/align.less +0 -27
  111. package/less/utilities/animate.less +0 -3512
  112. package/less/utilities/background.less +0 -70
  113. package/less/utilities/borders.less +0 -16
  114. package/less/utilities/color.less +0 -70
  115. package/less/utilities/cursor.less +0 -8
  116. package/less/utilities/display.less +0 -38
  117. package/less/utilities/embed.less +0 -61
  118. package/less/utilities/flex.less +0 -76
  119. package/less/utilities/jquery-ui.less +0 -116
  120. package/less/utilities/lazyload.less +0 -29
  121. package/less/utilities/overflow.less +0 -11
  122. package/less/utilities/pace.less +0 -25
  123. package/less/utilities/placeholder.less +0 -60
  124. package/less/utilities/position.less +0 -42
  125. package/less/utilities/scrollbar.less +0 -152
  126. package/less/utilities/spacing.less +0 -197
  127. package/less/utilities/text.less +0 -68
  128. package/less/utilities/transform.less +0 -7
  129. package/less/utilities.less +0 -21
  130. package/less/variables.less +0 -343
  131. package/scss/LISENCE +0 -15
  132. package/scss/_alert.scss +0 -102
  133. package/scss/_badge.scss +0 -102
  134. package/scss/_button-group.scss +0 -129
  135. package/scss/_buttons.scss +0 -248
  136. package/scss/_custom-forms.scss +0 -444
  137. package/scss/_dialog.scss +0 -160
  138. package/scss/_dropdown.scss +0 -233
  139. package/scss/_forms.scss +0 -258
  140. package/scss/_frame.scss +0 -627
  141. package/scss/_functions.scss +0 -124
  142. package/scss/_grid.scss +0 -35
  143. package/scss/_images.scss +0 -361
  144. package/scss/_input-group.scss +0 -285
  145. package/scss/_list-group.scss +0 -82
  146. package/scss/_mixins.scss +0 -34
  147. package/scss/_navbar.scss +0 -290
  148. package/scss/_notification.scss +0 -13
  149. package/scss/_pagination.scss +0 -88
  150. package/scss/_popover.scss +0 -167
  151. package/scss/_reboot.scss +0 -284
  152. package/scss/_root.scss +0 -15
  153. package/scss/_section.scss +0 -977
  154. package/scss/_select.scss +0 -187
  155. package/scss/_tables.scss +0 -735
  156. package/scss/_tabs.scss +0 -178
  157. package/scss/_toast.scss +0 -182
  158. package/scss/_tooltip.scss +0 -101
  159. package/scss/_type.scss +0 -129
  160. package/scss/_utilities.scss +0 -23
  161. package/scss/_variables.scss +0 -823
  162. package/scss/cool-grid.scss +0 -29
  163. package/scss/cool-reboot.scss +0 -11
  164. package/scss/cool.scss +0 -37
  165. package/scss/mixins/_alert-variant.scss +0 -20
  166. package/scss/mixins/_aspect-ratio.scss +0 -29
  167. package/scss/mixins/_background-variant.scss +0 -25
  168. package/scss/mixins/_badge-variant.scss +0 -36
  169. package/scss/mixins/_breakpoints.scss +0 -102
  170. package/scss/mixins/_buttons.scss +0 -104
  171. package/scss/mixins/_caret.scss +0 -80
  172. package/scss/mixins/_clearfix.scss +0 -10
  173. package/scss/mixins/_float.scss +0 -14
  174. package/scss/mixins/_forms.scss +0 -67
  175. package/scss/mixins/_gradients.scss +0 -40
  176. package/scss/mixins/_grid-framework.scss +0 -72
  177. package/scss/mixins/_grid.scss +0 -60
  178. package/scss/mixins/_nav-divider.scss +0 -9
  179. package/scss/mixins/_notification-variant.scss +0 -7
  180. package/scss/mixins/_object-fit.scss +0 -16
  181. package/scss/mixins/_reset-text.scss +0 -19
  182. package/scss/mixins/_text-emphasis.scss +0 -21
  183. package/scss/mixins/_text-hide.scss +0 -10
  184. package/scss/mixins/_text-truncate.scss +0 -81
  185. package/scss/mixins/_visibility.scss +0 -7
  186. package/scss/project.sublime-workspace +0 -491
  187. package/scss/utilities/_align.scss +0 -41
  188. package/scss/utilities/_animate.scss +0 -3512
  189. package/scss/utilities/_background.scss +0 -14
  190. package/scss/utilities/_borders.scss +0 -146
  191. package/scss/utilities/_clearfix.scss +0 -6
  192. package/scss/utilities/_collapse.scss +0 -33
  193. package/scss/utilities/_cursor.scss +0 -22
  194. package/scss/utilities/_display.scss +0 -16
  195. package/scss/utilities/_embed.scss +0 -78
  196. package/scss/utilities/_flex.scss +0 -52
  197. package/scss/utilities/_lazyload.scss +0 -31
  198. package/scss/utilities/_overflow.scss +0 -6
  199. package/scss/utilities/_perfect-scrollbar.scss +0 -141
  200. package/scss/utilities/_placeholder.scss +0 -77
  201. package/scss/utilities/_position.scss +0 -30
  202. package/scss/utilities/_sizing.scss +0 -32
  203. package/scss/utilities/_spacing.scss +0 -92
  204. package/scss/utilities/_text.scss +0 -99
  205. package/scss/utilities/_user-select.scss +0 -14
  206. package/scss/utilities/_visibility.scss +0 -10
@@ -1 +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 static refresh() {\n $('.form-label-group').each(function(i, formLabelGroup) {\n const $formLabelGroup = $(formLabelGroup);\n const val = $formLabelGroup.find('input, select').val();\n\n if (val) {\n $(formLabelGroup).addClass('label-on-top');\n } else {\n $(formLabelGroup).removeClass('label-on-top');\n }\n });\n }\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 $(document).on('blur input change', '.form-label-group', function() {\n const $formLabelGroup = $(this);\n const val = $formLabelGroup.find('input, select').val();\n\n if (val) {\n $(this).addClass('label-on-top');\n } else {\n $(this).removeClass('label-on-top');\n }\n });\n\n $('.form-label-group').each(function(i, formLabelGroup) {\n const $formLabelGroup = $(formLabelGroup);\n const val = $formLabelGroup.find('input, select').val();\n\n if (val) {\n $(formLabelGroup).addClass('label-on-top');\n } else {\n $(formLabelGroup).removeClass('label-on-top');\n }\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] .table-link-exclude, [data-table-link] input, [data-table-link] button, [data-table-link] a, [data-table-link] label, [data-table-link] .td-col-select', function(e) {\n e.stopPropagation();\n });\n\n $(document).on('click', '[data-table-link]', function(e) {\n const $container = $(this).parents('table, .table');\n const href = $(this).data('tableLink');\n\n if ($container.hasClass('bulk-actions-active')) {\n return;\n }\n\n if (e.ctrlKey || e.metaKey) {\n window.open(href, '_blank');\n } else {\n window.location.href = href;\n }\n });\n\n $(document).on('click', '[data-table-btn] .table-btn-exclude, [data-table-btn] input, [data-table-btn] button, [data-table-btn] a, [data-table-btn] label, [data-table-btn] .td-col-select', function(e) {\n e.stopPropagation();\n });\n\n $(document).on('click', '[data-table-btn]', function(e) {\n const $container = $(this).parents('table, .table');\n let btn = $(this).data('tableButton');\n\n if (!btn) {\n btn = $container.find('button')[0];\n\n if (!btn) {\n return;\n }\n }\n\n if ($container.hasClass('bulk-actions-active')) {\n return;\n }\n\n $(btn).click();\n });\n\n // button toggle\n $(document).on('click', '.btn-group-toggle .btn > input', function(e) {\n e.stopPropagation();\n });\n\n $(document).on('click', '.btn-group-toggle .btn', function() {\n $(this).find('input').trigger('click');\n $(this).parent().find('input').trigger('change');\n });\n\n $(document).on('change', '.btn-group-toggle .btn > input', function() {\n if ($(this).is(':checked')) {\n $(this).parent().addClass('active');\n } else {\n $(this).parent().removeClass('active');\n }\n });\n\n // Force select element unfocus after change\n $('select').on('change', function() {\n $(this).blur();\n });\n\n // Tabs\n $('.tab-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).parent().toggleClass('open');\n });\n\n $(document).on('click', function() {\n\n $('.tabs-container').removeClass('open');\n });\n\n // Sidebar togglers\n $('.sidebar-left-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-left-open');\n });\n\n $('.sidebar-right-toggler').on('click', function(e) {\n\n e.stopPropagation();\n\n $(this).toggleClass('open');\n $('body').toggleClass('sidebar-right-open');\n });\n\n // Sidebar scroll\n $('.sidebar-content .ps__thumb-y').mousedown(function() {\n $(this).parent().parent().addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if ($('.sidebar-content').hasClass('ps-mousedown-scroll')) {\n $('.sidebar-content').removeClass('ps-mousedown-scroll');\n }\n });\n\n // Sidebar left scroll\n let $sidebarLeft = $('.sidebar-left');\n let $sidebarLeftContent = $sidebarLeft.find('.sidebar-content');\n\n if ($sidebarLeftContent.length) {\n let sidebarLeftScroll = new PerfectScrollbar($sidebarLeftContent[0], {\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true\n });\n\n $sidebarLeftContent.find('[data-toggle=\"collapse\"]').on('click', function(e) {\n if ($(this).data('breakpoint') && window.matchMedia(`(min-width: ${$(this).data('breakpoint')}px)`).matches) {\n const a = $(this).next().find('li').first().children('a').first();\n\n if (a) {\n window.location.href = a.attr('href');\n }\n } else {\n setTimeout(() => {\n sidebarLeftScroll.update();\n }, 300);\n }\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;\nwindow.Cool.refresh = Common.refresh;\n\nexport default Common;","import 'jquery';\n\nconst debounce = function (func, wait, immediate) {\n\n\tlet timeout;\n\n\treturn function() {\n\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function() {\n\n\t\t\ttimeout = null;\n\n\t\t\tif (!immediate) {\n\t\t\t\tfunc.apply(context, args)\n\t\t\t};\n\t\t};\n\n\t\tlet callNow = immediate && !timeout;\n\n\t\tclearTimeout(timeout);\n\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n};\n\nconst shallowProperty = function(key) {\n\n\treturn function(obj) {\n\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function(collection) {\n\n\tlet length = shallowProperty('length');\n\n\treturn typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function(func, context, argCount) {\n\n if (context === void 0) {\n \treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\n\t\tcase 1: return function(value) {\n\t\t\treturn func.call(context, value);\n\t\t};\n\n\t\tcase 3: return function(value, index, collection) {\n\t\t\treturn func.call(context, value, index, collection);\n\t\t};\n\t\tcase 4: return function(accumulator, value, index, collection) {\n\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t};\n\t}\n\n return function() {\n\t\treturn func.apply(context, arguments);\n };\n};\n\nconst each = function(obj, iteratee, context) {\n\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\n\t} else {\n\n\t\tlet keys = Object.keys(obj);\n\n\t\tfor (i = 0, length = keys.length; i < length; i++) {\n\t\t\titeratee(obj[keys[i]], keys[i], obj);\n\t\t}\n\t}\n\n\treturn obj;\n};\n\nconst touchEvents = function () {\n\n\tlet result = false;\n\n\tif (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n\t\tresult = true;\n\t}\n\n\treturn result;\n};\n\n$.event.special.destroyed = {\n\n\tremove: function(obj) {\n\n\t\tif (obj.handler) {\n\t\t\tobj.handler();\n\t\t}\n\t}\n}\n\nexport {\n\tdebounce,\n\ttouchEvents,\n\teach\n}","export default class AbstractUIComponent {\n\n\t// Init callback\n onInit() {\n\n let onInit = this.opts.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(this);\n }\n }\n\n // Update callback\n onUpdate() {\n\n let onUpdate = this.opts.onUpdate;\n\n if (typeof onUpdate === 'function') {\n\n onUpdate.call(this);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.opts.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this);\n }\n }\n\n // Show callback\n onShow() {\n\n let onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(this);\n }\n }\n\n // Close callback\n onClose() {\n\n let onClose = this.opts.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(this);\n }\n }\n\n // Reset callback\n onReset() {\n\n let onReset = this.opts.onReset;\n\n if (typeof onReset === 'function') {\n\n onReset.call(this);\n }\n }\n\n // Debug log\n log(...args) {\n\n \tif (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n \t \tconsole.log(...args);\n }\n \t}\n }\n}","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolPopover';\nconst DATA_KEY = 'plugin_coolPopover';\n\nclass Popover extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.popover) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.popover, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.containerAutoDetect = this.$el.data('containerAutoDetect') ? this.$el.data('containerAutoDetect') : this.opts.containerAutoDetect;\n this.id = 'popover-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.title = this.$el.data('title') ? this.$el.data('title') : this.opts.title;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n\n if (this.containerAutoDetect) {\n this.$container = this.$el.offsetParent();\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n if (this.trigger === 'click') {\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n\n } else if (this.trigger === 'hover') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, debounce(() => {\n if (!this.popupHasFocus) {\n this.close();\n }\n }, 500));\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\n this.$container.find('#'+this.id).on('mouseenter', () => {\n this.popupHasFocus = true;\n });\n\n this.$container.find('#'+this.id).on('mouseleave', () => {\n this.popupHasFocus = false;\n this.close();\n });\n\n this.$arrow = this.$popover.find('.arrow') ? this.$popover.find('.arrow') : false;\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$popover);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\n this.log('Trigger: '+this.trigger);\n this.log('Placement: '+this.placement);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Title: '+this.title);\n this.log('Content: '+this.content);\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.$popover.addClass('popover-'+placement);\n\n let containerInnerWidth = this.$container.innerWidth();\n let containerInnerHeight = this.$container.innerHeight();\n let popoverWidth = this.$popover.outerWidth(true);\n let popoverHeight = this.$popover.outerHeight(true);\n let popoverTriggerWidth = this.$el.outerWidth();\n let popoverTriggerHeight = this.$el.outerHeight();\n let popoverTriggerPosX = this.$el.position().left;\n let popoverTriggerPosY = this.$el.position().top;\n let arrowWidth = this.$arrow.outerWidth(true);\n let arrowHeight = this.$arrow.outerHeight(true);\n let arrowPos;\n let popoverPosX;\n let popoverPosY;\n\n if (placement === 'top') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY - popoverHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n popoverPosX = Math.round(popoverTriggerPosX + popoverTriggerWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n popoverPosX = Math.round(popoverTriggerPosX - (popoverWidth - popoverTriggerWidth) / 2);\n popoverPosY = Math.round(popoverTriggerPosY + popoverTriggerHeight);\n arrowPos = Math.round(popoverWidth / 2 - arrowWidth / 2);\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n popoverPosX = Math.round(popoverTriggerPosX - popoverWidth);\n popoverPosY = Math.round(popoverTriggerPosY - (popoverHeight - popoverTriggerHeight) / 2);\n arrowPos = Math.round(popoverHeight / 2 - arrowHeight / 2);\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n // Correct placement if popover goes outside of container\n let popoverOverflowCount = 0;\n let popoverPosition = {\n left: this.$popover.position().left,\n top: this.$popover.position().top,\n right: containerInnerWidth - (this.$popover.position().left + popoverWidth),\n bottom: containerInnerHeight - (this.$popover.position().top + popoverHeight),\n };\n let popoverOverflow = {\n left: false,\n top: false,\n right: false,\n bottom: false\n };\n\n if (popoverPosition.right < 0) {\n\n popoverOverflow.right = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from right');\n }\n\n if (popoverPosition.left < 0) {\n\n popoverOverflow.left = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from left');\n }\n\n if (popoverPosition.bottom < 0) {\n\n popoverOverflow.bottom = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from bottom');\n }\n\n if (popoverPosition.top < 0) {\n\n popoverOverflow.top = true;\n popoverOverflowCount++;\n\n this.log('Popover overflowing from top');\n }\n\n if (popoverOverflowCount > 0) {\n\n if (!this.placementChanged && popoverOverflow.left && popoverPosition.right > popoverWidth) {\n\n this.log('Changing popover placement to right');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n\n } else if (!this.placementChanged && popoverOverflow.top && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n\n } else if (!this.placementChanged && popoverOverflow.right && popoverPosition.left > popoverWidth) {\n\n this.log('Changing popover placement to left');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n\n } else if (!this.placementChanged && popoverOverflow.bottom && popoverPosition.top > popoverHeight) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else if (!this.placementChanged && (placement !== 'top' || placement !== 'bottom') && (popoverOverflow.left || popoverOverflow.right)) {\n\n if (popoverPosition.top > popoverPosition.bottom) {\n\n this.log('Changing popover placement to top');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n\n } else {\n\n this.log('Changing popover placement to bottom');\n\n this.placementChanged = true;\n this.$popover.removeClass('popover-'+placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n\n } else {\n\n this.fixPopoverPosition = true;\n }\n\n if (this.fixPopoverPosition) {\n\n this.log('Adjusting popover size or position in order to popover fit in the container');\n\n if (popoverOverflow.left) {\n\n this.log('Popover overflowing from left');\n\n let overflowAmount = Math.abs(popoverPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX >= popoverPosX + overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n popoverPosX += overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (popoverOverflow.top) {\n\n this.log('Popover overflowing from top');\n\n let overflowAmount = Math.abs(popoverPosition.top);\n\n this.log('Popover adjusting position y');\n\n popoverPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (popoverOverflow.right) {\n\n this.log('Popover overflowing from right');\n\n let overflowAmount = Math.abs(popoverPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if ((popoverTriggerPosX <= popoverPosX - overflowAmount) && excludePlacements.indexOf(placement) < 0) {\n\n this.log('Popover adjusting width');\n\n popoverWidth -= overflowAmount;\n\n } else {\n\n this.log('Popover adjusting position x');\n\n popoverPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (popoverOverflow.bottom) {\n\n this.log('Popover overflowing from bottom');\n\n let overflowAmount = Math.abs(popoverPosition.bottom);\n\n this.log('Popover adjusting position y');\n\n popoverPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'right') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n\n } else if (placement === 'bottom') {\n\n this.$arrow.css({\n left: arrowPos+'px'\n });\n\n } else if (placement === 'left') {\n\n this.$arrow.css({\n top: arrowPos+'px'\n });\n }\n\n this.$popover.css({\n width: popoverWidth,\n transform: 'translate3d('+popoverPosX+'px, '+popoverPosY+'px, 0px)'\n });\n\n this.fixPopoverPosition = false;\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n\n } else {\n\n this.log('Popover placement changed: '+this.placementChanged);\n this.log('Popover container inner width: '+containerInnerWidth+'px');\n this.log('Popover container inner height: '+containerInnerHeight+'px');\n this.log('Popover trigger width: '+popoverTriggerWidth+'px');\n this.log('Popover trigger height: '+popoverTriggerHeight+'px');\n this.log('popover trigger position x: '+popoverTriggerPosX+'px');\n this.log('Popover trigger position Y: '+popoverTriggerPosY+'px');\n this.log('Popover width: '+popoverWidth+'px');\n this.log('Popover height: '+popoverHeight+'px');\n this.log('Popover position x: '+popoverPosX+'px');\n this.log('Popover position y: '+popoverPosY+'px');\n this.log('Popover position left: '+popoverPosition.left+'px');\n this.log('Popover position top: '+popoverPosition.top+'px');\n this.log('Popover position right: '+popoverPosition.right+'px');\n this.log('Popover position bottom: '+popoverPosition.bottom+'px');\n }\n }\n\n // Show\n show() {\n\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n if (this.animation) {\n\n this.$popover.addClass(this.animationSpeed);\n this.$popover.animateCss(this.animationIn);\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n\n } else {\n\n this.$popover.addClass('show');\n this.$popover.attr('id', this.id);\n this.$el.attr('data-popover', this.id);\n }\n\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$popover) {\n return;\n }\n\n if (this.animation && !this.$popover.hasClass('animated')) {\n\n this.$popover.animateCss(this.animationOut, () => {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n\n } else {\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n this.placementChanged = false;\n\n this.onClose();\n }\n }\n\n static _jQueryInterface(config) {\n\n \treturn this.each(function() {\n\n \t\tlet data = $(this).data(DATA_KEY);\n \t\tconst _config = typeof config === 'object' && config;\n\n \t\tif (!data) {\n \t\t\tdata = new Popover(this, _config);\n \t\t\t$(this).data(DATA_KEY, data);\n \t\t}\n\n \t\tif (typeof config === 'string') {\n\n \t\t\tif (typeof data[config] === 'undefined') {\n\t\t \tthrow new TypeError(`No method named \"${config}\"`)\n\t\t }\n\n\t\t data[config]()\n \t\t}\n\t });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Popover._jQueryInterface;\n $.fn[NAME].Constructor = Popover;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Popover._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n container: '.content-inner',\n containerAutoDetect: false,\n trigger: 'focus',\n placement: 'bottom',\n animation: true,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n title: '',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Popover;","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolSelect';\nconst DATA_KEY = 'plugin_coolSelect';\n\nclass Select extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.select) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.select, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache().then(() => {\n\n this.buildScroll();\n this.bindEvents();\n\n if (this.data[this.name].length > 0) {\n this.setData();\n }\n\n this.onInit();\n });\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.bindEvents();\n this.onUpdate();\n }\n\n // Reset plugin data\n reset() {\n\n this.data = {};\n this.data[this.name] = [];\n this.items = [];\n this.$select.find('.select-item').remove();\n this.$selectItems = [];\n this.$selectIconContainer.html(this.selectIconDefault);\n this.$selectHeader.removeClass('select-placeholder');\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n this.$selectHeader.addClass('select-placeholder');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.searchData = [];\n this.$searchInput.val('');\n this.searchString = '';\n this.search.call(this);\n }\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n return new Promise((primaryResolve, primaryReject) => {\n\n let self = this;\n\n this.$el = $(this.el);\n this.$container = this.$el.parent();\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectTitle = this.$el.find('.select-title');\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\n this.selectIconDefault = this.$selectHeader.find('.select-icon') ? this.$selectHeader.find('.select-icon').html() : '<i class=\"'+(this.opts.faPro ? 'fal' : 'fas')+'fa-angle-down icon\"></i>';\n this.name = this.$el.data('name') ? this.$el.data('name') : this.opts.name;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.items = this.$el.data('items') ? this.$el.data('items') : this.opts.items;\n this.data = {};\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;\n this.searchRequest = null;\n this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;\n this.contentOpen = false;\n this.searchPlaceholder = this.$el.data('search-placeholder') ? this.$el.data('search-placeholder') : this.opts.searchPlaceholder;\n this.btnCloseText = this.$el.data('btn-close-text') ? this.$el.data('btn-close-text') : this.opts.btnCloseText;\n this.labelTemplate = this.opts.labelTemplate;\n this.confirmCheck = this.opts.confirmCheck;\n this.confirmUncheck = this.opts.confirmUncheck;\n this.preventUncheck = this.opts.preventUncheck;\n this.dynamicTitle = this.$el.data('dynamicTitle') ? this.$el.data('dynamicTitle') : this.opts.dynamicTitle;\n this.dynamicTitleDefault = this.$el.data('dynamicTitleDefault') ? this.$el.data('dynamicTitleDefault') : this.opts.dynamicTitleDefault;\n this.dynamicTitleEmptyDefault = this.$el.data('dynamicTitleEmptyDefault') ? this.$el.data('dynamicTitleEmptyDefault') : this.opts.dynamicTitleEmptyDefault;\n this.allowNoneOnRadioSelect = this.$el.data('allowNoneOnRadioSelect') ? this.$el.data('allowNoneOnRadioSelect') : this.opts.allowNoneOnRadioSelect;\n this.showValidStateIcon = this.$el.data('showValidStateIcon') ? this.$el.data('showValidStateIcon') : this.opts.showValidStateIcon;\n this.itemsToExclude = this.$el.data('itemsToExclude') ? this.$el.data('itemsToExclude').replace(/\\s/g, '').split(',') : this.opts.itemsToExclude;\n this.primaryKeyword = this.$el.data('primaryKeyword') ? this.$el.data('primaryKeyword') : this.opts.primaryKeyword;\n this.preventClose = false;\n\n if (this.itemsToExclude.length > 0) {\n this.itemsToExclude = this.itemsToExclude.map(String);\n }\n\n if (this.opts.setData) {\n this.data = this.opts.setData;\n }\n\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n // Convert data to be array so filters doesn't fail\n if (!Array.isArray(this.data[this.name]) && this.data[this.name] !== '' && this.data[this.name].length > 0) {\n\n const arr = this.data[this.name].toString().trim().split(',');\n\n this.data[this.name] = arr;\n }\n\n // Convert all values to string format to make filtering more simple\n if (this.data[this.name].length > 0) {\n this.data[this.name] = this.data[this.name].map(String);\n }\n\n if (this.data[this.name].length > 0 && this.itemsToExclude.length > 0) {\n\n this.data[this.name] = this.data[this.name].filter(function(item) {\n\n if (item[self.primaryKeyword]) {\n\n return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;\n\n } else {\n\n return self.itemsToExclude.indexOf(item.toString()) === -1;\n }\n });\n }\n\n if (this.items.length > 0 && this.itemsToExclude.length > 0) {\n\n this.items = this.items.filter(function(item) {\n\n if (item[self.primaryKeyword]) {\n\n return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;\n\n } else {\n\n return self.itemsToExclude.indexOf(item.toString()) === -1;\n }\n });\n }\n\n if (this.$el.find('.select-search').length) {\n this.showSearch = true;\n } else {\n this.showSearch = this.$el.data('showSearch') ? this.$el.data('showSearch') : this.opts.showSearch;\n }\n\n if (this.$el.find('.select-footer').length) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n this.$select = this.$el.find('.select-content');\n\n new Promise((secondaryResolve, secondaryReject) => {\n\n if (!this.$select.length) {\n\n let items = this._renderItemList(this.items);\n\n this.$select = $(`\n <div class=\"select-content\">\n\n ${this._renderSearch()}\n\n <div class=\"select-scrollable-content\"></div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\n this.$select.find('.select-scrollable-content').append(items);\n\n secondaryResolve();\n\n } else {\n\n const selectItems = this.$select.find('.select-item');\n\n if (selectItems.length > 0 && this.itemsToExclude.length > 0) {\n\n $.each(selectItems, (i, el) => {\n\n const val = $(el).find(':input').val();\n\n if (self.itemsToExclude.indexOf(val) > -1) {\n $(el).remove();\n }\n });\n }\n\n secondaryResolve();\n }\n\n }).then(() => {\n\n this.$scrollableContent = this.$select.find('.select-scrollable-content') ? this.$select.find('.select-scrollable-content') : false;\n this.$selectItems = this.$select.find('.select-item');\n this.$selectHeader.removeClass('select-placeholder');\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n\n this.$selectHeader.addClass('select-placeholder');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.html(this.dynamicTitleEmptyDefault);\n }\n\n if (this.showSearch) {\n\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$searchIconContainer = this.$select.find('.select-search-icon');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n\n // Prevent tabfocus from breaking select functionality\n this.$searchInput[0].tabIndex = -1;\n }\n\n if (this.showFooter) {\n\n this.$footerContainer = this.$select.find('.select-footer');\n this.$closeButton = this.$select.find('[data-select-close]');\n\n // Prevent tabfocus from breaking select functionality\n this.$closeButton[0].tabIndex = -1;\n }\n\n this.buildSearchData();\n\n this.log(this.$el);\n this.log(this.$select);\n this.log(this.$scrollableContent);\n this.log('Name: '+this.name);\n this.log('Show search: '+this.showSearch);\n this.log('Show footer: '+this.showFooter);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n this.log(this.items);\n this.log(this.searchData);\n\n primaryResolve();\n })\n });\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.$scrollableContent.length > 0) {\n\n let scrollContentHeight = this.scrollContentHeight;\n\n if (this.showSearch) {\n scrollContentHeight = scrollContentHeight - (this.$searchContainer.outerHeight(true) || 0);\n }\n\n if (this.showFooter) {\n scrollContentHeight = scrollContentHeight - (this.$footerContainer.outerHeight(true) || 0);\n }\n\n this.$scrollableContent.css({\n 'max-height': (scrollContentHeight - parseInt(this.$scrollableContent.css('marginTop'), 10) - parseInt(this.$scrollableContent.css('marginBottom'), 10)) +'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.addClass('ps-dark');\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20,\n scrollYMarginOffset : -1,\n suppressScrollY: true,\n suppressScrollX: true,\n });\n\n // Prevent tabfocus from breaking select functionality\n this.$scrollableContent.find('[tabindex=\"0\"]').attr('tabindex', -1);\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n this.scroll.settings.suppressScrollY = false;\n }\n }\n }\n }\n\n // Build search data\n buildSearchData() {\n\n return new Promise((resolve, reject) => {\n\n this.searchData = [];\n\n let selectLabels = this.$select.find('[data-label]');\n\n $.each(selectLabels, (i, el) => {\n\n this.searchData.push({\n id: i,\n val: $(el).text().trim()\n });\n });\n\n resolve();\n });\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$selectHeader.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else if (this.$selectItems.length > 0 || this.searchApi) {\n this.show();\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"checkbox\"]', function() {\n\n let el = this;\n let val = $(this).val();\n let closeTimeout = 600; // ms\n\n self.preventClose = true;\n\n if (typeof self.confirmCheck === 'function' && el.checked) {\n\n el.checked = false;\n\n self.confirmCheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n el.checked = true;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (el.checked) {\n\n self.data[self.name].indexOf(val) === -1 ? self.data[self.name].push(val) : false;\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (typeof self.confirmUncheck === 'function' && !el.checked) {\n\n el.checked = true;\n\n self.confirmUncheck((cb) => {\n\n if (cb == 'confirmed') {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n el.checked = false;\n self.onSelect(el);\n }\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n\n } else if (!el.checked && !self.preventUncheck) {\n\n self.data[self.name] = self.data[self.name].filter(n => n != val);\n self.onSelect(el);\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n\n } else if (!el.checked && self.preventUncheck) {\n\n el.checked = true;\n\n setTimeout(function() {\n self.preventClose = false;\n }, closeTimeout);\n }\n });\n\n this.$el.on('change'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n let val = $(this).val();\n\n if (this.checked) {\n\n self.data[self.name] = [val];\n self.$select.find('input[type=\"radio\"]').not($(this)).prop('checked', false);\n self.$select.find('input[type=\"radio\"]').not($(this)).removeClass('checked');\n\n } else {\n\n self.data[self.name] = [];\n }\n });\n\n this.$el.on('click'+'.'+NAME, 'input[type=\"radio\"]', function() {\n\n if ($(this).hasClass('checked') && self.allowNoneOnRadioSelect) {\n\n self.data[self.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html(self.dynamicTitleDefault);\n }\n\n } else {\n\n $(this).addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($(this).parent().find('[data-label]').text());\n }\n }\n\n self.onSelect(this);\n });\n\n if (this.scroll) {\n\n this.$scrollableContent.find('.ps__thumb-y').mousedown(function() {\n self.$scrollableContent.addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function() {\n\n if (self.$scrollableContent.hasClass('ps-mousedown-scroll')) {\n self.$scrollableContent.removeClass('ps-mousedown-scroll');\n }\n });\n }\n\n if (this.showSearch) {\n\n this.$searchInput.on('keydown'+'.'+NAME, debounce(function () {\n\n self.searchString = $(this).val().trim();\n self.search.call(self);\n\n }, 250));\n\n this.$searchInput.on('focusin'+'.'+NAME, function () {\n\n self.$searchContainer.addClass('focused');\n });\n\n this.$searchInput.on('focusout'+'.'+NAME, function () {\n\n self.$searchContainer.removeClass('focused');\n });\n\n this.$searchContainer.on('click'+'.'+NAME, '[data-clear-search]', function () {\n\n if (self.searchString.length) {\n\n self.$searchInput.val('');\n self.searchString = '';\n self.search.call(self);\n\n } else {\n\n return;\n }\n });\n }\n\n if (this.showFooter) {\n\n this.$closeButton.on('click'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n $(document).on('touchstart click', function(e) {\n\n if (!self.$el.is(e.target) && !self.$el.has(e.target).length && self.contentOpen && !self.preventClose) {\n\n self.close.call(self);\n }\n });\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Get data\n getData(data) {\n\n if (data) {\n return this.data[data];\n } else {\n return this.data;\n }\n }\n\n // Set data\n setData() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-success icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.searchApi.length) {\n\n let searchUrl = this.searchApi;\n let itemCount = this.data[this.name].length;\n let currentCount = 0;\n\n this.data[this.name].forEach(function(value) {\n\n searchUrl += encodeURIComponent('#'+value);\n currentCount++;\n\n if (currentCount !== itemCount) {\n searchUrl += '+';\n }\n });\n\n $.ajax({\n method: 'GET',\n url: searchUrl\n }).done(function(data) {\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n let itemIds = items.map(item => {\n return item.id.toString()\n });\n\n // Remove value from data if it doesn't exist anymore\n self.data[self.name] = self.data[self.name].filter(function(value) {\n return itemIds.indexOf(value.toString()) > -1;\n });\n\n if (self.data[self.name].length == 0) {\n self.$selectIconContainer.html(self.selectIconDefault);\n }\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let $inputs = self.$scrollableContent.find(':input');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n\n if (self.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n self.type = 'checkbox';\n } else if (self.$scrollableContent.find(':input[type=\"radio\"]').length) {\n self.type = 'radio';\n }\n\n if (self.type == 'checkbox') {\n\n self.data[self.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() {\n return this.value == value;\n });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (self.type == 'radio') {\n\n let $input = $inputs.filter(function() {\n return this.value == self.data[self.name][0];\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (self.dynamicTitle) {\n self.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n self.onSelect($input[0]);\n }\n });\n });\n\n } else {\n\n // Remove value from data if it doesn't exist anymore\n let $inputs = this.$scrollableContent.find(':input');\n let inputValues = $inputs.length > 0 ? $inputs.map(function() {\n return this.value.toString();\n }).get() : [];\n\n this.data[this.name] = this.data[this.name].filter(function(value) {\n return inputValues.indexOf(value.toString()) > -1;\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$scrollableContent.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n this.data[this.name].forEach(function(value) {\n\n let $input = $inputs.filter(function() {\n return this.value == value\n });\n\n $input.prop('checked', true);\n\n self.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let $input = $inputs.filter(function() {\n return this.value == self.data[self.name][0];\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.onSelect($input[0]);\n }\n }\n }\n\n // Search\n search() {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.searchString.length) {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n\n if (this.searchRequest !== null) {\n this.searchRequest.abort();\n }\n\n this.searchRequest = $.ajax({\n method: 'GET',\n url: this.searchApi + this.searchString\n }).done(function(data) {\n\n self.searchRequest = null;\n\n let items = data.map(item => {\n\n item.id = item[self.primaryKeyword].toString();\n\n return item;\n });\n\n items = items.filter(function(item) {\n return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n });\n\n let result = self._renderItemList(items);\n\n $.when(self.$scrollableContent.append(result)).then(function() {\n\n let faNameSpace = self.opts.faPro ? 'fal' : 'fas';\n\n self.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n self.$searchIconContainer.attr('data-clear-search', 'true');\n\n if (self.$scrollableContent[0].offsetHeight < self.$scrollableContent[0].scrollHeight) {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = false;\n self.$scrollableContent.addClass('ps-show-rail-y');\n\n } else {\n\n self.scroll.update();\n self.scroll.settings.suppressScrollY = true;\n self.$scrollableContent.removeClass('ps-show-rail-y');\n }\n });\n });\n\n } else {\n\n let results = this.searchData.filter(function(item) {\n return item.val.toLocaleLowerCase().indexOf(self.searchString.toLocaleLowerCase()) > -1;\n });\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n\n results.forEach(function(item) {\n $(self.$selectItems[item.id]).addClass('visible');\n });\n\n this.$selectItems.not('.visible').addClass('d-none');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', 'true');\n }\n\n } else {\n\n if (this.searchApi.length) {\n\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n\n } else {\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', '');\n }\n }\n\n if (this.scroll) {\n this.scroll.update();\n }\n\n this.onUpdate();\n }\n\n // Show\n show() {\n\n if (this.$el.hasClass('show')) {\n return;\n }\n\n let $otherSelects = $('.select.show');\n let zindex = 1;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if ($otherSelects.length) {\n zindex = parseInt($otherSelects.first().css('z-index'), 10) + 2;\n }\n\n this.$el.css({\n 'max-height': (this.scrollContentHeight + this.$selectHeader.outerHeight(true))+'px'\n });\n\n this.$el.addClass('show');\n\n if (!$otherSelects.length) {\n zindex = parseInt(this.$el.css('z-index'), 10) + 1;\n }\n\n this.$el.css({\n 'z-index': zindex\n });\n\n if (this.scroll && this.$scrollableContent.length) {\n\n if (this.$scrollableContent[0].offsetHeight < this.$scrollableContent[0].scrollHeight) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n }\n\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-up icon\"></i>`);\n\n setTimeout(() => {\n this.$el[0].scrollIntoView({behavior: 'smooth', block: 'nearest', inline: 'nearest'});\n }, 300);\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.preventClose) {\n\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.$el.css('max-height', '');\n this.$el.removeClass('show');\n\n setTimeout(() => {\n self.$el.removeAttr('style');\n }, 300);\n\n if (this.data[this.name].length > 0 && this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-success icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n }\n\n // On select\n onSelect(el) {\n\n let self = this;\n let onSelect = this.opts.onSelect;\n let data = $(el).parents('.select-item').data();\n\n if (this.searchApi.length && !$.isEmptyObject(data)) {\n\n if ($(el).length && el.checked) {\n\n this.items.push(data);\n\n } else {\n\n this.items = $.grep(this.items, function(item) { return item[self.primaryKeyword] != data.id });\n }\n }\n\n if (typeof onSelect === 'function') {\n\n onSelect.call(el, data, this);\n }\n }\n\n // Add more items after plugin is already initialized\n appendItems(items, selectItems) {\n\n return new Promise((resolve, reject) => {\n\n let self = this;\n\n if (!$.isArray(items)) {\n\n let itemsArr = [];\n\n itemsArr.push(items);\n items = itemsArr;\n }\n\n items = items.filter(function(item) {\n return self.itemsToExclude.indexOf(item[self.primaryKeyword].toString()) === -1;\n });\n\n items.forEach(item => {\n\n this.items.push(item);\n });\n\n let domItems = this._renderItemList(items);\n\n this.$scrollableContent.prepend(domItems);\n this.$selectItems = this.$select.find('.select-item');\n\n this.buildSearchData().then(() => {\n\n if (this.$selectItems.length > 0) {\n\n if (this.$select.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$select.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n\n items.forEach(item => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = $input.val().toString();\n\n $input.prop('checked', true);\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name].push(val) : false;\n this.onSelect($input[0]);\n });\n\n } else if (this.type == 'radio') {\n\n let item = items[0];\n let $input = this.$select.find(':input').filter(function() { return this.value == item.id });\n let val = $input.val().toString();\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n this.data[this.name].indexOf(val) === -1 ? this.data[this.name] = [val] : false;\n\n if (this.dynamicTitle) {\n this.$selectTitle.html($input.parent().find('[data-label]').text());\n }\n\n this.$select.find('input[type=\"radio\"]').not($input).prop('checked', false);\n this.$select.find('input[type=\"radio\"]').not($input).removeClass('checked');\n this.onSelect($input[0]);\n }\n }\n\n if (this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)) {\n\n this.$selectTitle.html(this.dynamicTitleDefault);\n }\n\n if (this.$selectHeader.attr('style')) {\n this.$selectHeader.removeAttr('style');\n }\n\n if (this.$selectIconContainer.hasClass('d-none')) {\n this.$selectIconContainer.removeClass('d-none');\n }\n\n resolve();\n });\n });\n }\n\n // Deselect items\n deselectItems(array) {\n\n return new Promise((resolve, reject) => {\n\n array.forEach(id => {\n\n let $input = this.$select.find(':input').filter(function() { return this.value == id });\n\n if ($input[0].checked) {\n\n $input.trigger('click');\n }\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n });\n }\n\n // Get item\n getItem(key, val) {\n\n let result = $.grep(this.items, function(item) { return item[key] == val })[0];\n\n return result ? result : null;\n }\n\n // Get selected items\n getSelectedItems(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(String);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(item.id.toString()) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result;\n }\n\n // Get selected item\n getSelectedItem(segment) {\n\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n\n ids.push(data);\n\n } else {\n\n ids = data;\n }\n\n ids = ids.map(String);\n\n if (this.items.length > 0) {\n\n result = $.grep(this.items, function(item) { return ids.indexOf(item.id.toString()) > -1 });\n\n if (segment) {\n\n result = result.map(obj => {\n return obj[segment];\n }).filter(obj => {\n return obj != null;\n });\n }\n\n } else {\n\n result = ids;\n }\n\n return result[0] == null ? null : result[0];\n }\n\n _renderItemList(items) {\n\n let result = [];\n\n for (let i = 0; i < items.length; ++i) {\n\n let item = items[i];\n let label = '';\n\n if (typeof this.labelTemplate === 'function') {\n\n label = this.labelTemplate(item);\n\n } else {\n\n if (item.name) {\n label = item.name;\n } else if (item.label) {\n label = item.label;\n } else if (item.value) {\n label = item.value;\n }\n }\n\n result.push($(`\n\n <div class=\"select-item\">\n\n <div class=\"select-item-${this.type}\">\n\n <div class=\"styled-${this.type}\">\n\n <input type=\"${this.type}\" id=\"select-${this.name}-${items[i].id}\" value=\"${items[i].id}\" tabindex=\"-1\">\n\n <label for=\"select-${this.name}-${items[i].id}\">\n\n <span class=\"radio-inner\">\n <svg viewBox=\"0 0 18 18\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n\n <span class=\"${this.type}-label\"${typeof this.labelTemplate !== 'function' ? ' data-label' : ''}>\n ${label}\n </span>\n\n </label>\n\n </div>\n\n </div>\n\n </div>\n\n `).data(item));\n }\n\n return result;\n }\n\n _renderSearch() {\n\n if (!this.showSearch) {\n\n return '';\n\n } else {\n\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n return `\n\n <div class=\"select-search\">\n\n <div class=\"select-search-input\">\n\n <input type=\"text\" name=\"select-search\" value=\"\" placeholder=\"${this.searchPlaceholder}\" tabindex=\"-1\">\n\n </div>\n\n <div class=\"select-search-icon\">\n\n <i class=\"${faNameSpace} fa-search icon\"></i>\n\n </div>\n\n </div>\n\n `;\n }\n }\n\n _renderFooter() {\n\n if (!this.showFooter) {\n\n return '';\n\n } else {\n\n return `\n\n <div class=\"select-footer\">\n\n <button class=\"btn btn-block btn-light btn-sm\" type=\"button\" tabindex=\"-1\" data-select-close >\n ${this.btnCloseText}\n </button>\n\n </div>\n\n `;\n }\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Select(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Select._jQueryInterface;\n $.fn[NAME].Constructor = Select;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Select._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n name: '',\n type: 'checkbox',\n labelTemplate: null,\n confirmCheck: null,\n confirmUncheck: null,\n setData: null,\n scrollContentHeight: 100,\n faPro: false,\n items: [],\n showSearch: false,\n showFooter: false,\n searchApi: false,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onReset: null,\n onSearch: null,\n onSelect: null,\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n debug: false,\n dynamicTitle: false,\n dynamicTitleDefault: '',\n dynamicTitleEmptyDefault: '',\n allowNoneOnRadioSelect: true,\n preventUncheck: false,\n showValidStateIcon: true,\n itemsToExclude: [],\n primaryKeyword: 'id'\n }\n}\n\nexport default Select;","import 'jquery';\nimport PerfectScrollbar from './util/perfect-scrollbar';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolDropdown';\nconst DATA_KEY = 'plugin_coolDropdown';\n\nclass Dropdown extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.dropdown) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.dropdown, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n $.when(this.buildCache()).then(() => {\n this.buildScroll();\n this.bindEvents();\n this.onInit();\n });\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$el.addClass('dropdown-trigger');\n this.$container = this.$el.parent('.dropdown');\n this.id = 'dropdown-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.offset = this.$el.data('offset') ? this.$el.data('offset') : this.opts.offset;\n this.minWidth = this.$el.data('minWidth') ? this.$el.data('minWidth') : this.opts.minWidth;\n this.scroll = this.$el.data('scroll') ? this.$el.data('scroll') : this.opts.scroll;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.positionObserver = this.$el.attr('data-position-observer') ? JSON.parse(this.$el.attr('data-position-observer')) : this.opts.positionObserver;\n this.closeOnItemClick = this.$el.data('closeOnItemClick') ? this.$el.data('closeOnItemClick') : this.opts.closeOnItemClick;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.contentOpen = false;\n\n if (this.$container.hasClass('dropup')) {\n this.placement = 'top';\n } else if (this.$container.hasClass('dropright')) {\n this.placement = 'right';\n } else if (this.$container.hasClass('dropbottom')) {\n this.placement = 'bottom';\n } else {\n this.placement = 'left';\n }\n\n if (typeof this.content === 'function') {\n\n let menuRight = this.opts.align === 'end' ? ' dropdown-menu-right' : '';\n\n this.$dropdown = $(`\n <div class=\"dropdown-menu${menuRight}\" id=\"${this.id}\">\n ${this.content()}\n </div>\n `);\n\n $.when(this.$el.after(this.$dropdown)).then(() => {\n\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n });\n\n } else {\n\n this.$dropdown = this.$el.next('.dropdown-menu') ? this.$el.next('.dropdown-menu') : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? this.align = 'end' : this.align = 'start';\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content') : false;\n this.$dropdownItem = this.$dropdown.find('.dropdown-item');\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth+'px');\n }\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$dropdown);\n this.log(this.$scrollableContent);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Offset: '+this.offset);\n this.log('Min width: '+this.minWidth);\n this.log('Content: '+this.opts.content);\n this.log('Scroll: '+this.scroll);\n this.log('Scroll content height: '+this.scrollContentHeight+'px');\n\n return true;\n }\n }\n\n // Build scroll\n buildScroll() {\n\n if (this.opts.scroll && this.$scrollableContent.length) {\n\n this.$scrollableContent.css({\n 'max-height': this.scrollContentHeight+'px'\n });\n\n if (touchEvents()) {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n } else {\n\n this.$scrollableContent.css({\n 'overflow-y': 'auto'\n });\n\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20\n });\n\n this.$scrollableContent.addClass('ps-show-rail-y');\n }\n }\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n let self = this;\n\n this.$el.on('click'+'.'+NAME, () => {\n\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n });\n\n this.$dropdownItem.on('click'+'.'+NAME, function() {\n\n if (self.closeOnItemClick) {\n self.close();\n }\n\n self.onItemClick(this);\n });\n\n $(document).on('touchstart click', (e) => {\n\n if (!this.$el.is(e.target) && !this.$dropdown.is(e.target) && this.$dropdown.has(e.target).length === 0 && this.contentOpen) {\n this.close();\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n this.setPosition();\n this.onUpdate();\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Set positions\n setPosition(placement) {\n\n if (typeof str === 'undefined' || str === null) {\n placement = this.placement;\n }\n\n let dropdownWidth = this.$dropdown.outerWidth(true);\n let dropdownHeight = this.$dropdown.outerHeight(true);\n let dropdownTriggerWidth = this.$el.outerWidth(true);\n let dropdownTriggerHeight = this.$el.outerHeight(true);\n let dropdownTriggerPosX = this.$el.position().left;\n let dropdownTriggerPosY = this.$el.position().top;\n let dropdownPosX = 0;\n let dropdownPosY = 0;\n let offsetX = 0;\n let offsetY = 0;\n\n if (placement === 'top') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY - dropdownHeight;\n\n } else if (placement === 'right') {\n\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth;\n dropdownPosY = dropdownTriggerPosY;\n\n } else if (placement === 'bottom') {\n\n if (this.align === 'end') {\n dropdownPosX = dropdownTriggerWidth - dropdownWidth;\n } else {\n dropdownPosX = dropdownTriggerPosX;\n }\n\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight;\n\n } else if (placement === 'left') {\n\n dropdownPosX = dropdownTriggerPosX - dropdownWidth;\n dropdownPosY = dropdownTriggerPosY;\n }\n\n if (this.offset) {\n\n const offsets = this.offset.split(',');\n\n offsetX = offsets[0];\n offsetY = offsets[1];\n dropdownPosX += parseInt(offsetX, 10);\n dropdownPosY += parseInt(offsetY, 10);\n }\n\n if (this.positionObserver && this.$container.length > 0) {\n\n // this is not set during init so we have to fetch it\n // and let's assume that this containing parent fits and is inside\n // viewport\n let $containingParent = this.$container.parent();\n let index = 0;\n while (\n $containingParent.css('overflow-x') !== 'hidden' && \n $containingParent.css('overflow') !== 'hidden' &&\n ($containingParent.prop('tagName') || '').toLowerCase() !== 'body' &&\n index < 100\n ) {\n $containingParent = $containingParent.parent();\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n ++index;\n }\n\n if (!$containingParent.get(0)) {\n return;\n }\n\n const containingBoundingRect = $containingParent.get(0).getBoundingClientRect();\n const containerBoundingRect = this.$container.get(0).getBoundingClientRect();\n\n if (containingBoundingRect.width < dropdownWidth) {\n this.$dropdown.css('max-width', containingBoundingRect.width);\n dropdownWidth = containingBoundingRect.width;\n } else {\n this.$dropdown.css('max-width', '');\n }\n\n if (containingBoundingRect.height < dropdownHeight) {\n this.$dropdown.css('max-height', containingBoundingRect.height);\n dropdownHeight = containingBoundingRect.height;\n } else {\n this.$dropdown.css('max-height', '');\n }\n\n const maxTop = Math.max(Math.abs(containingBoundingRect.y - containerBoundingRect.y), 0);\n const maxLeft = Math.max(Math.abs(containingBoundingRect.x - containerBoundingRect.x), 0);\n const maxRight = $containingParent.get(0).scrollWidth - (containerBoundingRect.x + containerBoundingRect.width);\n const maxBottom = $containingParent.get(0).scrollHeight - (containerBoundingRect.y + (placement === 'dropbottom' ? containerBoundingRect.height : 0));\n\n if (maxLeft < dropdownWidth && dropdownPosX < dropdownTriggerPosX) {\n dropdownPosX = dropdownTriggerPosX;\n\n // would be on top of the trigger\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (maxRight < dropdownWidth && dropdownPosX + dropdownWidth > dropdownTriggerPosX + dropdownTriggerWidth) {\n dropdownPosX = dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth;\n\n if (dropdownTriggerPosY + dropdownTriggerHeight > dropdownPosY) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + (offsetY > 0 ? offsetY : 0);\n }\n }\n\n if (dropdownPosY < dropdownTriggerPosY && maxTop < dropdownHeight) {\n dropdownPosY = dropdownTriggerPosY + dropdownTriggerHeight + offsetY;\n }\n\n if (dropdownPosY >= dropdownTriggerPosY && maxBottom < dropdownHeight) {\n if (dropdownPosX >= dropdownTriggerPosX + dropdownTriggerWidth || dropdownTriggerPosX >= dropdownPosX + dropdownWidth) {\n dropdownPosY = dropdownTriggerPosY - (dropdownHeight - maxBottom);\n } else {\n dropdownPosY = dropdownTriggerPosY - dropdownHeight - offsetY\n }\n }\n }\n\n this.$dropdown.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+Math.round(dropdownPosX)+'px, '+Math.round(dropdownPosY)+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Dropdown trigger width: '+dropdownTriggerWidth+'px');\n this.log('Dropdown trigger height: '+dropdownTriggerHeight+'px');\n this.log('Dropdown trigger position x: '+dropdownTriggerPosX+'px');\n this.log('Dropdown trigger position Y: '+dropdownTriggerPosY+'px');\n this.log('Dropdown width: '+dropdownWidth+'px');\n this.log('Dropdown height: '+dropdownHeight+'px');\n this.log('Dropdown position x: '+dropdownPosX+'px');\n this.log('Dropdown position y: '+dropdownPosY+'px');\n }\n\n // Show\n show() {\n\n if (!this.$dropdown || this.$dropdown.hasClass('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass(this.animationSpeed);\n this.$dropdown.animateCss(this.animationIn);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n\n } else {\n\n this.$dropdown.attr('x-placement', this.placement+'-'+this.align);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n }\n\n if (this.opts.scroll && this.scroll && this.$scrollableContent.length) {\n this.$scrollableContent[0].scrollTop = 1;\n this.$scrollableContent[0].scrollTop = 0;\n }\n\n this.contentOpen = true;\n this.onShow();\n }\n\n // Close\n close() {\n\n if (!this.$dropdown) {\n return;\n }\n\n if (this.animation && !this.$dropdown.hasClass('animated')) {\n\n this.$dropdown.animateCss(this.animationOut, () => {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n });\n\n } else {\n\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n // Item callback\n onItemClick(el) {\n\n let onItemClick = this.opts.onItemClick;\n\n if (typeof onItemClick === 'function') {\n\n onItemClick.call(el);\n }\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dropdown._jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Dropdown._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'zoomOut',\n animationSpeed: 'fastest',\n offset: null,\n minWidth: null,\n align: 'start',\n closeOnItemClick: true,\n positionObserver: true,\n content: false,\n scroll: true,\n scrollContentHeight: 100,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onItemClick: null,\n debug: false\n }\n}\n\nexport default Dropdown;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolTooltip';\nconst DATA_KEY = 'plugin_coolTooltip';\n\nclass Tooltip extends AbstractUIComponent {\n\n constructor(el, opts) {\n\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, window.Cool.settings.tooltip, opts);\n\n } else {\n\n $.extend(true, this.opts, $.fn[NAME].defaults, opts);\n }\n\n this.el = el;\n this.debug = this.opts.debug;\n this.init();\n }\n\n // Init plugin\n init() {\n\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.unbindEvents();\n this.$el.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Update plugin data\n update() {\n\n this.buildCache();\n this.onUpdate();\n }\n\n // Cache DOM nodes for performance\n buildCache() {\n\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'tooltip-'+this.generateUUID();\n this.animation = this.$el.data('animation') ? this.$el.data('animation') : this.opts.animation;\n this.animationIn = this.$el.data('animationIn') ? this.$el.data('animationIn') : this.opts.animationIn;\n this.animationOut = this.$el.data('animationOut') ? this.$el.data('animationOut') : this.opts.animationOut;\n this.animationSpeed = this.$el.data('animationSpeed') ? this.$el.data('animationSpeed') : this.opts.animationSpeed;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.placementChanged = false;\n this.content = this.$el.data('content') ? this.$el.data('content') : this.opts.content;\n this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n }\n\n // Bind events that trigger methods\n bindEvents() {\n\n if (this.trigger === 'auto') {\n\n this.$el.on('mouseenter'+'.'+NAME, () => {\n\n this.show();\n });\n\n this.$el.on('mouseleave'+'.'+NAME, () => {\n\n this.close();\n });\n\n this.$el.on('blur'+'.'+NAME, () => {\n\n this.close();\n });\n }\n\n this.$el.on('destroyed'+'.'+NAME, () => {\n\n this.close();\n });\n\n $(window).on('resize', debounce(() => {\n\n if (this.$tooltip) {\n this.setPosition();\n this.onUpdate();\n }\n }, 250));\n }\n\n // Unbind events that trigger methods\n unbindEvents() {\n\n this.$el.off('.'+NAME);\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Build tooltip\n buildTooltip() {\n\n this.$tooltip = $(`\n\n <div class=\"tooltip\" role=\"tooltip\" id=\"${this.id}\">\n\n <div class=\"arrow\"></div>\n\n <div class=\"tooltip-inner\">${this.content}</div>\n\n </div>\n\n `);\n\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n\n this.log(this.$el);\n this.log(this.$container);\n this.log(this.$tooltip);\n this.log(this.$arrow);\n this.log('Id: '+this.id);\n this.log('Animation: '+this.animation);\n this.log('Animation in: '+this.animationIn);\n this.log('Animation out: '+this.animationOut);\n this.log('Animation speed: '+this.animationSpeed);\n this.log('Placement: '+this.placement);\n this.log('Content: '+this.content);\n this.log('Trigger: '+this.trigger);\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 trigger: 'auto',\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 const $el = $(el);\n const $itemActionEl = $el.find('.tab-item-action');\n\n $itemActionEl.removeClass('dropdown-item');\n $el.insertBefore(this.$dropdownContainer);\n\n this.checkForChanges();\n }\n\n // Move to dropdown\n moveToDropdown(el) {\n\n const $el = $(el);\n const $itemActionEl = $el.find('.tab-item-action');\n\n if (!$itemActionEl.hasClass('dropdown-item')) {\n $itemActionEl.addClass('dropdown-item');\n }\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.breakpoint = this.$el.data('breakpoint');\n this.expanded = this.$el.attr('aria-expanded') == 'true' ? true : false;\n this.transitionendEvent = this.whichTransitionEvent();\n\n if (this.$target.length) {\n\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(document).find('[data-collapse-indicator=\"' + this.$el.data('target') + '\"]');\n\n } else {\n\n this.$target = $(this.$el).parent().find('.collapse');\n this.targetHeight = this.$target.height();\n this.$container = this.$target.closest('.section-collapse');\n this.$indicator = $(this.$el).parent().find('[data-collapse-indicator]');\n }\n\n if (this.expanded) {\n this.$target.css('height', 'auto');\n }\n\n this.log(this.$el);\n this.log(this.$target);\n this.log(this.$container);\n this.log(this.$indicator);\n this.log('Expanded: '+this.expanded);\n this.log('Target height: '+this.targetHeight+'px');\n }\n\n // Bind events that trigger methods\n bindEvents() {\n this.$el.on('click'+'.'+this.name, (e) => {\n if (!this.breakpoint || !window.matchMedia(`(min-width: ${this.breakpoint}px)`).matches) {\n if (this.expanded) {\n this.close();\n } else {\n this.show();\n }\n }\n });\n\n $(window).on('resize', debounce(() => {\n if (this.$target.length) {\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 const self = this;\n\n // Update target height if something is added to dom which causes height to change\n if (this.targetHeight !== this.$target.height()) {\n this.targetHeight = this.$target.height();\n }\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.addClass('show');\n }\n\n this.$target.css('height');\n this.$target.css('height', this.targetHeight);\n\n if (this.$indicator.length) {\n this.$indicator.addClass('show');\n }\n\n this.$target.on(this.transitionendEvent, function(e) {\n\n if ($(e.target).is(this)) {\n\n self.$target.removeClass('collapsing');\n\n if (self.$el.is('button')) {\n self.$el.attr('disabled', false);\n }\n\n self.$target.removeAttr('style');\n self.$target.addClass('collapse show');\n self.$el.attr('aria-expanded', true);\n self.$target.css('height', 'auto');\n self.expanded = true;\n\n $(this).off(self.transitionendEvent);\n }\n });\n\n this.onShow();\n }\n\n // Close\n close() {\n\n const self = this;\n\n this.$target.removeClass('collapse show');\n this.$target.addClass('collapsing');\n\n if (this.$el.is('button')) {\n this.$el.attr('disabled', true);\n }\n\n if (this.$container.length) {\n this.$container.removeClass('show');\n }\n\n this.$target.css('height', this.$target.height());\n\n setTimeout(() => {\n this.$target.css('height', 0);\n }, 10);\n\n if (this.$indicator.length && this.$indicator.hasClass('show')) {\n this.$indicator.removeClass('show');\n }\n\n this.$target.on(this.transitionendEvent, function(e) {\n\n if ($(e.target).is(this)) {\n\n self.$target.removeClass('collapsing');\n\n if (self.$el.is('button')) {\n self.$el.attr('disabled', false);\n }\n\n self.$target.removeAttr('style');\n self.$target.addClass('collapse');\n self.$el.attr('aria-expanded', false);\n self.expanded = false;\n\n // Update target height if something is added to dom which causes height to change\n if (self.targetHeight !== self.$target.height()) {\n self.targetHeight = self.$target.height();\n }\n\n $(this).off(self.transitionendEvent);\n }\n });\n\n this.onClose();\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Collapse(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Collapse._jQueryInterface;\n $.fn[NAME].Constructor = Collapse;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Collapse._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n target: null,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n debug: false\n }\n}\n\nexport default Collapse;","import 'jquery';\nimport { debounce } from './util/index';\nimport AbstractUIComponent from './abstract-ui-component';\n\nconst NAME = 'coolToast';\nconst DATA_KEY = 'plugin_coolToast';\n\nclass Toast {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.toast) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.toast, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.toasts = [];\n this.queue = [];\n this.processingQueue = false;\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Add item to queue\n addQueue(toast) {\n\n this.queue.push(toast);\n\n if (this.processingQueue) {\n return;\n }\n\n return this.processQueue();\n }\n\n // Process queue\n processQueue() {\n\n if (this.processingQueue) {\n\n this.queue.shift();\n }\n\n if (!this.queue.length) {\n\n this.processingQueue = false;\n return;\n }\n\n this.processingQueue = true;\n\n return this.show(this.queue[0]);\n }\n\n // Init toast\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let toast = this.buildToast(settings);\n\n this.addQueue(toast);\n this.onInit(toast);\n\n return toast;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build toast\n buildToast(settings) {\n\n let toast = {\n uuid: 'toast-'+this.generateUUID(),\n placement: settings.placement,\n placementX: settings.placementX,\n placementY: settings.placementY,\n offset: settings.offset,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n dismiss: settings.dismiss,\n size: settings.size,\n header: settings.header,\n theme: settings.theme,\n title: settings.title,\n content: settings.content,\n template: settings.template,\n maxBodyHeight: settings.maxBodyHeight,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (typeof toast.content === 'function') {\n\n toast.$el = $(toast.template());\n\n } else {\n\n toast.$el = $(this._renderTemplate(toast));\n }\n\n toast.$inner = toast.$el.find('.toast-inner');\n toast.$closeBtn = toast.$el.find('[data-toast-close]');\n\n this.log(toast);\n this.toasts.push(toast);\n\n return toast;\n }\n\n // Bind events that trigger methods\n bindEvents(toast) {\n\n let self = this;\n\n toast.$el.on('click', '[data-toast-close]', () => {\n\n if (toast.$el) {\n self.close(toast);\n }\n });\n\n $(window).on('resize', debounce(() => {\n\n if (toast.$el) {\n this.setPosition(toast);\n }\n }, 250));\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Set positions\n setPosition(toast, placement, placementY, placementX) {\n\n if (typeof placementY === 'undefined' || placementY === null) {\n placementY = toast.placementY;\n }\n\n if (typeof placementX === 'undefined' || placementX === null) {\n placementX = toast.placementX;\n }\n\n if (!placementX || !placementY) {\n placement = toast.placement\n }\n\n if (toast.offset) {\n\n let offsets = toast.offset.split(',')\n let offsetX = parseInt(offsets[0], 10);\n let offsetY = parseInt(offsets[1], 10);\n }\n\n let toastWidth = toast.$el.outerWidth(true);\n let toastHeight = toast.$el.outerHeight(true);\n let toastPosX;\n let toastPosY;\n\n if (placement) {\n\n if (placement === 'top-left') {\n\n toastPosX = 0;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n toastPosY += 30;\n }\n\n } else if (placement === 'top-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = 0;\n\n this.log(this.$container.width);\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosY += 30;\n }\n\n } else if (placement === 'top-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n toastPosY += 30;\n }\n\n } else if (placement === 'center-left') {\n\n toastPosX = 0;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += 30;\n }\n\n } else if (placement === 'center-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n }\n\n } else if (placement === 'center-right') {\n\n toastPosX = this.$container.width() - toastWidth;\n toastPosY = (this.$container.height() / 2) - toastHeight / 2;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += offsetY;\n } else {\n toastPosX += -30;\n }\n\n } else if (placement === 'bottom-left') {\n\n toastPosX = 0;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += 30;\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-center') {\n\n toastPosX = (this.$container.width() / 2) - toastWidth / 2;\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosY += -30;\n }\n\n } else if (placement === 'bottom-right') {\n\n toastPosX = this.$container.width() - toastWidth\n toastPosY = this.$container.height() - toastHeight;\n\n if (toast.offset) {\n toastPosX += -offsetX;\n toastPosY += -offsetY;\n } else {\n toastPosX += -30;\n toastPosY += -30;\n }\n }\n\n } else {\n\n toastPosX = placementX;\n toastPosY = placementY;\n }\n\n toast.$el.css({\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: 'translate3d('+toastPosX+'px, '+toastPosY+'px, 0px)',\n 'will-change': 'transform'\n });\n\n this.log('Toast width: '+toastWidth+'px');\n this.log('Toast height: '+toastHeight+'px');\n this.log('Toast position Y: '+toastPosX+'px');\n this.log('Toast position x: '+toastPosY+'px');\n }\n\n // Show\n show(toast) {\n\n this.$container.append(toast.$el);\n this.bindEvents(toast);\n this.setPosition(toast);\n\n if (toast.animation) {\n\n toast.$el.addClass('show');\n toast.$inner.addClass(toast.animationSpeed);\n toast.$inner.animateCss(toast.animationIn);\n\n } else {\n\n toast.$el.addClass('show');\n }\n\n if (toast.dismiss) {\n\n setTimeout(() => {\n this.close(toast);\n }, toast.dismiss * 1000);\n }\n\n this.onShow(toast);\n }\n\n // Close\n close(toast) {\n\n if (toast.animation && !toast.$inner.hasClass('animated')) {\n\n toast.$el.removeClass('show');\n toast.$inner.animateCss(toast.animationOut, () => {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n });\n\n } else {\n\n toast.$el.remove();\n\n this.toasts = $.grep(this.toasts, function(item) {\n return item.uuid != toast.uuid;\n });\n\n this.processQueue();\n this.onClose(toast);\n }\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(toast) {\n\n let onInit = toast.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(toast);\n }\n }\n\n // Show callback\n onShow(toast) {\n\n let onShow = toast.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(toast);\n }\n }\n\n // Close callback\n onClose(toast) {\n\n let onClose = toast.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(toast);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render template\n _renderTemplate(toast) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let content = '';\n let header = '';\n let body = '';\n let bodyCloseBtn = '';\n\n if (typeof toast.content === 'function') {\n\n content = toast.content();\n\n } else {\n\n content = toast.content;\n }\n\n if (toast.header) {\n\n header = `\n <div class=\"toast-header\">\n\n <span>${toast.title}</span>\n\n <button type=\"button\" data-toast-close>\n <i class=\"${faNameSpace} fa-times icon\"></i>\n </button>\n\n </div>\n `;\n\n } else {\n\n bodyCloseBtn = `\n <button type=\"button\" data-toast-close>\n\n <i class=\"${faNameSpace} fa-times icon\"></i>\n\n </button>\n `;\n }\n\n body = `\n <div class=\"toast-body\">\n\n <span>${content}</span>\n ${bodyCloseBtn}\n\n </div>\n `;\n\n return `\n <div class=\"toast toast-${toast.size} toast-${toast.theme}\" role=\"alert\" id=\"${toast.uuid}\">\n\n <div class=\"toast-inner\">\n\n ${header}\n ${body}\n\n </div>\n\n </div>\n `;\n }\n\n static _jQueryInterface(config) {\n\n return this.each(function() {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Toast(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n });\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Toast._jQueryInterface;\n $.fn[NAME].Constructor = Toast;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Toast._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n content: '',\n template: '',\n theme: 'dark',\n placement: 'bottom-center',\n placementX: null,\n placementY: null,\n animation: true,\n animationIn: 'slideInUp',\n animationOut: 'slideOutDown',\n animationSpeed: 'faster',\n offset: null,\n size: null,\n dismiss: 3,\n header: false,\n faPro: false,\n debug: false,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n }\n}\n\nexport default Toast;","import 'jquery';\nimport { debounce, touchEvents } from './util/index';\n\nconst NAME = 'coolDialog';\nconst DATA_KEY = 'plugin_coolDialog';\n\nclass Dialog {\n\n constructor(container, opts) {\n\n this.settings = {};\n\n if (window.Cool.settings.dialog) {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, window.Cool.settings.dialog, opts);\n\n } else {\n\n $.extend(true, this.settings, $.fn[NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.debug = this.settings.debug;\n this.faPro = this.settings.faPro;\n this.dialogs = [];\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n // Init dialog\n init(opts) {\n\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n let dialog = this.buildDialog(settings);\n\n this.show(dialog);\n this.bindEvents(dialog);\n this.onInit(dialog);\n\n return dialog;\n }\n\n // Remove plugin instance completely\n destroy() {\n\n this.$container.removeData(DATA_KEY);\n this.onDestroy();\n }\n\n // Build dialog\n buildDialog(settings) {\n\n let self = this;\n let dialog = {\n uuid: 'dialog-'+this.generateUUID(),\n title: settings.title,\n template: settings.template,\n body: settings.body,\n footer: settings.footer,\n size: settings.size,\n classes: settings.classes,\n centered: settings.centered,\n backdrop: settings.backdrop,\n preventScroll: settings.preventScroll,\n closeBtn: settings.closeBtn,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n callbacks: settings.callbacks,\n maxBodyHeight: settings.maxBodyHeight,\n overflowVisible: settings.overflowVisible,\n actions: settings.actions,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose\n };\n\n if (dialog.maxBodyHeight == null) {\n\n dialog.maxBodyHeight = window.innerHeight - 200;\n }\n\n if (typeof dialog.template === 'function') {\n\n dialog.$el = $(dialog.template());\n\n } else {\n\n dialog.$el = $(this._renderTemplate(dialog));\n }\n\n dialog.show = function() {\n self.show(dialog);\n };\n\n dialog.close = function() {\n self.close(dialog);\n };\n\n this.log(dialog);\n this.dialogs.push(dialog);\n\n return dialog;\n }\n\n // Bind events that trigger methods\n bindEvents(dialog) {\n\n let self = this;\n\n dialog.$el.on('click', '[data-dialog-close]', function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.close === 'function') {\n\n dialog.callbacks.close.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-remove]', function (e) {\n\n dialog.$el.trigger('dialog.remove');\n\n if (typeof dialog.callbacks.remove === 'function') {\n\n dialog.callbacks.remove.call(self, function () {\n self.close(dialog)\n }, dialog);\n }\n });\n\n dialog.$el.on('click', '[data-dialog-confirm]', debounce(function (e) {\n\n dialog.$el.trigger('dialog.close');\n\n if (typeof dialog.callbacks.confirm === 'function') {\n\n dialog.callbacks.confirm.call(self, function () {\n self.close(dialog)\n }, dialog);\n\n } else {\n\n self.close(dialog);\n }\n }));\n }\n\n // Generate UUID\n generateUUID() {\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n // Show\n show(dialog) {\n\n if (!this.$container.hasClass('has-dialogs')) {\n this.$container.addClass('has-dialogs');\n }\n\n if (dialog.preventScroll && !this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.addClass('dialog-prevent-scroll');\n }\n\n if (this.dialogs.length > 1) {\n\n let $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n let zIndex = parseInt($prevDialog.css('z-index'), 10) + 1;\n\n dialog.$el.css('z-index', zIndex);\n\n $prevDialog.css({\n 'transition': 'opacity 0.3s',\n 'opacity': 0,\n 'visibility': 'visible'\n });\n }\n\n if (dialog.backdrop && $('.dialog-backdrop').length < 1) {\n\n this.$container.append('<div class=\"dialog-backdrop\"></div>');\n\n let checkForBackdrop = setInterval(() => {\n\n if (this.dialogs.length == 0 && $('.dialog-backdrop').length) {\n\n $('.dialog-backdrop').remove();\n clearInterval(checkForBackdrop);\n }\n\n }, 100);\n }\n\n this.$container.append(dialog.$el);\n\n if (dialog.animation) {\n dialog.$el.find('.dialog-content').addClass(dialog.animationSpeed).animateCss(dialog.animationIn);\n }\n\n this.onShow(dialog);\n }\n\n // Close\n close(dialog) {\n\n let $prevDialog = null;\n\n if (this.dialogs.length > 1) {\n $prevDialog = $(this.dialogs).eq(-2)[0].$el;\n }\n\n if ($('.dialog[data-dialog-backdrop=\"true\"]').length === 0 && $('.dialog-backdrop').length) {\n $('.dialog-backdrop').remove();\n }\n\n if (dialog.animation) {\n\n dialog.$el.find('.dialog-content').animateCss(dialog.animationOut, () => {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n });\n\n } else {\n\n dialog.$el.remove();\n\n this.dialogs = $.grep(this.dialogs, function(item) {\n return item.uuid != dialog.uuid;\n });\n\n if (this.dialogs.length == 0) {\n\n this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n\n } else {\n\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n }\n\n this.onClose(dialog);\n }\n\n // Initialize callback\n onInitialize() {\n\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n\n onInitialize.call(this.container);\n }\n }\n\n // Destroy callback\n onDestroy() {\n\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n\n onDestroy.call(this.container);\n }\n }\n\n // Init callback\n onInit(dialog) {\n\n let onInit = dialog.onInit;\n\n if (typeof onInit === 'function') {\n\n onInit.call(dialog);\n }\n }\n\n // Show callback\n onShow(dialog) {\n\n let onShow = dialog.onShow;\n\n if (typeof onShow === 'function') {\n\n onShow.call(dialog);\n }\n }\n\n // Close callback\n onClose(dialog) {\n\n let onClose = dialog.onClose;\n\n if (typeof onClose === 'function') {\n\n onClose.call(dialog);\n }\n }\n\n // Debug log\n log(...args) {\n\n if (this.debug) {\n\n if (typeof this.debug === 'function') {\n this.debug(...args);\n } else {\n console.log(...args);\n }\n }\n }\n\n // Render footer\n _renderFooter(dialog) {\n\n let footer = '';\n\n if (typeof dialog.footer === 'function') {\n\n footer = dialog.footer();\n\n } else if (dialog.footer !== '' && dialog.footer !== false && dialog.footer !== true) {\n\n footer = dialog.footer;\n\n } else if (dialog.footer === true) {\n\n let btnCancel = '';\n let btnRemove = '';\n let btnConfirm = '';\n let btnStyle = '';\n let btnClasses = '';\n let btnAttrs = '';\n\n if (dialog.actions.close.visible) {\n\n btnStyle = dialog.actions.close.primary ? 'btn-primary' : 'btn-secondary';\n btnClasses = dialog.actions.close.classes ? ' '+dialog.actions.close.classes : '';\n btnAttrs = dialog.actions.close.attrs ? ' '+dialog.actions.close.attrs : '';\n btnCancel = `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-close>\n ${dialog.actions.close.content}\n </button>\n `;\n }\n\n if (dialog.actions.remove.visible) {\n\n btnStyle = 'btn-remove';\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 ${btnRemove}\n <div class=\"spacer\"></div>\n ${btnCancel}\n ${btnConfirm}\n `;\n\n } else {\n\n return footer;\n }\n\n if (footer) {\n\n return `\n <div class=\"dialog-footer\">\n ${footer}\n </div>\n `;\n }\n }\n\n // Render template\n _renderTemplate(dialog) {\n\n let faNameSpace = this.faPro ? 'far' : 'fas';\n let classes = dialog.classes ? ' '+dialog.classes : '';\n let centered = dialog.centered ? ' dialog-centered' : '';\n let size = dialog.size ? ' dialog-'+dialog.size : '';\n let overFlowVisible = dialog.overflowVisible ? ' dialog-overflow-visible' : '';\n let uuid = ' data-dialog-uuid=\"'+dialog.uuid+'\"';\n let backdrop = dialog.backdrop ? ' data-dialog-backdrop=\"true\"' : ' data-dialog-backdrop=\"false\"';\n let title = dialog.title;\n let closeBtn = dialog.closeBtn ? `<button type=\"button\" data-dialog-close><i class=\"${faNameSpace} fa-times icon\"></i></button>` : '';\n let maxBodyHeight = dialog.maxBodyHeight ? ' style=\"max-height: '+dialog.maxBodyHeight+'px\"' : '';\n let body = '';\n let footer = this._renderFooter(dialog);\n\n if (typeof dialog.body === 'function') {\n\n body = dialog.body();\n\n } else {\n\n body = dialog.body;\n }\n\n return `\n <div class=\"dialog${classes}${centered}${size}${overFlowVisible}\"${uuid}${backdrop}>\n\n <div class=\"dialog-container\">\n\n <div class=\"dialog-content\">\n\n <div class=\"dialog-header\">\n\n <span class=\"dialog-title\">\n ${title}\n </span>\n\n ${closeBtn}\n\n </div>\n\n <div class=\"dialog-body\"${maxBodyHeight}>\n\n ${body}\n\n </div>\n\n ${footer}\n\n </div>\n\n </div>\n\n </div>\n `;\n }\n\n static _jQueryInterface(config) {\n\n let data = $(this).data(DATA_KEY);\n const _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Dialog(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n}\n\nif (typeof $ !== 'undefined') {\n\n // jQuery\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n\n $.fn[NAME] = Dialog._jQueryInterface;\n $.fn[NAME].Constructor = Dialog;\n\n $.fn[NAME].noConflict = () => {\n\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n\n return Dialog._jQueryInterface;\n }\n\n $.fn[NAME].defaults = {\n title: '',\n template: '',\n body: '',\n footer: true,\n size: '', // sm/lg\n classes: '',\n centered: true,\n backdrop: true,\n preventScroll: true,\n closeBtn: true,\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n callbacks: {},\n maxBodyHeight: null,\n overflowVisible: false,\n faPro: false,\n debug: true,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n actions: {\n close: {\n primary: false,\n visible: true,\n content: 'Close',\n classes: '',\n attrs: ''\n },\n remove: {\n primary: false,\n visible: true,\n content: 'Remove',\n classes: '',\n attrs: ''\n },\n confirm: {\n primary: true,\n visible: true,\n content: 'Confirm',\n classes: '',\n attrs: ''\n }\n }\n }\n}\n\nexport default Dialog;","import Common from './src/common';\nimport Popover from './src/popover.js';\nimport Select from './src/select';\nimport Dropdown from './src/dropdown';\nimport Tooltip from './src/tooltip';\nimport SectionTabs from './src/section-tabs';\nimport Collapse from './src/collapse';\nimport Toast from './src/toast';\nimport Dialog from './src/dialog';\n\nexport default {\n\tCommon,\n\tPopover,\n\tSelect,\n\tDropdown,\n\tTooltip,\n\tSectionTabs,\n\tCollapse,\n\tToast,\n\tDialog\n}"],"names":["get","element","getComputedStyle","set","obj","key","val","style","div","className","document","createElement","elMatches","Element","prototype","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","query","Error","call","remove","parentNode","removeChild","queryChildren","selector","Array","filter","children","child","cls","main","thumb","x","rail","consuming","state","focus","clicking","active","scrolling","scrollingClassTimeout","y","addScrollingClass","i","classList","contains","clearTimeout","add","removeScrollingClass","setTimeout","isAlive","settings","scrollingThreshold","setScrollingClassInstantly","EventElement","handlers","prototypeAccessors","isEmpty","configurable","bind","eventName","handler","push","addEventListener","unbind","target","this$1","removeEventListener","unbindAll","name","Object","keys","every","length","defineProperties","EventManager","eventElements","eventElement","ee","splice","indexOf","forEach","e","once","onceHandler","evt","createEvent","window","CustomEvent","initCustomEvent","undefined","processScrollDiff","axis","diff","useScrollingClass","forceFireReachEvent","fields","processScrollDiff$1","ref","contentHeight","containerHeight","scrollTop","up","down","reach","dispatchEvent","toInt","parseInt","isEditable","el","outerWidth","styles","width","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","env","isWebKit","documentElement","supportsTouch","DocumentTouch","supportsIePointer","navigator","msMaxTouchPoints","isChrome","test","userAgent","updateGeometry","roundedScrollTop","Math","floor","containerWidth","clientWidth","clientHeight","contentWidth","scrollWidth","scrollHeight","scrollbarXRail","appendChild","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","scrollLeft","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","updateCss","thumbSize","minScrollbarLength","max","maxScrollbarLength","min","xRailOffset","isRtl","left","isScrollbarXUsingBottom","bottom","scrollbarXBottom","top","scrollbarXTop","yRailOffset","height","isScrollbarYUsingRight","right","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","clickRail","event","stopPropagation","positionTop","pageY","pageYOffset","getBoundingClientRect","direction","positionLeft","pageX","pageXOffset","dragThumb","bindMouseScrollHandler","startingScrollTop","startingMousePageY","scrollBy","mouseMoveHandler","preventDefault","mouseUpHandler","ownerDocument","keyboard","elementHovered","scrollbarFocused","shouldPreventDefault","deltaX","deltaY","wheelPropagation","isDefaultPrevented","defaultPrevented","activeElement","tagName","contentDocument","shadowRoot","which","metaKey","altKey","shiftKey","wheel","isTop","isBottom","offsetHeight","isLeft","isRight","offsetWidth","hitsBound","abs","getDeltaFromEvent","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","shouldBeConsumedByChild","querySelector","cursor","overflow","overflowX","overflowY","join","match","maxScrollTop","maxScrollLeft","mousewheelHandler","shouldPrevent","useBothWheelAxes","wheelSpeed","ctrlKey","onwheel","onmousewheel","touch","magnitudeX","magnitudeY","scrollY","applyTouchMove","differenceX","differenceY","startOffset","startTime","speed","easingLoop","getTouch","targetTouches","shouldHandle","pointerType","buttons","MSPOINTER_TYPE_MOUSE","touchStart","Date","getTime","clearInterval","touchMove","currentOffset","currentTime","timeGap","touchEnd","swipeEasing","setInterval","isInitialized","PointerEvent","MSPointerEvent","defaultSettings","PerfectScrollbar","userSettings","nodeName","blur","isNegativeScroll","originalScrollLeft","result","setAttribute","railXStyle","isNaN","display","marginLeft","marginRight","railYStyle","borderTopWidth","borderBottomWidth","marginTop","marginBottom","handlerName","lastScrollTop","lastScrollLeft","onScroll","update","destroy","removePsClasses","split","$","fn","extend","animateCss","animationName","callback","animationEnd","addClass","one","removeClass","on","Cool","Common","refresh","each","formLabelGroup","$formLabelGroup","find","initialize","opts","coolPopover","popover","coolSelect","select","coolDropdown","dropdown","coolTooltip","tooltip","coolCollapse","collapse","coolSectionTabs","sectionTabs","coolToast","toast","coolDialog","dialog","hasClass","not","attr","$inputGroup","closest","$container","parents","href","data","open","location","btn","click","trigger","parent","is","toggleClass","mousedown","mouseup","$sidebarLeft","$sidebarLeftContent","sidebarLeftScroll","matchMedia","a","next","first","$sidebarTabs","scrollContainer","sidebarTabsScroll","$tab","css","last","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","touchEvents","special","destroyed","AbstractUIComponent","onInit","onUpdate","onDestroy","onShow","onClose","onReset","log","debug","console","NAME","DATA_KEY","Popover","defaults","init","buildCache","bindEvents","unbindEvents","$el","removeData","container","containerAutoDetect","id","generateUUID","animation","animationIn","animationOut","animationSpeed","placement","placementChanged","title","content","offsetParent","$popover","close","show","popupHasFocus","setPosition","off","replace","c","r","random","v","toString","buildPopover","append","$arrow","containerInnerWidth","innerWidth","containerInnerHeight","innerHeight","popoverWidth","popoverHeight","outerHeight","popoverTriggerWidth","popoverTriggerHeight","popoverTriggerPosX","position","popoverTriggerPosY","arrowWidth","arrowHeight","arrowPos","popoverPosX","popoverPosY","round","transform","popoverOverflowCount","popoverPosition","popoverOverflow","removeAttr","fixPopoverPosition","overflowAmount","excludePlacements","_jQueryInterface","config","_config","TypeError","JQUERY_NO_CONFLICT","Constructor","noConflict","Select","then","buildScroll","setData","reset","items","$select","$selectItems","$selectIconContainer","html","selectIconDefault","$selectHeader","dynamicTitle","dynamicTitleDefault","$selectTitle","text","trim","searchApi","dynamicTitleEmptyDefault","showSearch","searchData","$searchInput","searchString","search","Promise","primaryResolve","primaryReject","self","faPro","scrollContentHeight","searchRequest","type","contentOpen","searchPlaceholder","btnCloseText","labelTemplate","confirmCheck","confirmUncheck","preventUncheck","allowNoneOnRadioSelect","showValidStateIcon","itemsToExclude","primaryKeyword","preventClose","map","String","isArray","arr","item","showFooter","secondaryResolve","secondaryReject","_renderItemList","_renderSearch","_renderFooter","selectItems","$scrollableContent","$searchContainer","$searchIconContainer","$clearSearchButton","tabIndex","$footerContainer","$closeButton","buildSearchData","scroll","resolve","reject","selectLabels","closeTimeout","checked","cb","onSelect","n","prop","has","getData","faNameSpace","searchUrl","itemCount","currentCount","value","encodeURIComponent","ajax","method","url","done","itemIds","when","$inputs","$input","inputValues","abort","results","toLocaleLowerCase","$otherSelects","zindex","scrollIntoView","behavior","block","inline","isEmptyObject","grep","appendItems","itemsArr","domItems","prepend","deselectItems","array","getItem","getSelectedItems","segment","ids","getSelectedItem","label","onSearch","Dropdown","offset","minWidth","positionObserver","JSON","parse","closeOnItemClick","menuRight","align","$dropdown","after","$dropdownItem","onItemClick","str","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","dropdownPosX","dropdownPosY","offsetX","offsetY","offsets","$containingParent","index","toLowerCase","containingBoundingRect","containerBoundingRect","maxTop","maxLeft","maxRight","maxBottom","Tooltip","$tooltip","buildTooltip","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","tooltipPosX","tooltipPosY","tooltipOverflowCount","tooltipPosition","tooltipOverflow","fixTooltipPosition","SectionTabs","checkForChanges","$dropdownContainer","$dropdownList","tabsCount","tabs","_name","moveToList","$itemActionEl","insertBefore","moveToDropdown","appendTo","overflowStatus","dropdownItems","moveableTabs","usedSpace","freeSpace","Collapse","$target","breakpoint","expanded","transitionendEvent","whichTransitionEvent","targetHeight","$indicator","transEndEventNames","t","Toast","toasts","queue","processingQueue","onInitialize","addQueue","processQueue","shift","buildToast","uuid","placementX","placementY","dismiss","size","header","theme","template","maxBodyHeight","_renderTemplate","$inner","$closeBtn","toastWidth","toastHeight","toastPosX","toastPosY","body","bodyCloseBtn","Dialog","dialogs","buildDialog","footer","classes","centered","backdrop","preventScroll","closeBtn","callbacks","overflowVisible","actions","confirm","$prevDialog","eq","zIndex","checkForBackdrop","btnCancel","btnRemove","btnConfirm","btnStyle","btnClasses","btnAttrs","visible","primary","attrs","overFlowVisible"],"mappings":"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"}
1
+ {"version":3,"file":"cool.esm.js","sources":["../../js/src/component.js","../../js/src/section.js","../../node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","../../js/src/sidebar.js","../../js/src/utils.js","../../js/src/popover.js","../../js/src/select.js","../../js/src/dropdown.js","../../js/src/tooltip.js","../../js/src/collapse.js","../../js/src/section-tabs.js","../../js/src/toast.js","../../js/src/dialog.js","../../js/src/common.js","../../js/index.esm.js"],"sourcesContent":["import 'jquery';\n\nexport default class Component {\n\n static instances = [];\n\n static initializeElement(selector, options = {}) {\n const el = typeof selector === 'string' ? document.querySelector(selector) : selector;\n if (!el) return false;\n\n const $el = $(el);\n\n if (!$el.data(`plugin_${this.NAME}`)) {\n const instance = new this(el, options);\n $el.data(`plugin_${this.NAME}`, instance);\n this.instances.push(instance);\n return instance;\n }\n\n return false;\n }\n\n static initializeElements(selector, options = {}) { \n document.querySelectorAll(selector).forEach(el => {\n this.initializeElement(el, options);\n });\n \n return this.instances;\n }\n\n onInit() {\n let onInit = this.opts.onInit;\n if (typeof onInit === 'function') {\n onInit.call(this);\n }\n }\n\n onUpdate() {\n let onUpdate = this.opts.onUpdate;\n if (typeof onUpdate === 'function') {\n onUpdate.call(this);\n }\n }\n\n onDestroy() {\n let onDestroy = this.opts.onDestroy;\n if (typeof onDestroy === 'function') {\n onDestroy.call(this);\n }\n }\n \n onShow() {\n let onShow = this.opts.onShow;\n\n if (typeof onShow === 'function') {\n onShow.call(this);\n }\n }\n\n onClose() {\n let onClose = this.opts.onClose;\n if (typeof onClose === 'function') {\n onClose.call(this);\n }\n }\n\n onReset() {\n let onReset = this.opts.onReset;\n if (typeof onReset === 'function') {\n onReset.call(this);\n }\n }\n}","import Component from './component';\n\nclass Section extends Component {\n\n static DEFAULTS = {\n observeSections: true,\n initFormControls: true,\n initTableHandlers: true,\n initButtonGroups: true,\n initTabs: true,\n onInit: null,\n onDestroy: null\n };\n\n constructor(opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool && window.Cool.settings && window.Cool.settings.section) {\n $.extend(true, this.opts, Section.DEFAULTS, window.Cool.settings.section, opts);\n } else {\n $.extend(true, this.opts, Section.DEFAULTS, opts);\n }\n\n this._eventHandlers = [];\n this._updateTimeout = null;\n this._rafId = null;\n \n this.init();\n }\n\n init() {\n if (this.opts.observeSections) {\n this.initializeSectionObserver();\n }\n \n if (this.opts.initFormControls) {\n this.initializeFormControls();\n }\n \n if (this.opts.initTableHandlers) {\n this.initializeTableHandlers();\n }\n \n if (this.opts.initButtonGroups) {\n this.initializeButtonGroups();\n }\n \n if (this.opts.initTabs) {\n this.initializeTabs();\n }\n \n this.onInit();\n }\n\n destroy() {\n this.destroySectionObserver();\n this.unbindEvents();\n if (this._updateTimeout) {\n clearTimeout(this._updateTimeout);\n }\n if (this._rafId) {\n cancelAnimationFrame(this._rafId);\n }\n this.onDestroy();\n }\n\n _addEventListener(element, event, handler, options) {\n element.addEventListener(event, handler, options);\n this._eventHandlers.push({ element, event, handler, options });\n }\n\n initializeSectionObserver() {\n this._isUpdating = false;\n \n this.sectionObserver = new MutationObserver((mutations) => {\n if (this._isUpdating) return;\n \n const isOwnUpdate = mutations.every(mutation => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n const target = mutation.target;\n const oldClasses = mutation.oldValue ? mutation.oldValue.split(' ') : [];\n const newClasses = Array.from(target.classList);\n const addedClasses = newClasses.filter(c => !oldClasses.includes(c));\n const removedClasses = oldClasses.filter(c => !newClasses.includes(c));\n const changedClasses = [...addedClasses, ...removedClasses];\n \n return changedClasses.every(c => \n c === 'is-last-visible' || \n c === 'is-last-visible-row' || \n c === 'is-last-visible-cell'\n );\n }\n return false;\n });\n \n if (isOwnUpdate) return;\n \n if (this._updateTimeout) {\n clearTimeout(this._updateTimeout);\n }\n \n this._updateTimeout = setTimeout(() => {\n if (this._rafId) {\n cancelAnimationFrame(this._rafId);\n }\n \n this._rafId = requestAnimationFrame(() => {\n this.updateLastVisibleElements();\n });\n }, 50);\n });\n\n this.sectionObserver.observe(document.body, {\n attributes: true,\n childList: true,\n subtree: true,\n attributeFilter: ['class', 'style', 'hidden'],\n attributeOldValue: true,\n subtreeFilter: (node) => {\n return node.classList && (\n node.classList.contains('section') ||\n node.classList.contains('select') ||\n node.nodeName === 'TABLE' ||\n node.nodeName === 'TR' ||\n node.nodeName === 'TD' ||\n node.nodeName === 'TH'\n );\n }\n });\n\n this.updateLastVisibleElements();\n }\n\n updateLastVisibleElements() {\n this._isUpdating = true;\n \n const updates = {\n sections: [],\n tables: [],\n rows: []\n };\n\n document.querySelectorAll('.section').forEach(section => {\n const visibleChildren = this.getVisibleChildren(section);\n if (visibleChildren.length) {\n updates.sections.push({\n section,\n lastVisible: visibleChildren[visibleChildren.length - 1]\n });\n }\n });\n\n document.querySelectorAll('table').forEach(table => {\n const tbody = table.querySelector('tbody') || table;\n const visibleRows = this.getVisibleElements(tbody.querySelectorAll('tr'));\n \n if (visibleRows.length) {\n updates.tables.push({\n tbody,\n lastVisibleRow: visibleRows[visibleRows.length - 1]\n });\n }\n });\n\n document.querySelectorAll('table tr').forEach(row => {\n const visibleCells = this.getVisibleElements(row.querySelectorAll('td, th'));\n \n if (visibleCells.length) {\n updates.rows.push({\n row,\n lastVisibleCell: visibleCells[visibleCells.length - 1]\n });\n }\n });\n\n requestAnimationFrame(() => {\n document.querySelectorAll('.is-last-visible, .is-last-visible-row, .is-last-visible-cell')\n .forEach(el => {\n el.classList.remove('is-last-visible', 'is-last-visible-row', 'is-last-visible-cell');\n });\n\n updates.sections.forEach(({ lastVisible }) => {\n lastVisible.classList.add('is-last-visible');\n });\n\n updates.tables.forEach(({ lastVisibleRow }) => {\n lastVisibleRow.classList.add('is-last-visible-row');\n });\n\n updates.rows.forEach(({ lastVisibleCell }) => {\n lastVisibleCell.classList.add('is-last-visible-cell');\n });\n \n setTimeout(() => {\n this._isUpdating = false;\n }, 0);\n });\n }\n\n getVisibleChildren(parent) {\n return Array.from(parent.children).filter(el => this.isElementVisible(el));\n }\n\n getVisibleElements(elements) {\n return Array.from(elements).filter(el => this.isElementVisible(el));\n }\n\n isElementVisible(el) {\n if (!el._computedStyle || el._styleInvalidated) {\n el._computedStyle = window.getComputedStyle(el);\n el._styleInvalidated = false;\n }\n \n return !el.classList.contains('d-none') &&\n !el.classList.contains('d-md-none') &&\n el.offsetParent !== null &&\n el.offsetHeight > 0 &&\n el._computedStyle.display !== 'none';\n }\n\n destroySectionObserver() {\n if (this.sectionObserver) {\n this.sectionObserver.disconnect();\n this.sectionObserver = null;\n }\n if (this._updateTimeout) {\n clearTimeout(this._updateTimeout);\n this._updateTimeout = null;\n }\n if (this._rafId) {\n cancelAnimationFrame(this._rafId);\n this._rafId = null;\n }\n }\n\n initializeFormControls() {\n this._addEventListener(document, 'focusin', (e) => {\n const formControl = e.target.closest('.form-control');\n if (!formControl) return;\n \n if (!formControl.disabled && !formControl.readOnly) {\n const inputGroup = formControl.closest('.input-group');\n inputGroup?.classList.add('input-group-focus');\n }\n });\n\n this._addEventListener(document, 'focusout', (e) => {\n const formControl = e.target.closest('.form-control');\n if (!formControl) return;\n \n if (!formControl.disabled && !formControl.readOnly) {\n const inputGroup = formControl.closest('.input-group');\n inputGroup?.classList.remove('input-group-focus');\n }\n });\n\n const updateFormLabelGroup = (formLabelGroup) => {\n const input = formLabelGroup.querySelector('input, select');\n const hasValue = !!input?.value;\n formLabelGroup.classList.toggle('label-on-top', hasValue);\n };\n\n this._addEventListener(document, 'input', (e) => {\n const formLabelGroup = e.target.closest('.form-label-group');\n if (formLabelGroup) {\n updateFormLabelGroup(formLabelGroup);\n }\n });\n\n this._addEventListener(document, 'change', (e) => {\n const formLabelGroup = e.target.closest('.form-label-group');\n if (formLabelGroup) {\n updateFormLabelGroup(formLabelGroup);\n }\n \n if (e.target.matches('select')) {\n e.target.blur();\n }\n });\n\n document.querySelectorAll('.form-label-group').forEach(updateFormLabelGroup);\n }\n\n initializeTableHandlers() {\n document.querySelectorAll('.table').forEach(table => {\n if (table.querySelector('[data-table-link], [data-table-btn]') && \n !table.classList.contains('table-hover')) {\n table.classList.add('table-hover');\n }\n });\n\n this._addEventListener(document, 'click', (e) => {\n if (e.target.closest('[data-table-link] .table-link-exclude, ' +\n '[data-table-link] input, [data-table-link] button, ' +\n '[data-table-link] a, [data-table-link] label, ' +\n '[data-table-link] .td-col-select')) {\n e.stopPropagation();\n return;\n }\n\n const tableLink = e.target.closest('[data-table-link]');\n if (tableLink) {\n const container = tableLink.closest('table, .table');\n const href = tableLink.dataset.tableLink;\n\n if (container?.classList.contains('bulk-actions-active')) {\n return;\n }\n\n if (e.ctrlKey || e.metaKey) {\n window.open(href, '_blank');\n } else {\n window.location.href = href;\n }\n }\n\n if (e.target.closest('[data-table-btn] .table-btn-exclude, ' +\n '[data-table-btn] input, [data-table-btn] button, ' +\n '[data-table-btn] a, [data-table-btn] label, ' +\n '[data-table-btn] .td-col-select')) {\n e.stopPropagation();\n return;\n }\n\n const tableBtn = e.target.closest('[data-table-btn]');\n if (tableBtn) {\n const container = tableBtn.closest('tr, .tr');\n const btn = tableBtn.querySelector('button');\n\n if (!btn || container?.classList.contains('bulk-actions-active')) {\n return;\n }\n\n btn.click();\n }\n });\n }\n\n initializeButtonGroups() {\n this._addEventListener(document, 'click', (e) => {\n const btnGroupToggle = e.target.closest('.btn-group-toggle .btn');\n if (btnGroupToggle && !e.target.matches('input')) {\n const input = btnGroupToggle.querySelector('input');\n if (input) {\n input.click();\n input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n\n if (e.target.matches('.btn-group-toggle .btn > input')) {\n e.stopPropagation();\n }\n });\n\n this._addEventListener(document, 'change', (e) => {\n if (e.target.matches('.btn-group-toggle .btn > input[type=\"radio\"]')) {\n const btn = e.target.parentElement;\n const btnGroup = btn.closest('.btn-group-toggle');\n if (btnGroup) {\n btnGroup.querySelectorAll('.btn').forEach(b => {\n b.classList.toggle('active', b.querySelector('input')?.checked);\n });\n }\n } else if (e.target.matches('.btn-group-toggle .btn > input[type=\"checkbox\"]')) {\n const btn = e.target.parentElement;\n btn.classList.toggle('active', e.target.checked);\n }\n });\n }\n\n initializeTabs() {\n this._addEventListener(document, 'click', (e) => {\n const tabItem = e.target.closest('.tabs .tab-item')\n if (tabItem) {\n e.stopPropagation();\n const tabs = tabItem.closest('.tabs');\n tabs.querySelectorAll('.tab-item').forEach(item => \n item.classList.remove('active')\n );\n tabItem.classList.add('active');\n }\n });\n }\n\n unbindEvents() {\n this._eventHandlers.forEach(({ element, event, handler, options }) => {\n element.removeEventListener(event, handler, options);\n });\n this._eventHandlers = [];\n }\n\n refresh() {\n document.querySelectorAll('.form-label-group').forEach(formLabelGroup => {\n const input = formLabelGroup.querySelector('input, select');\n const val = input?.value;\n formLabelGroup.classList.toggle('label-on-top', !!val);\n });\n }\n}\n\nexport default Section;","/*!\n * perfect-scrollbar v1.5.6\n * Copyright 2024 Hyunje Jun, MDBootstrap and Contributors\n * Licensed under MIT\n */\n\nfunction get(element) {\n return getComputedStyle(element);\n}\n\nfunction set(element, obj) {\n for (var key in obj) {\n var val = obj[key];\n if (typeof val === 'number') {\n val = val + \"px\";\n }\n element.style[key] = val;\n }\n return element;\n}\n\nfunction div(className) {\n var div = document.createElement('div');\n div.className = className;\n return div;\n}\n\nvar elMatches =\n typeof Element !== 'undefined' &&\n (Element.prototype.matches ||\n Element.prototype.webkitMatchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector);\n\nfunction matches(element, query) {\n if (!elMatches) {\n throw new Error('No element matching method supported');\n }\n\n return elMatches.call(element, query);\n}\n\nfunction remove(element) {\n if (element.remove) {\n element.remove();\n } else {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n}\n\nfunction queryChildren(element, selector) {\n return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); }\n );\n}\n\nvar cls = {\n main: 'ps',\n rtl: 'ps__rtl',\n element: {\n thumb: function (x) { return (\"ps__thumb-\" + x); },\n rail: function (x) { return (\"ps__rail-\" + x); },\n consuming: 'ps__child--consume',\n },\n state: {\n focus: 'ps--focus',\n clicking: 'ps--clicking',\n active: function (x) { return (\"ps--active-\" + x); },\n scrolling: function (x) { return (\"ps--scrolling-\" + x); },\n },\n};\n\n/*\n * Helper methods\n */\nvar scrollingClassTimeout = { x: null, y: null };\n\nfunction addScrollingClass(i, x) {\n var classList = i.element.classList;\n var className = cls.state.scrolling(x);\n\n if (classList.contains(className)) {\n clearTimeout(scrollingClassTimeout[x]);\n } else {\n classList.add(className);\n }\n}\n\nfunction removeScrollingClass(i, x) {\n scrollingClassTimeout[x] = setTimeout(\n function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); },\n i.settings.scrollingThreshold\n );\n}\n\nfunction setScrollingClassInstantly(i, x) {\n addScrollingClass(i, x);\n removeScrollingClass(i, x);\n}\n\nvar EventElement = function EventElement(element) {\n this.element = element;\n this.handlers = {};\n};\n\nvar prototypeAccessors = { isEmpty: { configurable: true } };\n\nEventElement.prototype.bind = function bind (eventName, handler) {\n if (typeof this.handlers[eventName] === 'undefined') {\n this.handlers[eventName] = [];\n }\n this.handlers[eventName].push(handler);\n this.element.addEventListener(eventName, handler, false);\n};\n\nEventElement.prototype.unbind = function unbind (eventName, target) {\n var this$1 = this;\n\n this.handlers[eventName] = this.handlers[eventName].filter(function (handler) {\n if (target && handler !== target) {\n return true;\n }\n this$1.element.removeEventListener(eventName, handler, false);\n return false;\n });\n};\n\nEventElement.prototype.unbindAll = function unbindAll () {\n for (var name in this.handlers) {\n this.unbind(name);\n }\n};\n\nprototypeAccessors.isEmpty.get = function () {\n var this$1 = this;\n\n return Object.keys(this.handlers).every(\n function (key) { return this$1.handlers[key].length === 0; }\n );\n};\n\nObject.defineProperties( EventElement.prototype, prototypeAccessors );\n\nvar EventManager = function EventManager() {\n this.eventElements = [];\n};\n\nEventManager.prototype.eventElement = function eventElement (element) {\n var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0];\n if (!ee) {\n ee = new EventElement(element);\n this.eventElements.push(ee);\n }\n return ee;\n};\n\nEventManager.prototype.bind = function bind (element, eventName, handler) {\n this.eventElement(element).bind(eventName, handler);\n};\n\nEventManager.prototype.unbind = function unbind (element, eventName, handler) {\n var ee = this.eventElement(element);\n ee.unbind(eventName, handler);\n\n if (ee.isEmpty) {\n // remove\n this.eventElements.splice(this.eventElements.indexOf(ee), 1);\n }\n};\n\nEventManager.prototype.unbindAll = function unbindAll () {\n this.eventElements.forEach(function (e) { return e.unbindAll(); });\n this.eventElements = [];\n};\n\nEventManager.prototype.once = function once (element, eventName, handler) {\n var ee = this.eventElement(element);\n var onceHandler = function (evt) {\n ee.unbind(eventName, onceHandler);\n handler(evt);\n };\n ee.bind(eventName, onceHandler);\n};\n\nfunction createEvent(name) {\n if (typeof window.CustomEvent === 'function') {\n return new CustomEvent(name);\n }\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, false, false, undefined);\n return evt;\n}\n\nfunction processScrollDiff (i, axis, diff, useScrollingClass, forceFireReachEvent) {\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var fields;\n if (axis === 'top') {\n fields = ['contentHeight', 'containerHeight', 'scrollTop', 'y', 'up', 'down'];\n } else if (axis === 'left') {\n fields = ['contentWidth', 'containerWidth', 'scrollLeft', 'x', 'left', 'right'];\n } else {\n throw new Error('A proper axis should be provided');\n }\n\n processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent);\n}\n\nfunction processScrollDiff$1(\n i,\n diff,\n ref,\n useScrollingClass,\n forceFireReachEvent\n) {\n var contentHeight = ref[0];\n var containerHeight = ref[1];\n var scrollTop = ref[2];\n var y = ref[3];\n var up = ref[4];\n var down = ref[5];\n if ( useScrollingClass === void 0 ) useScrollingClass = true;\n if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false;\n\n var element = i.element;\n\n // reset reach\n i.reach[y] = null;\n\n // 1 for subpixel rounding\n if (element[scrollTop] < 1) {\n i.reach[y] = 'start';\n }\n\n // 1 for subpixel rounding\n if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) {\n i.reach[y] = 'end';\n }\n\n if (diff) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + y)));\n\n if (diff < 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + up)));\n } else if (diff > 0) {\n element.dispatchEvent(createEvent((\"ps-scroll-\" + down)));\n }\n\n if (useScrollingClass) {\n setScrollingClassInstantly(i, y);\n }\n }\n\n if (i.reach[y] && (diff || forceFireReachEvent)) {\n element.dispatchEvent(createEvent((\"ps-\" + y + \"-reach-\" + (i.reach[y]))));\n }\n}\n\nfunction toInt(x) {\n return parseInt(x, 10) || 0;\n}\n\nfunction isEditable(el) {\n return (\n matches(el, 'input,[contenteditable]') ||\n matches(el, 'select,[contenteditable]') ||\n matches(el, 'textarea,[contenteditable]') ||\n matches(el, 'button,[contenteditable]')\n );\n}\n\nfunction outerWidth(element) {\n var styles = get(element);\n return (\n toInt(styles.width) +\n toInt(styles.paddingLeft) +\n toInt(styles.paddingRight) +\n toInt(styles.borderLeftWidth) +\n toInt(styles.borderRightWidth)\n );\n}\n\nvar env = {\n isWebKit:\n typeof document !== 'undefined' &&\n 'WebkitAppearance' in document.documentElement.style,\n supportsTouch:\n typeof window !== 'undefined' &&\n ('ontouchstart' in window ||\n ('maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints > 0) ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)),\n supportsIePointer:\n typeof navigator !== 'undefined' && navigator.msMaxTouchPoints,\n isChrome:\n typeof navigator !== 'undefined' &&\n /Chrome/i.test(navigator && navigator.userAgent),\n};\n\n/* eslint-disable no-lonely-if */\n\nfunction updateGeometry (i) {\n var element = i.element;\n var roundedScrollTop = Math.floor(element.scrollTop);\n var rect = element.getBoundingClientRect();\n\n i.containerWidth = Math.floor(rect.width);\n i.containerHeight = Math.floor(rect.height);\n\n i.contentWidth = element.scrollWidth;\n i.contentHeight = element.scrollHeight;\n\n if (!element.contains(i.scrollbarXRail)) {\n // clean up and append\n queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); });\n 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 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(i, toInt((i.railXWidth * i.containerWidth) / i.contentWidth));\n i.scrollbarXLeft = toInt(\n ((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth)) /\n (i.contentWidth - i.containerWidth)\n );\n } else {\n i.scrollbarXActive = false;\n }\n\n if (\n !i.settings.suppressScrollY &&\n i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight\n ) {\n i.scrollbarYActive = true;\n i.railYHeight = i.containerHeight - i.railYMarginHeight;\n i.railYRatio = i.containerHeight / i.railYHeight;\n i.scrollbarYHeight = getThumbSize(\n i,\n toInt((i.railYHeight * i.containerHeight) / i.contentHeight)\n );\n i.scrollbarYTop = toInt(\n (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) /\n (i.contentHeight - i.containerHeight)\n );\n } else {\n i.scrollbarYActive = false;\n }\n\n if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\n i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\n }\n if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\n i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\n }\n\n updateCss(element, i);\n\n if (i.scrollbarXActive) {\n element.classList.add(cls.state.active('x'));\n } else {\n element.classList.remove(cls.state.active('x'));\n i.scrollbarXWidth = 0;\n i.scrollbarXLeft = 0;\n element.scrollLeft = i.isRtl === true ? i.contentWidth : 0;\n }\n if (i.scrollbarYActive) {\n element.classList.add(cls.state.active('y'));\n } else {\n element.classList.remove(cls.state.active('y'));\n i.scrollbarYHeight = 0;\n i.scrollbarYTop = 0;\n element.scrollTop = 0;\n }\n}\n\nfunction getThumbSize(i, thumbSize) {\n if (i.settings.minScrollbarLength) {\n thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\n }\n if (i.settings.maxScrollbarLength) {\n thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\n }\n return thumbSize;\n}\n\nfunction updateCss(element, i) {\n var xRailOffset = { width: i.railXWidth };\n var roundedScrollTop = Math.floor(element.scrollTop);\n\n if (i.isRtl) {\n xRailOffset.left =\n i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;\n } else {\n xRailOffset.left = element.scrollLeft;\n }\n if (i.isScrollbarXUsingBottom) {\n xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop;\n } else {\n xRailOffset.top = i.scrollbarXTop + roundedScrollTop;\n }\n set(i.scrollbarXRail, xRailOffset);\n\n var yRailOffset = { top: roundedScrollTop, height: i.railYHeight };\n if (i.isScrollbarYUsingRight) {\n if (i.isRtl) {\n yRailOffset.right =\n i.contentWidth -\n (i.negativeScrollAdjustment + element.scrollLeft) -\n i.scrollbarYRight -\n i.scrollbarYOuterWidth -\n 9;\n } else {\n yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\n }\n } else {\n if (i.isRtl) {\n yRailOffset.left =\n i.negativeScrollAdjustment +\n element.scrollLeft +\n i.containerWidth * 2 -\n i.contentWidth -\n i.scrollbarYLeft -\n i.scrollbarYOuterWidth;\n } else {\n yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\n }\n }\n set(i.scrollbarYRail, yRailOffset);\n\n set(i.scrollbarX, {\n left: i.scrollbarXLeft,\n width: i.scrollbarXWidth - i.railBorderXWidth,\n });\n set(i.scrollbarY, {\n top: i.scrollbarYTop,\n height: i.scrollbarYHeight - i.railBorderYWidth,\n });\n}\n\n/* eslint-disable */\n\nfunction clickRail (i) {\n // const element = i.element;\n\n i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); });\n i.event.bind(i.scrollbarYRail, 'mousedown', function (e) {\n var positionTop = e.pageY - window.pageYOffset - 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 - window.pageXOffset - 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 activeSlider = null; // Variable to track the currently active slider\n\nfunction setupScrollHandlers(i) {\n bindMouseScrollHandler(i, [\n 'containerHeight',\n 'contentHeight',\n 'pageY',\n 'railYHeight',\n 'scrollbarY',\n 'scrollbarYHeight',\n 'scrollTop',\n 'y',\n 'scrollbarYRail' ]);\n\n bindMouseScrollHandler(i, [\n 'containerWidth',\n 'contentWidth',\n 'pageX',\n 'railXWidth',\n 'scrollbarX',\n 'scrollbarXWidth',\n 'scrollLeft',\n 'x',\n 'scrollbarXRail' ]);\n}\n\nfunction bindMouseScrollHandler(\n i,\n ref\n) {\n var containerDimension = ref[0];\n var contentDimension = ref[1];\n var pageAxis = ref[2];\n var railDimension = ref[3];\n var scrollbarAxis = ref[4];\n var scrollbarDimension = ref[5];\n var scrollAxis = ref[6];\n var axis = ref[7];\n var scrollbarRail = ref[8];\n\n var element = i.element;\n var startingScrollPosition = null;\n var startingMousePagePosition = null;\n var scrollBy = null;\n\n function moveHandler(e) {\n if (e.touches && e.touches[0]) {\n e[pageAxis] = e.touches[0][(\"page\" + (axis.toUpperCase()))];\n }\n\n // Only move if the active slider is the one we started with\n if (activeSlider === scrollbarAxis) {\n element[scrollAxis] =\n startingScrollPosition + scrollBy * (e[pageAxis] - startingMousePagePosition);\n addScrollingClass(i, axis);\n updateGeometry(i);\n\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n function endHandler() {\n removeScrollingClass(i, axis);\n i[scrollbarRail].classList.remove(cls.state.clicking);\n document.removeEventListener('mousemove', moveHandler);\n document.removeEventListener('mouseup', endHandler);\n document.removeEventListener('touchmove', moveHandler);\n document.removeEventListener('touchend', endHandler);\n activeSlider = null; // Reset active slider when interaction ends\n }\n\n function bindMoves(e) {\n if (activeSlider === null) {\n // Only bind if no slider is currently active\n activeSlider = scrollbarAxis; // Set current slider as active\n\n startingScrollPosition = element[scrollAxis];\n if (e.touches) {\n e[pageAxis] = e.touches[0][(\"page\" + (axis.toUpperCase()))];\n }\n startingMousePagePosition = e[pageAxis];\n scrollBy =\n (i[contentDimension] - i[containerDimension]) / (i[railDimension] - i[scrollbarDimension]);\n\n if (!e.touches) {\n document.addEventListener('mousemove', moveHandler);\n document.addEventListener('mouseup', endHandler);\n } else {\n document.addEventListener('touchmove', moveHandler, { passive: false });\n document.addEventListener('touchend', endHandler);\n }\n\n i[scrollbarRail].classList.add(cls.state.clicking);\n }\n\n e.stopPropagation();\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n\n i[scrollbarAxis].addEventListener('mousedown', bindMoves);\n i[scrollbarAxis].addEventListener('touchstart', bindMoves);\n}\n\n/* eslint-disable */\n\nfunction keyboard (i) {\n var element = i.element;\n\n var elementHovered = function () { return matches(element, ':hover'); };\n var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); };\n\n function shouldPreventDefault(deltaX, deltaY) {\n var scrollTop = Math.floor(element.scrollTop);\n if (deltaX === 0) {\n if (!i.scrollbarYActive) {\n return false;\n }\n if (\n (scrollTop === 0 && deltaY > 0) ||\n (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n\n var scrollLeft = element.scrollLeft;\n if (deltaY === 0) {\n if (!i.scrollbarXActive) {\n return false;\n }\n if (\n (scrollLeft === 0 && deltaX < 0) ||\n (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)\n ) {\n return !i.settings.wheelPropagation;\n }\n }\n return true;\n }\n\n i.event.bind(i.ownerDocument, 'keydown', function (e) {\n if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) {\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\n/* eslint-disable */\n\nfunction wheel (i) {\n var element = i.element;\n\n function shouldPreventDefault(deltaX, deltaY) {\n var roundedScrollTop = Math.floor(element.scrollTop);\n var isTop = element.scrollTop === 0;\n var isBottom = roundedScrollTop + element.offsetHeight === element.scrollHeight;\n var isLeft = element.scrollLeft === 0;\n var isRight = element.scrollLeft + element.offsetWidth === element.scrollWidth;\n\n var hitsBound;\n\n // pick axis with primary direction\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n hitsBound = isTop || isBottom;\n } else {\n hitsBound = isLeft || isRight;\n }\n\n return hitsBound ? !i.settings.wheelPropagation : true;\n }\n\n function getDeltaFromEvent(e) {\n var deltaX = e.deltaX;\n var deltaY = -1 * e.deltaY;\n\n if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') {\n // OS X Safari\n deltaX = (-1 * e.wheelDeltaX) / 6;\n deltaY = e.wheelDeltaY / 6;\n }\n\n if (e.deltaMode && e.deltaMode === 1) {\n // Firefox in deltaMode 1: Line scrolling\n deltaX *= 10;\n deltaY *= 10;\n }\n\n if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) {\n // IE in some mouse drivers\n deltaX = 0;\n deltaY = e.wheelDelta;\n }\n\n if (e.shiftKey) {\n // reverse axis with shift key\n return [-deltaY, -deltaX];\n }\n return [deltaX, deltaY];\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n // FIXME: this is a workaround for <select> issue in FF and IE #571\n if (!env.isWebKit && element.querySelector('select:focus')) {\n return true;\n }\n\n if (!element.contains(target)) {\n return false;\n }\n\n var cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n var style = get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function mousewheelHandler(e) {\n var ref = getDeltaFromEvent(e);\n var deltaX = ref[0];\n var deltaY = ref[1];\n\n if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {\n return;\n }\n\n var shouldPrevent = false;\n if (!i.settings.useBothWheelAxes) {\n // deltaX will only be used for horizontal scrolling and deltaY will\n // only be used for vertical scrolling - this is the default\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else if (i.scrollbarYActive && !i.scrollbarXActive) {\n // only vertical scrollbar is active and useBothWheelAxes option is\n // active, so let's scroll vertical bar using both mouse wheel axes\n if (deltaY) {\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n } else {\n element.scrollTop += deltaX * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n } else if (i.scrollbarXActive && !i.scrollbarYActive) {\n // useBothWheelAxes and only horizontal bar is active, so use both\n // wheel axes for horizontal bar\n if (deltaX) {\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else {\n element.scrollLeft -= deltaY * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n }\n\n updateGeometry(i);\n\n shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);\n if (shouldPrevent && !e.ctrlKey) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n if (typeof window.onwheel !== 'undefined') {\n i.event.bind(element, 'wheel', mousewheelHandler);\n } else if (typeof window.onmousewheel !== 'undefined') {\n i.event.bind(element, 'mousewheel', mousewheelHandler);\n }\n}\n\nfunction touch (i) {\n if (!env.supportsTouch && !env.supportsIePointer) {\n return;\n }\n\n var element = i.element;\n\n var state = {\n startOffset: {},\n startTime: 0,\n speed: {},\n easingLoop: null,\n };\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 function getTouch(e) {\n if (e.targetTouches) {\n return e.targetTouches[0];\n }\n // Maybe IE pointer\n return e;\n }\n\n function shouldHandle(e) {\n if (e.target === i.scrollbarX || e.target === i.scrollbarY) {\n return false;\n }\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 (e.pointerType && e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {\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 state.startOffset.pageX = touch.pageX;\n state.startOffset.pageY = touch.pageY;\n\n state.startTime = new Date().getTime();\n\n if (state.easingLoop !== null) {\n clearInterval(state.easingLoop);\n }\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n if (!element.contains(target)) {\n return false;\n }\n\n var cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n var style = get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n var maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function touchMove(e) {\n if (shouldHandle(e)) {\n var touch = getTouch(e);\n\n var currentOffset = { pageX: touch.pageX, pageY: touch.pageY };\n\n var differenceX = currentOffset.pageX - state.startOffset.pageX;\n var differenceY = currentOffset.pageY - state.startOffset.pageY;\n\n if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {\n return;\n }\n\n applyTouchMove(differenceX, differenceY);\n state.startOffset = currentOffset;\n\n var currentTime = new Date().getTime();\n\n var timeGap = currentTime - state.startTime;\n if (timeGap > 0) {\n state.speed.x = differenceX / timeGap;\n state.speed.y = differenceY / timeGap;\n state.startTime = currentTime;\n }\n\n if (shouldPrevent(differenceX, differenceY)) {\n // Prevent the default behavior if the event is cancelable\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }\n }\n\n function touchEnd() {\n if (i.settings.swipeEasing) {\n clearInterval(state.easingLoop);\n state.easingLoop = setInterval(function () {\n if (i.isInitialized) {\n clearInterval(state.easingLoop);\n return;\n }\n\n if (!state.speed.x && !state.speed.y) {\n clearInterval(state.easingLoop);\n return;\n }\n\n if (Math.abs(state.speed.x) < 0.01 && Math.abs(state.speed.y) < 0.01) {\n clearInterval(state.easingLoop);\n return;\n }\n\n applyTouchMove(state.speed.x * 30, state.speed.y * 30);\n\n state.speed.x *= 0.8;\n state.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\n/* eslint-disable */\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': setupScrollHandlers,\n keyboard: keyboard,\n wheel: wheel,\n touch: touch,\n};\n\nvar PerfectScrollbar = function PerfectScrollbar(element, userSettings) {\n var this$1 = this;\n if ( userSettings === void 0 ) userSettings = {};\n\n if (typeof element === 'string') {\n element = document.querySelector(element);\n }\n\n if (!element || !element.nodeName) {\n throw new Error('no element is specified to initialize PerfectScrollbar');\n }\n\n this.element = element;\n\n element.classList.add(cls.main);\n\n this.settings = defaultSettings();\n for (var key in userSettings) {\n this.settings[key] = userSettings[key];\n }\n\n this.containerWidth = null;\n this.containerHeight = null;\n this.contentWidth = null;\n this.contentHeight = null;\n\n var focus = function () { return element.classList.add(cls.state.focus); };\n var blur = function () { return element.classList.remove(cls.state.focus); };\n\n this.isRtl = get(element).direction === 'rtl';\n if (this.isRtl === true) {\n element.classList.add(cls.rtl);\n }\n this.isNegativeScroll = (function () {\n var originalScrollLeft = element.scrollLeft;\n var result = null;\n element.scrollLeft = -1;\n result = element.scrollLeft < 0;\n element.scrollLeft = originalScrollLeft;\n return result;\n })();\n this.negativeScrollAdjustment = this.isNegativeScroll\n ? element.scrollWidth - element.clientWidth\n : 0;\n this.event = new EventManager();\n this.ownerDocument = element.ownerDocument || document;\n\n this.scrollbarXRail = div(cls.element.rail('x'));\n element.appendChild(this.scrollbarXRail);\n this.scrollbarX = div(cls.element.thumb('x'));\n this.scrollbarXRail.appendChild(this.scrollbarX);\n this.scrollbarX.setAttribute('tabindex', 0);\n this.event.bind(this.scrollbarX, 'focus', focus);\n this.event.bind(this.scrollbarX, 'blur', blur);\n this.scrollbarXActive = null;\n this.scrollbarXWidth = null;\n this.scrollbarXLeft = null;\n var railXStyle = get(this.scrollbarXRail);\n this.scrollbarXBottom = parseInt(railXStyle.bottom, 10);\n if (isNaN(this.scrollbarXBottom)) {\n this.isScrollbarXUsingBottom = false;\n this.scrollbarXTop = toInt(railXStyle.top);\n } else {\n this.isScrollbarXUsingBottom = true;\n }\n this.railBorderXWidth = toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth);\n // Set rail to display:block to calculate margins\n set(this.scrollbarXRail, { display: 'block' });\n this.railXMarginWidth = 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 = toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth);\n set(this.scrollbarYRail, { display: 'block' });\n this.railYMarginHeight = 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(this, 'left', this.element.scrollLeft - this.lastScrollLeft);\n\n this.lastScrollTop = Math.floor(this.element.scrollTop);\n this.lastScrollLeft = this.element.scrollLeft;\n};\n\nPerfectScrollbar.prototype.destroy = function destroy () {\n if (!this.isAlive) {\n return;\n }\n\n this.event.unbindAll();\n remove(this.scrollbarX);\n remove(this.scrollbarY);\n remove(this.scrollbarXRail);\n remove(this.scrollbarYRail);\n this.removePsClasses();\n\n // unset elements\n this.element = null;\n this.scrollbarX = null;\n this.scrollbarY = null;\n this.scrollbarXRail = null;\n this.scrollbarYRail = null;\n\n this.isAlive = false;\n};\n\nPerfectScrollbar.prototype.removePsClasses = function removePsClasses () {\n this.element.className = this.element.className\n .split(' ')\n .filter(function (name) { return !name.match(/^ps([-_].+|)$/); })\n .join(' ');\n};\n\nexport default PerfectScrollbar;\n//# sourceMappingURL=perfect-scrollbar.esm.js.map\n","import Component from './component';\nimport PerfectScrollbar from 'perfect-scrollbar';\n\nif (typeof window !== 'undefined' && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nclass Sidebar extends Component {\n\n static DEFAULTS = {\n floating: true,\n breakpoint: 1046,\n wheelSpeed: 2,\n wheelPropagation: true,\n minScrollbarLength: 20,\n suppressScrollX: true,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n };\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool && window.Cool.settings && window.Cool.settings.sidebar) {\n $.extend(true, this.opts, Sidebar.DEFAULTS, window.Cool.settings.sidebar, opts);\n } else {\n $.extend(true, this.opts, Sidebar.DEFAULTS, opts);\n }\n\n this.el = el;\n \n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n this.initializeScrollbars();\n this.initializeTabs();\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n this.destroyScrollbars();\n this.onDestroy();\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.el = this.$el[0];\n this.$content = this.$el.find('.sidebar-content');\n this.content = this.$content[0];\n this.$toggler = $('.sidebar-left-toggler');\n this.toggler = this.$toggler[0];\n this.isFloating = this.$el.hasClass('sidebar-floating');\n this.isOpen = document.body.classList.contains('sidebar-left-open');\n this.$tabs = this.$el.find('.sidebar-tab');\n this.$tabSelectors = $('[name=\"sidebar-tab-select\"]');\n }\n\n bindEvents() {\n this._toggleHandler = (e) => {\n const toggler = e.target.closest('.sidebar-left-toggler');\n if (toggler) {\n this.handleToggle(e, toggler);\n }\n };\n \n this._mousedownHandler = (e) => {\n if (e.target.matches('.sidebar-content .ps__thumb-y')) {\n const sidebarContent = e.target.closest('.sidebar-content');\n sidebarContent?.classList.add('ps-mousedown-scroll');\n this.mousedownScrollbar = true;\n }\n };\n \n this._mouseupHandler = () => {\n if (this.mousedownScrollbar) {\n document.querySelectorAll('.sidebar-content.ps-mousedown-scroll')\n .forEach(el => el.classList.remove('ps-mousedown-scroll'));\n this.mousedownScrollbar = false;\n }\n };\n\n this._tabSelectHandler = (e) => {\n if (!e.target.matches('[name=\"sidebar-tab-select\"]')) return;\n this.switchTab(e.target.value);\n };\n \n this._collapseClickHandler = (e) => {\n const collapseToggle = e.target.closest('[data-toggle=\"collapse\"]');\n if (!collapseToggle) return;\n\n const breakpoint = collapseToggle.dataset.breakpoint;\n if (breakpoint && window.matchMedia(`(min-width: ${breakpoint}px)`).matches) {\n let linkElement = collapseToggle.nextElementSibling?.querySelector('li a') ||\n collapseToggle.parentElement.nextElementSibling?.querySelector('li a');\n\n if (linkElement) {\n if (e.metaKey || e.ctrlKey) {\n window.open(linkElement.href, '_blank').focus();\n } else {\n window.location.href = linkElement.href;\n }\n }\n } else {\n setTimeout(() => this.scrollbar?.update(), 300);\n }\n };\n \n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n if (window.innerWidth > this.opts.breakpoint) {\n this.removeBackdrop();\n }\n });\n });\n \n this.resizeObserver.observe(document.body);\n \n } else {\n\n let resizeTimeout;\n this._resizeHandler = () => {\n clearTimeout(resizeTimeout);\n \n const now = performance.now();\n if (!this.lastResizeTime || now - this.lastResizeTime > 100) {\n if (window.innerWidth > this.opts.breakpoint) {\n this.removeBackdrop();\n }\n this.lastResizeTime = now;\n } else {\n resizeTimeout = setTimeout(() => {\n if (window.innerWidth > this.opts.breakpoint) {\n this.removeBackdrop();\n }\n }, 16);\n }\n };\n \n window.addEventListener('resize', this._resizeHandler, { passive: true });\n }\n \n document.addEventListener('click', this._toggleHandler);\n document.addEventListener('click', this._tabSelectHandler);\n document.addEventListener('mousedown', this._mousedownHandler);\n document.addEventListener('mouseup', this._mouseupHandler);\n \n if (this.content) {\n this.content.addEventListener('click', this._collapseClickHandler);\n }\n }\n\n unbindEvents() {\n document.removeEventListener('click', this._toggleHandler);\n document.removeEventListener('click', this._tabSelectHandler);\n document.removeEventListener('mousedown', this._mousedownHandler);\n document.removeEventListener('mouseup', this._mouseupHandler);\n \n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n \n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n \n if (this._resizeHandler) {\n window.removeEventListener('resize', this._resizeHandler);\n this._resizeHandler = null;\n }\n \n if (this.content) {\n this.content.removeEventListener('click', this._collapseClickHandler);\n }\n }\n\n initializeScrollbars() {\n if (this.content) {\n this.scrollbar = new PerfectScrollbar(this.content, {\n wheelSpeed: this.opts.wheelSpeed,\n wheelPropagation: this.opts.wheelPropagation,\n minScrollbarLength: this.opts.minScrollbarLength,\n suppressScrollX: this.opts.suppressScrollX,\n });\n }\n }\n\n initializeTabs() {\n this.tabScrollbars = new Map();\n\n this.$tabs.each((index, tab) => {\n const scrollContainer = tab.querySelector('.tab-content');\n if (scrollContainer) {\n const ps = new PerfectScrollbar(scrollContainer, {\n wheelSpeed: this.opts.wheelSpeed,\n wheelPropagation: this.opts.wheelPropagation,\n minScrollbarLength: this.opts.minScrollbarLength,\n suppressScrollX: this.opts.suppressScrollX,\n });\n this.tabScrollbars.set(tab, ps);\n }\n });\n }\n\n destroyScrollbars() {\n if (this.scrollbar) {\n this.scrollbar.destroy();\n this.scrollbar = null;\n }\n \n this.tabScrollbars.forEach(ps => ps.destroy());\n this.tabScrollbars.clear();\n }\n\n toggleWithTransition(action) {\n const html = document.documentElement;\n \n html.classList.add('sidebar-transitioning');\n \n if (action === 'open') {\n document.body.classList.add('sidebar-left-open');\n \n if (this.isFloating && window.innerWidth <= this.opts.breakpoint) {\n this.createBackdrop();\n }\n } else {\n document.body.classList.remove('sidebar-left-open');\n this.removeBackdrop();\n }\n \n setTimeout(() => {\n html.classList.remove('sidebar-transitioning');\n }, 330);\n }\n\n createBackdrop() {\n if (document.querySelector('.sidebar-backdrop')) {\n return;\n }\n \n const backdrop = document.createElement('div');\n backdrop.className = 'sidebar-backdrop';\n backdrop.addEventListener('click', () => {\n this.toggleWithTransition('close');\n \n if (this.toggler) {\n this.toggler.classList.remove('open');\n if (this.toggler.ariaExpanded !== null) {\n this.toggler.ariaExpanded = 'false';\n }\n }\n });\n\n const siteMainEl = document.querySelector('.site-main');\n if (siteMainEl) {\n siteMainEl.appendChild(backdrop);\n \n requestAnimationFrame(() => {\n backdrop.classList.add('show');\n });\n }\n }\n\n removeBackdrop() {\n const backdrop = document.querySelector('.sidebar-backdrop');\n if (backdrop) {\n backdrop.classList.remove('show');\n \n backdrop.addEventListener('transitionend', () => {\n backdrop.remove();\n }, { once: true });\n \n setTimeout(() => {\n backdrop?.remove();\n }, 330);\n }\n }\n\n handleToggle(event, toggler) {\n event.stopPropagation();\n if (!toggler) {\n return;\n }\n \n if (toggler.ariaExpanded !== null) {\n toggler.ariaExpanded = toggler.ariaExpanded !== 'true';\n }\n\n toggler.classList.toggle('open');\n \n const isCurrentlyOpen = document.body.classList.contains('sidebar-left-open');\n this.toggleWithTransition(isCurrentlyOpen ? 'close' : 'open');\n \n if (isCurrentlyOpen) {\n this.onClose();\n } else {\n this.onShow();\n }\n }\n\n switchTab(tabId) {\n const activeTab = document.getElementById(`sidebar-tab-${tabId}`);\n \n if (!activeTab) return;\n\n const sidebarTabs = this.$tabs.toArray();\n \n sidebarTabs.forEach(tab => {\n tab.classList.toggle('active', tab === activeTab);\n \n if (tab !== activeTab) {\n const tabContent = tab.querySelector('.tab-content');\n if (tabContent) {\n if (tab === sidebarTabs[0]) {\n tabContent.style.transform = 'translate3d(100%, 0px, 0px)';\n } else if (tab === sidebarTabs[sidebarTabs.length - 1]) {\n tabContent.style.transform = 'translate3d(-100%, 0px, 0px)';\n } else {\n const isBeforeActive = sidebarTabs.indexOf(tab) < \n sidebarTabs.indexOf(activeTab);\n tabContent.style.transform = `translate3d(${isBeforeActive ? '-100%' : '100%'}, 0px, 0px)`;\n }\n }\n }\n });\n\n const activeTabContent = activeTab.querySelector('.tab-content');\n \n if (activeTabContent) {\n activeTabContent.style.transform = 'none';\n }\n\n this.$tabSelectors.each(function() {\n $(this).toggleClass('active', this.value === tabId);\n });\n }\n\n toggle() {\n const isOpen = document.body.classList.contains('sidebar-left-open');\n this.toggleWithTransition(isOpen ? 'close' : 'open');\n }\n\n open() {\n if (!document.body.classList.contains('sidebar-left-open')) {\n this.toggleWithTransition('open');\n }\n }\n\n close() {\n if (document.body.classList.contains('sidebar-left-open')) {\n this.toggleWithTransition('close');\n }\n }\n}\n\nexport default Sidebar;","class ResizeManager {\n constructor() {\n this.callbacks = new WeakMap();\n this.observer = null;\n this.rafId = null;\n this.windowCallbacks = new Set();\n this.isWindowListening = false;\n }\n\n observe(element, callback) {\n if (!this.observer) {\n this.observer = new ResizeObserver(entries => {\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n entries.forEach(entry => {\n const callback = this.callbacks.get(entry.target);\n if (callback) {\n callback(entry);\n }\n });\n });\n });\n }\n\n this.callbacks.set(element, callback);\n this.observer.observe(element);\n \n this.windowCallbacks.add(callback);\n \n if (!this.isWindowListening) {\n this.startWindowListening();\n }\n }\n\n unobserve(element) {\n if (this.observer) {\n this.observer.unobserve(element);\n const callback = this.callbacks.get(element);\n if (callback) {\n this.windowCallbacks.delete(callback);\n }\n this.callbacks.delete(element);\n \n if (this.windowCallbacks.size === 0) {\n this.stopWindowListening();\n }\n }\n }\n\n startWindowListening() {\n this.isWindowListening = true;\n window.addEventListener('resize', this.handleWindowResize, { passive: true });\n }\n\n stopWindowListening() {\n this.isWindowListening = false;\n window.removeEventListener('resize', this.handleWindowResize);\n }\n\n handleWindowResize = () => {\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n this.windowCallbacks.forEach(callback => {\n callback({ target: window, contentRect: { width: window.innerWidth, height: window.innerHeight } });\n });\n });\n }\n\n disconnect() {\n if (this.observer) {\n this.observer.disconnect();\n this.callbacks = new WeakMap();\n }\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n this.windowCallbacks.clear();\n this.stopWindowListening();\n }\n}\n\nclass ScrollManager {\n constructor() {\n this.callbacks = new Map();\n this.rafId = null;\n this.isListening = false;\n }\n\n add(id, callback) {\n this.callbacks.set(id, callback);\n \n if (!this.isListening) {\n this.startListening();\n }\n }\n\n remove(id) {\n this.callbacks.delete(id);\n \n if (this.callbacks.size === 0) {\n this.stopListening();\n }\n }\n\n startListening() {\n this.isListening = true;\n \n const contentElement = document.querySelector('.site-main .content');\n\n if (contentElement) {\n this.scrollElement = contentElement;\n this.scrollElement.addEventListener('scroll', this.handleScroll, { passive: true });\n } else {\n this.scrollElement = window;\n window.addEventListener('scroll', this.handleScroll, { passive: true });\n }\n }\n\n stopListening() {\n this.isListening = false;\n \n if (this.scrollElement) {\n this.scrollElement.removeEventListener('scroll', this.handleScroll);\n this.scrollElement = null;\n }\n \n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n }\n\n handleScroll = () => {\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n this.callbacks.forEach(callback => callback());\n });\n }\n}\n\nconst resizeManager = new ResizeManager();\nconst scrollManager = new ScrollManager();\n\nconst debounce = function (func, wait, immediate) {\n\tlet timeout;\n\n\treturn function () {\n\t\tlet context = this;\n\t\tlet args = arguments;\n\t\tlet later = function () {\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 touchEvents = function () {\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\nconst generateUUID = function () {\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n\t\tlet r = (Math.random() * 16) | 0;\n\t\tlet v = c === 'x' ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nconst shallowProperty = function (key) {\n\treturn function (obj) {\n\t\treturn obj == null ? void 0 : obj[key];\n\t};\n};\n\nconst isArrayLike = function (collection) {\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\tif (context === void 0) {\n\t\treturn func;\n\t}\n\n\tswitch (argCount == null ? 3 : argCount) {\n\t\tcase 1:\n\t\t\treturn function (value) {\n\t\t\t\treturn func.call(context, value);\n\t\t\t};\n\n\t\tcase 3:\n\t\t\treturn function (value, index, collection) {\n\t\t\t\treturn func.call(context, value, index, collection);\n\t\t\t};\n\t\tcase 4:\n\t\t\treturn function (accumulator, value, index, collection) {\n\t\t\t\treturn func.call(context, accumulator, value, index, collection);\n\t\t\t};\n\t}\n\n\treturn function () {\n\t\treturn func.apply(context, arguments);\n\t};\n};\n\nconst escapeHtml = function (html) {\n\tconst text = document.createTextNode(html);\n\tconst p = document.createElement('p');\n\tp.appendChild(text);\n\treturn p.innerHTML;\n};\n\nconst each = function (obj, iteratee, context) {\n\titeratee = optimizeCb(iteratee, context);\n\n\tlet i;\n\tlet length;\n\n\tif (isArrayLike(obj)) {\n\t\tfor (i = 0, length = obj.length; i < length; i++) {\n\t\t\titeratee(obj[i], i, obj);\n\t\t}\n\t} else {\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 whichTransitionEvent = function () {\n\t let el = document.createElement('text-transition');\n\tlet transEndEventNames = {\n\t\tWebkitTransition: 'webkitTransitionEnd', // Saf 6, Android Browser\n\t\tMozTransition: 'transitionend', // only for FF < 15\n\t\ttransition: 'transitionend', // IE10, Opera, Chrome, FF 15+, Saf 7+\n\t};\n\n\tfor (let t in transEndEventNames) {\n\t\tif (el.style[t] !== undefined) {\n\t\t\treturn transEndEventNames[t];\n\t\t}\n\t}\n}\n\nconst playAnimation = function(el, animationClass) {\n\tconst domEl = (el && el.jquery) ? el[0] : el;\n if (!domEl) return Promise.resolve();\n\n return new Promise((resolve) => {\n const classes = ['animation', animationClass];\n domEl.classList.add(...classes);\n\n function onEnd(event) {\n event.stopPropagation();\n domEl.classList.remove(...classes);\n domEl.removeEventListener('animationend', onEnd);\n resolve();\n }\n\n domEl.addEventListener('animationend', onEnd, { once: true });\n });\n}\n\nconst escapeChar = (chr) => {\n\tconst chars = {\n\t\t'&': '&amp;',\n\t\t'<': '&lt;',\n\t\t'>': '&gt;',\n\t\t'\"': '&quot;',\n\t\t\"'\": '&#x27;',\n\t\t'`': '&#x60;',\n\t\t'=': '&#x3D;'\n\t};\n return chars[chr];\n};\n\nconst escape = (string) => {\n\tconst invalidChars = /[&<>\"'`=]/g;\n\tconst validChars = /[&<>\"'`=]/;\n if (typeof string !== 'string') {\n if (string === null) {\n return '';\n } else if (!string) {\n return String(string);\n }\n string = String(string);\n }\n if (!validChars.test(string)) {\n return string;\n }\n return string.replace(invalidChars, escapeChar);\n};\n\nexport {\n\tresizeManager,\n\tscrollManager,\n\tdebounce,\n\ttouchEvents,\n\tgenerateUUID,\n\teach,\n\tescapeHtml,\n\twhichTransitionEvent,\n\tplayAnimation,\n\tescape\n};","import Component from './component';\nimport { generateUUID, resizeManager } from './utils';\n\nclass Popover extends Component {\n\n static NAME = 'coolPopover';\n\n static DEFAULTS = {\n container: 'body',\n containerAutoDetect: false,\n trigger: 'focus',\n placement: 'bottom',\n align: 'center',\n offset: null,\n collisionDetection: true,\n title: '',\n content: '',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${Popover.NAME}`);\n if (!instance) {\n instance = new Popover(this, typeof config === 'object' && config);\n $el.data(`plugin_${Popover.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Popover.NAME];\n $.fn[Popover.NAME] = Popover._jQueryInterface;\n $.fn[Popover.NAME].Constructor = Popover;\n $.fn[Popover.NAME].defaults = Popover.DEFAULTS || {};\n $.fn[Popover.NAME].noConflict = () => {\n $.fn[Popover.NAME] = previousName;\n return Popover._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.popover) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.popover, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n if (this.$popover) {\n this.$popover.remove();\n this.$popover = null;\n }\n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n if (this.$popover) {\n this.setPosition();\n }\n this.onUpdate();\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.containerAutoDetect = this.$el.data('containerAutoDetect')\n ? this.$el.data('containerAutoDetect')\n : this.opts.containerAutoDetect;\n this.id = 'popover-' + generateUUID();\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.align = this.$el.data('align') ? this.$el.data('align') : this.opts.align;\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 this.offset = this.$el.data('offset') ? this.$el.data('offset') : this.opts.offset;\n this.collisionDetection = this.$el.data('collisionDetection') !== false ? this.$el.data('collisionDetection') : this.opts.collisionDetection;\n\n if (this.containerAutoDetect) {\n this.$container = this.$el.offsetParent();\n }\n }\n\n bindEvents() {\n if (this.trigger === 'click') {\n this.$el.on('click' + '.' + this.constructor.NAME, () => {\n if (this.$popover) {\n this.close();\n } else {\n this.show();\n }\n });\n } else if (this.trigger === 'hover') {\n this.$el.on('mouseenter' + '.' + this.constructor.NAME, () => {\n clearTimeout(this.hoverTimeout);\n this.show();\n });\n\n this.$el.on('mouseleave' + '.' + this.constructor.NAME, () => {\n this.hoverTimeout = setTimeout(() => {\n if (!this.popupHasFocus) {\n this.close();\n }\n }, 100);\n });\n } else if (this.trigger === 'focus') {\n this.$el.on('focusin' + '.' + this.constructor.NAME, () => {\n this.show();\n });\n\n this.$el.on('focusout' + '.' + this.constructor.NAME, () => {\n this.close();\n });\n }\n\n if (window.ResizeObserver) {\n this._resizeCallback = () => {\n if (this.$popover && this.$popover.hasClass('show')) {\n requestAnimationFrame(() => {\n this.setPosition();\n });\n }\n };\n \n resizeManager.observe(this.el, this._resizeCallback);\n }\n }\n\n unbindEvents() {\n this.$el.off('.' + this.constructor.NAME);\n \n if (this._resizeCallback) {\n resizeManager.unobserve(this.el);\n this._resizeCallback = null;\n }\n }\n\n buildPopover() {\n let content;\n\n if (typeof this.content === 'function') {\n content = this.content();\n } else {\n content = this.content;\n }\n\n this.$popover = $(`\n <div class=\"popover\" role=\"tooltip\" id=\"${this.id}\">\n <h3 class=\"popover-header\">${this.title}</h3>\n <div class=\"popover-body\">${content}</div>\n </div>\n `);\n\n this.$container.append(this.$popover);\n \n this.$container.find('#' + this.id).on('mouseenter', () => {\n this.popupHasFocus = true;\n if (this.trigger === 'hover' && this.hoverTimeout) {\n clearTimeout(this.hoverTimeout);\n }\n });\n\n this.$container.find('#' + this.id).on('mouseleave', () => {\n this.popupHasFocus = false;\n if (this.trigger === 'hover') {\n this.hoverTimeout = setTimeout(() => {\n this.close();\n }, 100);\n }\n });\n }\n\n setPosition(placement) {\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n \n let popoverWidth = this.$popover.outerWidth(true);\n let popoverHeight = this.$popover.outerHeight(true);\n let triggerWidth = this.$el.outerWidth(true);\n let triggerHeight = this.$el.outerHeight(true);\n \n let triggerPosX, triggerPosY;\n\n const containerOffset = this.$container.offset() || { left: 0, top: 0 };\n const triggerOffset = this.$el.offset();\n\n triggerPosX = triggerOffset.left - containerOffset.left;\n triggerPosY = triggerOffset.top - containerOffset.top;\n\n let popoverPosX = 0;\n let popoverPosY = 0;\n let offsetX = 0;\n let offsetY = 0;\n\n if (this.offset) {\n const offsets = this.offset.split(',');\n offsetX = parseInt(offsets[0], 10) || 0;\n offsetY = parseInt(offsets[1], 10) || 0;\n }\n\n const computedStyle = getComputedStyle(this.$popover[0]);\n const spacing = parseInt(computedStyle.getPropertyValue('--cool-popover-spacer')) || 8;\n\n const calculatePosition = (currentPlacement, currentAlign = this.align) => {\n let x = 0, y = 0;\n \n switch (currentPlacement) {\n case 'top':\n x = currentAlign === 'end' \n ? triggerPosX + triggerWidth - popoverWidth \n : currentAlign === 'center'\n ? triggerPosX + (triggerWidth - popoverWidth) / 2\n : triggerPosX;\n y = triggerPosY - popoverHeight - spacing;\n break;\n case 'bottom':\n x = currentAlign === 'end' \n ? triggerPosX + triggerWidth - popoverWidth \n : currentAlign === 'center'\n ? triggerPosX + (triggerWidth - popoverWidth) / 2\n : triggerPosX;\n y = triggerPosY + triggerHeight + spacing;\n break;\n case 'left':\n x = triggerPosX - popoverWidth - spacing;\n y = currentAlign === 'end'\n ? triggerPosY + triggerHeight - popoverHeight\n : currentAlign === 'center'\n ? triggerPosY + (triggerHeight - popoverHeight) / 2\n : triggerPosY;\n break;\n case 'right':\n x = triggerPosX + triggerWidth + spacing;\n y = currentAlign === 'end'\n ? triggerPosY + triggerHeight - popoverHeight\n : currentAlign === 'center'\n ? triggerPosY + (triggerHeight - popoverHeight) / 2\n : triggerPosY;\n break;\n }\n \n return { x: x + offsetX, y: y + offsetY };\n };\n\n let finalPlacement = placement;\n let finalAlign = this.align;\n let position = calculatePosition(placement);\n \n if (this.collisionDetection) {\n const margin = 5;\n \n const checkCollision = (pos) => {\n const collision = {\n top: false,\n bottom: false,\n left: false,\n right: false\n };\n \n const popoverScreenLeft = containerOffset.left + pos.x;\n const popoverScreenTop = containerOffset.top + pos.y;\n const popoverScreenRight = popoverScreenLeft + popoverWidth;\n const popoverScreenBottom = popoverScreenTop + popoverHeight;\n \n collision.top = popoverScreenTop < margin;\n collision.bottom = popoverScreenBottom > viewportHeight - margin;\n collision.left = popoverScreenLeft < margin;\n collision.right = popoverScreenRight > viewportWidth - margin;\n \n return collision;\n };\n \n const collision = checkCollision(position);\n \n if (placement === 'bottom' && collision.bottom && !collision.top) {\n finalPlacement = 'top';\n position = calculatePosition('top', finalAlign);\n } else if (placement === 'top' && collision.top && !collision.bottom) {\n finalPlacement = 'bottom';\n position = calculatePosition('bottom', finalAlign);\n } else if (placement === 'right' && collision.right && !collision.left) {\n finalPlacement = 'left';\n position = calculatePosition('left', finalAlign);\n } else if (placement === 'left' && collision.left && !collision.right) {\n finalPlacement = 'right';\n position = calculatePosition('right', finalAlign);\n }\n \n const newCollision = checkCollision(position);\n \n if ((finalPlacement === 'top' || finalPlacement === 'bottom')) {\n if (finalAlign === 'end' && newCollision.left && !newCollision.right) {\n finalAlign = 'start';\n position = calculatePosition(finalPlacement, finalAlign);\n } else if (finalAlign === 'start' && newCollision.right && !newCollision.left) {\n finalAlign = 'end';\n position = calculatePosition(finalPlacement, finalAlign);\n }\n }\n \n const finalCollision = checkCollision(position);\n\n if (finalCollision.left) {\n position.x += (margin - (containerOffset.left + position.x));\n } else if (finalCollision.right) {\n position.x -= ((containerOffset.left + position.x + popoverWidth) - (viewportWidth - margin));\n }\n \n if (finalCollision.top) {\n position.y += (margin - (containerOffset.top + position.y));\n } else if (finalCollision.bottom) {\n position.y -= ((containerOffset.top + position.y + popoverHeight) - (viewportHeight - margin));\n }\n }\n\n popoverPosX = position.x;\n popoverPosY = position.y;\n\n this.$popover.css({\n transform: `translate3d(${Math.round(popoverPosX)}px, ${Math.round(popoverPosY)}px, 0px)`,\n 'will-change': 'transform'\n });\n\n this.$popover.attr('x-placement', finalPlacement + '-' + finalAlign);\n }\n\n show() {\n if (this.$popover) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n this.$popover.addClass('show');\n this.$el.attr('data-popover', this.id);\n\n this.onShow();\n }\n\n close() {\n if (!this.$popover) {\n return;\n }\n\n this.$popover.remove();\n this.$el.removeAttr('data-popover');\n this.$popover = null;\n\n this.onClose();\n }\n}\n\nPopover._jQueryInit();\n\nexport default Popover;","import Component from './component';\nimport { debounce, touchEvents, escape, resizeManager, scrollManager } from './utils';\nimport PerfectScrollbar from 'perfect-scrollbar';\n\nif (typeof window !== 'undefined' && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nclass Select extends Component {\n\n static NAME = 'coolSelect';\n\n static DEFAULTS = {\n name: '',\n type: 'checkbox',\n labelTemplate: null,\n confirmCheck: null,\n confirmUncheck: null,\n setData: null,\n scrollContentHeight: 300,\n useNativeScroll: false,\n contentWidth: null,\n faPro: false,\n items: [],\n showSearch: false,\n showFooter: false,\n searchApi: false,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onReset: null,\n onSearch: null,\n onSelect: null,\n buildScroll: null,\n searchPlaceholder: null,\n btnCloseText: null,\n dynamicTitle: false,\n dynamicTitleDefault: '',\n dynamicTitleEmptyDefault: '',\n allowNoneOnRadioSelect: true,\n preventUncheck: false,\n showValidStateIcon: true,\n itemsToExclude: [],\n primaryKeyword: 'id',\n position: 'absolute',\n scrollEl: '.content',\n useChips: false\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${Select.NAME}`);\n if (!instance) {\n instance = new Select(this, typeof config === 'object' && config);\n $el.data(`plugin_${Select.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Select.NAME];\n $.fn[Select.NAME] = Select._jQueryInterface;\n $.fn[Select.NAME].Constructor = Select;\n $.fn[Select.NAME].defaults = Select.DEFAULTS || {};\n $.fn[Select.NAME].noConflict = () => {\n $.fn[Select.NAME] = previousName;\n return Select._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.select) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.select, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n this.useChips = false;\n this.cachedTitle = '';\n this.lastSearchQuery = '';\n this._resizeCallback = null;\n this._scrollCallback = null;\n this.init();\n }\n\n init() {\n this.buildCache();\n this.buildScroll();\n this.bindEvents();\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.bindEvents();\n\n let updatePromise = Promise.resolve();\n\n if (this.searchApi && this.searchApi.length) {\n updatePromise = this._performInitialSearch();\n }\n\n return updatePromise.then(() => {\n this.onUpdate();\n });\n }\n\n reset() {\n this.data = {};\n this.data[this.name] = [];\n this.items = [];\n this.$select.find('.select-item').remove();\n this.$selectItems = [];\n this.$selectIconContainer.html(this.selectIconDefault);\n this.$selectHeader.removeClass('select-placeholder');\n\n if (typeof this.dynamicTitle === 'function') {\n this.$selectTitle.text(this.dynamicTitle.call(this));\n } else {\n if (\n this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)\n ) {\n this.$selectTitle.text(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n this.$selectHeader.addClass('select-placeholder');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.text(this.dynamicTitleEmptyDefault);\n }\n }\n\n if (this.showSearch) {\n this.searchData = [];\n this.$searchInput.val('');\n this.searchString = '';\n this.search.call(this);\n }\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.parent();\n this.$selectHeader = this.$el.find('.select-header');\n this.$selectTitle = this.$el.find('.select-title');\n this.cachedTitle = this.$selectTitle.text();\n this.$selectIconContainer = this.$selectHeader.find('.select-icon');\n this.$searchIconContainer = this.$el.find('.select-search-icon');\n this.selectIconDefault = this.$selectHeader.find('.select-icon')\n ? this.$selectHeader.find('.select-icon').html()\n : '<i class=\"' + (this.opts.faPro ? 'fal' : 'fas') + 'fa-angle-down icon\"></i>';\n this.name = this.$el.data('name') ? this.$el.data('name') : this.opts.name;\n this.scroll = null;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.useNativeScroll = this.$el.data('useNativeScroll') ? this.$el.data('useNativeScroll') : this.opts.useNativeScroll;\n this.contentWidth = this.$el.data('contentWidth') ? this.$el.data('contentWidth') : this.opts.contentWidth;\n this.items = this.$el.data('items') ? this.$el.data('items') : this.opts.items;\n this.data = {};\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.$el.data('searchApi') ? this.$el.data('searchApi') : this.opts.searchApi;\n this.searchRequest = null;\n this.type = this.$el.data('type') ? this.$el.data('type') : this.opts.type;\n this.contentOpen = false;\n this.searchPlaceholder = this.$el.data('search-placeholder') ? this.$el.data('search-placeholder') : this.opts.searchPlaceholder;\n this.btnCloseText = this.$el.data('btn-close-text') ? this.$el.data('btn-close-text') : this.opts.btnCloseText;\n this.labelTemplate = this.opts.labelTemplate;\n this.confirmCheck = this.opts.confirmCheck;\n this.confirmUncheck = this.opts.confirmUncheck;\n this.preventUncheck = this.opts.preventUncheck;\n this.dynamicTitle = this.$el.data('dynamicTitle') ? this.$el.data('dynamicTitle') : this.opts.dynamicTitle;\n this.dynamicTitleDefault = this.$el.data('dynamicTitleDefault') ? this.$el.data('dynamicTitleDefault') : this.opts.dynamicTitleDefault;\n this.dynamicTitleEmptyDefault = this.$el.data('dynamicTitleEmptyDefault') ? this.$el.data('dynamicTitleEmptyDefault') : this.opts.dynamicTitleEmptyDefault;\n this.allowNoneOnRadioSelect = this.$el.data('allowNoneOnRadioSelect') ? this.$el.data('allowNoneOnRadioSelect') : this.opts.allowNoneOnRadioSelect;\n this.showValidStateIcon = this.$el.data('showValidStateIcon') ? this.$el.data('showValidStateIcon') : this.opts.showValidStateIcon;\n this.itemsToExclude = this.$el.data('itemsToExclude') ? this.$el.data('itemsToExclude').replace(/\\s/g, '').split(',') : this.opts.itemsToExclude;\n this.primaryKeyword = this.$el.data('primaryKeyword') ? this.$el.data('primaryKeyword') : this.opts.primaryKeyword;\n this.useChips = this.$el.data('useChips') ? this.$el.data('useChips') : this.opts.useChips;\n\n if (this.useChips) {\n this.showValidStateIcon = false;\n }\n\n this.preventClose = false;\n\n if (this.itemsToExclude.length > 0) {\n this.itemsToExclude = this.itemsToExclude.map(String);\n }\n\n if (this.opts.setData) {\n this.data = this.opts.setData;\n }\n\n if (this.$el.data('setData') && this.$el.data('setData') != '') {\n this.data = this.$el.data('setData');\n }\n\n if (!Array.isArray(this.data[this.name]) && this.data[this.name] !== '' && this.data[this.name].length > 0) {\n const arr = this.data[this.name].toString().trim().split(',');\n\n this.data[this.name] = arr;\n }\n\n if (this.data[this.name].length > 0 && !this.useChips) {\n this.data[this.name] = this.data[this.name].map(String);\n }\n\n if (this.data[this.name].length > 0 && this.itemsToExclude.length > 0) {\n this.data[this.name] = this.data[this.name].filter((item) => {\n if (item[this.primaryKeyword]) {\n return this.itemsToExclude.indexOf(item[this.primaryKeyword].toString()) === -1;\n } else {\n return this.itemsToExclude.indexOf(item.toString()) === -1;\n }\n });\n }\n\n if (this.data && this.useChips) {\n this._renderChips();\n }\n\n if (this.items.length > 0 && this.itemsToExclude.length > 0) {\n this.items = this.items.filter((item) => {\n if (item[this.primaryKeyword]) {\n return this.itemsToExclude.indexOf(item[this.primaryKeyword].toString()) === -1;\n } else {\n return this.itemsToExclude.indexOf(item.toString()) === -1;\n }\n });\n }\n\n if (this.$el.find('.select-search').length) {\n this.showSearch = true;\n } else {\n this.showSearch = this.$el.data('showSearch') ? this.$el.data('showSearch') : this.opts.showSearch;\n }\n\n if (this.$el.find('.select-footer').length) {\n this.showFooter = true;\n } else {\n this.showFooter = this.$el.data('showFooter') ? this.$el.data('showFooter') : this.opts.showFooter;\n }\n\n this.$select = this.$el.find('.select-content');\n\n if (!this.$select.length) {\n let items = this._renderItemList(this.items);\n\n this.$select = $(`\n <div class=\"select-content\">\n\n ${this._renderSearch()}\n\n <div class=\"select-scrollable-content\"></div>\n\n ${this._renderFooter()}\n\n </div>\n `);\n\n this.$el.append(this.$select);\n this.$select.find('.select-scrollable-content').append(items);\n } else {\n const selectItems = this.$select.find('.select-item');\n\n if (selectItems.length > 0 && this.itemsToExclude.length > 0) {\n $.each(selectItems, (i, el) => {\n const val = $(el).find(':input').val();\n\n if (this.itemsToExclude.indexOf(val) > -1) {\n $(el).remove();\n }\n });\n }\n }\n\n if (this.data[this.name].length > 0) {\n const values = this.useChips ? this.data[this.name].map((item) => item[this.primaryKeyword].toString()) : this.data[this.name].map(String);\n\n this.$select.find(':input').each((_, input) => {\n const $input = $(input);\n if (values.includes($input.val())) {\n $input.prop('checked', true);\n if (this.type === 'radio') {\n $input.addClass('checked');\n }\n }\n });\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.type === 'radio' && typeof this.dynamicTitle !== 'function') {\n const $checkedInput = this.$select.find(':input:checked');\n if ($checkedInput.length) {\n this.$selectTitle.text($checkedInput.parent().find('[data-label]').text());\n }\n }\n }\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.$selectHeader.removeClass('select-placeholder');\n\n if (this.searchApi && this.searchApi.length) {\n this._performInitialSearch();\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.$selectTitle.text(this.dynamicTitle.call(this));\n } else {\n if (\n this.data[this.name].length == 0 &&\n this.dynamicTitle &&\n this.dynamicTitleDefault &&\n this.dynamicTitleDefault !== 0 &&\n this.$selectTitle.text().trim() == 0 &&\n (this.$selectItems.length > 0 || this.searchApi)\n ) {\n this.$selectTitle.text(this.dynamicTitleDefault);\n }\n\n if (this.$selectItems.length == 0 && !this.searchApi && this.dynamicTitle && this.dynamicTitleEmptyDefault && this.dynamicTitleEmptyDefault !== 0) {\n this.$selectHeader.addClass('select-placeholder');\n this.$selectIconContainer.addClass('d-none');\n this.$selectTitle.text(this.dynamicTitleEmptyDefault);\n }\n }\n\n if (this.showSearch) {\n this.$searchContainer = this.$select.find('.select-search');\n this.$searchInput = this.$select.find('[name=\"select-search\"]');\n this.$clearSearchButton = this.$select.find('[data-clear-search]');\n\n this.$searchInput[0].tabIndex = -1;\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 if (this.$closeButton.length) {\n this.$closeButton[0].tabIndex = -1;\n }\n }\n\n this.buildSearchData();\n }\n\n _updateScrollbarVisibility() {\n if (this.scroll && this.$scrollableContent[0]) {\n const element = this.$scrollableContent[0];\n const needsScrollbar = element.scrollHeight > element.clientHeight;\n \n if (needsScrollbar) {\n this.scroll.settings.suppressScrollY = false;\n this.$scrollableContent.addClass('ps-show-rail-y');\n } else {\n this.scroll.settings.suppressScrollY = true;\n this.$scrollableContent.removeClass('ps-show-rail-y');\n }\n this.scroll.update();\n }\n }\n\n _performInitialSearch() {\n if (!this.isSearchApiEnabled()) {\n return Promise.resolve();\n }\n\n this._showSpinner();\n\n return new Promise((resolve, reject) => {\n $.ajax({\n method: 'GET',\n url: this.searchApi,\n timeout: 10000,\n success: (data) => {\n let items = data.filter((item) => {\n return this.itemsToExclude.indexOf(item[this.primaryKeyword].toString()) === -1 && item[this.primaryKeyword] != 0;\n });\n\n if (this.useChips && this.data[this.name].length > 0) {\n this.data[this.name].forEach((dataItem) => {\n const matchingItem = items.find((item) => item[this.primaryKeyword].toString() === dataItem[this.primaryKeyword].toString());\n if (matchingItem) {\n dataItem.label = matchingItem.label || matchingItem.name || matchingItem.value;\n }\n });\n\n this.$selectTitle.empty();\n this.data[this.name].forEach((dataItem) => {\n const $chip = $(`\n <span class=\"chip\" data-value=\"${dataItem[this.primaryKeyword]}\">\n <span class=\"chip-title\">${escape(dataItem.label)}</span>\n </span>\n `);\n\n $chip.on('click', (e) => {\n e.stopPropagation();\n const $input = this.$select.find(`input[value=\"${dataItem[this.primaryKeyword]}\"]`);\n $input.prop('checked', false).trigger('change');\n });\n\n this.$selectTitle.append($chip);\n });\n }\n\n let result = this._renderItemList(items);\n this.$scrollableContent.html(result);\n\n if (this.data[this.name].length > 0) {\n this.data[this.name].forEach((value) => {\n const valueId = this.useChips ? value[this.primaryKeyword].toString() : value.toString();\n const $input = this.$scrollableContent.find(`input[value=\"${valueId}\"]`);\n\n if ($input.length) {\n $input.prop('checked', true);\n if (this.type === 'radio') {\n $input.addClass('checked');\n }\n }\n });\n }\n\n this._updateScrollbarVisibility();\n this._hideSpinner();\n\n if (this.useChips && this.data[this.name].length > 0) {\n this._renderChips();\n }\n\n if (this.contentOpen) {\n this._recalculateContentHeight();\n }\n\n resolve();\n },\n error: (xhr, status, error) => {\n this._hideSpinner();\n console.error('Search API error:', status, error);\n this.$scrollableContent.html('<div class=\"p-3 text-danger\">Error loading items</div>');\n resolve();\n },\n });\n });\n }\n\n buildScroll() {\n if (this.$scrollableContent.length > 0) {\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 const marginTop = parseInt(this.$scrollableContent.css('marginTop'), 10) || 0;\n const marginBottom = parseInt(this.$scrollableContent.css('marginBottom'), 10) || 0;\n const totalMargin = marginTop + marginBottom;\n\n const actualContentHeight = this.$scrollableContent[0].scrollHeight;\n const finalHeight = Math.min(actualContentHeight, scrollContentHeight + totalMargin);\n\n this.$scrollableContent.css({\n 'max-height': finalHeight + 'px'\n });\n\n if (touchEvents()) {\n this.$scrollableContent.css({\n 'overflow-y': 'auto',\n });\n } else {\n if (this.useNativeScroll === false) {\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 setTimeout(() => {\n this._updateScrollbarVisibility();\n }, 0);\n }\n\n this.$scrollableContent.find('[tabindex=\"0\"]').attr('tabindex', -1);\n }\n }\n }\n\n buildSearchData() {\n this.searchData = [];\n\n let selectLabels = this.$select.find('[data-label]');\n\n $.each(selectLabels, (i, el) => {\n this.searchData.push({\n id: i,\n val: $(el).text().trim(),\n });\n });\n }\n\n bindEvents() {\n let self = this;\n\n this.$selectHeader.on('click' + '.' + this.constructor.NAME, () => {\n if (this.contentOpen) {\n this.close();\n } else if (this.$selectItems.length > 0 || this.searchApi) {\n this.show();\n }\n });\n\n this.$el.on('change' + '.' + this.constructor.NAME, 'input[type=\"checkbox\"]', function () {\n let el = this;\n let val = $(this).val();\n let closeTimeout = 600;\n\n self.preventClose = true;\n\n if (typeof self.confirmCheck === 'function' && el.checked) {\n el.checked = false;\n\n self.confirmCheck((cb) => {\n if (cb == 'confirmed') {\n if (self.useChips) {\n const hasItem = self.data[self.name].find((item) => item[self.primaryKeyword] === val);\n\n if (!hasItem) {\n self.data[self.name].push({ [self.primaryKeyword]: val, label: $(el).parent().find('[data-label]').text() });\n }\n } else if (self.data[self.name].indexOf(val) === -1) {\n self.data[self.name].push(val);\n }\n\n el.checked = true;\n self.onSelect(el);\n }\n\n setTimeout(function () {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n } else if (el.checked) {\n if (self.useChips) {\n const hasItem = self.data[self.name].find((item) => item[self.primaryKeyword] === val);\n\n if (!hasItem) {\n self.data[self.name].push({ [self.primaryKeyword]: val, label: $(el).parent().find('[data-label]').text() });\n }\n } else if (self.data[self.name].indexOf(val) === -1) {\n self.data[self.name].push(val);\n }\n\n self.onSelect(el);\n\n setTimeout(function () {\n self.preventClose = false;\n }, closeTimeout);\n } else if (typeof self.confirmUncheck === 'function' && !el.checked) {\n el.checked = true;\n\n self.confirmUncheck((cb) => {\n if (cb == 'confirmed') {\n if (self.useChips) {\n self.data[self.name] = self.data[self.name].filter((n) => n[self.primaryKeyword] != val);\n } else {\n self.data[self.name] = self.data[self.name].filter((n) => n != val);\n }\n\n el.checked = false;\n self.onSelect(el);\n }\n\n setTimeout(function () {\n self.preventClose = false;\n }, closeTimeout);\n }, el);\n } else if (!el.checked && !self.preventUncheck) {\n if (self.useChips) {\n self.data[self.name] = self.data[self.name].filter((n) => n[self.primaryKeyword] != val);\n } else {\n self.data[self.name] = self.data[self.name].filter((n) => n != val);\n }\n\n self.onSelect(el);\n\n setTimeout(function () {\n self.preventClose = false;\n }, closeTimeout);\n } else if (!el.checked && self.preventUncheck) {\n el.checked = true;\n\n setTimeout(function () {\n self.preventClose = false;\n }, closeTimeout);\n }\n });\n\n this.$el.on('change' + '.' + this.constructor.NAME, 'input[type=\"radio\"]', function () {\n let val = $(this).val();\n\n if (this.checked) {\n if (self.useChips) {\n self.data[self.name] = [{ [self.primaryKeyword]: val, label: $(this).parent().find('[data-label]').text() }];\n } else {\n self.data[self.name] = [val];\n }\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 } else {\n self.data[self.name] = [];\n }\n });\n\n this.$el.on('click' + '.' + this.constructor.NAME, 'input[type=\"radio\"]', function () {\n if ($(this).hasClass('checked') && self.allowNoneOnRadioSelect) {\n self.data[self.name] = [];\n $(this).prop('checked', false);\n $(this).removeClass('checked');\n\n if (self.dynamicTitle && typeof self.dynamicTitle !== 'function') {\n self.$selectTitle.text(self.dynamicTitleDefault);\n }\n } else {\n $(this).addClass('checked');\n\n if (self.dynamicTitle && typeof self.dynamicTitle !== 'function') {\n self.$selectTitle.text(escape($(this).parent().find('[data-label]').text()));\n }\n }\n\n if (typeof self.dynamicTitle === 'function') {\n self.$selectTitle.text(self.dynamicTitle.call(this));\n }\n\n self.onSelect(this);\n });\n\n if (this.scroll) {\n this.$scrollableContent.find('.ps__thumb-y').mousedown(function () {\n self.$scrollableContent.addClass('ps-mousedown-scroll');\n });\n\n $(document).mouseup(function () {\n if (self.$scrollableContent.hasClass('ps-mousedown-scroll')) {\n self.$scrollableContent.removeClass('ps-mousedown-scroll');\n }\n });\n }\n\n if (this.showSearch) {\n this.$searchInput.on(\n 'keydown' + '.' + this.constructor.NAME,\n debounce(function () {\n self.searchString = $(this).val().trim();\n self.search.call(self);\n }, 250)\n );\n\n this.$searchInput.on('focusin' + '.' + this.constructor.NAME, function () {\n self.$searchContainer.addClass('focused');\n });\n\n this.$searchInput.on('focusout' + '.' + this.constructor.NAME, function () {\n self.$searchContainer.removeClass('focused');\n });\n\n this.$searchContainer.on('click' + '.' + this.constructor.NAME, '[data-clear-search]', function () {\n if (self.searchString.length) {\n self.$searchInput.val('');\n self.searchString = '';\n self.search.call(self);\n } else {\n return;\n }\n });\n }\n\n if (this.showFooter) {\n this.$closeButton.on('click' + '.' + this.constructor.NAME, () => {\n this.close();\n });\n }\n\n $(document).on('touchstart click', function (e) {\n if (!self.$el.is(e.target) && !self.$el.has(e.target).length && self.contentOpen && !self.preventClose) {\n self.close.call(self);\n }\n });\n\n if (this.opts.position === 'fixed') {\n this._scrollCallback = () => {\n if (!this.$el || !this.$el.hasClass('show')) {\n return;\n }\n\n requestAnimationFrame(() => {\n this.$el.find('.select-content').css({\n top: this.$container.offset().top - $(window).scrollTop(),\n left: this.$container.offset().left - $(window).scrollLeft(),\n width: this.contentWidth ? `var(--cool-select-content-width, ${this.contentWidth}px)` : this.$container.outerWidth()\n });\n });\n };\n\n if (window.ResizeObserver) {\n this._resizeCallback = (entry) => {\n if (!this.$el || !this.$el.hasClass('show')) {\n return;\n }\n\n requestAnimationFrame(() => {\n this.$el.find('.select-content').css({\n top: this.$container.offset().top - $(window).scrollTop(),\n left: this.$container.offset().left - $(window).scrollLeft(),\n width: this.contentWidth ? `var(--cool-select-content-width, ${this.contentWidth}px)` : this.$container.outerWidth()\n });\n });\n };\n \n resizeManager.observe(document.body, this._resizeCallback);\n }\n }\n }\n\n unbindEvents() {\n this.$el.off('.' + this.constructor.NAME);\n $(document).off('touchstart click.' + this.constructor.NAME);\n\n if (this.opts.position === 'fixed') {\n if (this._scrollCallback) {\n scrollManager.remove(`select-${this.name}`);\n this._scrollCallback = null;\n }\n \n if (this._resizeCallback) {\n resizeManager.unobserve(document.body);\n this._resizeCallback = null;\n }\n }\n }\n\n getData(data) {\n if (data) {\n return this.data[data];\n } else {\n return this.data;\n }\n }\n\n setData() {\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-success icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.useChips) {\n this.$selectTitle.empty();\n }\n\n if (this.searchApi.length) {\n let searchUrl = this.searchApi;\n let itemCount = this.data[this.name].length;\n let currentCount = 0;\n\n this.data[self.name].forEach(function (value) {\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((data) => {\n let itemIds = data.map((item) => {\n return item.id.toString();\n });\n\n self.data[self.name] = self.data[self.name].filter(function (value) {\n if (self.useObjects) {\n return itemIds.indexOf(value[self.primaryKeyword].toString()) > -1;\n } else {\n return itemIds.indexOf(value.toString()) > -1;\n }\n });\n\n if (self.data[self.name].length == 0) {\n self.$selectIconContainer.html(self.selectIconDefault);\n }\n\n const items = data.filter(function (item) {\n if (self.useObjects) {\n return self.data[self.name].findIndex((value) => value[self.primaryKeyword] == item.id) > -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n } else {\n return self.data[self.name].indexOf(item.id) > -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n }\n });\n\n let result = self._renderItemList(items);\n\n self.$scrollableContent.append(result);\n\n let $inputs = self.$scrollableContent.find(':input');\n\n self._updateScrollbarVisibility();\n\n if (self.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n self.type = 'checkbox';\n } else if (self.$scrollableContent.find(':input[type=\"radio\"]').length) {\n self.type = 'radio';\n }\n\n if (self.type == 'checkbox') {\n self.data[self.name].forEach(function (value) {\n let valueId = self.useObjects ? value[self.primaryKeyword].toString() : value.toString();\n let $input = $inputs.filter(function () {\n return this.value == valueId;\n });\n\n $input.prop('checked', true);\n\n if (self.useChips) {\n self._renderChips();\n }\n\n self.onSelect($input[0]);\n });\n } else if (self.type == 'radio') {\n const self = this;\n const value = this.data[this.name][0];\n\n let $input = $inputs.filter(function () {\n return this.value == value;\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (self.useChips) {\n self._renderChips();\n } else if (self.dynamicTitle && typeof self.dynamicTitle !== 'function') {\n self.$selectTitle.text($input.parent().find('[data-label]').text());\n }\n\n self.onSelect($input[0]);\n }\n\n if (typeof self.dynamicTitle === 'function') {\n self.$selectTitle.text(self.dynamicTitle.call(this));\n }\n });\n } else {\n let $inputs = this.$scrollableContent.find(':input');\n let inputValues =\n $inputs.length > 0\n ? $inputs\n .map(function () {\n return this.value.toString();\n })\n .get()\n : [];\n\n this.data[this.name] = this.data[this.name].filter(function (value) {\n return inputValues.indexOf(value.toString()) > -1;\n });\n\n if (this.data[this.name].length == 0) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n if (this.$scrollableContent.find(':input[type=\"checkbox\"]').length) {\n this.type = 'checkbox';\n } else if (this.$scrollableContent.find(':input[type=\"radio\"]').length) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n this.data[this.name].forEach(function (value) {\n let $input = $inputs.filter(function () {\n return this.value == value;\n });\n\n $input.prop('checked', true);\n\n if (self.useChips) {\n self._renderChips();\n }\n\n self.onSelect($input[0]);\n });\n } else if (this.type == 'radio') {\n let $input = $inputs.filter(function () {\n return this.value == this.data[this.name][0];\n });\n\n $input.prop('checked', true);\n $input.addClass('checked');\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n this.$selectTitle.text($input.parent().find('[data-label]').text());\n }\n\n this.onSelect($input[0]);\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.$selectTitle.text(this.dynamicTitle.call(this));\n }\n }\n }\n\n _renderChips() {\n this.$selectTitle.empty();\n\n if (this.data[this.name].length === 0) {\n if (this.dynamicTitle && this.dynamicTitleDefault) {\n this.$selectTitle.text(this.dynamicTitleDefault);\n } else {\n this.$selectTitle.text(this.cachedTitle);\n }\n return;\n }\n\n this.data[this.name].forEach((dataItem) => {\n const value = this.useChips ? dataItem[this.primaryKeyword] : dataItem;\n const $input = this.$select ? this.$select.find(`input[value=\"${value}\"]`) : [];\n const label = $input.length ? $input.parent().find('[data-label]').text() : dataItem.label || dataItem.name || dataItem.value || value;\n\n const $chip = $(`\n <span class=\"chip\" data-value=\"${value}\">\n <span class=\"chip-title\">${escape(label)}</span>\n </span>\n `);\n\n $chip.on('click', (e) => {\n e.stopPropagation();\n\n const $input = this.$select.find(`input[value=\"${value}\"]`);\n\n if ($input.length) {\n $input.prop('checked', false).trigger('change');\n } else {\n if (this.useChips) {\n this.data[this.name] = this.data[this.name].filter((item) => item[this.primaryKeyword].toString() !== value.toString());\n } else {\n this.data[this.name] = this.data[this.name].filter((item) => item.toString() !== value.toString());\n }\n\n if (this.searchApi.length) {\n this.items = this.items.filter((item) => item[this.primaryKeyword].toString() !== value.toString());\n }\n\n this._renderChips();\n\n if (typeof this.opts.onSelect === 'function') {\n this.opts.onSelect.call(this, dataItem, this, false);\n }\n }\n });\n\n this.$selectTitle.append($chip);\n });\n\n if (this.contentOpen) {\n setTimeout(() => {\n this._updateScrollbarVisibility();\n }, 0);\n }\n }\n\n search() {\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.searchString.length) {\n if (this.isSearchApiEnabled()) {\n if (this.searchString === this.lastSearchQuery) {\n return;\n }\n\n this.lastSearchQuery = this.searchString;\n this._showSpinner();\n\n if (this.searchRequest !== null) {\n this.searchRequest.abort();\n }\n\n clearTimeout(this._searchDebounceTimer);\n this._searchDebounceTimer = setTimeout(() => {\n this.searchRequest = $.ajax({\n method: 'GET',\n url: this.searchApi + this.searchString,\n }).done(function (data) {\n self.searchRequest = null;\n\n self.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n\n const items = data.filter(function (item) {\n if (self.useObjects) {\n return self.data[self.name].findIndex((value) => value[self.primaryKeyword] == item.id) === -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n } else {\n return self.data[self.name].indexOf(item.id) === -1 && self.itemsToExclude.indexOf(item.id) === -1 && item.id != 0;\n }\n });\n\n let result = self._renderItemList(items);\n\n self.$scrollableContent.append(result);\n\n self.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n self.$searchIconContainer.attr('data-clear-search', 'true');\n\n self._updateScrollbarVisibility();\n \n if (self.contentOpen) {\n self._recalculateContentHeight();\n }\n });\n }, 300);\n } else {\n const searchStringLower = this.searchString.toLowerCase();\n let results = this.searchData.filter(function (item) {\n return item.val.toLowerCase().indexOf(searchStringLower) > -1;\n });\n\n this.$selectItems.removeClass('d-none');\n this.$selectItems.removeClass('visible');\n\n results.forEach(function (item) {\n $(self.$selectItems[item.id]).addClass('visible');\n });\n\n this.$selectItems.not('.visible').addClass('d-none');\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-times icon\"></i>`);\n this.$searchIconContainer.attr('data-clear-search', 'true');\n }\n } else {\n this.lastSearchQuery = '';\n if (this.isSearchApiEnabled()) {\n this.$scrollableContent.find('input:not(:checked)').parents('.select-item').not('.static-item').remove();\n this._hideSpinner();\n this.$searchIconContainer.attr('data-clear-search', '');\n this._performInitialSearch();\n } else {\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 _recalculateContentHeight() {\n const $selectContent = this.$el.find('.select-content');\n const headerHeight = this.$selectHeader.outerHeight(true);\n const contentHeight = this.scrollContentHeight;\n const viewportHeight = $(window).height();\n const scrollTop = $(window).scrollTop();\n const minSpaceRequired = 50;\n\n let actualContentHeight = contentHeight;\n let searchHeight = 0;\n let footerHeight = 0;\n \n if (this.$searchContainer && this.$searchContainer.length) {\n searchHeight = this.$searchContainer.outerHeight(true) || 0;\n }\n \n if (this.$footerContainer && this.$footerContainer.length) {\n footerHeight = this.$footerContainer.outerHeight(true) || 0;\n }\n \n if (this.$scrollableContent && this.$scrollableContent.length) {\n const scrollableHeight = this.$scrollableContent[0].scrollHeight;\n const scrollableClientHeight = this.$scrollableContent[0].clientHeight;\n \n actualContentHeight = Math.min(Math.max(scrollableHeight, scrollableClientHeight) + searchHeight + footerHeight, contentHeight);\n }\n\n let shouldOpenUpwards = this.$el.hasClass('select-dropup');\n let selectTop = 0;\n let constrainedHeight = actualContentHeight;\n\n const contentMarginBottom = parseInt($selectContent.css('margin-bottom') || 0, 10);\n const contentMarginTop = parseInt($selectContent.css('margin-top') || 0, 10);\n\n if (this.opts.position === 'fixed') {\n const top = this.$container.offset().top - $(window).scrollTop();\n const spaceBelow = viewportHeight - top - headerHeight - minSpaceRequired;\n const spaceAbove = top - minSpaceRequired;\n \n if (shouldOpenUpwards) {\n constrainedHeight = Math.min(actualContentHeight, spaceAbove);\n selectTop = top - constrainedHeight - contentMarginBottom;\n } else {\n constrainedHeight = Math.min(actualContentHeight, spaceBelow);\n selectTop = top + headerHeight + contentMarginTop;\n }\n } else {\n const containerOffset = this.$container.offset();\n const spaceBelow = viewportHeight - (containerOffset.top - scrollTop) - headerHeight - minSpaceRequired;\n const spaceAbove = containerOffset.top - scrollTop - minSpaceRequired;\n \n if (shouldOpenUpwards) {\n constrainedHeight = Math.min(actualContentHeight, spaceAbove);\n selectTop = -constrainedHeight - contentMarginBottom;\n } else {\n constrainedHeight = Math.min(actualContentHeight, spaceBelow);\n selectTop = headerHeight + contentMarginTop;\n }\n }\n\n const scrollableMaxHeight = constrainedHeight - searchHeight - footerHeight;\n\n $selectContent.css({\n 'height': constrainedHeight + 'px'\n });\n\n if (this.$scrollableContent && this.$scrollableContent.length) {\n this.$scrollableContent.css({\n 'max-height': scrollableMaxHeight + 'px'\n });\n }\n\n if (this.opts.position === 'fixed') {\n $selectContent.css({\n top: selectTop\n });\n } else {\n $selectContent.css({\n top: selectTop\n });\n }\n\n if (this.scroll) {\n setTimeout(() => {\n this._updateScrollbarVisibility();\n }, 0);\n }\n }\n\n show() {\n if (this.$el.hasClass('show')) {\n return;\n }\n\n let top = 0;\n let left = 0;\n\n if (this.opts.position === 'fixed') {\n top = this.$container.offset().top - $(window).scrollTop();\n left = this.$container.offset().left - $(window).scrollLeft();\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.addClass('show');\n\n if (!$otherSelects.length) {\n zindex = parseInt(this.$el.css('z-index'), 10) + 1;\n }\n\n const $selectContent = this.$el.find('.select-content');\n const headerHeight = this.$selectHeader.outerHeight(true);\n const contentHeight = this.scrollContentHeight;\n const viewportHeight = $(window).height();\n const scrollTop = $(window).scrollTop();\n const minSpaceRequired = 50;\n\n let actualContentHeight = contentHeight;\n let searchHeight = 0;\n let footerHeight = 0;\n \n if (this.$searchContainer && this.$searchContainer.length) {\n searchHeight = this.$searchContainer.outerHeight(true) || 0;\n }\n \n if (this.$footerContainer && this.$footerContainer.length) {\n footerHeight = this.$footerContainer.outerHeight(true) || 0;\n }\n \n if (this.$scrollableContent && this.$scrollableContent.length) {\n const scrollableHeight = this.$scrollableContent[0].scrollHeight;\n const scrollableClientHeight = this.$scrollableContent[0].clientHeight;\n \n actualContentHeight = Math.min(Math.max(scrollableHeight, scrollableClientHeight) + searchHeight + footerHeight, contentHeight);\n }\n\n let shouldOpenUpwards = false;\n let selectTop = 0;\n let constrainedHeight = actualContentHeight;\n\n const contentMarginBottom = parseInt($selectContent.css('margin-bottom') || 0, 10);\n const contentMarginTop = parseInt($selectContent.css('margin-top') || 0, 10);\n\n if (this.opts.position === 'fixed') {\n const spaceBelow = viewportHeight - top - headerHeight - minSpaceRequired;\n const spaceAbove = top - minSpaceRequired;\n \n shouldOpenUpwards = spaceBelow < actualContentHeight && spaceAbove > spaceBelow;\n \n if (shouldOpenUpwards) {\n constrainedHeight = Math.min(actualContentHeight, spaceAbove);\n selectTop = top - constrainedHeight - contentMarginBottom;\n } else {\n constrainedHeight = Math.min(actualContentHeight, spaceBelow);\n selectTop = top + headerHeight + contentMarginTop;\n }\n } else {\n const containerOffset = this.$container.offset();\n const spaceBelow = viewportHeight - (containerOffset.top - scrollTop) - headerHeight - minSpaceRequired;\n const spaceAbove = containerOffset.top - scrollTop - minSpaceRequired;\n \n shouldOpenUpwards = spaceBelow < actualContentHeight && spaceAbove > spaceBelow;\n \n if (shouldOpenUpwards) {\n constrainedHeight = Math.min(actualContentHeight, spaceAbove);\n selectTop = -constrainedHeight - contentMarginBottom;\n } else {\n constrainedHeight = Math.min(actualContentHeight, spaceBelow);\n selectTop = headerHeight + contentMarginTop;\n }\n }\n\n const scrollableMaxHeight = constrainedHeight - searchHeight - footerHeight;\n\n $selectContent.css({\n 'height': constrainedHeight + 'px'\n });\n\n if (this.$scrollableContent && this.$scrollableContent.length) {\n this.$scrollableContent.css({\n 'max-height': scrollableMaxHeight + 'px'\n });\n }\n\n this.$el.toggleClass('select-dropup', shouldOpenUpwards);\n this.$el.toggleClass('select-dropdown', !shouldOpenUpwards);\n\n const contentRequiredWidth = $selectContent.outerWidth();\n\n $selectContent.css({\n 'z-index': zindex,\n position: this.opts.position === 'fixed' ? 'fixed' : 'absolute'\n });\n\n if (this.opts.position === 'fixed') {\n $selectContent.css({\n top: selectTop,\n left,\n width: this.contentWidth ? `var(--cool-select-content-width, ${this.contentWidth}px)` : this.$container.outerWidth()\n });\n } else {\n $selectContent.css({\n top: selectTop,\n width: this.contentWidth ? `var(--cool-select-content-width, ${this.contentWidth}px)` : contentRequiredWidth > this.$container.outerWidth() ? `var(--cool-select-content-width, auto)` : this.$container.outerWidth()\n });\n }\n\n $selectContent.css({\n 'min-width': this.$container.outerWidth()\n });\n\n if (this.$scrollableContent.length) {\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 if (shouldOpenUpwards) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-down icon\"></i>`);\n } else {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-angle-up icon\"></i>`);\n }\n\n setTimeout(() => {\n this.$el[0].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n\n if (this.scroll) {\n this._updateScrollbarVisibility();\n }\n }, 300);\n\n this.contentOpen = true;\n\n if (this.opts.position === 'fixed' && this._scrollCallback) {\n scrollManager.add(`select-${this.name}`, this._scrollCallback);\n }\n\n this.onShow();\n }\n\n close() {\n if (!this.preventClose) {\n let self = this;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.$el.removeClass('show');\n this.$el.removeClass('select-dropup select-dropdown');\n\n setTimeout(() => {\n self.$el.removeAttr('style');\n }, 300);\n\n if (this.data[this.name].length > 0 && this.showValidStateIcon) {\n this.$selectIconContainer.html(`<i class=\"${faNameSpace} fa-check text-success icon\"></i>`);\n } else {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n this.contentOpen = false;\n\n if (this.opts.position === 'fixed' && this._scrollCallback) {\n scrollManager.remove(`select-${this.name}`);\n }\n\n this.onClose();\n }\n }\n\n onSelect(el) {\n const data = $(el).parents('.select-item').data();\n const val = $(el).val();\n\n if (this.searchApi.length && !$.isEmptyObject(data)) {\n if ($(el).length && el.checked) {\n this.items.push(data);\n\n if (this.useChips) {\n const hasItem = this.data[this.name].find((item) => {\n return item[this.primaryKeyword].toString() === val.toString();\n });\n\n if (!hasItem) {\n this.data[this.name].push({\n [this.primaryKeyword]: val,\n label: $(el).parent().find('[data-label]').text(),\n });\n }\n } else if (this.data[this.name].indexOf(val) === -1) {\n this.data[this.name].push(val);\n }\n } else {\n this.items = $.grep(this.items, (item) => {\n return item[this.primaryKeyword].toString() !== val.toString();\n });\n\n if (this.useChips) {\n this.data[this.name] = this.data[this.name].filter((item) => item[this.primaryKeyword].toString() !== val.toString());\n } else {\n this.data[this.name] = this.data[this.name].filter((id) => id.toString() !== val.toString());\n }\n }\n }\n\n if (this.useChips) {\n this._renderChips();\n }\n\n if (typeof this.opts.onSelect === 'function') {\n this.opts.onSelect.call(el, data, this, el.checked);\n }\n }\n\n getItem(key, val) {\n let result = $.grep(this.items, function (item) {\n return item[key] == val;\n })[0];\n\n return result ? result : null;\n }\n\n getSelectedItems(segment) {\n let ids = [];\n let result = [];\n let data = this.data[this.name];\n\n if (!$.isArray(data)) {\n ids.push(data);\n } else {\n ids = data;\n }\n\n if (!this.useChips) {\n ids = ids.map(String);\n } else {\n ids = ids.map((obj) => obj[this.primaryKeyword].toString());\n }\n\n if (this.items.length > 0) {\n result = $.grep(this.items, function (item) {\n return ids.indexOf(item.id.toString()) > -1;\n });\n\n if (segment) {\n result = result\n .map((obj) => {\n return obj[segment];\n })\n .filter((obj) => {\n return obj != null;\n });\n }\n } else {\n result = ids;\n }\n\n return result;\n }\n\n getSelectedItem(segment) {\n return this.getSelectedItems(segment)[0];\n }\n\n _renderItemList(items) {\n if (!items || !items.length) return [];\n\n const checkedItems = this.data[this.name].map((item) => (this.useChips ? item[this.primaryKeyword].toString() : item.toString()));\n\n const fragment = document.createDocumentFragment();\n const resultItems = [];\n\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let label = '';\n\n if (typeof this.labelTemplate === 'function') {\n label = this.labelTemplate(item);\n } else {\n if (item.name) {\n label = item.name;\n } else if (item.label) {\n label = item.label;\n } else if (item.value) {\n label = item.value;\n }\n }\n\n const id = this.useChips ? item[this.primaryKeyword] : item.id;\n const isChecked = checkedItems.indexOf(id.toString()) > -1;\n const $item = $(this._getItemTemplate(item, i, label, isChecked)).data(item);\n resultItems.push($item);\n }\n\n return resultItems;\n }\n\n _getItemTemplate(item, index, label, isChecked) {\n return `\n <div class=\"select-item\">\n <div class=\"select-item-${this.type}\">\n <div class=\"form-check\">\n <input type=\"${this.type}\"\n id=\"select-${this.name}-${item.id}\"\n value=\"${item.id}\"\n tabindex=\"-1\"\n ${isChecked ? 'checked' : ''}>\n <label for=\"select-${this.name}-${item.id}\">\n <span class=\"form-check-icon\">\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 <span class=\"form-check-label\"${typeof this.labelTemplate !== 'function' ? ' data-label' : ''}>\n ${typeof this.labelTemplate !== 'function' ? escape(label) : label}\n </span>\n </label>\n </div>\n </div>\n </div>`;\n }\n\n _renderSearch() {\n if (!this.showSearch) {\n return '';\n } else {\n const faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n return `\n\n <div class=\"select-search\">\n\n <div class=\"select-search-input\">\n\n <input type=\"text\" name=\"select-search\" value=\"\" placeholder=\"${this.searchPlaceholder}\" tabindex=\"-1\">\n\n </div>\n\n <div class=\"select-search-icon\">\n\n <i class=\"${faNameSpace} fa-search icon\"></i>\n\n </div>\n\n </div>\n\n `;\n }\n }\n\n _renderFooter() {\n if (!this.showFooter) {\n return '';\n } else {\n return `\n\n <div class=\"select-footer\">\n\n <button class=\"btn btn-block btn-light btn-sm\" type=\"button\" tabindex=\"-1\" data-select-close >\n ${this.btnCloseText}\n </button>\n\n </div>\n\n `;\n }\n }\n\n isSearchApiEnabled() {\n return this.searchApi && this.searchApi.length;\n }\n\n _showSpinner() {\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-spinner-third fa-spin icon\"></i>`);\n }\n\n _hideSpinner() {\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n this.$searchIconContainer.html(`<i class=\"${faNameSpace} fa-search icon\"></i>`);\n }\n\n selectItem(id) {\n const $input = this.$select.find(`:input[value=\"${id}\"]`);\n\n if ($input.length) {\n if (this.type === 'radio') {\n this.$select.find('input[type=\"radio\"]').prop('checked', false).removeClass('checked');\n if (this.useChips) {\n const label = $input.parent().find('[data-label]').text();\n this.data[this.name] = [\n {\n [this.primaryKeyword]: id,\n label: label,\n },\n ];\n } else {\n this.data[this.name] = [id];\n }\n } else {\n if (this.useChips) {\n const hasItem = this.data[this.name].find((item) => item[this.primaryKeyword].toString() === id.toString());\n if (!hasItem) {\n const label = $input.parent().find('[data-label]').text();\n this.data[this.name].push({\n [this.primaryKeyword]: id,\n label: label,\n });\n }\n } else if (this.data[this.name].indexOf(id) === -1) {\n this.data[this.name].push(id);\n }\n }\n\n $input.prop('checked', true).addClass('checked').trigger('change');\n\n return true;\n }\n\n return false;\n }\n\n clear() {\n const $checkedInputs = this.$select.find(':input:checked');\n\n this.$select.find(':input').prop('checked', false).removeClass('checked');\n this.data[this.name] = [];\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n this.$selectTitle.text(this.dynamicTitleDefault || this.cachedTitle);\n }\n\n if (this.showValidStateIcon) {\n this.$selectIconContainer.html(this.selectIconDefault);\n }\n\n $checkedInputs.each((_, input) => {\n const $input = $(input);\n const data = $input.parents('.select-item').data();\n if (typeof this.opts.onSelect === 'function') {\n this.opts.onSelect.call(input, data, this, false);\n }\n });\n }\n}\n\nSelect._jQueryInit();\n\nexport default Select;","import Component from './component';\nimport { touchEvents, generateUUID, playAnimation, resizeManager, scrollManager } from './utils';\nimport PerfectScrollbar from 'perfect-scrollbar';\n\nif (typeof window !== 'undefined' && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nclass Dropdown extends Component {\n\n static NAME = 'coolDropdown';\n\n static DEFAULTS = {\n animation: true,\n animationIn: 'zoomIn',\n animationOut: 'zoomOut',\n animationSpeed: 'fastest',\n offset: null,\n minWidth: null,\n closeOnItemClick: true,\n positionObserver: true,\n content: false,\n scroll: true,\n scrollContentHeight: 100,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n onItemClick: null,\n position: 'absolute',\n placement: 'bottom',\n align: 'start'\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${Dropdown.NAME}`);\n if (!instance) {\n instance = new Dropdown(this, typeof config === 'object' && config);\n $el.data(`plugin_${Dropdown.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Dropdown.NAME];\n $.fn[Dropdown.NAME] = Dropdown._jQueryInterface;\n $.fn[Dropdown.NAME].Constructor = Dropdown;\n $.fn[Dropdown.NAME].defaults = Dropdown.DEFAULTS || {};\n $.fn[Dropdown.NAME].noConflict = () => {\n $.fn[Dropdown.NAME] = previousName;\n return Dropdown._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.dropdown) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.dropdown, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n this._resizeCallback = null;\n this._scrollCallback = null;\n\n this.init();\n }\n\n setupResizeHandling() {\n if (window.ResizeObserver) {\n this._resizeCallback = (entry) => {\n if (!this.contentOpen) return;\n \n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n this.setPosition();\n this.onUpdate();\n });\n };\n \n resizeManager.observe(this.$el[0], this._resizeCallback);\n resizeManager.observe(document.body, this._resizeCallback);\n \n if (this.$container.length) {\n resizeManager.observe(this.$container[0], this._resizeCallback);\n }\n \n } else {\n let resizeTimeout;\n this.resizeHandler = () => {\n if (!this.contentOpen) return;\n\n clearTimeout(resizeTimeout);\n \n const now = performance.now();\n if (!this.lastResizeTime || now - this.lastResizeTime > 100) {\n this.setPosition();\n this.onUpdate();\n this.lastResizeTime = now;\n } else {\n resizeTimeout = setTimeout(() => {\n this.setPosition();\n this.onUpdate();\n }, 16);\n }\n };\n \n window.addEventListener('resize', this.resizeHandler, { passive: true });\n }\n }\n\n setupScrollHandling() {\n if (this.position === 'fixed') {\n this._scrollCallback = () => {\n if (!this.contentOpen || !this.$dropdown.hasClass('show')) return;\n \n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n this.setPosition();\n this.onUpdate();\n });\n };\n \n scrollManager.add(`dropdown-${this.id}`, this._scrollCallback);\n \n let $scrollableParent = this.$el.parent();\n this.scrollableParents = [];\n\n while ($scrollableParent.length && $scrollableParent[0] !== document.body) {\n const overflow = $scrollableParent.css('overflow-y');\n if (overflow === 'scroll' || overflow === 'auto') {\n const scrollHandler = () => this._scrollCallback();\n $scrollableParent[0].addEventListener('scroll', scrollHandler, { passive: true });\n this.scrollableParents.push({ element: $scrollableParent[0], handler: scrollHandler });\n }\n $scrollableParent = $scrollableParent.parent();\n }\n }\n }\n\n setupVisibilityDetection() {\n if (!window.IntersectionObserver) return;\n \n this.intersectionObserver = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (!entry.isIntersecting && this.contentOpen) {\n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n }\n \n this.rafId = requestAnimationFrame(() => {\n this.setPosition();\n });\n }\n });\n }, {\n threshold: 0.1,\n rootMargin: '50px'\n });\n \n this.intersectionObserver.observe(this.$el[0]);\n }\n\n init() {\n this.buildCache().then(() => {\n this.buildScroll();\n this.setupVisibilityDetection();\n this.bindEvents();\n this.onInit();\n }).catch(() => {\n console.error('Failed to build Dropdown');\n });\n }\n\n destroy() {\n this.unbindEvents();\n\n if (this.scroll && typeof this.scroll.destroy === 'function') {\n this.scroll.destroy();\n this.scroll = null;\n }\n\n if (this.$dropdown) {\n this.$dropdown.remove();\n }\n\n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n const hasDarkMode = this.$scrollableContent && this.$scrollableContent.hasClass('ps-dark');\n\n if (this.scroll && typeof this.scroll.destroy === 'function') {\n this.scroll.destroy();\n this.scroll = null;\n }\n\n this.unbindEvents();\n this.buildCache().then(() => {\n if (hasDarkMode && this.$scrollableContent) {\n this.$scrollableContent.addClass('ps-dark');\n }\n this.buildScroll();\n this.setupVisibilityDetection();\n this.bindEvents();\n this.onUpdate();\n }).catch(() => {\n console.error('Failed to build Dropdown');\n });\n }\n\n buildCache() {\n return new Promise((resolve, reject) => {\n this.$el = $(this.el);\n this.$el.addClass('dropdown-trigger');\n this.$container = this.$el.parent('.dropdown').length ? this.$el.parent('.dropdown') : this.$el.parentsUntil('.dropdown').parent();\n \n if (!this.$container.length) {\n this.$container = this.$el.parent();\n }\n\n this.id = 'dropdown-' + 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.position = this.$el.data('position') ? this.$el.data('position') : this.opts.position;\n this.placement = this.$el.data('placement') ? this.$el.data('placement') : this.opts.placement;\n this.offset = this.$el.data('offset') ? this.$el.data('offset') : this.opts.offset;\n this.minWidth = this.$el.data('minWidth') ? this.$el.data('minWidth') : this.opts.minWidth;\n this.scroll = this.$el.data('scroll') ? this.$el.data('scroll') : this.opts.scroll;\n this.scrollContentHeight = this.$el.data('scrollContentHeight') ? this.$el.data('scrollContentHeight') : this.opts.scrollContentHeight;\n this.positionObserver = this.$el.attr('data-position-observer') ? JSON.parse(this.$el.attr('data-position-observer')) : this.opts.positionObserver;\n this.closeOnItemClick = this.$el.data('closeOnItemClick') ? this.$el.data('closeOnItemClick') : this.opts.closeOnItemClick;\n this.preventClose = this.$el.data('preventClose') ? this.$el.data('preventClose') : false;\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 if (this.$container.hasClass('dropleft')) {\n this.placement = 'left';\n }\n \n const $existingMenu = this.$container.find('.dropdown-menu').first();\n\n if (this.position === 'fixed' && $existingMenu.length) {\n this.$dropdown = $existingMenu.clone(true, true);\n this.$dropdown.attr('id', this.id); \n this.$dropdown.removeClass('show');\n\n this.align = $existingMenu.hasClass('dropdown-menu-right') ? 'end' : 'start';\n \n $('body').append(this.$dropdown);\n \n $existingMenu.remove();\n\n this.$dropdown.find('.dropdown').each((index, nestedContainer) => {\n const $nestedContainer = $(nestedContainer);\n const $nestedTrigger = $nestedContainer.find('[data-toggle=\"dropdown\"]').first();\n const $nestedMenu = $nestedContainer.find('.dropdown-menu').first();\n \n if ($nestedTrigger.length && $nestedMenu.length && !$nestedTrigger.data(`plugin_${this.constructor.NAME}`)) {\n $nestedTrigger[this.constructor.NAME]({\n position: 'absolute',\n closeOnItemClick: false,\n positionObserver: true,\n onShow: function() {\n const parentZIndex = parseInt(this.$dropdown.css('z-index') || 9999, 10);\n $nestedMenu.css('z-index', parentZIndex + 1);\n }.bind(this)\n });\n }\n });\n \n const dropdownEl = this.$dropdown[0];\n \n this.$dropdownItems = this.$dropdown.find('a, button, .dropdown-item').filter(function() {\n return $(this).closest('.dropdown-menu')[0] === dropdownEl;\n });\n\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content');\n \n this.$dropdown.css({\n 'min-width': this.minWidth ? this.minWidth + 'px' : ''\n });\n\n return resolve();\n \n } else if (typeof this.content === 'function') {\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 const positionTypes = {\n fixed: () => $('body').append(this.$dropdown),\n absolute: () => this.$el.after(this.$dropdown)\n };\n\n $.when(positionTypes[this.position]()).then(() => {\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content') ? this.$dropdown.find('.dropdown-scrollable-content').first() : false;\n this.$dropdown.hasClass('dropdown-menu-right') ? (this.align = 'end') : (this.align = 'start');\n\n const dropdownEl = this.$dropdown[0];\n \n this.$dropdownItems = this.$dropdown.find('a, button, .dropdown-item').filter(function() {\n return $(this).closest('.dropdown-menu')[0] === dropdownEl;\n });\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth + 'px');\n }\n\n return resolve();\n });\n \n } else {\n this.$dropdown = this.$container.find('.dropdown-menu').length ? this.$container.find('.dropdown-menu').first() : false;\n\n if (!this.$dropdown.length) return reject();\n\n this.$dropdown.hasClass('dropdown-menu-right') ? (this.align = 'end') : (this.align = 'start');\n this.$scrollableContent = this.$dropdown.find('.dropdown-scrollable-content').length ? this.$dropdown.find('.dropdown-scrollable-content').first() : false;\n\n const dropdownEl = this.$dropdown[0];\n\n this.$dropdownItems = this.$dropdown.find('a, button, .dropdown-item').filter(function() {\n return $(this).closest('.dropdown-menu')[0] === dropdownEl;\n });\n\n if (this.minWidth) {\n this.$dropdown.css('min-width', this.minWidth + 'px');\n }\n\n return resolve();\n }\n });\n }\n\n buildScroll() {\n if (this.opts.scroll && this.$scrollableContent.length) {\n this.$scrollableContent.css({\n 'max-height': this.scrollContentHeight + 'px'\n });\n\n if (touchEvents()) {\n this.$scrollableContent.css({\n 'overflow-y': 'auto',\n });\n } else {\n this.scroll = new PerfectScrollbar(this.$scrollableContent[0], {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20,\n suppressScrollX: true,\n scrollYMarginOffset: 2\n });\n }\n }\n }\n\n bindEvents() {\n let self = this;\n\n this.$el.on('click' + '.' + this.constructor.NAME, () => {\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n });\n\n if (this.position === 'fixed') {\n this.$dropdown.on('click' + '.' + this.constructor.NAME, 'a, button, .dropdown-item', function(e) {\n const $target = $(this);\n \n if ($target.closest('.dropdown-menu')[0] !== self.$dropdown[0]) {\n return;\n }\n \n if (!$target.hasClass('dropdown-trigger') && !$target.data('toggle')) {\n if (self.closeOnItemClick) {\n self.close();\n }\n \n self.onItemClick(this, e);\n }\n });\n } else {\n this.$dropdownItems.on('click' + '.' + this.constructor.NAME, function (e) {\n const $target = $(this);\n \n if (!$target.hasClass('dropdown-trigger') && !$target.data('toggle')) {\n if (self.closeOnItemClick) {\n self.close();\n }\n \n self.onItemClick(this, e);\n }\n });\n }\n\n this._documentClickHandler = (e) => {\n if (!this.contentOpen) return;\n \n const isClickInThisDropdown = this.$el.is(e.target) || \n this.$el.has(e.target).length > 0 ||\n this.$dropdown.is(e.target) || \n this.$dropdown.has(e.target).length > 0;\n\n const isNestedDropdownTrigger = this.$dropdown.find(e.target).closest('[data-toggle=\"dropdown\"]').length > 0;\n\n if (!isClickInThisDropdown && !isNestedDropdownTrigger) {\n this.close();\n }\n };\n\n document.addEventListener('click', this._documentClickHandler, { passive: true });\n document.addEventListener('touchstart', this._documentClickHandler, { passive: true });\n\n this.setupResizeHandling();\n this.setupScrollHandling();\n }\n\n unbindEvents() {\n this.$el.off('.' + this.constructor.NAME);\n\n if (this.$dropdown) {\n this.$dropdown.off('.' + this.constructor.NAME);\n }\n\n if (this.$dropdownItems && this.position !== 'fixed') {\n this.$dropdownItems.off('.' + this.constructor.NAME);\n }\n \n if (this._resizeCallback) {\n resizeManager.unobserve(this.$el[0]);\n resizeManager.unobserve(document.body);\n if (this.$container.length) {\n resizeManager.unobserve(this.$container[0]);\n }\n this._resizeCallback = null;\n }\n \n if (this.rafId) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n \n if (this._scrollCallback) {\n scrollManager.remove(`dropdown-${this.id}`);\n this._scrollCallback = null;\n }\n\n if (this.scrollableParents) {\n this.scrollableParents.forEach(({ element, handler }) => {\n element.removeEventListener('scroll', handler);\n });\n this.scrollableParents = [];\n }\n \n if (this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n }\n\n if (this._documentClickHandler) {\n document.removeEventListener('click', this._documentClickHandler);\n document.removeEventListener('touchstart', this._documentClickHandler);\n this._documentClickHandler = null;\n }\n }\n\n setPosition(placement) {\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n const triggerRect = this.$el[0].getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\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 \n let dropdownTriggerPosX, dropdownTriggerPosY;\n\n if (this.position === 'fixed') {\n const triggerOffset = this.$el.offset();\n dropdownTriggerPosX = triggerOffset.left;\n dropdownTriggerPosY = triggerOffset.top;\n } else {\n const $offsetParent = this.$dropdown.offsetParent();\n const parentOffset = $offsetParent.offset() || { left: 0, top: 0 };\n const triggerOffset = this.$el.offset();\n\n dropdownTriggerPosX = triggerOffset.left - parentOffset.left;\n dropdownTriggerPosY = triggerOffset.top - parentOffset.top;\n }\n\n let dropdownPosX = 0;\n let dropdownPosY = 0;\n let offsetX = 0;\n let offsetY = 0;\n\n if (this.offset) {\n const offsets = this.offset.split(',');\n offsetX = parseInt(offsets[0], 10) || 0;\n offsetY = parseInt(offsets[1], 10) || 0;\n }\n\n const spacing = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--cool-dropdown-spacer')) || 2;\n\n const calculatePosition = (currentPlacement, currentAlign = this.align) => {\n let x = 0, y = 0;\n \n switch (currentPlacement) {\n case 'top':\n x = currentAlign === 'end' \n ? dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth \n : dropdownTriggerPosX;\n y = dropdownTriggerPosY - dropdownHeight - spacing;\n break;\n case 'bottom':\n x = currentAlign === 'end' \n ? dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth \n : dropdownTriggerPosX;\n y = dropdownTriggerPosY + dropdownTriggerHeight + spacing;\n break;\n case 'left':\n x = dropdownTriggerPosX - dropdownWidth - spacing;\n y = dropdownTriggerPosY;\n break;\n case 'right':\n x = dropdownTriggerPosX + dropdownTriggerWidth + spacing;\n y = dropdownTriggerPosY;\n break;\n }\n \n return { x: x + offsetX, y: y + offsetY };\n };\n\n let finalPlacement = placement;\n let finalAlign = this.align;\n let position = calculatePosition(placement);\n \n if (this.positionObserver) {\n const margin = 5;\n \n const checkCollision = (pos, pl, al = this.align) => {\n const collision = {\n top: false,\n bottom: false,\n left: false,\n right: false\n };\n \n if (this.position === 'fixed') {\n collision.top = pos.y < margin;\n collision.bottom = pos.y + dropdownHeight > viewportHeight - margin;\n collision.left = pos.x < margin;\n collision.right = pos.x + dropdownWidth > viewportWidth - margin;\n } else {\n const dropdownLeft = this.position === 'fixed' ? pos.x : triggerRect.left + (pos.x - dropdownTriggerPosX);\n const dropdownTop = this.position === 'fixed' ? pos.y : triggerRect.top + (pos.y - dropdownTriggerPosY);\n const dropdownRight = dropdownLeft + dropdownWidth;\n const dropdownBottom = dropdownTop + dropdownHeight;\n \n collision.top = dropdownTop < margin;\n collision.bottom = dropdownBottom > viewportHeight - margin;\n collision.left = dropdownLeft < margin;\n collision.right = dropdownRight > viewportWidth - margin;\n }\n \n return collision;\n };\n \n const collision = checkCollision(position, placement, this.align);\n\n if (placement === 'bottom' && collision.bottom && !collision.top) {\n finalPlacement = 'top';\n position = calculatePosition('top', finalAlign);\n } else if (placement === 'top' && collision.top && !collision.bottom) {\n finalPlacement = 'bottom';\n position = calculatePosition('bottom', finalAlign);\n } else if (placement === 'right' && collision.right && !collision.left) {\n finalPlacement = 'left';\n position = calculatePosition('left', finalAlign);\n } else if (placement === 'left' && collision.left && !collision.right) {\n finalPlacement = 'right';\n position = calculatePosition('right', finalAlign);\n }\n\n const newCollision = checkCollision(position, finalPlacement, finalAlign);\n\n if ((finalPlacement === 'top' || finalPlacement === 'bottom')) {\n if (finalAlign === 'end' && newCollision.left && !newCollision.right) {\n finalAlign = 'start';\n position = calculatePosition(finalPlacement, finalAlign);\n } else if (finalAlign === 'start' && newCollision.right && !newCollision.left) {\n finalAlign = 'end';\n position = calculatePosition(finalPlacement, finalAlign);\n }\n }\n \n this.$container.removeClass('dropup dropbottom dropleft dropright');\n\n if (finalPlacement === 'top') {\n this.$container.addClass('dropup');\n } else if (finalPlacement === 'left') {\n this.$container.addClass('dropleft');\n } else if (finalPlacement === 'right') {\n this.$container.addClass('dropright');\n } else {\n this.$container.addClass('dropbottom');\n }\n\n this.$dropdown.attr('x-placement', finalPlacement + '-' + finalAlign);\n \n if (this.position === 'fixed') {\n position.x = Math.max(margin, Math.min(position.x, viewportWidth - dropdownWidth - margin));\n position.y = Math.max(margin, Math.min(position.y, viewportHeight - dropdownHeight - margin));\n } else {\n const dropdownScreenLeft = triggerRect.left + (position.x - dropdownTriggerPosX);\n const dropdownScreenTop = triggerRect.top + (position.y - dropdownTriggerPosY);\n \n if (dropdownScreenLeft < margin) {\n position.x += (margin - dropdownScreenLeft);\n } else if (dropdownScreenLeft + dropdownWidth > viewportWidth - margin) {\n position.x -= (dropdownScreenLeft + dropdownWidth - viewportWidth + margin);\n }\n \n if (dropdownScreenTop < margin) {\n position.y += (margin - dropdownScreenTop);\n } else if (dropdownScreenTop + dropdownHeight > viewportHeight - margin) {\n position.y -= (dropdownScreenTop + dropdownHeight - viewportHeight + margin);\n }\n }\n }\n\n dropdownPosX = position.x;\n dropdownPosY = position.y;\n\n if (this.position === 'fixed') {\n this.$dropdown.css({\n position: 'fixed',\n top: Math.round(dropdownPosY) + 'px',\n left: Math.round(dropdownPosX) + 'px',\n right: 'auto',\n bottom: 'auto',\n transform: 'none',\n 'will-change': 'auto',\n 'z-index': 9999\n });\n } else {\n const $container = this.$el.closest('.dropdown, .dropup, .dropleft, .dropright');\n \n if ($container.length) {\n const containerOffset = $container.offset();\n const triggerOffset = this.$el.offset();\n \n let relativeX = triggerOffset.left - containerOffset.left;\n let relativeY = triggerOffset.top - containerOffset.top;\n \n switch (finalPlacement) {\n case 'bottom':\n relativeY += dropdownTriggerHeight + spacing;\n if (finalAlign === 'end') {\n relativeX = relativeX + dropdownTriggerWidth - dropdownWidth;\n }\n break;\n case 'top':\n relativeY -= dropdownHeight + spacing;\n if (finalAlign === 'end') {\n relativeX = relativeX + dropdownTriggerWidth - dropdownWidth;\n }\n break;\n case 'left':\n relativeX -= dropdownWidth + spacing;\n break;\n case 'right':\n relativeX += dropdownTriggerWidth + spacing;\n break;\n }\n \n relativeX += offsetX;\n relativeY += offsetY;\n \n this.$dropdown.css({\n position: 'absolute',\n top: Math.round(relativeY) + 'px',\n left: Math.round(relativeX) + 'px',\n right: 'auto',\n bottom: 'auto',\n transform: 'none',\n 'will-change': 'auto'\n });\n }\n }\n }\n\n show() {\n if (!this.$dropdown || this.$dropdown.hasClass('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n this.$dropdown.attr('x-placement', this.placement + '-' + this.align);\n this.$dropdown.addClass(this.animationSpeed);\n playAnimation(this.$dropdown, this.animationIn);\n this.$dropdown.addClass('show');\n this.$dropdown.attr('id', this.id);\n this.$el.attr('data-dropdown', this.id);\n } else {\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].offsetHeight;\n \n if (this.animation) {\n const animationDuration = this.$dropdown.css('animation-duration');\n const duration = animationDuration ? parseFloat(animationDuration) * 1000 : 300;\n \n setTimeout(() => {\n if (this.scroll && typeof this.scroll.update === 'function') {\n this.scroll.update();\n }\n }, duration);\n } else {\n\n requestAnimationFrame(() => {\n if (this.scroll && typeof this.scroll.update === 'function') {\n this.scroll.update();\n }\n });\n }\n }\n\n this.contentOpen = true;\n this.onShow();\n }\n\n close() {\n if (!this.$dropdown || this.preventClose) {\n return;\n }\n\n if (this.animation && !this.$dropdown.hasClass('animation')) {\n playAnimation(this.$dropdown, this.animationOut).then(() => {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n });\n } else {\n this.$dropdown.removeClass('show');\n this.$el.removeAttr('data-dropdown');\n }\n\n this.contentOpen = false;\n this.onClose();\n }\n\n onItemClick(el, e) {\n let onItemClick = this.opts.onItemClick;\n\n if (typeof onItemClick === 'function') {\n onItemClick.call(el, e, this);\n }\n }\n}\n\nDropdown._jQueryInit();\n\nexport default Dropdown;","import Component from './component';\nimport { generateUUID, playAnimation, resizeManager } from './utils';\n\nclass Tooltip extends Component {\n\n static NAME = 'coolTooltip';\n\n static DEFAULTS = {\n container: 'body',\n animation: false,\n animationIn: 'fadeIn',\n animationOut: 'fadeOut',\n animationSpeed: 'fastest',\n placement: 'bottom',\n content: '',\n trigger: 'auto',\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${Tooltip.NAME}`);\n if (!instance) {\n instance = new Tooltip(this, typeof config === 'object' && config);\n $el.data(`plugin_${Tooltip.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Tooltip.NAME];\n $.fn[Tooltip.NAME] = Tooltip._jQueryInterface;\n $.fn[Tooltip.NAME].Constructor = Tooltip;\n $.fn[Tooltip.NAME].defaults = Tooltip.DEFAULTS || {};\n $.fn[Tooltip.NAME].noConflict = () => {\n $.fn[Tooltip.NAME] = previousName;\n return Tooltip._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.tooltip) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.tooltip, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n if (this.$tooltip) {\n this.$tooltip.remove();\n this.$tooltip = null;\n }\n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n if (this.$tooltip) {\n this.setPosition();\n }\n this.onUpdate();\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.$container = this.$el.data('container') ? $(this.$el.data('container')) : $(this.opts.container);\n this.id = 'tooltip-' + 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')\n ? this.$el.data('animationSpeed')\n : 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 this.trigger = this.$el.data('trigger') ? this.$el.data('trigger') : this.opts.trigger;\n }\n\n bindEvents() {\n if (this.trigger === 'auto') {\n this.$el.on('mouseenter' + '.' + this.constructor.NAME, () => {\n this.show();\n });\n\n this.$el.on('mouseleave' + '.' + this.constructor.NAME, () => {\n this.close();\n });\n\n this.$el.on('blur' + '.' + this.constructor.NAME, () => {\n this.close();\n });\n\n this.$el.on('click' + '.' + this.constructor.NAME, () => {\n this.close();\n });\n }\n\n if (window.ResizeObserver) {\n this._resizeCallback = () => {\n if (this.$tooltip && this.$tooltip.hasClass('show')) {\n requestAnimationFrame(() => {\n this.setPosition();\n });\n }\n };\n \n resizeManager.observe(this.el, this._resizeCallback);\n }\n }\n\n unbindEvents() {\n this.$el.off('.' + this.constructor.NAME);\n \n if (this._resizeCallback) {\n resizeManager.unobserve(this.el);\n this._resizeCallback = null;\n }\n }\n\n buildTooltip() {\n this.$tooltip = $(`\n <div class=\"tooltip\" role=\"tooltip\" id=\"${this.id}\">\n <div class=\"arrow\"></div>\n <div class=\"tooltip-inner\">${this.content}</div>\n </div>\n `);\n\n this.$container.append(this.$tooltip);\n this.$arrow = this.$tooltip.find('.arrow');\n }\n\n setPosition(placement) {\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 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 } else if (placement === 'right') {\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 } else if (placement === 'bottom') {\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 } else if (placement === 'left') {\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 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 tooltipOverflow.right = true;\n tooltipOverflowCount++;\n }\n\n if (tooltipPosition.left < 0) {\n tooltipOverflow.left = true;\n tooltipOverflowCount++;\n }\n\n if (tooltipPosition.bottom < 0) {\n tooltipOverflow.bottom = true;\n tooltipOverflowCount++;\n }\n\n if (tooltipPosition.top < 0) {\n tooltipOverflow.top = true;\n tooltipOverflowCount++;\n }\n\n if (tooltipOverflowCount > 0) {\n if (!this.placementChanged && tooltipOverflow.left && tooltipPosition.right > tooltipWidth) {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('right');\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('left');\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n } else if (\n !this.placementChanged &&\n (placement !== 'top' || placement !== 'bottom') &&\n (tooltipOverflow.left || tooltipOverflow.right)\n ) {\n if (tooltipPosition.top > tooltipPosition.bottom) {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('top');\n } else {\n this.placementChanged = true;\n this.$tooltip.removeClass('tooltip-' + placement);\n this.$arrow.removeAttr('style');\n this.setPosition('bottom');\n }\n } else {\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\n\n if (tooltipOverflow.left) {\n let overflowAmount = Math.abs(tooltipPosition.left);\n let excludePlacements = ['top', 'bottom'];\n\n if (\n tooltipTriggerPosX >= tooltipPosX + overflowAmount &&\n excludePlacements.indexOf(placement) < 0\n ) {\n tooltipWidth -= overflowAmount;\n tooltipPosX += overflowAmount;\n } else {\n tooltipPosX += overflowAmount;\n arrowPos -= overflowAmount;\n }\n }\n\n if (tooltipOverflow.top) {\n let overflowAmount = Math.abs(tooltipPosition.top);\n\n tooltipPosY += overflowAmount;\n arrowPos -= overflowAmount;\n }\n\n if (tooltipOverflow.right) {\n let overflowAmount = Math.abs(tooltipPosition.right);\n let excludePlacements = ['top', 'bottom'];\n\n if (\n tooltipTriggerPosX <= tooltipPosX - overflowAmount &&\n excludePlacements.indexOf(placement) < 0\n ) {\n tooltipWidth -= overflowAmount;\n } else {\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n\n tooltipPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top') {\n this.$arrow.css({\n left: arrowPos + 'px',\n });\n } else if (placement === 'right') {\n this.$arrow.css({\n top: arrowPos + 'px',\n });\n } else if (placement === 'bottom') {\n this.$arrow.css({\n left: arrowPos + 'px',\n });\n } else if (placement === 'left') {\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 }\n }\n\n show() {\n if (this.$tooltip) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n this.$tooltip.addClass(this.animationSpeed);\n playAnimation(this.$tooltip, this.animationIn);\n this.$tooltip.addClass('show');\n this.$tooltip.attr('id', this.id);\n this.$el.attr('data-tooltip', this.id);\n } else {\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 if (!this.$tooltip) {\n return;\n }\n\n if (this.animation && !this.$tooltip.hasClass('animation')) {\n playAnimation(this.$tooltip, this.animationOut).then(() => {\n this.$tooltip.remove();\n this.$el.removeAttr('data-tooltip');\n this.$tooltip = null;\n this.placementChanged = false;\n\n this.onClose();\n });\n } else {\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\nTooltip._jQueryInit();\n\nexport default Tooltip;","import Component from './component';\n\nclass Collapse extends Component {\n\n static NAME = 'coolCollapse';\n\n static DEFAULTS = {\n target: null,\n onInit: null,\n onUpdate: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${Collapse.NAME}`);\n if (!instance) {\n instance = new Collapse(this, typeof config === 'object' && config);\n $el.data(`plugin_${Collapse.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Collapse.NAME];\n $.fn[Collapse.NAME] = Collapse._jQueryInterface;\n $.fn[Collapse.NAME].Constructor = Collapse;\n $.fn[Collapse.NAME].defaults = Collapse.DEFAULTS || {};\n $.fn[Collapse.NAME].noConflict = () => {\n $.fn[Collapse.NAME] = previousName;\n return Collapse._jQueryInterface;\n };\n }\n \n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.collapse) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.collapse, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n \n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.el = this.$el[0];\n \n const targetSelector = this.$el.data('target') || this.opts.target;\n this.$target = targetSelector ? $(targetSelector) : this.$el.parent().find('.collapse');\n \n this.target = this.$target[0];\n this.breakpoint = this.$el.data('breakpoint');\n this.expanded = this.$el.attr('aria-expanded') === 'true';\n\n if (this.target) {\n this.$container = this.$target.closest('.section-collapse');\n this.container = this.$container[0];\n \n const indicatorSelector = this.$el.data('target') \n ? `[data-collapse-indicator=\"${this.$el.data('target')}\"]`\n : null;\n this.$indicator = indicatorSelector ? $(indicatorSelector) : this.$el.parent().find('[data-collapse-indicator]');\n this.indicator = this.$indicator[0];\n }\n }\n\n bindEvents() {\n this._clickHandler = (e) => {\n if (!this.breakpoint || !window.matchMedia(`(min-width: ${this.breakpoint}px)`).matches) {\n e.preventDefault();\n this.toggle();\n }\n };\n \n this.el.addEventListener('click', this._clickHandler);\n }\n\n unbindEvents() {\n if (this._clickHandler) {\n this.el.removeEventListener('click', this._clickHandler);\n }\n \n this.$el.off('.' + this.constructor.NAME);\n }\n\n toggle() {\n if (this.expanded) {\n this.close();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this.expanded) return;\n\n this.target.classList.add('show');\n \n if (this.container) {\n this.container.classList.add('show');\n }\n\n if (this.indicator) {\n this.indicator.classList.add('show');\n }\n\n this.el.setAttribute('aria-expanded', 'true');\n this.expanded = true;\n \n this.onShow();\n }\n\n close() {\n if (!this.expanded) return;\n\n this.target.classList.remove('show');\n \n if (this.container) {\n this.container.classList.remove('show');\n }\n\n if (this.indicator) {\n this.indicator.classList.remove('show');\n }\n\n this.el.setAttribute('aria-expanded', 'false');\n this.expanded = false;\n \n this.onClose();\n }\n}\n\nCollapse._jQueryInit();\n\nexport default Collapse;","import Component from './component';\nimport { debounce } from './utils';\n\nclass SectionTabs extends Component {\n\n static NAME = 'coolSectionTabs';\n\n static DEFAULTS = {\n onInit: null,\n onUpdate: null,\n onDestroy: null\n };\n\n static _jQueryInterface(config) {\n return this.each(function() {\n const $el = $(this);\n let instance = $el.data(`plugin_${SectionTabs.NAME}`);\n if (!instance) {\n instance = new SectionTabs(this, typeof config === 'object' && config);\n $el.data(`plugin_${SectionTabs.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[SectionTabs.NAME];\n $.fn[SectionTabs.NAME] = SectionTabs._jQueryInterface;\n $.fn[SectionTabs.NAME].Constructor = SectionTabs;\n $.fn[SectionTabs.NAME].defaults = SectionTabs.DEFAULTS || {};\n $.fn[SectionTabs.NAME].noConflict = () => {\n $.fn[SectionTabs.NAME] = previousName;\n return SectionTabs._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = {};\n\n if (window.Cool.settings.sectionTabs) {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, window.Cool.settings.sectionTabs, opts);\n } else {\n $.extend(true, this.opts, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.el = el;\n this._tabsCache = new WeakMap();\n this._resizeObserver = null;\n this._isProcessing = false;\n this._rafId = null;\n \n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n \n this._rafId = requestAnimationFrame(() => {\n if (this.dropdownContainer) this.dropdownContainer.classList.add('js-ready');\n this.el.classList.add('js-initialized');\n \n this.checkForChanges();\n this.onInit();\n });\n }\n\n destroy() {\n this.unbindEvents();\n \n if (this._rafId) {\n cancelAnimationFrame(this._rafId);\n }\n \n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n this._resizeObserver = null;\n }\n \n this.$el.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n buildCache() {\n this.$el = $(this.el);\n this.el = this.$el[0];\n \n const sectionTabs = this.el.closest('.section-tabs');\n \n this.$dropdownContainer = sectionTabs ? $(sectionTabs).find('.dropdown-container') : this.$el.find('.dropdown-container');\n this.$dropdownList = sectionTabs ? $(sectionTabs).find('.dropdown-list') : this.$el.find('.dropdown-list');\n this.dropdownContainer = this.$dropdownContainer.length ? this.$dropdownContainer[0] : null;\n this.dropdownList = this.$dropdownList.length ? this.$dropdownList[0] : null;\n }\n\n bindEvents() {\n const sectionTabs = this.el.closest('.section-tabs');\n const sectionHeader = sectionTabs ? sectionTabs.closest('.section-header') : null;\n const observeTarget = sectionHeader || sectionTabs || this.el;\n \n if (window.ResizeObserver) {\n this._resizeObserver = new ResizeObserver(entries => {\n if (!this._isProcessing) {\n this._isProcessing = true;\n \n if (this._rafId) {\n cancelAnimationFrame(this._rafId);\n }\n \n this._rafId = requestAnimationFrame(() => {\n this.checkForChanges();\n this._isProcessing = false;\n });\n }\n });\n \n this._resizeObserver.observe(observeTarget);\n } else {\n this._resizeHandler = debounce(() => {\n this.checkForChanges();\n }, 50);\n \n window.addEventListener('resize', this._resizeHandler, { passive: true });\n }\n }\n\n unbindEvents() {\n this.$el.off('.' + this.constructor.NAME);\n \n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n }\n \n if (this._resizeHandler) {\n window.removeEventListener('resize', this._resizeHandler);\n }\n }\n\n moveToList(el) {\n const uuid = el.getAttribute('data-uuid');\n const tab = this.el.querySelector(`:scope > .tab-item[data-related-dropdown-item=\"${uuid}\"]`);\n\n if (tab) {\n tab.removeAttribute('data-related-dropdown-item');\n el.remove();\n }\n }\n\n moveToDropdown(el) {\n if (el.hasAttribute('data-related-dropdown-item')) {\n return;\n }\n if (!this.dropdownList) {\n return;\n }\n\n const uuid = crypto.randomUUID();\n const clone = el.cloneNode(true);\n const itemActionEl = clone.querySelector('.tab-item-action');\n\n if (itemActionEl) {\n itemActionEl.classList.add('dropdown-item');\n }\n\n clone.setAttribute('data-uuid', uuid);\n this.dropdownList.appendChild(clone);\n\n el.setAttribute('data-related-dropdown-item', uuid);\n }\n\n getTabDimensions(tab) {\n if (this._tabsCache.has(tab)) {\n const cached = this._tabsCache.get(tab);\n return cached;\n }\n \n const wasInvisible = tab.classList.contains('invisible');\n\n if (wasInvisible) {\n tab.classList.remove('invisible');\n }\n \n const sectionTabs = this.el.closest('.section-tabs');\n const container = sectionTabs || this.el;\n const originalOverflow = container.style.overflow;\n \n container.style.overflow = 'visible';\n container.offsetHeight;\n \n const width = tab.offsetWidth;\n const marginLeft = parseInt(getComputedStyle(tab).marginLeft, 10) || 0;\n const marginRight = parseInt(getComputedStyle(tab).marginRight, 10) || 0;\n const totalWidth = width + marginLeft + marginRight;\n \n container.style.overflow = originalOverflow;\n\n if (wasInvisible) {\n tab.classList.add('invisible');\n }\n \n const dimensions = { width, totalWidth };\n this._tabsCache.set(tab, dimensions);\n \n return dimensions;\n }\n\n availableSpace() {\n const sectionTabs = this.el.closest('.section-tabs');\n const sectionHeader = sectionTabs ? sectionTabs.closest('.section-header') : null;\n let containerWidth, paddingLeft, paddingRight;\n\n if (sectionHeader) {\n const headerStyles = getComputedStyle(sectionHeader);\n const flexDirection = headerStyles.flexDirection;\n \n if (flexDirection === 'column') {\n const container = sectionTabs || this.el;\n const containerStyles = getComputedStyle(container);\n\n containerWidth = container.offsetWidth;\n paddingLeft = parseInt(containerStyles.paddingLeft, 10) || 0;\n paddingRight = parseInt(containerStyles.paddingRight, 10) || 0;\n\n } else {\n\n containerWidth = sectionHeader.offsetWidth;\n paddingLeft = parseInt(headerStyles.paddingLeft, 10) || 0;\n paddingRight = parseInt(headerStyles.paddingRight, 10) || 0;\n \n const sectionSearch = sectionHeader.querySelector('.section-search');\n\n if (sectionSearch) {\n containerWidth -= sectionSearch.offsetWidth;\n const headerGap = parseInt(headerStyles.gap, 10) || 0;\n containerWidth -= headerGap;\n }\n }\n\n } else {\n const container = sectionTabs || this.el;\n const containerStyles = getComputedStyle(container);\n\n containerWidth = container.offsetWidth;\n paddingLeft = parseInt(containerStyles.paddingLeft, 10) || 0;\n paddingRight = parseInt(containerStyles.paddingRight, 10) || 0;\n }\n \n const dropdownWidth = this.dropdownContainer ? (this.dropdownContainer.classList.contains('visible') ? this.dropdownContainer.offsetWidth : 40) : 0;\n const available = containerWidth - paddingLeft - paddingRight - dropdownWidth;\n \n return available;\n }\n\n checkForChanges() {\n if (!this.dropdownList) {\n return;\n }\n\n this._tabsCache = new WeakMap();\n \n const tabs = Array.from(this.el.querySelectorAll(':scope > .tab-item'));\n const dropdownItems = Array.from(this.dropdownList.children);\n const availableSpace = this.availableSpace();\n const gap = parseInt(getComputedStyle(this.el).gap, 10) || 0;\n \n if (window.innerWidth < 768 && availableSpace < 200) {\n tabs.forEach(tab => {\n tab.classList.remove('invisible');\n tab.removeAttribute('data-related-dropdown-item');\n });\n if (this.dropdownContainer) {\n this.dropdownContainer.classList.remove('visible');\n }\n return;\n }\n \n let accumulatedWidth = 0;\n let visibleTabs = [];\n let overflowTabs = [];\n \n for (let i = 0; i < tabs.length; i++) {\n const tab = tabs[i];\n const { totalWidth } = this.getTabDimensions(tab);\n const widthWithGap = accumulatedWidth + totalWidth + (i > 0 ? gap : 0);\n \n if (widthWithGap <= availableSpace) {\n accumulatedWidth = widthWithGap;\n visibleTabs.push(tab);\n \n const relatedDropdownId = tab.getAttribute('data-related-dropdown-item');\n\n if (relatedDropdownId) {\n const dropdownItem = this.dropdownList.querySelector(`[data-uuid=\"${relatedDropdownId}\"]`);\n if (dropdownItem) {\n this.moveToList(dropdownItem);\n }\n }\n } else {\n overflowTabs.push(tab);\n }\n }\n \n overflowTabs.forEach((tab, index) => {\n if (!tab.hasAttribute('data-related-dropdown-item')) {\n this.moveToDropdown(tab);\n }\n });\n \n if (dropdownItems.length > 0 && overflowTabs.length === 0) {\n const remainingSpace = availableSpace - accumulatedWidth;\n \n for (let i = dropdownItems.length - 1; i >= 0; i--) {\n const dropdownItem = dropdownItems[i];\n const uuid = dropdownItem.getAttribute('data-uuid');\n const originalTab = this.el.querySelector(`[data-related-dropdown-item=\"${uuid}\"]`);\n \n if (originalTab) {\n const { totalWidth } = this.getTabDimensions(originalTab);\n const widthWithGap = totalWidth + (accumulatedWidth > 0 ? gap : 0);\n \n if (widthWithGap <= remainingSpace) {\n this.moveToList(dropdownItem);\n visibleTabs.push(originalTab);\n accumulatedWidth += widthWithGap;\n } else {\n break;\n }\n }\n }\n }\n \n tabs.forEach(tab => {\n const shouldBeVisible = visibleTabs.includes(tab);\n if (shouldBeVisible) {\n tab.classList.remove('invisible');\n } else {\n tab.classList.add('invisible');\n }\n });\n \n const hasDropdownItems = this.dropdownList && this.dropdownList.children.length > 0;\n\n if (this.dropdownContainer) {\n this.dropdownContainer.classList.toggle('visible', hasDropdownItems);\n }\n }\n}\n\nSectionTabs._jQueryInit();\n\nexport default SectionTabs;","import Component from './component';\nimport { generateUUID, playAnimation } from './utils';\n\nclass Toast extends Component {\n\n static NAME = 'coolToast';\n\n static 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 onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null\n };\n\n static _jQueryInterface(config) {\n const $el = $(this);\n let instance = $el.data(`plugin_${Toast.NAME}`);\n\n if (!instance) {\n instance = new Toast(this, typeof config === 'object' && config);\n $el.data(`plugin_${Toast.NAME}`, instance);\n }\n \n if (typeof config === 'string') instance[config]();\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Toast.NAME];\n $.fn[Toast.NAME] = Toast._jQueryInterface;\n $.fn[Toast.NAME].Constructor = Toast;\n $.fn[Toast.NAME].defaults = Toast.DEFAULTS || {};\n $.fn[Toast.NAME].noConflict = () => {\n $.fn[Toast.NAME] = previousName;\n return Toast._jQueryInterface;\n };\n }\n\n constructor(container, opts) {\n super(); \n \n this.settings = {};\n\n if (window.Cool.settings.toast) {\n $.extend(true, this.settings, $.fn[this.constructor.NAME].defaults, window.Cool.settings.toast, opts);\n } else {\n $.extend(true, this.settings, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.toasts = [];\n this.queue = [];\n this.processingQueue = false;\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n this.lastToastContent = null;\n\n this.$container.data(`plugin_${this.constructor.NAME}`, this);\n }\n\n isSimilarToast(toast) {\n if (!this.lastToastContent) return false;\n return this.lastToastContent === toast.content;\n }\n\n addQueue(toast) {\n if (this.isSimilarToast(toast)) {\n this.queue = this.queue.filter((t) => t.content !== toast.content);\n }\n\n this.queue.push(toast);\n this.lastToastContent = toast.content;\n\n if (this.processingQueue) {\n return;\n }\n\n return this.processQueue();\n }\n\n processQueue() {\n if (this.processingQueue) {\n this.queue.shift();\n }\n\n if (!this.queue.length) {\n this.processingQueue = false;\n return;\n }\n\n this.processingQueue = true;\n\n return this.show(this.queue[0]);\n }\n\n init(opts) {\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 destroy() {\n this.$container.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n buildToast(settings) {\n let toast = {\n uuid: 'toast-' + 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 toast.$el = $(toast.template());\n } else {\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.toasts.push(toast);\n\n return toast;\n }\n\n bindEvents(toast) {\n let self = this;\n\n toast.$el.on('click', '[data-toast-close]', () => {\n if (toast.$el) {\n self.close(toast);\n }\n });\n\n if (window.ResizeObserver) {\n toast.resizeObserver = new ResizeObserver(entries => {\n if (!toast.$el) return;\n \n if (toast.rafId) {\n cancelAnimationFrame(toast.rafId);\n }\n \n toast.rafId = requestAnimationFrame(() => {\n if (toast.$el) {\n this.setPosition(toast);\n }\n });\n });\n \n toast.resizeObserver.observe(document.body);\n \n } else {\n\n let resizeTimeout;\n toast.resizeHandler = () => {\n if (!toast.$el) return;\n \n clearTimeout(resizeTimeout);\n \n const now = performance.now();\n if (!toast.lastResizeTime || now - toast.lastResizeTime > 100) {\n this.setPosition(toast);\n toast.lastResizeTime = now;\n } else {\n resizeTimeout = setTimeout(() => {\n if (toast.$el) {\n this.setPosition(toast);\n }\n }, 16);\n }\n };\n \n window.addEventListener('resize', toast.resizeHandler, { passive: true });\n }\n }\n\n setPosition(toast, placement, placementY, placementX) {\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 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 if (placement === 'top-left') {\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 } else if (placement === 'top-center') {\n toastPosX = this.$container.width() / 2 - toastWidth / 2;\n toastPosY = 0;\n\n if (toast.offset) {\n toastPosX += offsetX;\n toastPosY += offsetY;\n } else {\n toastPosY += 30;\n }\n } else if (placement === 'top-right') {\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 } else if (placement === 'center-left') {\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 } else if (placement === 'center-center') {\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 } else if (placement === 'center-right') {\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 } else if (placement === 'bottom-left') {\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 } else if (placement === 'bottom-center') {\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 } else if (placement === 'bottom-right') {\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 } else {\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\n show(toast) {\n this.$container.append(toast.$el);\n this.bindEvents(toast);\n this.setPosition(toast);\n\n if (toast.animation) {\n toast.$el.addClass('show');\n toast.$inner.addClass(toast.animationSpeed);\n playAnimation(toast.$inner, toast.animationIn);\n } else {\n toast.$el.addClass('show');\n }\n\n if (toast.dismiss) {\n setTimeout(() => {\n this.close(toast);\n }, toast.dismiss * 1000);\n }\n\n this.onShow(toast);\n }\n\n close(toast) {\n if (toast.resizeObserver) {\n toast.resizeObserver.disconnect();\n toast.resizeObserver = null;\n }\n \n if (toast.rafId) {\n cancelAnimationFrame(toast.rafId);\n toast.rafId = null;\n }\n \n if (toast.resizeHandler) {\n window.removeEventListener('resize', toast.resizeHandler);\n toast.resizeHandler = null;\n }\n\n if (toast.animation && !toast.$inner.hasClass('animation')) {\n toast.$el.removeClass('show');\n playAnimation(toast.$inner, toast.animationOut).then(() => {\n toast.$el.remove();\n this.lastToastContent = null;\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 } else {\n toast.$el.remove();\n this.lastToastContent = null;\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 onInitialize() {\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n onInitialize.call(this.container);\n }\n }\n\n onDestroy() {\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n onDestroy.call(this.container);\n }\n }\n\n onInit(toast) {\n let onInit = toast.onInit;\n\n if (typeof onInit === 'function') {\n onInit.call(toast);\n }\n }\n\n onShow(toast) {\n let onShow = toast.onShow;\n\n if (typeof onShow === 'function') {\n onShow.call(toast);\n }\n }\n\n onClose(toast) {\n let onClose = toast.onClose;\n\n if (typeof onClose === 'function') {\n onClose.call(toast);\n }\n }\n\n _renderTemplate(toast) {\n let content = '';\n let header = '';\n let body = '';\n let bodyCloseBtn = '';\n\n if (typeof toast.content === 'function') {\n content = toast.content();\n } else {\n content = toast.content;\n }\n\n if (toast.header) {\n header = `\n <div class=\"toast-header\">\n\n <span>${toast.title}</span>\n\n <button type=\"button\" data-toast-close>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n\n </div>\n `;\n } else {\n bodyCloseBtn = `\n <button type=\"button\" data-toast-close>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\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\nToast._jQueryInit();\n\nexport default Toast;","import Component from './component';\nimport { escapeHtml, generateUUID, playAnimation } from './utils';\n\nclass Dialog extends Component {\n\n static NAME = 'coolDialog';\n\n static DEFAULTS = {\n title: '',\n template: '',\n body: '',\n footer: true,\n header: true,\n size: '',\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 maxBodyHeight: null,\n overflowVisible: false,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onDestroy: null,\n onShow: null,\n onClose: null,\n callbacks: {},\n actions: {}\n };\n\n static _jQueryInterface(config) {\n const $el = $(this);\n let instance = $el.data(`plugin_${Dialog.NAME}`);\n\n if (!instance) {\n instance = new Dialog(this, typeof config === 'object' && config);\n $el.data(`plugin_${Dialog.NAME}`, instance);\n }\n \n if (typeof config === 'string') instance[config]();\n }\n\n static _jQueryInit() {\n if (!$.fn) return;\n const previousName = $.fn[Dialog.NAME];\n $.fn[Dialog.NAME] = Dialog._jQueryInterface;\n $.fn[Dialog.NAME].Constructor = Dialog;\n $.fn[Dialog.NAME].defaults = Dialog.DEFAULTS || {};\n $.fn[Dialog.NAME].noConflict = () => {\n $.fn[Dialog.NAME] = previousName;\n return Dialog._jQueryInterface;\n };\n }\n\n constructor(container, opts) {\n super(); \n \n this.settings = {};\n\n if (window.Cool.settings.dialog) {\n $.extend(true, this.settings, $.fn[this.constructor.NAME].defaults, window.Cool.settings.dialog, opts);\n } else {\n $.extend(true, this.settings, $.fn[this.constructor.NAME].defaults, opts);\n }\n\n this.container = container;\n this.$container = $(this.container);\n this.dialogs = [];\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n\n this.$container.data(`plugin_${this.constructor.NAME}`, this);\n }\n\n init(opts) {\n let settings = {};\n\n $.extend(true, settings, this.settings, opts);\n\n if (opts && opts.actions) settings.actions = opts.actions || {};\n if (opts && opts.callbacks) settings.callbacks = opts.callbacks || {};\n\n if (settings.callbacks && typeof settings.callbacks === 'object') {\n Object.keys(settings.callbacks).forEach(key => { \n if (!settings.actions.hasOwnProperty(key)) {\n if (this.settings.actions && this.settings.actions[key]) {\n settings.actions[key] = $.extend(true, {}, this.settings.actions[key]);\n } else {\n settings.actions[key] = {};\n }\n } else {\n if (typeof settings.actions[key] === 'object' && !settings.actions[key].hasOwnProperty('content')) {\n if (this.settings.actions &&\n this.settings.actions[key] &&\n typeof this.settings.actions[key] === 'object' &&\n this.settings.actions[key].hasOwnProperty('content')) {\n settings.actions[key].content = this.settings.actions[key].content;\n }\n }\n }\n });\n }\n\n const dialog = this.buildDialog(settings);\n\n this.show(dialog);\n this.bindEvents(dialog);\n this.onInit(dialog);\n\n return dialog;\n }\n \n destroy() {\n this.$container.removeData(`plugin_${this.constructor.NAME}`);\n this.onDestroy();\n }\n\n buildDialog(settings) {\n const self = this;\n const dialog = {\n uuid: 'dialog-' + generateUUID(),\n title: settings.title,\n template: settings.template,\n body: settings.body,\n footer: settings.footer,\n header: settings.header,\n size: settings.size,\n classes: settings.classes,\n centered: settings.centered,\n backdrop: settings.backdrop,\n preventScroll: settings.preventScroll,\n closeBtn: settings.closeBtn,\n animation: settings.animation,\n animationIn: settings.animationIn,\n animationOut: settings.animationOut,\n animationSpeed: settings.animationSpeed,\n callbacks: settings.callbacks,\n maxBodyHeight: settings.maxBodyHeight,\n overflowVisible: settings.overflowVisible,\n actions: settings.actions,\n actionInProgress: false,\n actionThreshold: 300,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose,\n };\n\n if (dialog.maxBodyHeight == null && dialog.size !== 'full') {\n dialog.maxBodyHeight = window.innerHeight - 200;\n }\n\n if (typeof dialog.template === 'function') {\n dialog.$el = $(dialog.template());\n } else {\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.dialogs.push(dialog);\n\n return dialog;\n }\n\n bindEvents(dialog) {\n const self = this;\n\n dialog.$el.on(\n 'click',\n '[data-dialog-action], [data-dialog-confirm], [data-dialog-close], [data-dialog-remove]',\n function (e) {\n e.preventDefault();\n\n if (dialog.actionInProgress) {\n e.stopPropagation();\n return;\n }\n\n dialog.actionInProgress = true;\n\n const commonActions = ['confirm', 'close', 'remove'];\n let actionKey = $(this).data('dialogAction');\n\n if (!actionKey) {\n for (const commonAction of commonActions) {\n if ($(this).is(`[data-dialog-${commonAction}]`)) {\n actionKey = commonAction;\n break;\n }\n }\n }\n\n const action = dialog.actions[actionKey] || {};\n dialog.$el.trigger(`dialog.${actionKey}`);\n\n const callback =\n typeof action.callback === 'function'\n ? action.callback\n : typeof dialog.callbacks[actionKey] === 'function'\n ? dialog.callbacks[actionKey]\n : null;\n\n const resetActionFlag = (immediately = false) => {\n if (immediately) {\n dialog.actionInProgress = false;\n } else {\n setTimeout(() => {\n dialog.actionInProgress = false;\n }, dialog.actionThreshold);\n }\n };\n\n if (typeof callback === 'function') {\n try {\n const result = callback.call(self, function () {\n if (commonActions.includes(actionKey)) self.close(dialog);\n resetActionFlag();\n }, dialog);\n\n if (result && typeof result.then === 'function') {\n result.then((promiseResult) => {\n // Check if the promise result is false\n if (promiseResult === false) {\n resetActionFlag();\n }\n })\n .catch((error) => {\n console.error('Dialog action error:', error);\n resetActionFlag();\n });\n } else if (result === false) {\n resetActionFlag();\n } else {\n // Reset flag for any other return value (including undefined)\n // This handles cases where callback returns nothing (form validation fails)\n resetActionFlag();\n }\n } catch (error) {\n console.error('Dialog action error:', error);\n resetActionFlag();\n }\n } else if (commonActions.includes(actionKey)) {\n self.close(dialog);\n resetActionFlag();\n } else {\n resetActionFlag();\n }\n }\n );\n\n if (dialog.maxBodyHeight !== null && dialog.size !== 'full') {\n const updateMaxBodyHeight = () => {\n dialog.maxBodyHeight = window.innerHeight - 200;\n return dialog.maxBodyHeight;\n };\n\n if (window.ResizeObserver) {\n dialog.resizeObserver = new ResizeObserver(entries => {\n if (dialog.rafId) {\n cancelAnimationFrame(dialog.rafId);\n }\n \n dialog.rafId = requestAnimationFrame(() => {\n const newHeight = updateMaxBodyHeight();\n dialog.$el.find('.dialog-body').css('--cool-dialog-body-height', newHeight + 'px');\n });\n });\n \n dialog.resizeObserver.observe(document.body);\n \n } else {\n let resizeTimeout;\n let lastOrientation = window.orientation;\n \n dialog.resizeHandler = () => {\n clearTimeout(resizeTimeout);\n \n const now = performance.now();\n const orientationChanged = window.orientation !== lastOrientation;\n \n if (orientationChanged) {\n lastOrientation = window.orientation;\n }\n\n if (!dialog.lastResizeTime || now - dialog.lastResizeTime > 100 || orientationChanged) {\n const newHeight = updateMaxBodyHeight();\n dialog.$el.find('.dialog-body').css('--cool-dialog-body-height', newHeight + 'px');\n dialog.lastResizeTime = now;\n } else {\n resizeTimeout = setTimeout(() => {\n const newHeight = updateMaxBodyHeight();\n dialog.$el.find('.dialog-body').css('--cool-dialog-body-height', newHeight + 'px');\n }, 16);\n }\n };\n \n window.addEventListener('resize', dialog.resizeHandler, { passive: true });\n window.addEventListener('orientationchange', dialog.resizeHandler, { passive: true });\n }\n }\n }\n\n show(dialog) {\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 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 this.$container.append('<div class=\"dialog-backdrop\"></div>');\n\n let checkForBackdrop = setInterval(() => {\n if (this.dialogs.length == 0 && $('.dialog-backdrop').length) {\n $('.dialog-backdrop').remove();\n clearInterval(checkForBackdrop);\n }\n }, 100);\n }\n\n this.$container.append(dialog.$el);\n\n if (dialog.animation) {\n const $dialogContentEl = dialog.$el.find('.dialog-content');\n playAnimation($dialogContentEl, dialog.animationIn);\n }\n\n this.onShow(dialog);\n }\n\n close(dialog) {\n let $prevDialog = null;\n\n if (dialog.resizeObserver) {\n dialog.resizeObserver.disconnect();\n dialog.resizeObserver = null;\n }\n \n if (dialog.rafId) {\n cancelAnimationFrame(dialog.rafId);\n dialog.rafId = null;\n }\n \n if (dialog.resizeHandler) {\n window.removeEventListener('resize', dialog.resizeHandler);\n window.removeEventListener('orientationchange', dialog.resizeHandler);\n dialog.resizeHandler = null;\n }\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 playAnimation(dialog.$el.find('.dialog-content'), dialog.animationOut).then(() => {\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 this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n } else {\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n });\n } else {\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 this.$container.removeClass('has-dialogs');\n\n if (this.$container.hasClass('dialog-prevent-scroll')) {\n this.$container.removeClass('dialog-prevent-scroll');\n }\n } else {\n if ($prevDialog) {\n $prevDialog.css('opacity', 1);\n }\n }\n }\n\n this.onClose(dialog);\n }\n\n onInitialize() {\n let onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n onInitialize.call(this.container);\n }\n }\n\n onDestroy() {\n let onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n onDestroy.call(this.container);\n }\n }\n\n onInit(dialog) {\n let onInit = dialog.onInit;\n\n if (typeof onInit === 'function') {\n onInit.call(dialog);\n }\n }\n\n onShow(dialog) {\n let onShow = dialog.onShow;\n\n if (typeof onShow === 'function') {\n onShow.call(dialog);\n }\n }\n\n onClose(dialog) {\n let onClose = dialog.onClose;\n\n if (typeof onClose === 'function') {\n onClose.call(dialog);\n }\n }\n\n _renderFooter(dialog) {\n if (typeof dialog.footer === 'function') {\n\n return dialog.footer();\n\n } else if (dialog.footer !== '' && dialog.footer !== false && dialog.footer !== true) {\n\n return dialog.footer;\n\n } else if (dialog.footer === true) {\n\n if (!dialog.actions || typeof dialog.actions !== 'object') return '';\n\n const actionsArr = Object.entries(dialog.actions)\n .filter(([key, action]) => {\n if (action === false) return false;\n if (typeof action.visible !== 'undefined') return !!action.visible;\n return true;\n })\n .map(([key, action], idx) => ({ key, action, idx }));\n\n actionsArr.sort((a, b) => {\n const hasOnlyCloseAndRemove = actionsArr.length === 2 && \n actionsArr.some(item => item.key === 'close') && \n actionsArr.some(item => item.key === 'remove');\n \n if (hasOnlyCloseAndRemove) {\n if (a.key === 'close') return -1;\n if (b.key === 'close') return 1;\n if (a.key === 'remove') return 1;\n if (b.key === 'remove') return -1;\n }\n\n if (a.key === 'remove') return -1;\n if (b.key === 'remove') return 1;\n if (a.key === 'confirm') return 1;\n if (b.key === 'confirm') return -1;\n \n return a.idx - b.idx;\n });\n\n const btns = actionsArr.map(({ key, action }) => {\n let btnStyle = action.style ? action.style : action.primary ? 'btn-primary' : 'btn-secondary';\n if (key === 'remove') btnStyle = 'btn-remove';\n if (key === 'confirm' && (action.primary === 'undefined' || action.primary !== false)) btnStyle = 'btn-primary';\n let btnContent = action.content || key.charAt(0).toUpperCase() + key.slice(1);\n let btnClasses = action.classes ? ' ' + action.classes : '';\n let btnAttrs = action.attrs ? ' ' + action.attrs : '';\n let isCommonAction = ['confirm', 'close', 'remove'].includes(key);\n return `\n <button type=\"button\" class=\"btn ${btnStyle}${btnClasses}\"${btnAttrs} data-dialog-action=\"${key}\"${isCommonAction ? ` data-dialog-${key}` : ''}>\n ${btnContent}\n </button>\n `;\n });\n\n let footerHtml = '';\n\n if (btns.length > 2) {\n footerHtml = `\n ${btns[0]}\n <div class=\"spacer\"></div>\n ${btns[1]}\n ${btns.slice(2).join('\\n')}\n `;\n } else {\n footerHtml = btns.join('\\n');\n }\n\n return `\n <div class=\"dialog-footer\">\n ${footerHtml}\n </div>\n `;\n }\n\n return '';\n }\n\n _renderHeader(dialog) {\n let headerContent = '';\n const closeBtnHtml = `\n <button type=\"button\" data-dialog-action=\"close\" class=\"dialog-header-close\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n `;\n\n if (typeof dialog.header === 'function') {\n headerContent = dialog.header();\n } else if (dialog.header !== '' && dialog.header !== false && dialog.header !== true) {\n headerContent = dialog.header;\n } else if (dialog.header === true) {\n headerContent = `\n <div class=\"dialog-header\">\n <span class=\"dialog-title\">\n ${escapeHtml(dialog.title)}\n </span>\n ${closeBtnHtml}\n </div>\n `;\n } else {\n headerContent = `<div class=\"dialog-header\">${closeBtnHtml}</div>`;\n }\n\n return headerContent;\n }\n\n _renderTemplate(dialog) {\n const classes = dialog.classes ? ' ' + dialog.classes : '';\n const centered = dialog.centered ? ' dialog-centered' : '';\n const size = dialog.size ? ' dialog-' + dialog.size : '';\n const overFlowVisible = dialog.overflowVisible ? ' dialog-overflow-visible' : '';\n const uuid = ' data-dialog-uuid=\"' + dialog.uuid + '\"';\n const backdrop = dialog.backdrop ? ' data-dialog-backdrop=\"true\"' : ' data-dialog-backdrop=\"false\"';\n const maxBodyHeight = dialog.maxBodyHeight ? ' style=\"--cool-dialog-body-height: ' + dialog.maxBodyHeight + 'px\"' : '';\n const body = typeof dialog.body === 'function' ? dialog.body() : dialog.body;\n const footer = this._renderFooter(dialog);\n const header = this._renderHeader(dialog);\n\n return `\n <div class=\"dialog${classes}${centered}${size}${overFlowVisible}\"${uuid}${backdrop}>\n\n <div class=\"dialog-container\">\n\n <div class=\"dialog-content\">\n\n ${header}\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\nDialog._jQueryInit();\n\nexport default Dialog;","import Section from './section';\nimport Sidebar from './sidebar';\nimport Popover from './popover';\nimport Select from './select';\nimport Dropdown from './dropdown';\nimport Tooltip from './tooltip';\nimport Collapse from './collapse';\nimport SectionTabs from './section-tabs';\nimport Toast from './toast';\nimport Dialog from './dialog';\nimport { resizeManager, scrollManager } from './utils';\n\nwindow.Cool = window.Cool || {};\nwindow.Cool.settings = window.Cool.settings || {};\n\nclass Common {\n static _sidebarInstance = null;\n static _sectionInstance = null;\n\n static refresh() {\n if (this._sectionInstance && this._sectionInstance.refresh) {\n this._sectionInstance.refresh();\n }\n\n Popover.initializeElements('[data-toggle=\"popover\"]', window.Cool.settings.popover);\n Select.initializeElements('[data-toggle=\"select\"]', window.Cool.settings.select);\n Dropdown.initializeElements('[data-toggle=\"dropdown\"]', window.Cool.settings.dropdown);\n Tooltip.initializeElements('[data-toggle=\"tooltip\"]', window.Cool.settings.tooltip);\n Collapse.initializeElements('[data-toggle=\"collapse\"]', window.Cool.settings.collapse);\n SectionTabs.initializeElements('[data-toggle=\"section-tabs\"]', window.Cool.settings.sectionTabs);\n }\n\n static initialize(opts = {}) {\n window.Cool.settings = opts;\n\n if (!this._sectionInstance) {\n this._sectionInstance = new Section(opts.section);\n }\n \n Popover.initializeElements('[data-toggle=\"popover\"]', opts.popover);\n Select.initializeElements('[data-toggle=\"select\"]', opts.select);\n Dropdown.initializeElements('[data-toggle=\"dropdown\"]', opts.dropdown);\n Tooltip.initializeElements('[data-toggle=\"tooltip\"]', opts.tooltip);\n Collapse.initializeElements('[data-toggle=\"collapse\"]', opts.collapse);\n SectionTabs.initializeElements('[data-toggle=\"section-tabs\"]', opts.sectionTabs);\n \n const sidebarLeft = document.querySelector('.sidebar-left');\n\n if (sidebarLeft) {\n this._sidebarInstance = new Sidebar(sidebarLeft, opts.sidebar);\n }\n \n new Toast(document.body, opts.toast);\n new Dialog(document.body, opts.dialog);\n }\n\n static initComponent(selector) {\n if (!selector) return;\n\n const selectors = Array.isArray(selector) ? selector : [selector];\n const instances = [];\n const initQueue = [];\n\n selectors.forEach(child => {\n const container = typeof child === 'string' ? document.querySelector(child) : child;\n if (!container) return;\n\n const elements = container.querySelectorAll('[data-toggle]');\n const allElements = container.hasAttribute('data-toggle') \n ? [container, ...Array.from(elements)] \n : Array.from(elements);\n\n allElements.forEach(el => {\n initQueue.push(el);\n });\n });\n\n const visibleQueue = [];\n const hiddenQueue = [];\n\n initQueue.forEach(el => {\n const rect = el.getBoundingClientRect();\n if (rect.top < window.innerHeight && rect.bottom > 0) {\n visibleQueue.push(el);\n } else {\n hiddenQueue.push(el);\n }\n });\n\n const allQueue = [...visibleQueue, ...hiddenQueue];\n const batchSize = 10;\n let index = 0;\n\n const processBatch = () => {\n const batch = allQueue.slice(index, index + batchSize);\n \n batch.forEach(el => {\n const toggleValue = el.getAttribute('data-toggle');\n let instance = null;\n\n switch (toggleValue) {\n case 'popover':\n instance = Popover.initializeElement(el, window.Cool.settings.popover);\n break;\n case 'select':\n instance = Select.initializeElement(el, window.Cool.settings.select);\n break;\n case 'dropdown':\n instance = Dropdown.initializeElement(el, window.Cool.settings.dropdown);\n break;\n case 'tooltip':\n instance = Tooltip.initializeElement(el, window.Cool.settings.tooltip);\n break;\n case 'collapse':\n instance = Collapse.initializeElement(el, window.Cool.settings.collapse);\n break;\n case 'section-tabs':\n instance = SectionTabs.initializeElement(el, window.Cool.settings.sectionTabs);\n break;\n }\n\n if (instance) instances.push(instance);\n });\n\n index += batchSize;\n\n if (index < allQueue.length) {\n if ('requestIdleCallback' in window) {\n requestIdleCallback(processBatch, { timeout: 50 });\n } else {\n setTimeout(processBatch, 0);\n }\n }\n };\n\n if (visibleQueue.length > 0) {\n processBatch();\n } else if ('requestIdleCallback' in window) {\n requestIdleCallback(processBatch, { timeout: 100 });\n } else {\n processBatch();\n }\n\n return instances;\n }\n \n static destroy() {\n if (this._sidebarInstance) {\n this._sidebarInstance.destroy();\n this._sidebarInstance = null;\n }\n\n if (this._sectionInstance) {\n this._sectionInstance.destroy();\n this._sectionInstance = null;\n }\n }\n\n static observeResize(element, callback) {\n if (!element || typeof callback !== 'function') {\n console.warn('Cool.observeResize requires an element and a callback function');\n return;\n }\n \n return resizeManager.observe(element, callback);\n }\n\n static unobserveResize(element) {\n if (!element) {\n console.warn('Cool.unobserveResize requires an element');\n return;\n }\n \n resizeManager.unobserve(element);\n }\n\n static addScrollListener(id, callback) {\n if (!id || typeof callback !== 'function') {\n console.warn('Cool.addScrollListener requires an id and a callback function');\n return;\n }\n \n scrollManager.add(id, callback);\n }\n\n static removeScrollListener(id) {\n if (!id) {\n console.warn('Cool.removeScrollListener requires an id');\n return;\n }\n \n scrollManager.remove(id);\n }\n\n static getSidebar() {\n return this._sidebarInstance;\n }\n\n static getSection() {\n return this._sectionInstance;\n }\n}\n\nwindow.Cool.initialize = Common.initialize.bind(Common);\nwindow.Cool.initComponent = Common.initComponent.bind(Common);\nwindow.Cool.refresh = Common.refresh.bind(Common);\nwindow.Cool.destroy = Common.destroy.bind(Common);\nwindow.Cool.observeResize = Common.observeResize.bind(Common);\nwindow.Cool.unobserveResize = Common.unobserveResize.bind(Common);\nwindow.Cool.addScrollListener = Common.addScrollListener.bind(Common);\nwindow.Cool.removeScrollListener = Common.removeScrollListener.bind(Common);\nwindow.Cool.getSidebar = Common.getSidebar.bind(Common);\nwindow.Cool.getSection = Common.getSection.bind(Common);\n\nexport default Common;","import Common from './src/common';\nimport Sidebar from './src/sidebar';\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 Common,\n Sidebar,\n Popover,\n Select,\n Dropdown,\n Tooltip,\n SectionTabs,\n Collapse,\n Toast,\n Dialog\n}"],"names":["Component","initializeElement","selector","options","el","document","querySelector","$el","$","data","NAME","instance","instances","push","initializeElements","_this","querySelectorAll","forEach","_proto","prototype","onInit","opts","call","onUpdate","onDestroy","onShow","onClose","onReset","Section","_Component","window","Cool","settings","section","extend","DEFAULTS","_eventHandlers","_updateTimeout","_rafId","init","_inheritsLoose","observeSections","initializeSectionObserver","initFormControls","initializeFormControls","initTableHandlers","initializeTableHandlers","initButtonGroups","initializeButtonGroups","initTabs","initializeTabs","destroy","destroySectionObserver","unbindEvents","clearTimeout","cancelAnimationFrame","_addEventListener","element","event","handler","addEventListener","_this2","_isUpdating","sectionObserver","MutationObserver","mutations","isOwnUpdate","every","mutation","type","attributeName","target","oldClasses","oldValue","split","newClasses","Array","from","classList","addedClasses","filter","c","includes","removedClasses","changedClasses","concat","setTimeout","requestAnimationFrame","updateLastVisibleElements","observe","body","attributes","childList","subtree","attributeFilter","attributeOldValue","subtreeFilter","node","contains","nodeName","_this3","updates","sections","tables","rows","visibleChildren","getVisibleChildren","length","lastVisible","table","tbody","visibleRows","getVisibleElements","lastVisibleRow","row","visibleCells","lastVisibleCell","remove","_ref","add","_ref2","_ref3","parent","_this4","children","isElementVisible","elements","_this5","_computedStyle","_styleInvalidated","getComputedStyle","offsetParent","offsetHeight","display","disconnect","e","formControl","closest","disabled","readOnly","inputGroup","updateFormLabelGroup","formLabelGroup","input","hasValue","value","toggle","matches","blur","stopPropagation","tableLink","container","href","dataset","ctrlKey","metaKey","open","location","tableBtn","btn","click","btnGroupToggle","dispatchEvent","Event","bubbles","parentElement","btnGroup","b","_b$querySelector","checked","tabItem","tabs","item","_ref4","removeEventListener","refresh","val","this$1","PerfectScrollbar","Sidebar","sidebar","buildCache","bindEvents","initializeScrollbars","destroyScrollbars","$content","find","content","$toggler","toggler","isFloating","hasClass","isOpen","$tabs","$tabSelectors","_toggleHandler","handleToggle","_mousedownHandler","sidebarContent","mousedownScrollbar","_mouseupHandler","_tabSelectHandler","switchTab","_collapseClickHandler","collapseToggle","breakpoint","matchMedia","_collapseToggle$nextE","_collapseToggle$paren","linkElement","nextElementSibling","focus","_this2$scrollbar","scrollbar","update","ResizeObserver","resizeObserver","entries","rafId","innerWidth","removeBackdrop","resizeTimeout","_resizeHandler","now","performance","lastResizeTime","passive","wheelSpeed","wheelPropagation","minScrollbarLength","suppressScrollX","tabScrollbars","Map","each","index","tab","scrollContainer","ps","set","clear","toggleWithTransition","action","html","documentElement","createBackdrop","backdrop","createElement","className","ariaExpanded","siteMainEl","appendChild","once","isCurrentlyOpen","tabId","activeTab","getElementById","sidebarTabs","toArray","tabContent","style","transform","isBeforeActive","indexOf","activeTabContent","toggleClass","close","floating","ResizeManager","handleWindowResize","windowCallbacks","callback","contentRect","width","height","innerHeight","callbacks","WeakMap","observer","Set","isWindowListening","entry","get","startWindowListening","unobserve","delete","size","stopWindowListening","ScrollManager","handleScroll","isListening","_proto2","id","startListening","stopListening","contentElement","scrollElement","resizeManager","scrollManager","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","touchEvents","result","DocumentTouch","generateUUID","replace","r","Math","random","v","toString","escapeHtml","text","createTextNode","p","innerHTML","playAnimation","animationClass","domEl","jquery","Promise","resolve","_domEl$classList","classes","onEnd","_domEl$classList2","escapeChar","chr","chars","escape","string","invalidChars","validChars","String","test","Popover","popover","fn","constructor","defaults","_jQueryInterface","config","_jQueryInit","previousName","Constructor","noConflict","$popover","removeData","setPosition","$container","containerAutoDetect","trigger","placement","align","title","offset","collisionDetection","on","show","hoverTimeout","popupHasFocus","_resizeCallback","off","buildPopover","append","viewportWidth","viewportHeight","popoverWidth","outerWidth","popoverHeight","outerHeight","triggerWidth","triggerHeight","triggerPosX","triggerPosY","containerOffset","left","top","triggerOffset","popoverPosX","popoverPosY","offsetX","offsetY","offsets","parseInt","computedStyle","spacing","getPropertyValue","calculatePosition","currentPlacement","currentAlign","x","y","finalPlacement","finalAlign","position","margin","checkCollision","pos","collision","bottom","right","popoverScreenLeft","popoverScreenTop","popoverScreenRight","popoverScreenBottom","newCollision","finalCollision","css","round","attr","addClass","removeAttr","Select","select","useChips","cachedTitle","lastSearchQuery","_scrollCallback","buildScroll","updatePromise","searchApi","_performInitialSearch","then","reset","name","items","$select","$selectItems","$selectIconContainer","selectIconDefault","$selectHeader","removeClass","dynamicTitle","$selectTitle","dynamicTitleDefault","trim","dynamicTitleEmptyDefault","showSearch","searchData","$searchInput","searchString","search","$searchIconContainer","faPro","scroll","scrollContentHeight","useNativeScroll","contentWidth","searchRequest","contentOpen","searchPlaceholder","btnCloseText","labelTemplate","confirmCheck","confirmUncheck","preventUncheck","allowNoneOnRadioSelect","showValidStateIcon","itemsToExclude","primaryKeyword","preventClose","map","setData","isArray","arr","_renderChips","showFooter","_renderItemList","_renderSearch","_renderFooter","selectItems","i","values","_","$input","prop","$checkedInput","$scrollableContent","$searchContainer","$clearSearchButton","tabIndex","$footerContainer","$closeButton","buildSearchData","_updateScrollbarVisibility","needsScrollbar","scrollHeight","clientHeight","suppressScrollY","isSearchApiEnabled","_showSpinner","reject","ajax","method","url","success","dataItem","matchingItem","label","empty","$chip","valueId","_hideSpinner","_recalculateContentHeight","error","xhr","status","console","marginTop","marginBottom","totalMargin","actualContentHeight","finalHeight","min","scrollYMarginOffset","_this6","selectLabels","_this7","self","closeTimeout","cb","hasItem","_self$data$self$name$","onSelect","_self$data$self$name$2","n","not","mousedown","mouseup","is","has","scrollTop","scrollLeft","getData","_this8","faNameSpace","searchUrl","itemCount","currentCount","encodeURIComponent","done","itemIds","useObjects","findIndex","$inputs","inputValues","_this9","_this0","abort","_searchDebounceTimer","parents","searchStringLower","toLowerCase","results","_this1","$selectContent","headerHeight","contentHeight","minSpaceRequired","searchHeight","footerHeight","scrollableHeight","scrollableClientHeight","max","shouldOpenUpwards","selectTop","constrainedHeight","contentMarginBottom","contentMarginTop","spaceBelow","spaceAbove","scrollableMaxHeight","_this10","$otherSelects","zindex","first","contentRequiredWidth","scrollIntoView","behavior","block","inline","_this11","isEmptyObject","_this$data$this$name$","grep","getItem","key","getSelectedItems","segment","_this12","ids","obj","getSelectedItem","_this13","checkedItems","createDocumentFragment","resultItems","isChecked","$item","_getItemTemplate","selectItem","_this14","_this$data$this$name$2","_this15","$checkedInputs","onSearch","scrollEl","Dropdown","dropdown","setupResizeHandling","resizeHandler","setupScrollHandling","$dropdown","$scrollableParent","scrollableParents","overflow","scrollHandler","setupVisibilityDetection","IntersectionObserver","intersectionObserver","isIntersecting","threshold","rootMargin","catch","hasDarkMode","parentsUntil","animation","animationIn","animationOut","animationSpeed","minWidth","positionObserver","JSON","parse","closeOnItemClick","$existingMenu","clone","nestedContainer","$nestedContainer","$nestedTrigger","$nestedMenu","parentZIndex","bind","dropdownEl","$dropdownItems","menuRight","positionTypes","fixed","absolute","after","when","$target","onItemClick","_documentClickHandler","isClickInThisDropdown","isNestedDropdownTrigger","triggerRect","getBoundingClientRect","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","$offsetParent","parentOffset","dropdownPosX","dropdownPosY","pl","al","dropdownLeft","dropdownTop","dropdownRight","dropdownBottom","dropdownScreenLeft","dropdownScreenTop","relativeX","relativeY","animationDuration","duration","parseFloat","Tooltip","tooltip","$tooltip","placementChanged","buildTooltip","$arrow","containerInnerWidth","containerInnerHeight","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","arrowWidth","arrowHeight","arrowPos","tooltipPosX","tooltipPosY","tooltipOverflowCount","tooltipPosition","tooltipOverflow","fixTooltipPosition","overflowAmount","abs","excludePlacements","Collapse","collapse","targetSelector","expanded","indicatorSelector","$indicator","indicator","_clickHandler","preventDefault","setAttribute","SectionTabs","sectionTabs","_tabsCache","_resizeObserver","_isProcessing","dropdownContainer","checkForChanges","$dropdownContainer","$dropdownList","dropdownList","sectionHeader","observeTarget","moveToList","uuid","getAttribute","removeAttribute","moveToDropdown","hasAttribute","crypto","randomUUID","cloneNode","itemActionEl","getTabDimensions","cached","wasInvisible","originalOverflow","offsetWidth","marginLeft","marginRight","totalWidth","dimensions","availableSpace","containerWidth","paddingLeft","paddingRight","headerStyles","flexDirection","containerStyles","sectionSearch","headerGap","gap","available","dropdownItems","accumulatedWidth","visibleTabs","overflowTabs","_this$getTabDimension","widthWithGap","relatedDropdownId","dropdownItem","remainingSpace","originalTab","_this$getTabDimension2","shouldBeVisible","hasDropdownItems","Toast","toast","toasts","queue","processingQueue","onInitialize","lastToastContent","isSimilarToast","addQueue","t","processQueue","shift","buildToast","placementX","placementY","dismiss","header","theme","template","maxBodyHeight","_renderTemplate","$inner","$closeBtn","toastWidth","toastHeight","toastPosX","toastPosY","bodyCloseBtn","_Toast$DEFAULTS","Dialog","dialog","dialogs","actions","Object","keys","hasOwnProperty","buildDialog","footer","centered","preventScroll","closeBtn","overflowVisible","actionInProgress","actionThreshold","commonActions","actionKey","_iterator","_createForOfIteratorHelperLoose","_step","commonAction","resetActionFlag","immediately","promiseResult","updateMaxBodyHeight","newHeight","lastOrientation","orientation","orientationChanged","$prevDialog","eq","zIndex","transition","opacity","visibility","checkForBackdrop","setInterval","clearInterval","$dialogContentEl","actionsArr","visible","idx","sort","a","hasOnlyCloseAndRemove","some","btns","btnStyle","primary","btnContent","charAt","toUpperCase","slice","btnClasses","btnAttrs","attrs","isCommonAction","footerHtml","join","_renderHeader","headerContent","closeBtnHtml","overFlowVisible","_Dialog$DEFAULTS","Common","_sectionInstance","initialize","sidebarLeft","_sidebarInstance","initComponent","selectors","initQueue","child","allElements","visibleQueue","hiddenQueue","rect","allQueue","batchSize","processBatch","batch","toggleValue","requestIdleCallback","observeResize","warn","unobserveResize","addScrollListener","removeScrollListener","getSidebar","getSection"],"mappings":"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","x_google_ignoreList":[2]}