@finqu/cool 1.3.0 → 2.0.2

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 (74) hide show
  1. package/README.md +23 -9
  2. package/dist/css/cool.css +13391 -7742
  3. package/dist/css/cool.css.map +1 -1
  4. package/dist/css/cool.min.css +2 -93
  5. package/dist/css/cool.min.css.map +1 -1
  6. package/dist/js/cool.bundle.js +16051 -17050
  7. package/dist/js/cool.bundle.js.map +1 -1
  8. package/dist/js/cool.bundle.min.js +11 -18
  9. package/dist/js/cool.bundle.min.js.map +1 -1
  10. package/dist/js/cool.esm.js +3469 -4468
  11. package/dist/js/cool.esm.js.map +1 -1
  12. package/dist/js/cool.esm.min.js +2 -8
  13. package/dist/js/cool.esm.min.js.map +1 -1
  14. package/dist/js/cool.js +5083 -6089
  15. package/dist/js/cool.js.map +1 -1
  16. package/dist/js/cool.min.js +2 -8
  17. package/dist/js/cool.min.js.map +1 -1
  18. package/package.json +48 -16
  19. package/scss/LISENCE +15 -0
  20. package/scss/_badge.scss +134 -0
  21. package/scss/_button-group.scss +80 -0
  22. package/scss/_buttons.scss +304 -0
  23. package/scss/_dark.scss +637 -0
  24. package/scss/_dialog.scss +351 -0
  25. package/scss/_dropdown.scss +165 -0
  26. package/scss/_forms.scss +613 -0
  27. package/scss/_frame.scss +948 -0
  28. package/scss/_grid.scss +215 -0
  29. package/scss/_input-group.scss +326 -0
  30. package/scss/_list-group.scss +127 -0
  31. package/scss/_media.scss +439 -0
  32. package/scss/_navbar.scss +122 -0
  33. package/scss/_notification.scss +115 -0
  34. package/scss/_pagination.scss +82 -0
  35. package/scss/_popover.scss +61 -0
  36. package/scss/_reboot.scss +306 -0
  37. package/scss/_root.scss +848 -0
  38. package/scss/_section.scss +735 -0
  39. package/scss/_select.scss +559 -0
  40. package/scss/_tables.scss +611 -0
  41. package/scss/_tabs.scss +50 -0
  42. package/scss/_toast.scss +277 -0
  43. package/scss/_tooltip.scss +130 -0
  44. package/scss/_typography.scss +166 -0
  45. package/scss/_variables.scss +1229 -0
  46. package/scss/cool.scss +69 -0
  47. package/scss/utilities/_align.scss +51 -0
  48. package/scss/utilities/_animation.scss +165 -0
  49. package/scss/utilities/_background.scss +72 -0
  50. package/scss/utilities/_borders.scss +205 -0
  51. package/scss/utilities/_collapse.scss +28 -0
  52. package/scss/utilities/_cursor.scss +160 -0
  53. package/scss/utilities/_display.scss +116 -0
  54. package/scss/utilities/_embed.scss +89 -0
  55. package/scss/utilities/_fill.scss +79 -0
  56. package/scss/utilities/_filters.scss +233 -0
  57. package/scss/utilities/_flex.scss +216 -0
  58. package/scss/utilities/_grid.scss +136 -0
  59. package/scss/utilities/_opacity.scss +131 -0
  60. package/scss/utilities/_overflow.scss +242 -0
  61. package/scss/utilities/_perfect-scrollbar.scss +147 -0
  62. package/scss/utilities/_pointer-events.scss +125 -0
  63. package/scss/utilities/_position.scss +130 -0
  64. package/scss/utilities/_screen-readers.scss +95 -0
  65. package/scss/utilities/_shadows.scss +195 -0
  66. package/scss/utilities/_sizing.scss +288 -0
  67. package/scss/utilities/_spacing.scss +168 -0
  68. package/scss/utilities/_stroke.scss +124 -0
  69. package/scss/utilities/_text.scss +420 -0
  70. package/scss/utilities/_transform.scss +232 -0
  71. package/scss/utilities/_transitions.scss +147 -0
  72. package/scss/utilities/_user-select.scss +93 -0
  73. package/scss/utilities/_visibility.scss +66 -0
  74. package/scss/utilities/_z-index.scss +169 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cool.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.umd.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]}
1
+ {"version":3,"file":"cool.js","sources":["../../js/src/component.js","../../js/src/utils.js","../../js/src/section.js","../../js/src/sidebar.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/theme-switcher.js","../../js/src/common.js","../../js/index.umd.js"],"sourcesContent":["const _instanceMap = new WeakMap();\n\nexport function getInstanceMap() {\n return _instanceMap;\n}\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 key = `plugin_${this.NAME}`;\n let existing = _instanceMap.has(el) && _instanceMap.get(el)[key];\n\n if (!existing && typeof $ !== 'undefined' && $.fn) {\n existing = $(el).data(key);\n }\n\n if (!existing) {\n const instance = new this(el, options);\n\n if (!_instanceMap.has(el)) {\n _instanceMap.set(el, {});\n }\n\n _instanceMap.get(el)[key] = instance;\n\n if (typeof $ !== 'undefined' && $.fn) {\n $(el).data(key, instance);\n }\n\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 static getInstance(el) {\n const key = `plugin_${this.NAME}`;\n const map = _instanceMap.get(el);\n\n if (map && map[key]) {\n return map[key];\n }\n\n if (typeof $ !== 'undefined' && $.fn && $(el).data(key)) {\n const instance = $(el).data(key);\n\n if (!_instanceMap.has(el)) {\n _instanceMap.set(el, {});\n }\n\n _instanceMap.get(el)[key] = instance;\n\n return instance;\n }\n\n return null;\n }\n\n static removeInstance(el) {\n const key = `plugin_${this.NAME}`;\n const map = _instanceMap.get(el);\n\n if (map) {\n delete map[key];\n\n if (Object.keys(map).length === 0) {\n _instanceMap.delete(el);\n }\n }\n\n if (typeof $ !== 'undefined' && $.fn) {\n $(el).removeData(key);\n }\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}","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 let timeout;\n\n return function () {\n let context = this;\n let args = arguments;\n let later = function () {\n timeout = null;\n\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n let callNow = immediate && !timeout;\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n\nconst touchEvents = function () {\n let result = false;\n\n if ('ontouchstart' in window || navigator.maxTouchPoints > 0) {\n result = true;\n }\n\n return result;\n};\n\nconst generateUUID = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = (Math.random() * 16) | 0;\n let v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n\nconst shallowProperty = function (key) {\n return function (obj) {\n return obj == null ? void 0 : obj[key];\n };\n};\n\nconst isArrayLike = function (obj) {\n let length = shallowProperty('length')(obj);\n\n return typeof length == 'number' && length >= 0 && length <= Math.pow(2, 53) - 1;\n};\n\nconst optimizeCb = function (func, context, argCount) {\n if (context === void 0) {\n return func;\n }\n\n switch (argCount == null ? 3 : argCount) {\n case 1:\n return function (value) {\n return func.call(context, value);\n };\n\n case 3:\n return function (value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4:\n return function (accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n\n return function () {\n return func.apply(context, arguments);\n };\n};\n\nconst escapeHtml = function (html) {\n const text = document.createTextNode(html);\n const p = document.createElement('p');\n p.appendChild(text);\n return p.innerHTML;\n};\n\nconst each = function (obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n\n let i;\n let length;\n\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n let keys = Object.keys(obj);\n\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n\n return obj;\n};\n\nconst whichTransitionEvent = function () {\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 if (el.style[t] !== undefined) {\n return transEndEventNames[t];\n }\n }\n};\n\nconst playAnimation = function (el, animationClass) {\n const 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 const chars = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;', //eslint-disable-line\n '`': '&#x60;',\n '=': '&#x3D;',\n };\n return chars[chr];\n};\n\nconst escape = (string) => {\n const invalidChars = /[&<>\"'`=]/g;\n const 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\nfunction deepMerge(target, ...sources) {\n for (const source of sources) {\n if (!source || typeof source !== 'object') continue;\n for (const key of Object.keys(source)) {\n const srcVal = source[key];\n const tgtVal = target[key];\n if (\n srcVal &&\n typeof srcVal === 'object' &&\n !Array.isArray(srcVal) &&\n tgtVal &&\n typeof tgtVal === 'object' &&\n !Array.isArray(tgtVal)\n ) {\n target[key] = deepMerge({}, tgtVal, srcVal);\n } else {\n target[key] = srcVal;\n }\n }\n }\n return target;\n}\n\nexport {\n resizeManager,\n scrollManager,\n debounce,\n touchEvents,\n generateUUID,\n each,\n escapeHtml,\n whichTransitionEvent,\n playAnimation,\n escape,\n deepMerge,\n};\n","import Component from './component';\nimport { deepMerge } from './utils';\n\nclass Section extends Component {\n static NAME = 'coolSection';\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 = deepMerge({}, Section.DEFAULTS, window.Cool?.settings?.section || {}, opts || {});\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(\n (c) => c === 'is-last-visible' || c === 'is-last-visible-row' || 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 (\n 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').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 (\n !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\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 (\n table.querySelector('[data-table-link], [data-table-btn]') &&\n !table.classList.contains('table-hover')\n ) {\n table.classList.add('table-hover');\n }\n });\n\n this._addEventListener(document, 'click', (e) => {\n if (\n e.target.closest(\n '[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 )\n ) {\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 (\n e.target.closest(\n '[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 )\n ) {\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) => item.classList.remove('active'));\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","import Component from './component';\nimport { deepMerge } from './utils';\n\nlet PerfectScrollbar = null;\n\ntry {\n PerfectScrollbar = require('perfect-scrollbar');\n if (PerfectScrollbar && PerfectScrollbar.default) {\n PerfectScrollbar = PerfectScrollbar.default;\n }\n} catch (e) {\n // PerfectScrollbar is optional\n}\n\nif (typeof window !== 'undefined' && PerfectScrollbar && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nclass Sidebar extends Component {\n static NAME = 'coolSidebar';\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 static _jQueryInterface(config) {\n const $el = $(this);\n let instance = $el.data(`plugin_${Sidebar.NAME}`);\n\n if (!instance) {\n instance = new Sidebar(this, typeof config === 'object' && config);\n $el.data(`plugin_${Sidebar.NAME}`, instance);\n }\n\n if (typeof config === 'string') instance[config]();\n }\n\n static _jQueryInit() {\n if (typeof $ === 'undefined' || !$.fn) return;\n const previousName = $.fn[Sidebar.NAME];\n $.fn[Sidebar.NAME] = Sidebar._jQueryInterface;\n $.fn[Sidebar.NAME].Constructor = Sidebar;\n $.fn[Sidebar.NAME].defaults = Sidebar.DEFAULTS || {};\n $.fn[Sidebar.NAME].noConflict = () => {\n $.fn[Sidebar.NAME] = previousName;\n return Sidebar._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = deepMerge({}, Sidebar.DEFAULTS, window.Cool?.settings?.sidebar || {}, opts || {});\n\n this.el = el;\n if (el && el.jquery) this.el = el[0];\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.content = this.el.querySelector('.sidebar-content');\n this.toggler = document.querySelector('.sidebar-left-toggler');\n this.isFloating = this.el.classList.contains('sidebar-floating');\n this.isOpen = document.body.classList.contains('sidebar-left-open');\n this.tabs = Array.from(this.el.querySelectorAll('.sidebar-tab'));\n this.tabSelectors = Array.from(document.querySelectorAll('[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\n .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 =\n 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 } else {\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 if (PerfectScrollbar) {\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 } else {\n this.content.style.overflowY = 'auto';\n }\n }\n }\n\n initializeTabs() {\n this.tabScrollbars = new Map();\n\n this.tabs.forEach((tab) => {\n const scrollContainer = tab.querySelector('.tab-content');\n if (scrollContainer) {\n if (PerfectScrollbar) {\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 } else {\n scrollContainer.style.overflowY = 'auto';\n }\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(\n 'transitionend',\n () => {\n backdrop.remove();\n },\n { once: true }\n );\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;\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) < 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.forEach((selector) => {\n selector.classList.toggle('active', selector.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\nSidebar._jQueryInit();\n\nexport default Sidebar;\n","import Component from './component';\nimport { deepMerge, generateUUID, resizeManager } from './utils';\n\nclass Popover extends Component {\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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Popover.DEFAULTS, window.Cool?.settings?.popover || {}, opts || {});\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.popoverEl) {\n this.popoverEl.remove();\n this.popoverEl = null;\n }\n this.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n if (this.popoverEl) {\n this.setPosition();\n }\n this.onUpdate();\n }\n\n buildCache() {\n this.containerEl = this.el.dataset.container\n ? document.querySelector(this.el.dataset.container)\n : document.querySelector(this.opts.container);\n this.containerAutoDetect =\n this.el.dataset.containerAutoDetect !== undefined\n ? this.el.dataset.containerAutoDetect\n : this.el.dataset.containerautodetect !== undefined\n ? this.el.dataset.containerautodetect\n : this.opts.containerAutoDetect;\n this.id = 'popover-' + generateUUID();\n this.trigger = this.el.dataset.trigger || this.opts.trigger;\n this.placement = this.el.dataset.placement || this.opts.placement;\n this.align = this.el.dataset.align || this.opts.align;\n this.title = this.el.dataset.title || this.opts.title;\n this.content = this.el.dataset.content || this.opts.content;\n this.offset = this.el.dataset.offset || this.opts.offset;\n this.collisionDetection =\n (this.el.dataset.collisionDetection || this.el.dataset.collisiondetection) !== 'false'\n ? this.el.dataset.collisionDetection ||\n this.el.dataset.collisiondetection ||\n this.opts.collisionDetection\n : false;\n\n if (this.containerAutoDetect) {\n this.containerEl = this.el.offsetParent || document.body;\n }\n }\n\n bindEvents() {\n if (this.trigger === 'click') {\n this._clickHandler = () => {\n if (this.popoverEl) {\n this.close();\n } else {\n this.show();\n }\n };\n this.el.addEventListener('click', this._clickHandler);\n } else if (this.trigger === 'hover') {\n this._mouseenterHandler = () => {\n clearTimeout(this.hoverTimeout);\n this.show();\n };\n this._mouseleaveHandler = () => {\n this.hoverTimeout = setTimeout(() => {\n if (!this.popupHasFocus) {\n this.close();\n }\n }, 100);\n };\n this.el.addEventListener('mouseenter', this._mouseenterHandler);\n this.el.addEventListener('mouseleave', this._mouseleaveHandler);\n } else if (this.trigger === 'focus') {\n this._focusinHandler = () => this.show();\n this._focusoutHandler = () => this.close();\n this.el.addEventListener('focusin', this._focusinHandler);\n this.el.addEventListener('focusout', this._focusoutHandler);\n }\n\n if (window.ResizeObserver) {\n this._resizeCallback = () => {\n if (this.popoverEl && this.popoverEl.classList.contains('show')) {\n requestAnimationFrame(() => {\n this.setPosition();\n });\n }\n };\n\n resizeManager.observe(this.el, this._resizeCallback);\n }\n }\n\n unbindEvents() {\n if (this._clickHandler) this.el.removeEventListener('click', this._clickHandler);\n if (this._mouseenterHandler) this.el.removeEventListener('mouseenter', this._mouseenterHandler);\n if (this._mouseleaveHandler) this.el.removeEventListener('mouseleave', this._mouseleaveHandler);\n if (this._focusinHandler) this.el.removeEventListener('focusin', this._focusinHandler);\n if (this._focusoutHandler) this.el.removeEventListener('focusout', this._focusoutHandler);\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.popoverEl = document.createElement('div');\n this.popoverEl.className = 'popover';\n this.popoverEl.setAttribute('role', 'tooltip');\n this.popoverEl.id = this.id;\n this.popoverEl.innerHTML = `\n <h3 class=\"popover-header\">${this.title}</h3>\n <div class=\"popover-body\">${content}</div>\n `;\n\n this.containerEl.appendChild(this.popoverEl);\n\n this.popoverEl.addEventListener('mouseenter', () => {\n this.popupHasFocus = true;\n if (this.trigger === 'hover' && this.hoverTimeout) {\n clearTimeout(this.hoverTimeout);\n }\n });\n\n this.popoverEl.addEventListener('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 const popoverWidth = this.popoverEl.offsetWidth;\n const popoverHeight = this.popoverEl.offsetHeight;\n const triggerWidth = this.el.offsetWidth;\n const triggerHeight = this.el.offsetHeight;\n\n let triggerPosX, triggerPosY;\n\n const containerRect = this.containerEl.getBoundingClientRect();\n const containerOffset = { left: containerRect.left + window.scrollX, top: containerRect.top + window.scrollY };\n const triggerRect = this.el.getBoundingClientRect();\n const triggerOffset = { left: triggerRect.left + window.scrollX, top: triggerRect.top + window.scrollY };\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.popoverEl);\n const spacing = parseInt(computedStyle.getPropertyValue('--cool-popover-spacer')) || 8;\n\n const calculatePosition = (currentPlacement, currentAlign = this.align) => {\n let x = 0,\n y = 0;\n\n switch (currentPlacement) {\n case 'top':\n x =\n 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 =\n 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 =\n 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 =\n 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 Object.assign(this.popoverEl.style, {\n transform: `translate3d(${Math.round(popoverPosX)}px, ${Math.round(popoverPosY)}px, 0px)`,\n willChange: 'transform',\n });\n\n this.popoverEl.setAttribute('x-placement', finalPlacement + '-' + finalAlign);\n }\n\n show() {\n if (this.popoverEl) {\n return;\n }\n\n this.buildPopover();\n this.setPosition();\n\n this.popoverEl.classList.add('show');\n this.el.setAttribute('data-popover', this.id);\n\n this.onShow();\n }\n\n close() {\n if (!this.popoverEl) {\n return;\n }\n\n this.popoverEl.remove();\n this.el.removeAttribute('data-popover');\n this.popoverEl = null;\n\n this.onClose();\n }\n}\n\nPopover._jQueryInit();\n\nexport default Popover;\n","import Component from './component';\nimport { deepMerge, debounce, touchEvents, escape, resizeManager, scrollManager } from './utils';\n\nlet PerfectScrollbar = null;\n\ntry {\n PerfectScrollbar = require('perfect-scrollbar');\n if (PerfectScrollbar && PerfectScrollbar.default) {\n PerfectScrollbar = PerfectScrollbar.default;\n }\n} catch (e) {\n // PerfectScrollbar is optional\n}\n\nif (typeof window !== 'undefined' && PerfectScrollbar && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nconst _itemDataMap = new WeakMap();\n\nfunction _outerHeight(el) {\n if (!el) return 0;\n const style = getComputedStyle(el);\n return el.offsetHeight + parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n}\n\nclass Select extends Component {\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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Select.DEFAULTS, window.Cool?.settings?.select || {}, opts || {});\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.constructor.removeInstance(this.el);\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.selectEl.querySelectorAll('.select-item').forEach((el) => el.remove());\n this.selectItems = [];\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n this.selectHeaderEl.classList.remove('select-placeholder');\n\n if (typeof this.dynamicTitle === 'function') {\n this.selectTitleEl.textContent = 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.selectTitleEl.textContent.trim() == 0 &&\n (this.selectItems.length > 0 || this.searchApi)\n ) {\n this.selectTitleEl.textContent = this.dynamicTitleDefault;\n }\n\n if (\n this.selectItems.length == 0 &&\n !this.searchApi &&\n this.dynamicTitle &&\n this.dynamicTitleEmptyDefault &&\n this.dynamicTitleEmptyDefault !== 0\n ) {\n this.selectHeaderEl.classList.add('select-placeholder');\n if (this.selectIconContainerEl) this.selectIconContainerEl.classList.add('d-none');\n this.selectTitleEl.textContent = this.dynamicTitleEmptyDefault;\n }\n }\n\n if (this.showSearch) {\n this.searchData = [];\n this.searchInputEl.value = '';\n this.searchString = '';\n this.search.call(this);\n }\n }\n\n buildCache() {\n this.containerEl = this.el.parentElement;\n this.selectHeaderEl = this.el.querySelector('.select-header');\n this.selectTitleEl = this.el.querySelector('.select-title');\n this.cachedTitle = this.selectTitleEl ? this.selectTitleEl.textContent : '';\n this.selectIconContainerEl = this.selectHeaderEl ? this.selectHeaderEl.querySelector('.select-icon') : null;\n this.searchIconContainerEl = this.el.querySelector('.select-search-icon');\n this.selectIconDefault = this.selectIconContainerEl\n ? this.selectIconContainerEl.innerHTML\n : '<i class=\"' + (this.opts.faPro ? 'fal' : 'fas') + 'fa-angle-down icon\"></i>';\n this.name = this.el.dataset.name || this.opts.name;\n this.scroll = null;\n this.scrollContentHeight =\n this.el.dataset.scrollContentHeight || this.el.dataset.scrollcontentheight || this.opts.scrollContentHeight;\n this.useNativeScroll =\n this.el.dataset.useNativeScroll || this.el.dataset.usenativescroll || this.opts.useNativeScroll;\n this.contentWidth = this.el.dataset.contentWidth || this.el.dataset.contentwidth || this.opts.contentWidth;\n this.items = this.el.dataset.items ? JSON.parse(this.el.dataset.items) : this.opts.items;\n this.data = {};\n this.data[this.name] = [];\n this.searchData = [];\n this.searchApi = this.el.dataset.searchApi || this.el.dataset.searchapi || this.opts.searchApi;\n this.searchRequest = null;\n this.type = this.el.dataset.type || this.opts.type;\n this.contentOpen = this.el.classList.contains('show');\n this.searchPlaceholder = this.el.dataset.searchPlaceholder || this.opts.searchPlaceholder;\n this.btnCloseText = this.el.dataset.btnCloseText || this.opts.btnCloseText;\n this.labelTemplate = this.opts.labelTemplate;\n this.confirmCheck = this.opts.confirmCheck;\n this.confirmUncheck = this.opts.confirmUncheck;\n this.preventUncheck =\n this.el.dataset.preventUncheck || this.el.dataset.preventuncheck || this.opts.preventUncheck;\n this.dynamicTitle = this.el.dataset.dynamicTitle || this.el.dataset.dynamictitle || this.opts.dynamicTitle;\n this.dynamicTitleDefault =\n this.el.dataset.dynamicTitleDefault || this.el.dataset.dynamictitledefault || this.opts.dynamicTitleDefault;\n this.dynamicTitleEmptyDefault =\n this.el.dataset.dynamicTitleEmptyDefault ||\n this.el.dataset.dynamictitleemptydefault ||\n this.opts.dynamicTitleEmptyDefault;\n this.allowNoneOnRadioSelect =\n this.el.dataset.allowNoneOnRadioSelect ||\n this.el.dataset.allowneonradioselect ||\n this.opts.allowNoneOnRadioSelect;\n this.showValidStateIcon =\n this.el.dataset.showValidStateIcon || this.el.dataset.showvalidstateicon || this.opts.showValidStateIcon;\n this.itemsToExclude =\n this.el.dataset.itemsToExclude || this.el.dataset.itemstoexclude\n ? (this.el.dataset.itemsToExclude || this.el.dataset.itemstoexclude).replace(/\\s/g, '').split(',')\n : this.opts.itemsToExclude;\n this.primaryKeyword =\n this.el.dataset.primaryKeyword || this.el.dataset.primarykeyword || this.opts.primaryKeyword;\n this.useChips = this.el.dataset.useChips || this.el.dataset.usechips || this.opts.useChips;\n this.position = this.el.dataset.position || this.opts.position;\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 (\n (this.el.dataset.setData || this.el.dataset.setdata) &&\n (this.el.dataset.setData || this.el.dataset.setdata) != ''\n ) {\n try {\n this.data = JSON.parse(this.el.dataset.setData || this.el.dataset.setdata);\n } catch (e) {\n this.data = this.el.dataset.setData || this.el.dataset.setdata;\n }\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 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.querySelector('.select-search')) {\n this.showSearch = true;\n } else {\n this.showSearch = this.el.dataset.showSearch || this.el.dataset.showsearch || this.opts.showSearch;\n }\n\n if (this.el.querySelector('.select-footer')) {\n this.showFooter = true;\n } else {\n this.showFooter = this.el.dataset.showFooter || this.el.dataset.showfooter || this.opts.showFooter;\n }\n\n this.selectEl = this.el.querySelector('.select-content');\n\n if (!this.selectEl) {\n let itemElements = this._renderItemList(this.items);\n\n const temp = document.createElement('div');\n temp.innerHTML = `\n <div class=\"select-content\">\n ${this._renderSearch()}\n <div class=\"select-scrollable-content\"></div>\n ${this._renderFooter()}\n </div>\n `;\n this.selectEl = temp.firstElementChild;\n this.el.appendChild(this.selectEl);\n\n const scrollableEl = this.selectEl.querySelector('.select-scrollable-content');\n itemElements.forEach((el) => scrollableEl.appendChild(el));\n } else {\n const selectItemEls = this.selectEl.querySelectorAll('.select-item');\n\n if (selectItemEls.length > 0 && this.itemsToExclude.length > 0) {\n selectItemEls.forEach((el) => {\n const input = el.querySelector('input');\n if (input && this.itemsToExclude.indexOf(input.value) > -1) {\n el.remove();\n }\n });\n }\n }\n\n if (this.data[this.name].length > 0) {\n const values = this.useChips\n ? this.data[this.name].map((item) => item[this.primaryKeyword].toString())\n : this.data[this.name].map(String);\n\n this.selectEl.querySelectorAll('input').forEach((input) => {\n if (values.includes(input.value)) {\n input.checked = true;\n if (this.type === 'radio') {\n input.classList.add('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.selectEl.querySelector('input:checked');\n if (checkedInput) {\n const labelEl = checkedInput.parentElement.querySelector('[data-label]');\n if (labelEl) this.selectTitleEl.textContent = labelEl.textContent;\n }\n }\n }\n\n this.scrollableContentEl = this.selectEl.querySelector('.select-scrollable-content') || null;\n this.selectItems = Array.from(this.selectEl.querySelectorAll('.select-item'));\n this.selectHeaderEl.classList.remove('select-placeholder');\n\n if (this.searchApi && this.searchApi.length) {\n this._performInitialSearch();\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.selectTitleEl.textContent = 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.selectTitleEl.textContent.trim() == 0 &&\n (this.selectItems.length > 0 || this.searchApi)\n ) {\n this.selectTitleEl.textContent = this.dynamicTitleDefault;\n }\n\n if (\n this.selectItems.length == 0 &&\n !this.searchApi &&\n this.dynamicTitle &&\n this.dynamicTitleEmptyDefault &&\n this.dynamicTitleEmptyDefault !== 0\n ) {\n this.selectHeaderEl.classList.add('select-placeholder');\n if (this.selectIconContainerEl) this.selectIconContainerEl.classList.add('d-none');\n this.selectTitleEl.textContent = this.dynamicTitleEmptyDefault;\n }\n }\n\n if (this.showSearch) {\n this.searchContainerEl = this.selectEl.querySelector('.select-search');\n this.searchInputEl = this.selectEl.querySelector('[name=\"select-search\"]');\n this.clearSearchButtonEl = this.selectEl.querySelector('[data-clear-search]');\n\n if (this.searchInputEl) this.searchInputEl.tabIndex = -1;\n }\n\n if (this.showFooter) {\n this.footerContainerEl = this.selectEl.querySelector('.select-footer');\n this.closeButtonEl = this.selectEl.querySelector('[data-select-close]');\n\n if (this.closeButtonEl) this.closeButtonEl.tabIndex = -1;\n }\n\n this.buildSearchData();\n }\n\n _updateScrollbarVisibility() {\n if (this.scroll && this.scrollableContentEl) {\n const element = this.scrollableContentEl;\n const needsScrollbar = element.scrollHeight > element.clientHeight;\n\n if (needsScrollbar) {\n this.scroll.settings.suppressScrollY = false;\n this.scrollableContentEl.classList.add('ps-show-rail-y');\n } else {\n this.scroll.settings.suppressScrollY = true;\n this.scrollableContentEl.classList.remove('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 fetch(this.searchApi)\n .then((response) => response.json())\n .then((data) => {\n let items = data.filter((item) => {\n return (\n this.itemsToExclude.indexOf(item[this.primaryKeyword].toString()) === -1 &&\n item[this.primaryKeyword] != 0\n );\n });\n\n if (this.useChips && this.data[this.name].length > 0) {\n this.data[this.name].forEach((dataItem) => {\n const matchingItem = items.find(\n (item) => item[this.primaryKeyword].toString() === dataItem[this.primaryKeyword].toString()\n );\n if (matchingItem) {\n dataItem.label = matchingItem.label || matchingItem.name || matchingItem.value;\n }\n });\n\n this.selectTitleEl.innerHTML = '';\n this.data[this.name].forEach((dataItem) => {\n const chip = document.createElement('span');\n chip.className = 'chip';\n chip.dataset.value = dataItem[this.primaryKeyword];\n chip.innerHTML = `<span class=\"chip-title\">${escape(dataItem.label)}</span>`;\n\n chip.addEventListener('click', (e) => {\n e.stopPropagation();\n const input = this.selectEl.querySelector(\n `input[value=\"${dataItem[this.primaryKeyword]}\"]`\n );\n if (input) {\n input.checked = false;\n input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n });\n\n this.selectTitleEl.appendChild(chip);\n });\n }\n\n let resultElements = this._renderItemList(items);\n this.scrollableContentEl.innerHTML = '';\n resultElements.forEach((el) => this.scrollableContentEl.appendChild(el));\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.scrollableContentEl.querySelector(`input[value=\"${valueId}\"]`);\n\n if (input) {\n input.checked = true;\n if (this.type === 'radio') {\n input.classList.add('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 .catch((_error) => {\n this._hideSpinner();\n this.scrollableContentEl.innerHTML = '<div class=\"p-3 text-danger\">Error loading items</div>';\n });\n }\n\n buildScroll() {\n if (this.scrollableContentEl) {\n let scrollContentHeight = this.scrollContentHeight;\n\n if (this.showSearch && this.searchContainerEl) {\n scrollContentHeight = scrollContentHeight - (_outerHeight(this.searchContainerEl) || 0);\n }\n\n if (this.showFooter && this.footerContainerEl) {\n scrollContentHeight = scrollContentHeight - (_outerHeight(this.footerContainerEl) || 0);\n }\n\n const marginTop = parseInt(getComputedStyle(this.scrollableContentEl).marginTop, 10) || 0;\n const marginBottom = parseInt(getComputedStyle(this.scrollableContentEl).marginBottom, 10) || 0;\n const totalMargin = marginTop + marginBottom;\n\n const actualContentHeight = this.scrollableContentEl.scrollHeight;\n const finalHeight = Math.min(actualContentHeight, scrollContentHeight + totalMargin);\n\n this.scrollableContentEl.style.maxHeight = finalHeight + 'px';\n\n if (touchEvents()) {\n this.scrollableContentEl.style.overflowY = 'auto';\n } else {\n if (this.useNativeScroll === false && PerfectScrollbar) {\n this.scrollableContentEl.classList.add('ps-dark');\n this.scroll = new PerfectScrollbar(this.scrollableContentEl, {\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 } else {\n this.scrollableContentEl.style.overflowY = 'auto';\n }\n\n this.scrollableContentEl.querySelectorAll('[tabindex=\"0\"]').forEach((el) => {\n el.tabIndex = -1;\n });\n }\n }\n }\n\n buildSearchData() {\n this.searchData = [];\n\n const selectLabels = this.selectEl.querySelectorAll('[data-label]');\n\n selectLabels.forEach((el, i) => {\n this.searchData.push({\n id: i,\n val: el.textContent.trim(),\n });\n });\n }\n\n bindEvents() {\n this._headerClickHandler = () => {\n if (this.contentOpen) {\n this.close();\n } else if (this.selectItems.length > 0 || this.searchApi) {\n this.show();\n }\n };\n\n this.selectHeaderEl.addEventListener('click', this._headerClickHandler);\n\n this._checkboxChangeHandler = (e) => {\n if (!e.target.matches('input[type=\"checkbox\"]')) return;\n const el = e.target;\n const val = el.value;\n const closeTimeout = 600;\n\n this.preventClose = true;\n\n if (typeof this.confirmCheck === 'function' && el.checked) {\n el.checked = false;\n\n this.confirmCheck((cb) => {\n if (cb == 'confirmed') {\n if (this.useChips) {\n const hasItem = this.data[this.name].find((item) => item[this.primaryKeyword] === val);\n if (!hasItem) {\n const labelEl = el.parentElement.querySelector('[data-label]');\n this.data[this.name].push({\n [this.primaryKeyword]: val,\n label: labelEl ? labelEl.textContent : val,\n });\n }\n } else if (this.data[this.name].indexOf(val) === -1) {\n this.data[this.name].push(val);\n }\n el.checked = true;\n this.onSelect(el);\n }\n setTimeout(() => {\n this.preventClose = false;\n }, closeTimeout);\n }, el);\n } else if (el.checked) {\n if (this.useChips) {\n const hasItem = this.data[this.name].find((item) => item[this.primaryKeyword] === val);\n if (!hasItem) {\n const labelEl = el.parentElement.querySelector('[data-label]');\n this.data[this.name].push({\n [this.primaryKeyword]: val,\n label: labelEl ? labelEl.textContent : val,\n });\n }\n } else if (this.data[this.name].indexOf(val) === -1) {\n this.data[this.name].push(val);\n }\n this.onSelect(el);\n setTimeout(() => {\n this.preventClose = false;\n }, closeTimeout);\n } else if (typeof this.confirmUncheck === 'function' && !el.checked) {\n el.checked = true;\n this.confirmUncheck((cb) => {\n if (cb == 'confirmed') {\n if (this.useChips) {\n this.data[this.name] = this.data[this.name].filter((n) => n[this.primaryKeyword] != val);\n } else {\n this.data[this.name] = this.data[this.name].filter((n) => n != val);\n }\n el.checked = false;\n this.onSelect(el);\n }\n setTimeout(() => {\n this.preventClose = false;\n }, closeTimeout);\n }, el);\n } else if (!el.checked && !this.preventUncheck) {\n if (this.useChips) {\n this.data[this.name] = this.data[this.name].filter((n) => n[this.primaryKeyword] != val);\n } else {\n this.data[this.name] = this.data[this.name].filter((n) => n != val);\n }\n this.onSelect(el);\n setTimeout(() => {\n this.preventClose = false;\n }, closeTimeout);\n } else if (!el.checked && this.preventUncheck) {\n el.checked = true;\n setTimeout(() => {\n this.preventClose = false;\n }, closeTimeout);\n }\n };\n\n this.el.addEventListener('change', this._checkboxChangeHandler);\n\n this._radioChangeHandler = (e) => {\n if (!e.target.matches('input[type=\"radio\"]')) return;\n const el = e.target;\n const val = el.value;\n\n if (el.checked) {\n if (this.useChips) {\n const labelEl = el.parentElement.querySelector('[data-label]');\n this.data[this.name] = [{ [this.primaryKeyword]: val, label: labelEl ? labelEl.textContent : val }];\n } else {\n this.data[this.name] = [val];\n }\n\n this.data[this.name] = [val];\n this.selectEl.querySelectorAll('input[type=\"radio\"]').forEach((input) => {\n if (input !== el) {\n input.checked = false;\n input.classList.remove('checked');\n }\n });\n } else {\n this.data[this.name] = [];\n }\n };\n\n this.el.addEventListener('change', this._radioChangeHandler);\n\n this._radioClickHandler = (e) => {\n if (!e.target.matches('input[type=\"radio\"]')) return;\n const el = e.target;\n\n if (el.classList.contains('checked') && this.allowNoneOnRadioSelect && !this.preventUncheck) {\n this.data[this.name] = [];\n el.checked = false;\n el.classList.remove('checked');\n\n if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n this.selectTitleEl.textContent = this.dynamicTitleDefault;\n }\n } else {\n el.classList.add('checked');\n\n if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n const labelEl = el.parentElement.querySelector('[data-label]');\n this.selectTitleEl.textContent = escape(labelEl ? labelEl.textContent : '');\n }\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.selectTitleEl.textContent = this.dynamicTitle.call(el);\n }\n\n this.onSelect(el);\n };\n\n this.el.addEventListener('click', this._radioClickHandler);\n\n if (this.scroll) {\n const thumb = this.scrollableContentEl ? this.scrollableContentEl.querySelector('.ps__thumb-y') : null;\n if (thumb) {\n this._thumbMousedownHandler = () => {\n this.scrollableContentEl.classList.add('ps-mousedown-scroll');\n };\n thumb.addEventListener('mousedown', this._thumbMousedownHandler);\n }\n\n this._documentMouseupHandler = () => {\n if (this.scrollableContentEl && this.scrollableContentEl.classList.contains('ps-mousedown-scroll')) {\n this.scrollableContentEl.classList.remove('ps-mousedown-scroll');\n }\n };\n document.addEventListener('mouseup', this._documentMouseupHandler);\n }\n\n if (this.showSearch) {\n this._searchKeydownHandler = debounce(() => {\n this.searchString = this.searchInputEl.value.trim();\n this.search.call(this);\n }, 250);\n\n this.searchInputEl.addEventListener('keydown', this._searchKeydownHandler);\n\n this._searchFocusinHandler = () => {\n this.searchContainerEl.classList.add('focused');\n };\n this.searchInputEl.addEventListener('focusin', this._searchFocusinHandler);\n\n this._searchFocusoutHandler = () => {\n this.searchContainerEl.classList.remove('focused');\n };\n this.searchInputEl.addEventListener('focusout', this._searchFocusoutHandler);\n\n this._clearSearchHandler = (e) => {\n const btn = e.target.closest('[data-clear-search]');\n if (!btn) return;\n if (this.searchString.length) {\n this.searchInputEl.value = '';\n this.searchString = '';\n this.search.call(this);\n }\n };\n this.searchContainerEl.addEventListener('click', this._clearSearchHandler);\n }\n\n if (this.showFooter && this.closeButtonEl) {\n this._footerCloseHandler = () => {\n this.close();\n };\n this.closeButtonEl.addEventListener('click', this._footerCloseHandler);\n }\n\n this._documentClickHandler = (e) => {\n if (!this.el.contains(e.target) && this.contentOpen && !this.preventClose) {\n this.close.call(this);\n }\n };\n\n document.addEventListener('touchstart', this._documentClickHandler);\n document.addEventListener('click', this._documentClickHandler);\n\n if (this.position === 'fixed') {\n this._scrollCallback = () => {\n if (!this.el || !this.el.classList.contains('show')) {\n return;\n }\n\n requestAnimationFrame(() => {\n const selectContent = this.el.querySelector('.select-content');\n const containerRect = this.containerEl.getBoundingClientRect();\n if (selectContent) {\n Object.assign(selectContent.style, {\n top: containerRect.top + 'px',\n left: containerRect.left + 'px',\n width: this.contentWidth\n ? `var(--cool-select-content-width, ${this.contentWidth}px)`\n : this.containerEl.offsetWidth + 'px',\n });\n }\n });\n };\n\n if (window.ResizeObserver) {\n this._resizeCallback = () => {\n if (!this.el || !this.el.classList.contains('show')) {\n return;\n }\n\n requestAnimationFrame(() => {\n const selectContent = this.el.querySelector('.select-content');\n const containerRect = this.containerEl.getBoundingClientRect();\n if (selectContent) {\n Object.assign(selectContent.style, {\n top: containerRect.top + 'px',\n left: containerRect.left + 'px',\n width: this.contentWidth\n ? `var(--cool-select-content-width, ${this.contentWidth}px)`\n : this.containerEl.offsetWidth + 'px',\n });\n }\n });\n };\n\n resizeManager.observe(document.body, this._resizeCallback);\n }\n }\n }\n\n unbindEvents() {\n if (this._headerClickHandler) {\n this.selectHeaderEl.removeEventListener('click', this._headerClickHandler);\n this._headerClickHandler = null;\n }\n\n if (this._checkboxChangeHandler) {\n this.el.removeEventListener('change', this._checkboxChangeHandler);\n this._checkboxChangeHandler = null;\n }\n\n if (this._radioChangeHandler) {\n this.el.removeEventListener('change', this._radioChangeHandler);\n this._radioChangeHandler = null;\n }\n\n if (this._radioClickHandler) {\n this.el.removeEventListener('click', this._radioClickHandler);\n this._radioClickHandler = null;\n }\n\n if (this._thumbMousedownHandler) {\n const thumb = this.scrollableContentEl ? this.scrollableContentEl.querySelector('.ps__thumb-y') : null;\n if (thumb) thumb.removeEventListener('mousedown', this._thumbMousedownHandler);\n this._thumbMousedownHandler = null;\n }\n\n if (this._documentMouseupHandler) {\n document.removeEventListener('mouseup', this._documentMouseupHandler);\n this._documentMouseupHandler = null;\n }\n\n if (this._searchKeydownHandler) {\n this.searchInputEl.removeEventListener('keydown', this._searchKeydownHandler);\n this._searchKeydownHandler = null;\n }\n\n if (this._searchFocusinHandler) {\n this.searchInputEl.removeEventListener('focusin', this._searchFocusinHandler);\n this._searchFocusinHandler = null;\n }\n\n if (this._searchFocusoutHandler) {\n this.searchInputEl.removeEventListener('focusout', this._searchFocusoutHandler);\n this._searchFocusoutHandler = null;\n }\n\n if (this._clearSearchHandler && this.searchContainerEl) {\n this.searchContainerEl.removeEventListener('click', this._clearSearchHandler);\n this._clearSearchHandler = null;\n }\n\n if (this._footerCloseHandler && this.closeButtonEl) {\n this.closeButtonEl.removeEventListener('click', this._footerCloseHandler);\n this._footerCloseHandler = null;\n }\n\n if (this._documentClickHandler) {\n document.removeEventListener('touchstart', this._documentClickHandler);\n document.removeEventListener('click', this._documentClickHandler);\n this._documentClickHandler = null;\n }\n\n if (this.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 faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (this.showValidStateIcon) {\n if (this.selectIconContainerEl)\n this.selectIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-check text-success icon\"></i>`;\n } else {\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n }\n\n if (this.useChips) {\n this.selectTitleEl.innerHTML = '';\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[this.name].forEach((value) => {\n searchUrl += encodeURIComponent('#' + value);\n currentCount++;\n if (currentCount !== itemCount) {\n searchUrl += '+';\n }\n });\n\n fetch(searchUrl)\n .then((response) => response.json())\n .then((data) => {\n let itemIds = data.map((item) => item.id.toString());\n\n this.data[this.name] = this.data[this.name].filter((value) => {\n if (this.useObjects) {\n return itemIds.indexOf(value[this.primaryKeyword].toString()) > -1;\n } else {\n return itemIds.indexOf(value.toString()) > -1;\n }\n });\n\n if (this.data[this.name].length == 0) {\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n }\n\n const items = data.filter((item) => {\n if (this.useObjects) {\n return (\n this.data[this.name].findIndex((value) => value[this.primaryKeyword] == item.id) > -1 &&\n this.itemsToExclude.indexOf(item.id) === -1 &&\n item.id != 0\n );\n } else {\n return (\n this.data[this.name].indexOf(item.id) > -1 &&\n this.itemsToExclude.indexOf(item.id) === -1 &&\n item.id != 0\n );\n }\n });\n\n let resultElements = this._renderItemList(items);\n resultElements.forEach((el) => this.scrollableContentEl.appendChild(el));\n\n let inputs = Array.from(this.scrollableContentEl.querySelectorAll('input'));\n\n this._updateScrollbarVisibility();\n\n if (this.scrollableContentEl.querySelector('input[type=\"checkbox\"]')) {\n this.type = 'checkbox';\n } else if (this.scrollableContentEl.querySelector('input[type=\"radio\"]')) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n this.data[this.name].forEach((value) => {\n let valueId = this.useObjects ? value[this.primaryKeyword].toString() : value.toString();\n let input = inputs.find((inp) => inp.value == valueId);\n\n if (input) {\n input.checked = true;\n if (this.useChips) {\n this._renderChips();\n }\n this.onSelect(input);\n }\n });\n } else if (this.type == 'radio') {\n const value = this.data[this.name][0];\n let input = inputs.find((inp) => inp.value == value);\n\n if (input) {\n input.checked = true;\n input.classList.add('checked');\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n const labelEl = input.parentElement.querySelector('[data-label]');\n if (labelEl) this.selectTitleEl.textContent = labelEl.textContent;\n }\n this.onSelect(input);\n }\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.selectTitleEl.textContent = this.dynamicTitle.call(this);\n }\n });\n } else {\n let inputs = Array.from(this.scrollableContentEl.querySelectorAll('input'));\n let inputValues = inputs.map((inp) => inp.value.toString());\n\n this.data[this.name] = this.data[this.name].filter((value) => {\n return inputValues.indexOf(value.toString()) > -1;\n });\n\n if (this.data[this.name].length == 0) {\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n }\n\n if (this.scrollableContentEl.querySelector('input[type=\"checkbox\"]')) {\n this.type = 'checkbox';\n } else if (this.scrollableContentEl.querySelector('input[type=\"radio\"]')) {\n this.type = 'radio';\n }\n\n if (this.type == 'checkbox') {\n this.data[this.name].forEach((value) => {\n let input = inputs.find((inp) => inp.value == value);\n if (input) {\n input.checked = true;\n if (this.useChips) {\n this._renderChips();\n }\n this.onSelect(input);\n }\n });\n } else if (this.type == 'radio') {\n let input = inputs.find((inp) => inp.value == this.data[this.name][0]);\n\n if (input) {\n input.checked = true;\n input.classList.add('checked');\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n const labelEl = input.parentElement.querySelector('[data-label]');\n if (labelEl) this.selectTitleEl.textContent = labelEl.textContent;\n }\n this.onSelect(input);\n }\n }\n\n if (typeof this.dynamicTitle === 'function') {\n this.selectTitleEl.textContent = this.dynamicTitle.call(this);\n }\n }\n }\n\n _renderChips() {\n this.selectTitleEl.innerHTML = '';\n\n if (this.data[this.name].length === 0) {\n if (this.dynamicTitle && this.dynamicTitleDefault) {\n this.selectTitleEl.textContent = this.dynamicTitleDefault;\n } else {\n this.selectTitleEl.textContent = 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.selectEl ? this.selectEl.querySelector(`input[value=\"${value}\"]`) : null;\n const labelEl = input ? input.parentElement.querySelector('[data-label]') : null;\n const label = labelEl ? labelEl.textContent : dataItem.label || dataItem.name || dataItem.value || value;\n\n const chip = document.createElement('span');\n chip.className = 'chip';\n chip.dataset.value = value;\n chip.innerHTML = `<span class=\"chip-title\">${escape(label)}</span>`;\n\n chip.addEventListener('click', (e) => {\n e.stopPropagation();\n\n const targetInput = this.selectEl.querySelector(`input[value=\"${value}\"]`);\n\n if (targetInput) {\n targetInput.checked = false;\n targetInput.dispatchEvent(new Event('change', { bubbles: true }));\n } else {\n if (this.useChips) {\n this.data[this.name] = this.data[this.name].filter(\n (item) => item[this.primaryKeyword].toString() !== value.toString()\n );\n } else {\n this.data[this.name] = this.data[this.name].filter(\n (item) => item.toString() !== value.toString()\n );\n }\n\n if (this.searchApi.length) {\n this.items = this.items.filter(\n (item) => item[this.primaryKeyword].toString() !== value.toString()\n );\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.selectTitleEl.appendChild(chip);\n });\n\n if (this.contentOpen) {\n setTimeout(() => {\n this._updateScrollbarVisibility();\n }, 0);\n }\n }\n\n search() {\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._searchAbortController) {\n this._searchAbortController.abort();\n }\n\n clearTimeout(this._searchDebounceTimer);\n this._searchDebounceTimer = setTimeout(() => {\n this._searchAbortController = new AbortController();\n\n fetch(this.searchApi + this.searchString, { signal: this._searchAbortController.signal })\n .then((response) => response.json())\n .then((data) => {\n this._searchAbortController = null;\n\n // Remove unchecked items (not static)\n this.scrollableContentEl.querySelectorAll('input:not(:checked)').forEach((input) => {\n const item = input.closest('.select-item');\n if (item && !item.classList.contains('static-item')) {\n item.remove();\n }\n });\n\n const items = data.filter((item) => {\n if (this.useObjects) {\n return (\n this.data[this.name].findIndex(\n (value) => value[this.primaryKeyword] == item.id\n ) === -1 &&\n this.itemsToExclude.indexOf(item.id) === -1 &&\n item.id != 0\n );\n } else {\n return (\n this.data[this.name].indexOf(item.id) === -1 &&\n this.itemsToExclude.indexOf(item.id) === -1 &&\n item.id != 0\n );\n }\n });\n\n let resultElements = this._renderItemList(items);\n resultElements.forEach((el) => this.scrollableContentEl.appendChild(el));\n\n this.searchIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-times icon\"></i>`;\n this.searchIconContainerEl.setAttribute('data-clear-search', 'true');\n\n this._updateScrollbarVisibility();\n\n if (this.contentOpen) {\n this._recalculateContentHeight();\n }\n })\n .catch((error) => {\n if (error.name !== 'AbortError') {\n this._hideSpinner();\n }\n });\n }, 300);\n } else {\n const searchStringLower = this.searchString.toLowerCase();\n let results = this.searchData.filter((item) => {\n return item.val.toLowerCase().indexOf(searchStringLower) > -1;\n });\n\n this.selectItems.forEach((el) => {\n el.classList.remove('d-none');\n el.classList.remove('visible');\n });\n\n results.forEach((item) => {\n if (this.selectItems[item.id]) {\n this.selectItems[item.id].classList.add('visible');\n }\n });\n\n this.selectItems\n .filter((el) => !el.classList.contains('visible'))\n .forEach((el) => el.classList.add('d-none'));\n this.searchIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-times icon\"></i>`;\n this.searchIconContainerEl.setAttribute('data-clear-search', 'true');\n }\n } else {\n this.lastSearchQuery = '';\n if (this.isSearchApiEnabled()) {\n this.scrollableContentEl.querySelectorAll('input:not(:checked)').forEach((input) => {\n const item = input.closest('.select-item');\n if (item && !item.classList.contains('static-item')) {\n item.remove();\n }\n });\n this._hideSpinner();\n this.searchIconContainerEl.setAttribute('data-clear-search', '');\n this._performInitialSearch();\n } else {\n this.selectItems.forEach((el) => {\n el.classList.remove('d-none');\n el.classList.remove('visible');\n });\n this.searchIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-search icon\"></i>`;\n this.searchIconContainerEl.setAttribute('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.querySelector('.select-content');\n const headerHeight = _outerHeight(this.selectHeaderEl);\n const contentHeight = this.scrollContentHeight;\n const viewportHeight = window.innerHeight;\n const scrollTop = window.scrollY;\n const minSpaceRequired = 50;\n\n let actualContentHeight = contentHeight;\n let searchHeight = 0;\n let footerHeight = 0;\n\n if (this.searchContainerEl) {\n searchHeight = _outerHeight(this.searchContainerEl) || 0;\n }\n\n if (this.footerContainerEl) {\n footerHeight = _outerHeight(this.footerContainerEl) || 0;\n }\n\n if (this.scrollableContentEl) {\n const scrollableHeight = this.scrollableContentEl.scrollHeight;\n const scrollableClientHeight = this.scrollableContentEl.clientHeight;\n\n actualContentHeight = Math.min(\n Math.max(scrollableHeight, scrollableClientHeight) + searchHeight + footerHeight,\n contentHeight\n );\n }\n\n let shouldOpenUpwards = this.el.classList.contains('select-dropup');\n let selectTop = 0;\n let constrainedHeight = actualContentHeight;\n\n const contentMarginBottom = parseInt(getComputedStyle(selectContent).marginBottom || 0, 10);\n const contentMarginTop = parseInt(getComputedStyle(selectContent).marginTop || 0, 10);\n\n if (this.position === 'fixed') {\n const containerRect = this.containerEl.getBoundingClientRect();\n const top = containerRect.top;\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 containerRect = this.containerEl.getBoundingClientRect();\n const containerTop = containerRect.top + scrollTop;\n const spaceBelow = viewportHeight - (containerTop - scrollTop) - headerHeight - minSpaceRequired;\n const spaceAbove = containerTop - 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.style.height = constrainedHeight + 'px';\n\n if (this.scrollableContentEl) {\n this.scrollableContentEl.style.maxHeight = scrollableMaxHeight + 'px';\n }\n\n selectContent.style.top = selectTop + 'px';\n\n if (this.scroll) {\n setTimeout(() => {\n this._updateScrollbarVisibility();\n }, 0);\n }\n }\n\n show() {\n if (this.el.classList.contains('show')) {\n return;\n }\n\n let top = 0;\n let left = 0;\n\n if (this.position === 'fixed') {\n const containerRect = this.containerEl.getBoundingClientRect();\n top = containerRect.top;\n left = containerRect.left;\n }\n\n const otherSelects = document.querySelectorAll('.select.show');\n let zindex = 1;\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n if (otherSelects.length) {\n zindex = parseInt(getComputedStyle(otherSelects[0]).zIndex, 10) + 2;\n }\n\n this.el.classList.add('show');\n\n if (!otherSelects.length) {\n zindex = parseInt(getComputedStyle(this.el).zIndex, 10) + 1;\n }\n\n const selectContent = this.el.querySelector('.select-content');\n const headerHeight = _outerHeight(this.selectHeaderEl);\n const contentHeight = this.scrollContentHeight;\n const viewportHeight = window.innerHeight;\n const scrollTop = window.scrollY;\n const minSpaceRequired = 50;\n\n let actualContentHeight = contentHeight;\n let searchHeight = 0;\n let footerHeight = 0;\n\n if (this.searchContainerEl) {\n searchHeight = _outerHeight(this.searchContainerEl) || 0;\n }\n\n if (this.footerContainerEl) {\n footerHeight = _outerHeight(this.footerContainerEl) || 0;\n }\n\n if (this.scrollableContentEl) {\n const scrollableHeight = this.scrollableContentEl.scrollHeight;\n const scrollableClientHeight = this.scrollableContentEl.clientHeight;\n\n actualContentHeight = Math.min(\n Math.max(scrollableHeight, scrollableClientHeight) + searchHeight + footerHeight,\n contentHeight\n );\n }\n\n let shouldOpenUpwards = false;\n let selectTop = 0;\n let constrainedHeight = actualContentHeight;\n\n const contentMarginBottom = parseInt(getComputedStyle(selectContent).marginBottom || 0, 10);\n const contentMarginTop = parseInt(getComputedStyle(selectContent).marginTop || 0, 10);\n\n if (this.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 containerRect = this.containerEl.getBoundingClientRect();\n const containerTop = containerRect.top + scrollTop;\n const spaceBelow = viewportHeight - (containerTop - scrollTop) - headerHeight - minSpaceRequired;\n const spaceAbove = containerTop - 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.style.height = constrainedHeight + 'px';\n\n if (this.scrollableContentEl) {\n this.scrollableContentEl.style.maxHeight = scrollableMaxHeight + 'px';\n }\n\n this.el.classList.toggle('select-dropup', shouldOpenUpwards);\n this.el.classList.toggle('select-dropdown', !shouldOpenUpwards);\n\n const contentRequiredWidth = selectContent.offsetWidth;\n\n Object.assign(selectContent.style, {\n zIndex: zindex,\n position: this.position === 'fixed' ? 'fixed' : 'absolute',\n });\n\n const containerWidth = this.containerEl.offsetWidth;\n\n if (this.position === 'fixed') {\n Object.assign(selectContent.style, {\n top: selectTop + 'px',\n left: left + 'px',\n width: this.contentWidth\n ? `var(--cool-select-content-width, ${this.contentWidth}px)`\n : containerWidth + 'px',\n });\n } else {\n Object.assign(selectContent.style, {\n top: selectTop + 'px',\n width: this.contentWidth\n ? `var(--cool-select-content-width, ${this.contentWidth}px)`\n : contentRequiredWidth > containerWidth\n ? 'var(--cool-select-content-width, auto)'\n : containerWidth + 'px',\n });\n }\n\n selectContent.style.minWidth = containerWidth + 'px';\n\n if (this.scrollableContentEl) {\n if (this.scrollableContentEl.offsetHeight < this.scrollableContentEl.scrollHeight) {\n this.scrollableContentEl.scrollTop = 1;\n this.scrollableContentEl.scrollTop = 0;\n }\n }\n\n if (shouldOpenUpwards) {\n if (this.selectIconContainerEl)\n this.selectIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-angle-down icon\"></i>`;\n } else {\n if (this.selectIconContainerEl)\n this.selectIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-angle-up icon\"></i>`;\n }\n\n setTimeout(() => {\n this.el.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.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 faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n\n this.el.classList.remove('show');\n this.el.classList.remove('select-dropup', 'select-dropdown');\n\n setTimeout(() => {\n this.el.removeAttribute('style');\n }, 300);\n\n if (this.data[this.name].length > 0 && this.showValidStateIcon) {\n if (this.selectIconContainerEl)\n this.selectIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-check text-success icon\"></i>`;\n } else {\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n }\n\n this.contentOpen = false;\n\n if (this.position === 'fixed' && this._scrollCallback) {\n scrollManager.remove(`select-${this.name}`);\n }\n\n this.onClose();\n }\n }\n\n onSelect(el) {\n const itemEl = el.closest('.select-item');\n const data = itemEl ? _itemDataMap.get(itemEl) || {} : {};\n const val = el.value;\n\n if (this.searchApi.length && Object.keys(data).length > 0) {\n if (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 const labelEl = el.parentElement.querySelector('[data-label]');\n this.data[this.name].push({\n [this.primaryKeyword]: val,\n label: labelEl ? labelEl.textContent : val,\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 = this.items.filter((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(\n (item) => item[this.primaryKeyword].toString() !== val.toString()\n );\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 = this.items.filter((item) => item[key] == val)[0];\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 (!Array.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 = this.items.filter((item) => {\n return ids.indexOf(item.id.toString()) > -1;\n });\n\n if (segment) {\n result = result.map((obj) => obj[segment]).filter((obj) => obj != null);\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) =>\n this.useChips ? item[this.primaryKeyword].toString() : item.toString()\n );\n const resultElements = [];\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\n const temp = document.createElement('div');\n temp.innerHTML = this._getItemTemplate(item, i, label, isChecked).trim();\n const el = temp.firstElementChild;\n\n _itemDataMap.set(el, item);\n resultElements.push(el);\n }\n\n return resultElements;\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.searchIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-spinner-third fa-spin icon\"></i>`;\n }\n\n _hideSpinner() {\n let faNameSpace = this.opts.faPro ? 'fal' : 'fas';\n this.searchIconContainerEl.innerHTML = `<i class=\"${faNameSpace} fa-search icon\"></i>`;\n }\n\n selectItem(id) {\n const input = this.selectEl.querySelector(`input[value=\"${id}\"]`);\n\n if (input) {\n if (this.type === 'radio') {\n this.selectEl.querySelectorAll('input[type=\"radio\"]').forEach((inp) => {\n inp.checked = false;\n inp.classList.remove('checked');\n });\n if (this.useChips) {\n const labelEl = input.parentElement.querySelector('[data-label]');\n this.data[this.name] = [\n {\n [this.primaryKeyword]: id,\n label: labelEl ? labelEl.textContent : id,\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(\n (item) => item[this.primaryKeyword].toString() === id.toString()\n );\n if (!hasItem) {\n const labelEl = input.parentElement.querySelector('[data-label]');\n this.data[this.name].push({\n [this.primaryKeyword]: id,\n label: labelEl ? labelEl.textContent : id,\n });\n }\n } else if (this.data[this.name].indexOf(id) === -1) {\n this.data[this.name].push(id);\n }\n }\n\n input.checked = true;\n input.classList.add('checked');\n input.dispatchEvent(new Event('change', { bubbles: true }));\n\n return true;\n }\n\n return false;\n }\n\n clear() {\n const checkedInputs = Array.from(this.selectEl.querySelectorAll('input:checked'));\n\n this.selectEl.querySelectorAll('input').forEach((inp) => {\n inp.checked = false;\n inp.classList.remove('checked');\n });\n this.data[this.name] = [];\n\n if (this.useChips) {\n this._renderChips();\n } else if (this.dynamicTitle && typeof this.dynamicTitle !== 'function') {\n this.selectTitleEl.textContent = this.dynamicTitleDefault || this.cachedTitle;\n }\n\n if (this.showValidStateIcon) {\n if (this.selectIconContainerEl) this.selectIconContainerEl.innerHTML = this.selectIconDefault;\n }\n\n checkedInputs.forEach((input) => {\n const itemEl = input.closest('.select-item');\n const data = itemEl ? _itemDataMap.get(itemEl) || {} : {};\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;\n","import Component from './component';\nimport { deepMerge, touchEvents, generateUUID, playAnimation, resizeManager, scrollManager } from './utils';\n\nlet PerfectScrollbar = null;\n\ntry {\n PerfectScrollbar = require('perfect-scrollbar');\n if (PerfectScrollbar && PerfectScrollbar.default) {\n PerfectScrollbar = PerfectScrollbar.default;\n }\n} catch (e) {\n // PerfectScrollbar is optional\n}\n\nif (typeof window !== 'undefined' && PerfectScrollbar && !window.PerfectScrollbar) {\n window.PerfectScrollbar = PerfectScrollbar;\n}\n\nclass Dropdown extends Component {\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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Dropdown.DEFAULTS, window.Cool?.settings?.dropdown || {}, opts || {});\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 = () => {\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, this._resizeCallback);\n resizeManager.observe(document.body, this._resizeCallback);\n\n if (this.containerEl) {\n resizeManager.observe(this.containerEl, this._resizeCallback);\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.dropdownEl.classList.contains('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 scrollParent = this.el.parentElement;\n this.scrollableParents = [];\n\n while (scrollParent && scrollParent !== document.body) {\n const overflow = getComputedStyle(scrollParent).overflowY;\n if (overflow === 'scroll' || overflow === 'auto') {\n const handler = () => this._scrollCallback();\n scrollParent.addEventListener('scroll', handler, { passive: true });\n this.scrollableParents.push({ element: scrollParent, handler });\n }\n scrollParent = scrollParent.parentElement;\n }\n }\n }\n\n setupVisibilityDetection() {\n if (!window.IntersectionObserver) return;\n\n this.intersectionObserver = new IntersectionObserver(\n (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 {\n threshold: 0.1,\n rootMargin: '50px',\n }\n );\n\n this.intersectionObserver.observe(this.el);\n }\n\n init() {\n this.buildCache()\n .then(() => {\n this.buildScroll();\n this.setupVisibilityDetection();\n this.bindEvents();\n this.onInit();\n })\n .catch(() => {});\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.dropdownEl) {\n this.dropdownEl.remove();\n }\n\n this.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n const hasDarkMode = this.scrollableContentEl && this.scrollableContentEl.classList.contains('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()\n .then(() => {\n if (hasDarkMode && this.scrollableContentEl) {\n this.scrollableContentEl.classList.add('ps-dark');\n }\n this.buildScroll();\n this.setupVisibilityDetection();\n this.bindEvents();\n this.onUpdate();\n })\n .catch(() => {});\n }\n\n buildCache() {\n return new Promise((resolve, reject) => {\n this.el.classList.add('dropdown-trigger');\n\n this.containerEl = this.el.closest('.dropdown') || this.el.parentElement;\n\n this.id = 'dropdown-' + generateUUID();\n this.animation = this.el.dataset.animation || this.opts.animation;\n this.animationIn = this.el.dataset.animationIn || this.el.dataset.animationin || this.opts.animationIn;\n this.animationOut = this.el.dataset.animationOut || this.el.dataset.animationout || this.opts.animationOut;\n this.animationSpeed =\n this.el.dataset.animationSpeed || this.el.dataset.animationspeed || this.opts.animationSpeed;\n this.position = this.el.dataset.position || this.opts.position;\n this.placement = this.el.dataset.placement || this.opts.placement;\n this.align = this.el.dataset.align || this.opts.align;\n this.offset = this.el.dataset.offset || this.opts.offset;\n this.minWidth = this.el.dataset.minWidth || this.el.dataset.minwidth || this.opts.minWidth;\n this.scroll = this.el.dataset.scroll || this.opts.scroll;\n this.scrollContentHeight = this.el.dataset.scrollContentHeight || this.opts.scrollContentHeight;\n this.positionObserver = this.el.hasAttribute('data-position-observer')\n ? JSON.parse(this.el.getAttribute('data-position-observer'))\n : this.opts.positionObserver;\n this.closeOnItemClick =\n this.el.dataset.closeOnItemClick || this.el.dataset.closeonitemclick || this.opts.closeOnItemClick;\n this.preventClose = this.el.dataset.preventClose || this.el.dataset.preventclose || false;\n this.content = this.el.dataset.content || this.opts.content;\n this.contentOpen = false;\n\n if (this.containerEl.classList.contains('dropup')) {\n this.placement = 'top';\n } else if (this.containerEl.classList.contains('dropright')) {\n this.placement = 'right';\n } else if (this.containerEl.classList.contains('dropbottom')) {\n this.placement = 'bottom';\n } else if (this.containerEl.classList.contains('dropleft')) {\n this.placement = 'left';\n }\n\n const existingMenu = this.containerEl.querySelector('.dropdown-menu');\n\n if (this.position === 'fixed' && existingMenu) {\n this.dropdownEl = existingMenu.cloneNode(true);\n this.dropdownEl.id = this.id;\n this.dropdownEl.classList.remove('show');\n\n this.align = existingMenu.classList.contains('dropdown-menu-right') ? 'end' : this.align;\n\n document.body.appendChild(this.dropdownEl);\n existingMenu.remove();\n\n // Initialize nested dropdowns\n const nestedContainers = this.dropdownEl.querySelectorAll('.dropdown');\n nestedContainers.forEach((nestedContainer) => {\n const nestedTrigger = nestedContainer.querySelector('[data-toggle=\"dropdown\"]');\n const nestedMenu = nestedContainer.querySelector('.dropdown-menu');\n\n if (nestedTrigger && nestedMenu && !Dropdown.getInstance(nestedTrigger)) {\n new Dropdown(nestedTrigger, {\n position: 'absolute',\n closeOnItemClick: false,\n positionObserver: true,\n onShow: () => {\n const parentZIndex = parseInt(getComputedStyle(this.dropdownEl).zIndex || 9999, 10);\n nestedMenu.style.zIndex = parentZIndex + 1;\n },\n });\n }\n });\n\n this.dropdownItems = Array.from(this.dropdownEl.querySelectorAll('a, button, .dropdown-item')).filter(\n (item) => {\n return item.closest('.dropdown-menu') === this.dropdownEl;\n }\n );\n\n this.scrollableContentEl = this.dropdownEl.querySelector('.dropdown-scrollable-content');\n\n if (this.minWidth) {\n this.dropdownEl.style.minWidth = this.minWidth + 'px';\n }\n\n return resolve();\n } else if (typeof this.content === 'function') {\n let menuRight = this.opts.align === 'end' ? ' dropdown-menu-right' : '';\n\n const temp = document.createElement('div');\n temp.innerHTML = `<div class=\"dropdown-menu${menuRight}\" id=\"${this.id}\">${this.content()}</div>`;\n this.dropdownEl = temp.firstElementChild;\n\n if (this.position === 'fixed') {\n document.body.appendChild(this.dropdownEl);\n } else {\n this.el.insertAdjacentElement('afterend', this.dropdownEl);\n }\n\n this.scrollableContentEl = this.dropdownEl.querySelector('.dropdown-scrollable-content') || null;\n this.align = this.dropdownEl.classList.contains('dropdown-menu-right') ? 'end' : this.align;\n\n this.dropdownItems = Array.from(this.dropdownEl.querySelectorAll('a, button, .dropdown-item')).filter(\n (item) => {\n return item.closest('.dropdown-menu') === this.dropdownEl;\n }\n );\n\n if (this.minWidth) {\n this.dropdownEl.style.minWidth = this.minWidth + 'px';\n }\n\n return resolve();\n } else {\n this.dropdownEl = this.containerEl.querySelector('.dropdown-menu') || null;\n\n if (!this.dropdownEl) return reject();\n\n this.align = this.dropdownEl.classList.contains('dropdown-menu-right') ? 'end' : this.align;\n this.scrollableContentEl = this.dropdownEl.querySelector('.dropdown-scrollable-content') || null;\n\n this.dropdownItems = Array.from(this.dropdownEl.querySelectorAll('a, button, .dropdown-item')).filter(\n (item) => {\n return item.closest('.dropdown-menu') === this.dropdownEl;\n }\n );\n\n if (this.minWidth) {\n this.dropdownEl.style.minWidth = this.minWidth + 'px';\n }\n\n return resolve();\n }\n });\n }\n\n buildScroll() {\n if (this.opts.scroll && this.scrollableContentEl) {\n this.scrollableContentEl.style.maxHeight = this.scrollContentHeight + 'px';\n\n if (touchEvents()) {\n this.scrollableContentEl.style.overflowY = 'auto';\n } else if (PerfectScrollbar) {\n this.scroll = new PerfectScrollbar(this.scrollableContentEl, {\n wheelSpeed: 1,\n wheelPropagation: false,\n minScrollbarLength: 20,\n suppressScrollX: true,\n scrollYMarginOffset: 2,\n });\n } else {\n this.scrollableContentEl.style.overflowY = 'auto';\n }\n }\n }\n\n bindEvents() {\n this._triggerClickHandler = () => {\n if (this.contentOpen) {\n this.close();\n } else {\n this.show();\n }\n };\n\n this.el.addEventListener('click', this._triggerClickHandler);\n\n if (this.position === 'fixed') {\n this._dropdownItemHandler = (e) => {\n const target = e.target.closest('a, button, .dropdown-item');\n if (!target) return;\n if (target.closest('.dropdown-menu') !== this.dropdownEl) return;\n\n if (!target.classList.contains('dropdown-trigger') && !target.dataset.toggle) {\n if (this.closeOnItemClick) {\n this.close();\n }\n this.onItemClick(target, e);\n }\n };\n this.dropdownEl.addEventListener('click', this._dropdownItemHandler);\n } else {\n this._itemHandlers = [];\n this.dropdownItems.forEach((item) => {\n const handler = (e) => {\n if (!item.classList.contains('dropdown-trigger') && !item.dataset.toggle) {\n if (this.closeOnItemClick) {\n this.close();\n }\n this.onItemClick(item, e);\n }\n };\n item.addEventListener('click', handler);\n this._itemHandlers.push({ el: item, handler });\n });\n }\n\n this._documentClickHandler = (e) => {\n if (!this.contentOpen) return;\n\n const isClickInThisDropdown =\n this.el === e.target ||\n this.el.contains(e.target) ||\n this.dropdownEl === e.target ||\n this.dropdownEl.contains(e.target);\n\n const isNestedDropdownTrigger =\n this.dropdownEl.contains(e.target) && e.target.closest('[data-toggle=\"dropdown\"]');\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 if (this._triggerClickHandler) {\n this.el.removeEventListener('click', this._triggerClickHandler);\n this._triggerClickHandler = null;\n }\n\n if (this._dropdownItemHandler && this.dropdownEl) {\n this.dropdownEl.removeEventListener('click', this._dropdownItemHandler);\n this._dropdownItemHandler = null;\n }\n\n if (this._itemHandlers) {\n this._itemHandlers.forEach(({ el, handler }) => {\n el.removeEventListener('click', handler);\n });\n this._itemHandlers = null;\n }\n\n if (this._resizeCallback) {\n resizeManager.unobserve(this.el);\n resizeManager.unobserve(document.body);\n if (this.containerEl) {\n resizeManager.unobserve(this.containerEl);\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.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Temporarily make visible for measurement if hidden (display:none returns 0 for offsetWidth/Height)\n const needsMeasure = !this.dropdownEl.classList.contains('show') && this.dropdownEl.offsetWidth === 0;\n\n if (needsMeasure) {\n this.dropdownEl.style.display = 'block';\n this.dropdownEl.style.visibility = 'hidden';\n }\n\n let dropdownWidth = this.dropdownEl.offsetWidth;\n let dropdownHeight = this.dropdownEl.offsetHeight;\n let dropdownTriggerWidth = this.el.offsetWidth;\n let dropdownTriggerHeight = this.el.offsetHeight;\n\n let dropdownTriggerPosX, dropdownTriggerPosY;\n\n if (this.position === 'fixed') {\n dropdownTriggerPosX = triggerRect.left + window.scrollX;\n dropdownTriggerPosY = triggerRect.top + window.scrollY;\n } else {\n const offsetParent = this.dropdownEl.offsetParent || document.body;\n const parentRect = offsetParent.getBoundingClientRect();\n\n dropdownTriggerPosX = triggerRect.left - parentRect.left + offsetParent.scrollLeft;\n dropdownTriggerPosY = triggerRect.top - parentRect.top + offsetParent.scrollTop;\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 =\n parseInt(getComputedStyle(document.documentElement).getPropertyValue('--cool-dropdown-spacer')) || 2;\n\n const calculatePosition = (currentPlacement, currentAlign = this.align) => {\n let x = 0,\n y = 0;\n\n switch (currentPlacement) {\n case 'top':\n x =\n currentAlign === 'end'\n ? dropdownTriggerPosX + dropdownTriggerWidth - dropdownWidth\n : dropdownTriggerPosX;\n y = dropdownTriggerPosY - dropdownHeight - spacing;\n break;\n case 'bottom':\n x =\n 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) => {\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 = triggerRect.left + (pos.x - dropdownTriggerPosX);\n const dropdownTop = 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);\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 this.containerEl.classList.remove('dropup', 'dropbottom', 'dropleft', 'dropright');\n\n if (finalPlacement === 'top') {\n this.containerEl.classList.add('dropup');\n } else if (finalPlacement === 'left') {\n this.containerEl.classList.add('dropleft');\n } else if (finalPlacement === 'right') {\n this.containerEl.classList.add('dropright');\n } else {\n this.containerEl.classList.add('dropbottom');\n }\n\n this.dropdownEl.setAttribute('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 (needsMeasure) {\n this.dropdownEl.style.display = '';\n this.dropdownEl.style.visibility = '';\n }\n\n if (this.position === 'fixed') {\n Object.assign(this.dropdownEl.style, {\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 willChange: 'auto',\n zIndex: '9999',\n });\n } else {\n const containerParent = this.el.closest('.dropdown, .dropup, .dropleft, .dropright');\n\n if (containerParent) {\n const containerRect = containerParent.getBoundingClientRect();\n\n let relativeX = triggerRect.left - containerRect.left;\n let relativeY = triggerRect.top - containerRect.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 Object.assign(this.dropdownEl.style, {\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 willChange: 'auto',\n });\n }\n }\n }\n\n show() {\n if (!this.dropdownEl || this.dropdownEl.classList.contains('show')) {\n return;\n }\n\n this.setPosition();\n\n if (this.animation) {\n this.dropdownEl.setAttribute('x-placement', this.placement + '-' + this.align);\n this.dropdownEl.classList.add(this.animationSpeed);\n playAnimation(this.dropdownEl, this.animationIn);\n this.dropdownEl.classList.add('show');\n this.dropdownEl.id = this.id;\n this.el.setAttribute('data-dropdown', this.id);\n } else {\n this.dropdownEl.setAttribute('x-placement', this.placement + '-' + this.align);\n this.dropdownEl.classList.add('show');\n this.dropdownEl.id = this.id;\n this.el.setAttribute('data-dropdown', this.id);\n }\n\n if (this.opts.scroll && this.scroll && this.scrollableContentEl) {\n this.scrollableContentEl.offsetHeight;\n\n if (this.animation) {\n const animationDuration = getComputedStyle(this.dropdownEl).animationDuration;\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 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.dropdownEl || this.preventClose) {\n return;\n }\n\n if (this.animation && !this.dropdownEl.classList.contains('animation')) {\n playAnimation(this.dropdownEl, this.animationOut).then(() => {\n this.dropdownEl.classList.remove('show');\n this.el.removeAttribute('data-dropdown');\n });\n } else {\n this.dropdownEl.classList.remove('show');\n this.el.removeAttribute('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;\n","import Component from './component';\nimport { deepMerge, generateUUID, playAnimation, resizeManager } from './utils';\n\nclass Tooltip extends Component {\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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Tooltip.DEFAULTS, window.Cool?.settings?.tooltip || {}, opts || {});\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.tooltipEl) {\n this.tooltipEl.remove();\n this.tooltipEl = null;\n }\n this.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n if (this.tooltipEl) {\n this.setPosition();\n }\n this.onUpdate();\n }\n\n buildCache() {\n this.containerEl = this.el.dataset.container\n ? document.querySelector(this.el.dataset.container)\n : document.querySelector(this.opts.container);\n this.id = 'tooltip-' + generateUUID();\n this.animation = this.el.dataset.animation !== undefined ? this.el.dataset.animation : this.opts.animation;\n this.animationIn = this.el.dataset.animationIn || this.el.dataset.animationin || this.opts.animationIn;\n this.animationOut = this.el.dataset.animationOut || this.el.dataset.animationout || this.opts.animationOut;\n this.animationSpeed =\n this.el.dataset.animationSpeed || this.el.dataset.animationspeed || this.opts.animationSpeed;\n this.placement = this.el.dataset.placement || this.opts.placement;\n this.placementChanged = false;\n this.content = this.el.dataset.content || this.opts.content;\n this.trigger = this.el.dataset.trigger || this.opts.trigger;\n }\n\n bindEvents() {\n if (this.trigger === 'auto') {\n this._mouseenterHandler = () => this.show();\n this._mouseleaveHandler = () => this.close();\n this._blurHandler = () => this.close();\n this._clickHandler = () => this.close();\n\n this.el.addEventListener('mouseenter', this._mouseenterHandler);\n this.el.addEventListener('mouseleave', this._mouseleaveHandler);\n this.el.addEventListener('blur', this._blurHandler);\n this.el.addEventListener('click', this._clickHandler);\n }\n\n if (window.ResizeObserver) {\n this._resizeCallback = () => {\n if (this.tooltipEl && this.tooltipEl.classList.contains('show')) {\n requestAnimationFrame(() => {\n this.setPosition();\n });\n }\n };\n\n resizeManager.observe(this.el, this._resizeCallback);\n }\n }\n\n unbindEvents() {\n if (this._mouseenterHandler) {\n this.el.removeEventListener('mouseenter', this._mouseenterHandler);\n this.el.removeEventListener('mouseleave', this._mouseleaveHandler);\n this.el.removeEventListener('blur', this._blurHandler);\n this.el.removeEventListener('click', this._clickHandler);\n }\n\n if (this._resizeCallback) {\n resizeManager.unobserve(this.el);\n this._resizeCallback = null;\n }\n }\n\n buildTooltip() {\n this.tooltipEl = document.createElement('div');\n this.tooltipEl.className = 'tooltip';\n this.tooltipEl.setAttribute('role', 'tooltip');\n this.tooltipEl.id = this.id;\n this.tooltipEl.innerHTML = `\n <div class=\"arrow\"></div>\n <div class=\"tooltip-inner\">${this.content}</div>\n `;\n\n this.containerEl.appendChild(this.tooltipEl);\n this.arrowEl = this.tooltipEl.querySelector('.arrow');\n }\n\n setPosition(placement) {\n if (typeof placement === 'undefined' || placement === null) {\n placement = this.placement;\n }\n\n this.tooltipEl.classList.add('tooltip-' + placement);\n\n const containerInnerWidth = this.containerEl.clientWidth;\n const containerInnerHeight = this.containerEl.clientHeight;\n const tooltipWidth = this.tooltipEl.offsetWidth;\n const tooltipHeight = this.tooltipEl.offsetHeight;\n const triggerRect = this.el.getBoundingClientRect();\n const tooltipTriggerWidth = this.el.offsetWidth;\n const tooltipTriggerHeight = this.el.offsetHeight;\n const tooltipTriggerPosX = triggerRect.left + window.scrollX;\n const tooltipTriggerPosY = triggerRect.top + window.scrollY;\n const arrowWidth = this.arrowEl.offsetWidth;\n const arrowHeight = this.arrowEl.offsetHeight;\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 this.arrowEl.style.left = arrowPos + 'px';\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 this.arrowEl.style.top = arrowPos + 'px';\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 this.arrowEl.style.left = arrowPos + 'px';\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 this.arrowEl.style.top = arrowPos + 'px';\n }\n\n Object.assign(this.tooltipEl.style, {\n position: 'absolute',\n top: '0px',\n left: '0px',\n transform: `translate3d(${tooltipPosX}px, ${tooltipPosY}px, 0px)`,\n willChange: 'transform',\n });\n\n let tooltipOverflowCount = 0;\n const tooltipPosition = {\n left: this.tooltipEl.offsetLeft,\n top: this.tooltipEl.offsetTop,\n right: containerInnerWidth - (this.tooltipEl.offsetLeft + tooltipWidth),\n bottom: containerInnerHeight - (this.tooltipEl.offsetTop + 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.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('style');\n this.setPosition('right');\n } else if (!this.placementChanged && tooltipOverflow.top && tooltipPosition.top > tooltipHeight) {\n this.placementChanged = true;\n this.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('style');\n this.setPosition('bottom');\n } else if (!this.placementChanged && tooltipOverflow.right && tooltipPosition.left > tooltipWidth) {\n this.placementChanged = true;\n this.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('style');\n this.setPosition('left');\n } else if (!this.placementChanged && tooltipOverflow.bottom && tooltipPosition.top > tooltipHeight) {\n this.placementChanged = true;\n this.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('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.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('style');\n this.setPosition('top');\n } else {\n this.placementChanged = true;\n this.tooltipEl.classList.remove('tooltip-' + placement);\n this.arrowEl.removeAttribute('style');\n this.setPosition('bottom');\n }\n } else {\n this.fixTooltipPosition = true;\n }\n\n if (this.fixTooltipPosition) {\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 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 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 // width reduction not needed with native\n } else {\n tooltipPosX -= overflowAmount;\n arrowPos += overflowAmount;\n }\n }\n\n if (tooltipOverflow.bottom) {\n let overflowAmount = Math.abs(tooltipPosition.bottom);\n tooltipPosY -= overflowAmount;\n arrowPos += overflowAmount;\n }\n\n if (placement === 'top' || placement === 'bottom') {\n this.arrowEl.style.left = arrowPos + 'px';\n } else {\n this.arrowEl.style.top = arrowPos + 'px';\n }\n\n Object.assign(this.tooltipEl.style, {\n width: tooltipWidth + 'px',\n transform: `translate3d(${tooltipPosX}px, ${tooltipPosY}px, 0px)`,\n });\n\n this.fixTooltipPosition = false;\n }\n }\n }\n\n show() {\n if (this.tooltipEl) {\n return;\n }\n\n this.buildTooltip();\n this.setPosition();\n\n if (this.animation) {\n this.tooltipEl.classList.add(this.animationSpeed);\n playAnimation(this.tooltipEl, this.animationIn);\n this.tooltipEl.classList.add('show');\n this.tooltipEl.id = this.id;\n this.el.setAttribute('data-tooltip', this.id);\n } else {\n this.tooltipEl.classList.add('show');\n this.tooltipEl.id = this.id;\n this.el.setAttribute('data-tooltip', this.id);\n }\n\n this.onShow();\n }\n\n close() {\n if (!this.tooltipEl) {\n return;\n }\n\n if (this.animation && !this.tooltipEl.classList.contains('animation')) {\n playAnimation(this.tooltipEl, this.animationOut).then(() => {\n if (this.tooltipEl) {\n this.tooltipEl.remove();\n this.el.removeAttribute('data-tooltip');\n this.tooltipEl = null;\n this.placementChanged = false;\n }\n this.onClose();\n });\n } else {\n this.tooltipEl.remove();\n this.el.removeAttribute('data-tooltip');\n this.tooltipEl = null;\n this.placementChanged = false;\n this.onClose();\n }\n }\n}\n\nTooltip._jQueryInit();\n\nexport default Tooltip;\n","import Component from './component';\nimport { deepMerge } from './utils';\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 (typeof $ === 'undefined' || !$.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 = deepMerge(\n {},\n Collapse.DEFAULTS,\n window.Cool?.settings?.collapse || {},\n 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.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n buildCache() {\n const targetSelector = this.el.dataset.target || this.opts.target;\n this.target = targetSelector\n ? document.querySelector(targetSelector)\n : this.el.parentElement?.querySelector('.collapse');\n \n this.breakpoint = this.el.dataset.breakpoint;\n this.expanded = this.el.getAttribute('aria-expanded') === 'true';\n\n if (this.target) {\n this.container = this.target.closest('.section-collapse');\n \n const indicatorSelector = this.el.dataset.target\n ? `[data-collapse-indicator=\"${this.el.dataset.target}\"]`\n : null;\n this.indicator = indicatorSelector\n ? document.querySelector(indicatorSelector)\n : this.el.parentElement?.querySelector('[data-collapse-indicator]');\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\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 { deepMerge, debounce } from './utils';\n\nclass SectionTabs extends Component {\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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, SectionTabs.DEFAULTS, window.Cool?.settings?.sectionTabs || {}, opts || {});\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.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n buildCache() {\n const sectionTabs = this.el.closest('.section-tabs');\n\n this.dropdownContainer = sectionTabs\n ? sectionTabs.querySelector('.dropdown-container')\n : this.el.querySelector('.dropdown-container');\n this.dropdownList = sectionTabs\n ? sectionTabs.querySelector('.dropdown-list')\n : this.el.querySelector('.dropdown-list');\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 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 } else {\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 } 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\n ? this.dropdownContainer.classList.contains('visible')\n ? this.dropdownContainer.offsetWidth\n : 40\n : 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;\n","import Component from './component';\nimport { deepMerge, generateUUID, playAnimation } from './utils';\n\nclass Toast extends Component {\n static NAME = 'coolToast';\n\n static DEFAULTS = {\n title: '',\n content: '',\n icon: '',\n action: null,\n template: '',\n placement: 'top-right',\n animation: true,\n animationIn: null,\n animationOut: null,\n animationSpeed: 'faster',\n offsetX: null,\n offsetY: null,\n dismiss: 3,\n header: false,\n maxVisible: 3,\n onInitialize: null,\n onDestroy: null,\n onInit: null,\n onShow: null,\n onClose: null,\n onClick: 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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Toast.DEFAULTS, window.Cool?.settings?.toast || {}, opts || {});\n\n this.container = typeof container === 'string' ? document.querySelector(container) : container;\n if (container && container.jquery) this.container = container[0];\n\n // Map of placement → { el, toasts[], queue[] }\n this.containers = new Map();\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n /**\n * Get or create the .toast-container element for a given placement.\n */\n _getContainer(placement, offsetX, offsetY, maxVisible) {\n if (this.containers.has(placement)) {\n return this.containers.get(placement);\n }\n\n const el = document.createElement('div');\n el.className = 'toast-container';\n el.setAttribute('data-placement', placement);\n\n // Apply offset overrides via CSS custom properties\n if (offsetX != null) {\n el.style.setProperty('--_toast-offset-x', typeof offsetX === 'number' ? `${offsetX}px` : offsetX);\n }\n\n if (offsetY != null) {\n el.style.setProperty('--_toast-offset-y', typeof offsetY === 'number' ? `${offsetY}px` : offsetY);\n }\n\n if (maxVisible != null) {\n el.style.setProperty('--_toast-max-visible', String(maxVisible));\n }\n\n this.container.appendChild(el);\n\n // Hover → pause all dismiss timers in this container\n el.addEventListener('mouseenter', () => {\n this._pauseTimers(entry);\n });\n\n el.addEventListener('mouseleave', () => {\n this._resumeTimers(entry);\n });\n\n const entry = {\n el,\n toasts: [],\n queue: [],\n };\n\n this.containers.set(placement, entry);\n\n return entry;\n }\n\n /**\n * Remove an empty container from the DOM.\n */\n _cleanupContainer(placement) {\n const entry = this.containers.get(placement);\n\n if (entry && entry.toasts.length === 0 && entry.queue.length === 0) {\n entry.el.remove();\n this.containers.delete(placement);\n }\n }\n\n /**\n * Update stacking indices and collapse-height custom properties\n * for all toasts in a given container.\n */\n _updateStack(entry) {\n const toasts = entry.toasts;\n const maxVisible = parseInt(\n entry.el.style.getPropertyValue('--_toast-max-visible') || this.settings.maxVisible,\n 10\n );\n\n // last child in DOM = front-most (index 0)\n for (let i = 0; i < toasts.length; i++) {\n const toast = toasts[i];\n const index = toasts.length - 1 - i; // 0 = newest (last in array)\n\n toast.el.style.setProperty('--_toast-index', String(index));\n\n // Measure height for collapse offset\n const height = toast.el.offsetHeight;\n toast.el.style.setProperty('--_toast-collapse-height', `${height}px`);\n\n // Beyond maxVisible → hidden\n if (index >= maxVisible) {\n toast.el.setAttribute('data-toast-hidden', 'true');\n } else {\n toast.el.removeAttribute('data-toast-hidden');\n }\n }\n }\n\n /**\n * Pause all dismiss timers for toasts in the given container entry.\n */\n _pauseTimers(entry) {\n const now = Date.now();\n\n for (const toast of entry.toasts) {\n if (toast._dismissTimer) {\n clearTimeout(toast._dismissTimer);\n toast._dismissTimer = null;\n toast._dismissRemaining = Math.max(0, (toast._dismissEnd || now) - now);\n }\n }\n }\n\n /**\n * Resume dismiss timers for toasts in the given container entry.\n */\n _resumeTimers(entry) {\n for (const toast of entry.toasts) {\n if (toast._dismissRemaining != null && toast._dismissRemaining > 0) {\n this._startDismissTimer(toast, toast._dismissRemaining);\n }\n\n toast._dismissRemaining = null;\n }\n }\n\n /**\n * Start (or restart) the auto-dismiss timer for a toast.\n */\n _startDismissTimer(toast, ms) {\n toast._dismissEnd = Date.now() + ms;\n toast._dismissTimer = setTimeout(() => {\n toast._dismissTimer = null;\n toast._dismissRemaining = null;\n this.close(toast);\n }, ms);\n }\n\n /**\n * Public API: create and show a toast.\n */\n init(opts) {\n const settings = deepMerge({}, this.settings, opts || {});\n const toast = this._buildToast(settings);\n\n const entry = this._getContainer(toast.placement, settings.offsetX, settings.offsetY, settings.maxVisible);\n\n entry.toasts.push(toast);\n toast._containerEntry = entry;\n\n this._showToast(toast, entry);\n this.onInit(toast);\n\n return toast;\n }\n\n destroy() {\n // Close all toasts in every container\n for (const [, entry] of this.containers) {\n const toastsCopy = [...entry.toasts];\n\n for (const toast of toastsCopy) {\n this._removeToast(toast, entry, false);\n }\n\n entry.queue.length = 0;\n }\n\n // Remove all containers from DOM\n for (const [, entry] of this.containers) {\n entry.el.remove();\n }\n\n this.containers.clear();\n this.onDestroy();\n }\n\n /**\n * Build a toast object from settings — creates the DOM element.\n */\n _buildToast(settings) {\n // Auto-detect animation direction based on placement if not explicitly set\n let animationIn = settings.animationIn;\n let animationOut = settings.animationOut;\n\n if (!animationIn || !animationOut) {\n const isTop = settings.placement.startsWith('top-');\n if (!animationIn) {\n animationIn = isTop ? 'slideInDown' : 'slideInUp';\n }\n if (!animationOut) {\n animationOut = isTop ? 'slideOutUp' : 'slideOutDown';\n }\n }\n\n const toast = {\n uuid: 'toast-' + generateUUID(),\n placement: settings.placement,\n animation: settings.animation,\n animationIn: animationIn,\n animationOut: animationOut,\n animationSpeed: settings.animationSpeed,\n dismiss: settings.dismiss,\n title: settings.title,\n content: settings.content,\n icon: settings.icon,\n action: settings.action,\n template: settings.template,\n maxBodyHeight: settings.maxBodyHeight,\n onInit: settings.onInit,\n onShow: settings.onShow,\n onClose: settings.onClose,\n onClick: settings.onClick,\n _dismissTimer: null,\n _dismissEnd: null,\n _dismissRemaining: null,\n _containerEntry: null,\n };\n\n let html;\n\n if (typeof toast.template === 'function') {\n html = toast.template(toast);\n } else {\n html = this._renderTemplate(toast);\n }\n\n const temp = document.createElement('div');\n temp.innerHTML = html.trim();\n toast.el = temp.firstElementChild;\n toast.innerEl = toast.el.querySelector('.toast-inner');\n toast.closeBtn = toast.el.querySelector('[data-toast-close]');\n\n return toast;\n }\n\n /**\n * Append toast to container and play entry animation.\n */\n _showToast(toast, entry) {\n entry.el.appendChild(toast.el);\n\n // Bind click handler\n toast._closeHandler = (e) => {\n const closeBtn = e.target.closest('[data-toast-close]');\n\n if (closeBtn) {\n e.preventDefault();\n e.stopPropagation();\n this.close(toast);\n return;\n }\n\n if (typeof toast.onClick === 'function') {\n toast.onClick.call(toast, e);\n }\n\n if (toast.action) {\n const href = typeof toast.action === 'object' ? toast.action.uri : toast.action;\n\n if (href) {\n window.location.href = href;\n }\n }\n\n this.close(toast);\n };\n\n toast.el.addEventListener('click', toast._closeHandler);\n\n // Update stack indices after adding\n this._updateStack(entry);\n\n // Force reflow and make visible before animation\n toast.el.offsetHeight; // eslint-disable-line no-unused-expressions\n toast.el.classList.add('show');\n\n // Small delay to ensure 'show' class is applied before animation\n requestAnimationFrame(() => {\n // Animate in\n if (toast.animation) {\n toast.innerEl.classList.add(toast.animationSpeed);\n playAnimation(toast.innerEl, toast.animationIn);\n }\n });\n\n // Auto-dismiss\n if (toast.dismiss) {\n this._startDismissTimer(toast, toast.dismiss * 1000);\n }\n\n this.onShow(toast);\n }\n\n /**\n * Close and remove a toast (with optional animation).\n */\n close(toast) {\n const entry = toast._containerEntry;\n if (!entry) return;\n\n // Clear dismiss timer\n if (toast._dismissTimer) {\n clearTimeout(toast._dismissTimer);\n toast._dismissTimer = null;\n }\n\n if (toast.animation && toast.innerEl && !toast.innerEl.classList.contains('animation')) {\n playAnimation(toast.innerEl, toast.animationOut).then(() => {\n this._removeToast(toast, entry, true);\n });\n } else {\n this._removeToast(toast, entry, true);\n }\n }\n\n /**\n * Remove toast element from DOM, update stack, process queue.\n */\n _removeToast(toast, entry, processQueue) {\n // Remove from DOM\n if (toast.el && toast.el.parentNode) {\n toast.el.remove();\n }\n\n // Remove click handler reference\n if (toast._closeHandler) {\n toast.el.removeEventListener('click', toast._closeHandler);\n toast._closeHandler = null;\n }\n\n // Remove from toasts array\n entry.toasts = entry.toasts.filter((t) => t.uuid !== toast.uuid);\n\n // Update remaining stack\n this._updateStack(entry);\n\n // Process queue — show next queued toast if below maxVisible\n if (processQueue && entry.queue.length > 0) {\n const maxVisible = parseInt(\n entry.el.style.getPropertyValue('--_toast-max-visible') || this.settings.maxVisible,\n 10\n );\n\n if (entry.toasts.length < maxVisible) {\n const nextToast = entry.queue.shift();\n entry.toasts.push(nextToast);\n nextToast._containerEntry = entry;\n this._showToast(nextToast, entry);\n }\n }\n\n // Cleanup empty container\n this._cleanupContainer(toast.placement);\n\n this.onClose(toast);\n }\n\n onInitialize() {\n const onInitialize = this.onInitialize;\n\n if (typeof onInitialize === 'function') {\n onInitialize.call(this.container);\n }\n }\n\n onDestroy() {\n const onDestroy = this.onDestroy;\n\n if (typeof onDestroy === 'function') {\n onDestroy.call(this.container);\n }\n }\n\n onInit(toast) {\n const onInit = toast.onInit;\n\n if (typeof onInit === 'function') {\n onInit.call(toast);\n }\n }\n\n onShow(toast) {\n const onShow = toast.onShow;\n\n if (typeof onShow === 'function') {\n onShow.call(toast);\n }\n }\n\n onClose(toast) {\n const 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 let iconHtml = '';\n\n if (typeof toast.content === 'function') {\n content = toast.content();\n } else {\n content = toast.content;\n }\n\n if (toast.icon) {\n if (typeof toast.icon === 'string' && toast.icon.trimStart().startsWith('<')) {\n iconHtml = `<div class=\"toast-icon\">${toast.icon}</div>`;\n } else {\n iconHtml = `<div class=\"toast-icon\"><img src=\"${toast.icon}\" alt=\"\"></div>`;\n }\n }\n\n if (iconHtml || toast.title) {\n header = `\n <div class=\"toast-header\">\n ${iconHtml}\n\n <span class=\"mr-auto\">${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\"><div>${content}</div>${bodyCloseBtn}</div>\n `;\n\n const actionAttr = toast.action ? ' role=\"button\" style=\"cursor: pointer;\"' : '';\n\n return `\n <div class=\"toast${toast.action ? ' toast-actionable' : ''}\" role=\"alert\" id=\"${toast.uuid}\"${actionAttr}>\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;\n","import Component from './component';\nimport { deepMerge, escapeHtml, generateUUID, playAnimation } from './utils';\n\nclass Dialog extends Component {\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 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 (typeof $ === 'undefined' || !$.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 = deepMerge({}, Dialog.DEFAULTS, window.Cool?.settings?.dialog || {}, opts || {});\n\n this.container = typeof container === 'string' ? document.querySelector(container) : container;\n if (container && container.jquery) this.container = container[0];\n this.dialogs = [];\n this.onInitialize = this.settings.onInitialize;\n this.onDestroy = this.settings.onDestroy;\n }\n\n init(opts) {\n let settings = deepMerge({}, 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 (!Object.prototype.hasOwnProperty.call(settings.actions, key)) {\n if (this.settings.actions && this.settings.actions[key]) {\n settings.actions[key] = deepMerge({}, this.settings.actions[key]);\n } else {\n settings.actions[key] = {};\n }\n } else {\n if (\n typeof settings.actions[key] === 'object' &&\n !Object.prototype.hasOwnProperty.call(settings.actions[key], 'content')\n ) {\n if (\n this.settings.actions &&\n this.settings.actions[key] &&\n typeof this.settings.actions[key] === 'object' &&\n Object.prototype.hasOwnProperty.call(this.settings.actions[key], 'content')\n ) {\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.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 let html;\n if (typeof dialog.template === 'function') {\n html = dialog.template();\n } else {\n html = this._renderTemplate(dialog);\n }\n\n const temp = document.createElement('div');\n temp.innerHTML = html.trim();\n dialog.el = temp.firstElementChild;\n\n if (typeof $ !== 'undefined' && $.fn) {\n dialog.$el = $(dialog.el);\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._actionHandler = (e) => {\n const target = e.target.closest(\n '[data-dialog-action], [data-dialog-confirm], [data-dialog-close], [data-dialog-remove]'\n );\n if (!target) return;\n\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 = target.dataset.dialogAction;\n\n if (!actionKey) {\n for (const commonAction of commonActions) {\n if (target.hasAttribute(`data-dialog-${commonAction}`)) {\n actionKey = commonAction;\n break;\n }\n }\n }\n\n const action = dialog.actions[actionKey] || {};\n dialog.el.dispatchEvent(new CustomEvent(`dialog.${actionKey}`, { bubbles: true }));\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(\n self,\n function () {\n if (commonActions.includes(actionKey)) self.close(dialog);\n resetActionFlag();\n },\n dialog\n );\n\n if (result && typeof result.then === 'function') {\n result\n .then((promiseResult) => {\n if (promiseResult === false) {\n resetActionFlag();\n }\n })\n .catch(() => {\n resetActionFlag();\n });\n } else if (result === false) {\n resetActionFlag();\n } else {\n resetActionFlag();\n }\n } catch (_error) {\n resetActionFlag();\n }\n } else if (commonActions.includes(actionKey)) {\n self.close(dialog);\n resetActionFlag();\n } else {\n resetActionFlag();\n }\n };\n\n dialog.el.addEventListener('click', dialog._actionHandler);\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(() => {\n if (dialog.rafId) {\n cancelAnimationFrame(dialog.rafId);\n }\n\n dialog.rafId = requestAnimationFrame(() => {\n const newHeight = updateMaxBodyHeight();\n const bodyEl = dialog.el.querySelector('.dialog-body');\n if (bodyEl) bodyEl.style.setProperty('--cool-dialog-body-height', newHeight + 'px');\n });\n });\n\n dialog.resizeObserver.observe(document.body);\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 const bodyEl = dialog.el.querySelector('.dialog-body');\n if (bodyEl) bodyEl.style.setProperty('--cool-dialog-body-height', newHeight + 'px');\n dialog.lastResizeTime = now;\n } else {\n resizeTimeout = setTimeout(() => {\n const newHeight = updateMaxBodyHeight();\n const bodyEl = dialog.el.querySelector('.dialog-body');\n if (bodyEl) bodyEl.style.setProperty('--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.classList.contains('has-dialogs')) {\n this.container.classList.add('has-dialogs');\n }\n\n if (dialog.preventScroll && !this.container.classList.contains('dialog-prevent-scroll')) {\n this.container.classList.add('dialog-prevent-scroll');\n }\n\n if (this.dialogs.length > 1) {\n let prevDialogEl = this.dialogs[this.dialogs.length - 2].el;\n let zIndex = parseInt(getComputedStyle(prevDialogEl).zIndex, 10) || 0;\n zIndex += 1;\n\n dialog.el.style.zIndex = zIndex;\n\n Object.assign(prevDialogEl.style, {\n transition: 'opacity 0.3s',\n opacity: '0',\n visibility: 'visible',\n });\n }\n\n if (dialog.backdrop && !this.container.querySelector('.dialog-backdrop')) {\n const backdrop = document.createElement('div');\n backdrop.className = 'dialog-backdrop';\n this.container.appendChild(backdrop);\n\n let checkForBackdrop = setInterval(() => {\n const existingBackdrop = this.container.querySelector('.dialog-backdrop');\n if (this.dialogs.length == 0 && existingBackdrop) {\n existingBackdrop.remove();\n clearInterval(checkForBackdrop);\n }\n }, 100);\n }\n\n this.container.appendChild(dialog.el);\n\n if (dialog.animation) {\n const dialogContentEl = dialog.el.querySelector('.dialog-content');\n playAnimation(dialogContentEl, dialog.animationIn);\n }\n\n this.onShow(dialog);\n }\n\n close(dialog) {\n let prevDialogEl = 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 (dialog._actionHandler) {\n dialog.el.removeEventListener('click', dialog._actionHandler);\n dialog._actionHandler = null;\n }\n\n if (this.dialogs.length > 1) {\n prevDialogEl = this.dialogs[this.dialogs.length - 2].el;\n }\n\n const backdropDialogs = this.container.querySelectorAll('.dialog[data-dialog-backdrop=\"true\"]');\n const backdrop = this.container.querySelector('.dialog-backdrop');\n if (backdropDialogs.length === 0 && backdrop) {\n backdrop.remove();\n }\n\n const afterRemove = () => {\n dialog.el.remove();\n\n this.dialogs = this.dialogs.filter((item) => item.uuid !== dialog.uuid);\n\n if (this.dialogs.length == 0) {\n this.container.classList.remove('has-dialogs');\n this.container.classList.remove('dialog-prevent-scroll');\n } else {\n if (prevDialogEl) {\n prevDialogEl.style.opacity = '1';\n }\n }\n };\n\n if (dialog.animation) {\n const dialogContentEl = dialog.el.querySelector('.dialog-content');\n playAnimation(dialogContentEl, dialog.animationOut).then(() => {\n afterRemove();\n });\n } else {\n afterRemove();\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 return dialog.footer();\n } else if (dialog.footer !== '' && dialog.footer !== false && dialog.footer !== true) {\n return dialog.footer;\n } else if (dialog.footer === true) {\n if (!dialog.actions || typeof dialog.actions !== 'object') return '';\n\n const actionsArr = Object.entries(dialog.actions)\n .filter(([, 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 =\n 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))\n 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\n ? ' style=\"--cool-dialog-body-height: ' + dialog.maxBodyHeight + 'px\"'\n : '';\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;\n","import Component from './component';\nimport { deepMerge } from './utils';\n\nclass ThemeSwitcher extends Component {\n static NAME = 'coolThemeSwitcher';\n\n static DEFAULTS = {\n theme: 'auto',\n storageKey: 'cool-theme',\n target: null,\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_${ThemeSwitcher.NAME}`);\n if (!instance) {\n instance = new ThemeSwitcher(this, typeof config === 'object' && config);\n $el.data(`plugin_${ThemeSwitcher.NAME}`, instance);\n }\n if (typeof config === 'string') instance[config]();\n });\n }\n\n static _jQueryInit() {\n if (typeof $ === 'undefined' || !$.fn) return;\n const previousName = $.fn[ThemeSwitcher.NAME];\n $.fn[ThemeSwitcher.NAME] = ThemeSwitcher._jQueryInterface;\n $.fn[ThemeSwitcher.NAME].Constructor = ThemeSwitcher;\n $.fn[ThemeSwitcher.NAME].defaults = ThemeSwitcher.DEFAULTS || {};\n $.fn[ThemeSwitcher.NAME].noConflict = () => {\n $.fn[ThemeSwitcher.NAME] = previousName;\n return ThemeSwitcher._jQueryInterface;\n };\n }\n\n constructor(el, opts) {\n super();\n\n this.opts = deepMerge({}, ThemeSwitcher.DEFAULTS, window.Cool?.settings?.themeSwitcher || {}, opts || {});\n\n this.el = el;\n\n this.init();\n }\n\n init() {\n this.buildCache();\n this.bindEvents();\n\n const stored = this._getStoredTheme();\n\n if (stored) {\n this._applyTheme(stored);\n } else {\n const dataTheme = this.el.dataset.theme;\n\n if (dataTheme && ['light', 'dark', 'auto'].includes(dataTheme)) {\n this._applyTheme(dataTheme);\n } else {\n this._applyTheme(this.opts.theme);\n }\n }\n\n this.onInit();\n }\n\n destroy() {\n this.unbindEvents();\n this.constructor.removeInstance(this.el);\n this.onDestroy();\n }\n\n update() {\n this.buildCache();\n this.onUpdate();\n }\n\n buildCache() {\n this.target = this.opts.target\n ? typeof this.opts.target === 'string'\n ? document.querySelector(this.opts.target)\n : this.opts.target\n : document.documentElement;\n\n this._mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n }\n\n bindEvents() {\n this._clickHandler = (e) => {\n e.preventDefault();\n\n const dataTheme = this.el.dataset.theme;\n\n if (dataTheme && ['light', 'dark', 'auto'].includes(dataTheme)) {\n this.setTheme(dataTheme);\n } else {\n this.toggle();\n }\n };\n\n this._mediaChangeHandler = () => {\n if (this._currentTheme === 'auto') {\n this._dispatchEvent();\n }\n };\n\n this.el.addEventListener('click', this._clickHandler);\n this._mediaQuery.addEventListener('change', this._mediaChangeHandler);\n }\n\n unbindEvents() {\n if (this._clickHandler) {\n this.el.removeEventListener('click', this._clickHandler);\n }\n\n if (this._mediaChangeHandler && this._mediaQuery) {\n this._mediaQuery.removeEventListener('change', this._mediaChangeHandler);\n }\n }\n\n /**\n * Set the theme to 'light', 'dark', or 'auto'.\n * - 'dark' → adds .dark to target\n * - 'light' → adds .light to target\n * - 'auto' → removes both classes, lets prefers-color-scheme decide\n */\n setTheme(theme) {\n if (!['light', 'dark', 'auto'].includes(theme)) return;\n\n this._applyTheme(theme);\n }\n\n /**\n * Returns the stored theme string: 'light', 'dark', or 'auto'.\n */\n getTheme() {\n return this._currentTheme || 'auto';\n }\n\n /**\n * Returns the actual resolved theme ('light' or 'dark')\n * accounting for auto mode via matchMedia.\n */\n getResolvedTheme() {\n if (this._currentTheme === 'dark') return 'dark';\n if (this._currentTheme === 'light') return 'light';\n\n return this._mediaQuery.matches ? 'dark' : 'light';\n }\n\n /**\n * Cycle through themes: light → dark → auto → light\n */\n toggle() {\n const current = this.getTheme();\n const order = ['light', 'dark', 'auto'];\n const nextIndex = (order.indexOf(current) + 1) % order.length;\n\n this.setTheme(order[nextIndex]);\n }\n\n // -----------------------------------------------------------------------\n // Private\n // -----------------------------------------------------------------------\n\n _applyTheme(theme) {\n this._currentTheme = theme;\n\n this.target.classList.remove('dark', 'light');\n\n if (theme === 'dark') {\n this.target.classList.add('dark');\n } else if (theme === 'light') {\n this.target.classList.add('light');\n }\n\n this.el.setAttribute('data-active-theme', theme);\n this._storeTheme(theme);\n this._dispatchEvent();\n }\n\n _dispatchEvent() {\n const event = new CustomEvent('cool.theme.change', {\n bubbles: true,\n detail: {\n theme: this.getTheme(),\n resolvedTheme: this.getResolvedTheme(),\n },\n });\n\n this.target.dispatchEvent(event);\n }\n\n _getStoredTheme() {\n try {\n return localStorage.getItem(this.opts.storageKey);\n } catch {\n return null;\n }\n }\n\n _storeTheme(theme) {\n try {\n localStorage.setItem(this.opts.storageKey, theme);\n } catch {\n // Storage not available\n }\n }\n}\n\nThemeSwitcher._jQueryInit();\n\nexport default ThemeSwitcher;\n","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 ThemeSwitcher from './theme-switcher';\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 static _toastInstance = 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 ThemeSwitcher.initializeElements('[data-toggle=\"theme-switcher\"]', window.Cool.settings.themeSwitcher);\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 ThemeSwitcher.initializeElements('[data-toggle=\"theme-switcher\"]', opts.themeSwitcher);\n\n const sidebarLeft = document.querySelector('.sidebar-left');\n\n if (sidebarLeft) {\n this._sidebarInstance =\n Sidebar.initializeElement(sidebarLeft, opts.sidebar) || Sidebar.getInstance(sidebarLeft);\n }\n\n this._toastInstance = Toast.initializeElement(document.body, opts.toast) || Toast.getInstance(document.body);\n window.Cool.toast = this._toastInstance;\n Dialog.initializeElement(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 case 'theme-switcher':\n instance = ThemeSwitcher.initializeElement(el, window.Cool.settings.themeSwitcher);\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 return;\n }\n\n return resizeManager.observe(element, callback);\n }\n\n static unobserveResize(element) {\n if (!element) {\n return;\n }\n\n resizeManager.unobserve(element);\n }\n\n static addScrollListener(id, callback) {\n if (!id || typeof callback !== 'function') {\n return;\n }\n\n scrollManager.add(id, callback);\n }\n\n static removeScrollListener(id) {\n if (!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 static getToast() {\n return this._toastInstance;\n }\n\n static initjQuery() {\n Popover._jQueryInit();\n Select._jQueryInit();\n Dropdown._jQueryInit();\n Tooltip._jQueryInit();\n Collapse._jQueryInit();\n SectionTabs._jQueryInit();\n Toast._jQueryInit();\n Dialog._jQueryInit();\n Sidebar._jQueryInit();\n ThemeSwitcher._jQueryInit();\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);\nwindow.Cool.getToast = Common.getToast.bind(Common);\nwindow.Cool.initjQuery = Common.initjQuery.bind(Common);\n\nexport default Common;\n","import jQuery from 'jquery';\nimport 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';\nimport ThemeSwitcher from './src/theme-switcher';\n\n// Ensure jQuery is available globally for bundle builds\nif (typeof window !== 'undefined') {\n window.jQuery = window.$ = jQuery;\n}\n\nexport default {\n Common,\n Sidebar,\n Popover,\n Select,\n Dropdown,\n Tooltip,\n SectionTabs,\n Collapse,\n Toast,\n Dialog,\n ThemeSwitcher,\n};\n"],"names":["_instanceMap","WeakMap","Component","instances","initializeElement","selector","options","el","document","querySelector","key","NAME","existing","has","get","$","fn","data","instance","set","push","initializeElements","querySelectorAll","forEach","getInstance","map","removeInstance","Object","keys","length","delete","removeData","onInit","opts","call","onUpdate","onDestroy","onShow","onClose","onReset","ResizeManager","constructor","callbacks","observer","rafId","windowCallbacks","Set","isWindowListening","observe","element","callback","ResizeObserver","entries","cancelAnimationFrame","requestAnimationFrame","entry","target","add","startWindowListening","unobserve","size","stopWindowListening","window","addEventListener","handleWindowResize","passive","removeEventListener","contentRect","width","innerWidth","height","innerHeight","disconnect","clear","ScrollManager","Map","isListening","id","startListening","remove","stopListening","contentElement","scrollElement","handleScroll","resizeManager","scrollManager","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","clearTimeout","setTimeout","touchEvents","result","navigator","maxTouchPoints","generateUUID","replace","c","r","Math","random","v","toString","escapeHtml","html","text","createTextNode","p","createElement","appendChild","innerHTML","playAnimation","animationClass","domEl","jquery","Promise","resolve","classes","classList","onEnd","event","stopPropagation","once","escapeChar","chr","chars","escape","string","invalidChars","validChars","String","test","deepMerge","sources","source","srcVal","tgtVal","Array","isArray","Section","DEFAULTS","observeSections","initFormControls","initTableHandlers","initButtonGroups","initTabs","Cool","settings","section","_eventHandlers","_updateTimeout","_rafId","init","initializeSectionObserver","initializeFormControls","initializeTableHandlers","initializeButtonGroups","initializeTabs","destroy","destroySectionObserver","unbindEvents","_addEventListener","handler","_isUpdating","sectionObserver","MutationObserver","mutations","isOwnUpdate","every","mutation","type","attributeName","oldClasses","oldValue","split","newClasses","from","addedClasses","filter","includes","removedClasses","changedClasses","updateLastVisibleElements","body","attributes","childList","subtree","attributeFilter","attributeOldValue","subtreeFilter","node","contains","nodeName","updates","sections","tables","rows","visibleChildren","getVisibleChildren","lastVisible","table","tbody","visibleRows","getVisibleElements","lastVisibleRow","row","visibleCells","lastVisibleCell","parent","children","isElementVisible","elements","_computedStyle","_styleInvalidated","getComputedStyle","offsetParent","offsetHeight","display","e","formControl","closest","disabled","readOnly","inputGroup","updateFormLabelGroup","formLabelGroup","input","hasValue","value","toggle","matches","blur","tableLink","container","href","dataset","ctrlKey","metaKey","open","location","tableBtn","btn","click","btnGroupToggle","dispatchEvent","Event","bubbles","parentElement","btnGroup","b","checked","tabItem","tabs","item","refresh","val","PerfectScrollbar","require","default","Sidebar","floating","breakpoint","wheelSpeed","wheelPropagation","minScrollbarLength","suppressScrollX","_jQueryInterface","config","$el","_jQueryInit","previousName","Constructor","defaults","noConflict","sidebar","buildCache","bindEvents","initializeScrollbars","destroyScrollbars","content","toggler","isFloating","isOpen","tabSelectors","_toggleHandler","handleToggle","_mousedownHandler","sidebarContent","mousedownScrollbar","_mouseupHandler","_tabSelectHandler","switchTab","_collapseClickHandler","collapseToggle","matchMedia","linkElement","nextElementSibling","focus","scrollbar","update","resizeObserver","_entries","removeBackdrop","resizeTimeout","_resizeHandler","now","performance","lastResizeTime","style","overflowY","tabScrollbars","tab","scrollContainer","ps","toggleWithTransition","action","documentElement","createBackdrop","backdrop","className","ariaExpanded","siteMainEl","isCurrentlyOpen","tabId","activeTab","getElementById","sidebarTabs","tabContent","transform","isBeforeActive","indexOf","activeTabContent","close","Popover","containerAutoDetect","trigger","placement","align","offset","collisionDetection","title","each","popover","popoverEl","setPosition","containerEl","undefined","containerautodetect","collisiondetection","_clickHandler","show","_mouseenterHandler","hoverTimeout","_mouseleaveHandler","popupHasFocus","_focusinHandler","_focusoutHandler","_resizeCallback","buildPopover","setAttribute","viewportWidth","viewportHeight","popoverWidth","offsetWidth","popoverHeight","triggerWidth","triggerHeight","triggerPosX","triggerPosY","containerRect","getBoundingClientRect","containerOffset","left","scrollX","top","scrollY","triggerRect","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","assign","round","willChange","removeAttribute","_itemDataMap","_outerHeight","marginTop","marginBottom","Select","name","labelTemplate","confirmCheck","confirmUncheck","setData","scrollContentHeight","useNativeScroll","contentWidth","faPro","items","showSearch","showFooter","searchApi","onSearch","onSelect","buildScroll","searchPlaceholder","btnCloseText","dynamicTitle","dynamicTitleDefault","dynamicTitleEmptyDefault","allowNoneOnRadioSelect","preventUncheck","showValidStateIcon","itemsToExclude","primaryKeyword","scrollEl","useChips","select","cachedTitle","lastSearchQuery","_scrollCallback","updatePromise","_performInitialSearch","then","reset","selectEl","selectItems","selectIconContainerEl","selectIconDefault","selectHeaderEl","selectTitleEl","textContent","trim","searchData","searchInputEl","searchString","search","searchIconContainerEl","scroll","scrollcontentheight","usenativescroll","contentwidth","JSON","parse","searchapi","searchRequest","contentOpen","preventuncheck","dynamictitle","dynamictitledefault","dynamictitleemptydefault","allowneonradioselect","showvalidstateicon","itemstoexclude","primarykeyword","usechips","preventClose","setdata","arr","_renderChips","showsearch","showfooter","itemElements","_renderItemList","temp","_renderSearch","_renderFooter","firstElementChild","scrollableEl","selectItemEls","values","checkedInput","labelEl","scrollableContentEl","searchContainerEl","clearSearchButtonEl","tabIndex","footerContainerEl","closeButtonEl","buildSearchData","_updateScrollbarVisibility","needsScrollbar","scrollHeight","clientHeight","suppressScrollY","isSearchApiEnabled","_showSpinner","fetch","response","json","dataItem","matchingItem","find","label","chip","resultElements","valueId","_hideSpinner","_recalculateContentHeight","catch","_error","totalMargin","actualContentHeight","finalHeight","min","maxHeight","scrollYMarginOffset","selectLabels","i","_headerClickHandler","_checkboxChangeHandler","closeTimeout","cb","hasItem","n","_radioChangeHandler","_radioClickHandler","thumb","_thumbMousedownHandler","_documentMouseupHandler","_searchKeydownHandler","_searchFocusinHandler","_searchFocusoutHandler","_clearSearchHandler","_footerCloseHandler","_documentClickHandler","selectContent","getData","faNameSpace","searchUrl","itemCount","currentCount","encodeURIComponent","itemIds","useObjects","findIndex","inputs","inp","inputValues","targetInput","_searchAbortController","abort","_searchDebounceTimer","AbortController","signal","error","searchStringLower","toLowerCase","results","headerHeight","contentHeight","scrollTop","minSpaceRequired","searchHeight","footerHeight","scrollableHeight","scrollableClientHeight","max","shouldOpenUpwards","selectTop","constrainedHeight","contentMarginBottom","contentMarginTop","spaceBelow","spaceAbove","containerTop","scrollableMaxHeight","otherSelects","zindex","zIndex","contentRequiredWidth","containerWidth","minWidth","scrollIntoView","behavior","block","inline","itemEl","getItem","getSelectedItems","segment","ids","obj","getSelectedItem","checkedItems","isChecked","_getItemTemplate","index","selectItem","checkedInputs","Dropdown","animation","animationIn","animationOut","animationSpeed","closeOnItemClick","positionObserver","onItemClick","dropdown","setupResizeHandling","resizeHandler","setupScrollHandling","dropdownEl","scrollParent","scrollableParents","overflow","setupVisibilityDetection","IntersectionObserver","intersectionObserver","isIntersecting","threshold","rootMargin","hasDarkMode","reject","animationin","animationout","animationspeed","minwidth","hasAttribute","getAttribute","closeonitemclick","preventclose","existingMenu","cloneNode","nestedContainers","nestedContainer","nestedTrigger","nestedMenu","parentZIndex","dropdownItems","menuRight","insertAdjacentElement","_triggerClickHandler","_dropdownItemHandler","_itemHandlers","isClickInThisDropdown","isNestedDropdownTrigger","needsMeasure","visibility","dropdownWidth","dropdownHeight","dropdownTriggerWidth","dropdownTriggerHeight","dropdownTriggerPosX","dropdownTriggerPosY","parentRect","scrollLeft","dropdownPosX","dropdownPosY","dropdownLeft","dropdownTop","dropdownRight","dropdownBottom","dropdownScreenLeft","dropdownScreenTop","containerParent","relativeX","relativeY","animationDuration","duration","parseFloat","Tooltip","tooltip","tooltipEl","placementChanged","_blurHandler","buildTooltip","arrowEl","containerInnerWidth","clientWidth","containerInnerHeight","tooltipWidth","tooltipHeight","tooltipTriggerWidth","tooltipTriggerHeight","tooltipTriggerPosX","tooltipTriggerPosY","arrowWidth","arrowHeight","arrowPos","tooltipPosX","tooltipPosY","tooltipOverflowCount","tooltipPosition","offsetLeft","offsetTop","tooltipOverflow","fixTooltipPosition","overflowAmount","abs","excludePlacements","Collapse","collapse","targetSelector","expanded","indicatorSelector","indicator","preventDefault","SectionTabs","sectionTabs","_tabsCache","_resizeObserver","_isProcessing","dropdownContainer","checkForChanges","dropdownList","sectionHeader","observeTarget","moveToList","uuid","moveToDropdown","crypto","randomUUID","clone","itemActionEl","getTabDimensions","cached","wasInvisible","originalOverflow","marginLeft","marginRight","totalWidth","dimensions","availableSpace","paddingLeft","paddingRight","headerStyles","flexDirection","containerStyles","sectionSearch","headerGap","gap","available","accumulatedWidth","visibleTabs","overflowTabs","widthWithGap","relatedDropdownId","dropdownItem","_index","remainingSpace","originalTab","shouldBeVisible","hasDropdownItems","Toast","icon","template","dismiss","header","maxVisible","onInitialize","onClick","toast","containers","_getContainer","setProperty","_pauseTimers","_resumeTimers","toasts","queue","_cleanupContainer","_updateStack","Date","_dismissTimer","_dismissRemaining","_dismissEnd","_startDismissTimer","ms","_buildToast","_containerEntry","_showToast","toastsCopy","_removeToast","isTop","startsWith","maxBodyHeight","_renderTemplate","innerEl","closeBtn","_closeHandler","uri","processQueue","parentNode","t","nextToast","shift","bodyCloseBtn","iconHtml","trimStart","actionAttr","Dialog","footer","centered","preventScroll","overflowVisible","actions","dialog","dialogs","prototype","hasOwnProperty","buildDialog","self","actionInProgress","actionThreshold","_actionHandler","commonActions","actionKey","dialogAction","commonAction","CustomEvent","resetActionFlag","immediately","promiseResult","updateMaxBodyHeight","newHeight","bodyEl","lastOrientation","orientation","orientationChanged","prevDialogEl","transition","opacity","checkForBackdrop","setInterval","existingBackdrop","clearInterval","dialogContentEl","backdropDialogs","afterRemove","actionsArr","visible","idx","sort","a","hasOnlyCloseAndRemove","some","btns","btnStyle","primary","btnContent","charAt","toUpperCase","slice","btnClasses","btnAttrs","attrs","isCommonAction","footerHtml","join","_renderHeader","headerContent","closeBtnHtml","overFlowVisible","ThemeSwitcher","theme","storageKey","themeSwitcher","stored","_getStoredTheme","_applyTheme","dataTheme","_mediaQuery","setTheme","_mediaChangeHandler","_currentTheme","_dispatchEvent","getTheme","getResolvedTheme","current","order","nextIndex","_storeTheme","detail","resolvedTheme","localStorage","setItem","Common","_sidebarInstance","_sectionInstance","_toastInstance","initialize","sidebarLeft","initComponent","selectors","initQueue","child","allElements","visibleQueue","hiddenQueue","rect","allQueue","batchSize","processBatch","batch","toggleValue","requestIdleCallback","observeResize","unobserveResize","addScrollListener","removeScrollListener","getSidebar","getSection","getToast","initjQuery","bind","jQuery"],"mappings":"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"}