administrate-bootstrap-theme 0.1.2 → 0.1.4

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/administrate-bootstrap-theme/components/_content_body.scss +16 -0
  3. data/app/assets/stylesheets/administrate-bootstrap-theme/theme.scss +12 -0
  4. data/lib/administrate-bootstrap-theme/version.rb +1 -1
  5. metadata +4 -85
  6. data/node_modules/bootstrap/LICENSE +0 -22
  7. data/node_modules/bootstrap/README.md +0 -239
  8. data/node_modules/bootstrap/dist/css/bootstrap-grid.css +0 -4997
  9. data/node_modules/bootstrap/dist/css/bootstrap-grid.css.map +0 -1
  10. data/node_modules/bootstrap/dist/css/bootstrap-grid.min.css +0 -7
  11. data/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map +0 -1
  12. data/node_modules/bootstrap/dist/css/bootstrap-grid.rtl.css +0 -4996
  13. data/node_modules/bootstrap/dist/css/bootstrap-grid.rtl.css.map +0 -1
  14. data/node_modules/bootstrap/dist/css/bootstrap-grid.rtl.min.css +0 -7
  15. data/node_modules/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map +0 -1
  16. data/node_modules/bootstrap/dist/css/bootstrap-reboot.css +0 -426
  17. data/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map +0 -1
  18. data/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css +0 -8
  19. data/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map +0 -1
  20. data/node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.css +0 -423
  21. data/node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.css.map +0 -1
  22. data/node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.min.css +0 -8
  23. data/node_modules/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map +0 -1
  24. data/node_modules/bootstrap/dist/css/bootstrap-utilities.css +0 -4752
  25. data/node_modules/bootstrap/dist/css/bootstrap-utilities.css.map +0 -1
  26. data/node_modules/bootstrap/dist/css/bootstrap-utilities.min.css +0 -7
  27. data/node_modules/bootstrap/dist/css/bootstrap-utilities.min.css.map +0 -1
  28. data/node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.css +0 -4743
  29. data/node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.css.map +0 -1
  30. data/node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.min.css +0 -7
  31. data/node_modules/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map +0 -1
  32. data/node_modules/bootstrap/dist/css/bootstrap.css +0 -10819
  33. data/node_modules/bootstrap/dist/css/bootstrap.css.map +0 -1
  34. data/node_modules/bootstrap/dist/css/bootstrap.min.css +0 -7
  35. data/node_modules/bootstrap/dist/css/bootstrap.min.css.map +0 -1
  36. data/node_modules/bootstrap/dist/css/bootstrap.rtl.css +0 -10795
  37. data/node_modules/bootstrap/dist/css/bootstrap.rtl.css.map +0 -1
  38. data/node_modules/bootstrap/dist/css/bootstrap.rtl.min.css +0 -7
  39. data/node_modules/bootstrap/dist/css/bootstrap.rtl.min.css.map +0 -1
  40. data/node_modules/bootstrap/dist/js/bootstrap.bundle.js +0 -6714
  41. data/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map +0 -1
  42. data/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js +0 -7
  43. data/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map +0 -1
  44. data/node_modules/bootstrap/dist/js/bootstrap.esm.js +0 -4944
  45. data/node_modules/bootstrap/dist/js/bootstrap.esm.js.map +0 -1
  46. data/node_modules/bootstrap/dist/js/bootstrap.esm.min.js +0 -7
  47. data/node_modules/bootstrap/dist/js/bootstrap.esm.min.js.map +0 -1
  48. data/node_modules/bootstrap/dist/js/bootstrap.js +0 -4993
  49. data/node_modules/bootstrap/dist/js/bootstrap.js.map +0 -1
  50. data/node_modules/bootstrap/dist/js/bootstrap.min.js +0 -7
  51. data/node_modules/bootstrap/dist/js/bootstrap.min.js.map +0 -1
  52. data/node_modules/bootstrap/js/dist/alert.js +0 -264
  53. data/node_modules/bootstrap/js/dist/alert.js.map +0 -1
  54. data/node_modules/bootstrap/js/dist/base-component.js +0 -62
  55. data/node_modules/bootstrap/js/dist/base-component.js.map +0 -1
  56. data/node_modules/bootstrap/js/dist/button.js +0 -146
  57. data/node_modules/bootstrap/js/dist/button.js.map +0 -1
  58. data/node_modules/bootstrap/js/dist/carousel.js +0 -757
  59. data/node_modules/bootstrap/js/dist/carousel.js.map +0 -1
  60. data/node_modules/bootstrap/js/dist/collapse.js +0 -551
  61. data/node_modules/bootstrap/js/dist/collapse.js.map +0 -1
  62. data/node_modules/bootstrap/js/dist/dom/data.js +0 -69
  63. data/node_modules/bootstrap/js/dist/dom/data.js.map +0 -1
  64. data/node_modules/bootstrap/js/dist/dom/event-handler.js +0 -305
  65. data/node_modules/bootstrap/js/dist/dom/event-handler.js.map +0 -1
  66. data/node_modules/bootstrap/js/dist/dom/manipulator.js +0 -89
  67. data/node_modules/bootstrap/js/dist/dom/manipulator.js.map +0 -1
  68. data/node_modules/bootstrap/js/dist/dom/selector-engine.js +0 -86
  69. data/node_modules/bootstrap/js/dist/dom/selector-engine.js.map +0 -1
  70. data/node_modules/bootstrap/js/dist/dropdown.js +0 -662
  71. data/node_modules/bootstrap/js/dist/dropdown.js.map +0 -1
  72. data/node_modules/bootstrap/js/dist/modal.js +0 -752
  73. data/node_modules/bootstrap/js/dist/modal.js.map +0 -1
  74. data/node_modules/bootstrap/js/dist/offcanvas.js +0 -509
  75. data/node_modules/bootstrap/js/dist/offcanvas.js.map +0 -1
  76. data/node_modules/bootstrap/js/dist/popover.js +0 -216
  77. data/node_modules/bootstrap/js/dist/popover.js.map +0 -1
  78. data/node_modules/bootstrap/js/dist/scrollspy.js +0 -400
  79. data/node_modules/bootstrap/js/dist/scrollspy.js.map +0 -1
  80. data/node_modules/bootstrap/js/dist/tab.js +0 -347
  81. data/node_modules/bootstrap/js/dist/tab.js.map +0 -1
  82. data/node_modules/bootstrap/js/dist/toast.js +0 -335
  83. data/node_modules/bootstrap/js/dist/toast.js.map +0 -1
  84. data/node_modules/bootstrap/js/dist/tooltip.js +0 -1055
  85. data/node_modules/bootstrap/js/dist/tooltip.js.map +0 -1
  86. data/node_modules/bootstrap/package.json +0 -177
@@ -1 +0,0 @@
1
- {"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttr = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = '#' + hrefAttr.split('#')[1]\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`\n )\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = (name, plugin) => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nexport {\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n isDisabled,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL,\n defineJQueryPlugin\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_INDICATOR = '[data-bs-target]'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(ORDER_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(ORDER_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const order = index > activeIndex ?\n ORDER_NEXT :\n ORDER_PREV\n\n this._slide(order, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n\n this._items = null\n this._config = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n\n super.dispose()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n if (!direction) {\n return\n }\n\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT)\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler.on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n this.touchDeltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this.touchStartX\n }\n\n const end = event => {\n if (this._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n if (event.key === ARROW_LEFT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_LEFT)\n } else if (event.key === ARROW_RIGHT_KEY) {\n event.preventDefault()\n this._slide(DIRECTION_RIGHT)\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByOrder(order, activeElement) {\n const isNext = order === ORDER_NEXT\n const isPrev = order === ORDER_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrev && activeIndex === 0) || (isNext && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = isPrev ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement)\n\n for (let i = 0; i < indicators.length; i++) {\n if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) {\n indicators[i].classList.add(CLASS_NAME_ACTIVE)\n indicators[i].setAttribute('aria-current', 'true')\n break\n }\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(directionOrOrder, element) {\n const order = this._directionToOrder(directionOrOrder)\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || this._getItemByOrder(order, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n const isNext = order === ORDER_NEXT\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n const eventDirectionName = this._orderToDirection(order)\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler.one(activeElement, 'transitionend', () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _directionToOrder(direction) {\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\n return direction\n }\n\n if (isRTL()) {\n return direction === DIRECTION_RIGHT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_RIGHT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\n return order\n }\n\n if (isRTL()) {\n return order === ORDER_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_NEXT ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.get(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.get(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.get(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Carousel to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Carousel)\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","documentElement","dir","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_INDICATOR","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","Carousel","BaseComponent","constructor","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","SelectorEngine","findOne","_element","_touchSupported","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","order","dispose","off","_handleSwipe","absDeltax","Math","abs","direction","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","key","indexOf","_getItemByOrder","activeElement","isNext","isPrev","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","activeIndicator","remove","removeAttribute","indicators","i","parseInt","setAttribute","elementInterval","defaultInterval","directionOrOrder","_directionToOrder","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","contains","slideEvent","defaultPrevented","carouselInterface","data","Data","get","Manipulator","getDataAttributes","action","ride","each","dataApiClickHandler","slideIndex","carousels","len"],"mappings":"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"}
@@ -1,551 +0,0 @@
1
- /*!
2
- * Bootstrap collapse.js v5.0.0-beta3 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
- */
6
- (function (global, factory) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base));
10
- }(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict';
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
15
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
17
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
18
- var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
19
-
20
- /**
21
- * --------------------------------------------------------------------------
22
- * Bootstrap (v5.0.0-beta3): util/index.js
23
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
24
- * --------------------------------------------------------------------------
25
- */
26
- const MILLISECONDS_MULTIPLIER = 1000;
27
- const TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
28
-
29
- const toType = obj => {
30
- if (obj === null || obj === undefined) {
31
- return `${obj}`;
32
- }
33
-
34
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
35
- };
36
-
37
- const getSelector = element => {
38
- let selector = element.getAttribute('data-bs-target');
39
-
40
- if (!selector || selector === '#') {
41
- let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
42
- // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
43
- // `document.querySelector` will rightfully complain it is invalid.
44
- // See https://github.com/twbs/bootstrap/issues/32273
45
-
46
- if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
47
- return null;
48
- } // Just in case some CMS puts out a full URL with the anchor appended
49
-
50
-
51
- if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
52
- hrefAttr = '#' + hrefAttr.split('#')[1];
53
- }
54
-
55
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
56
- }
57
-
58
- return selector;
59
- };
60
-
61
- const getSelectorFromElement = element => {
62
- const selector = getSelector(element);
63
-
64
- if (selector) {
65
- return document.querySelector(selector) ? selector : null;
66
- }
67
-
68
- return null;
69
- };
70
-
71
- const getElementFromSelector = element => {
72
- const selector = getSelector(element);
73
- return selector ? document.querySelector(selector) : null;
74
- };
75
-
76
- const getTransitionDurationFromElement = element => {
77
- if (!element) {
78
- return 0;
79
- } // Get transition-duration of the element
80
-
81
-
82
- let {
83
- transitionDuration,
84
- transitionDelay
85
- } = window.getComputedStyle(element);
86
- const floatTransitionDuration = Number.parseFloat(transitionDuration);
87
- const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
88
-
89
- if (!floatTransitionDuration && !floatTransitionDelay) {
90
- return 0;
91
- } // If multiple durations are defined, take the first
92
-
93
-
94
- transitionDuration = transitionDuration.split(',')[0];
95
- transitionDelay = transitionDelay.split(',')[0];
96
- return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
97
- };
98
-
99
- const triggerTransitionEnd = element => {
100
- element.dispatchEvent(new Event(TRANSITION_END));
101
- };
102
-
103
- const isElement = obj => (obj[0] || obj).nodeType;
104
-
105
- const emulateTransitionEnd = (element, duration) => {
106
- let called = false;
107
- const durationPadding = 5;
108
- const emulatedDuration = duration + durationPadding;
109
-
110
- function listener() {
111
- called = true;
112
- element.removeEventListener(TRANSITION_END, listener);
113
- }
114
-
115
- element.addEventListener(TRANSITION_END, listener);
116
- setTimeout(() => {
117
- if (!called) {
118
- triggerTransitionEnd(element);
119
- }
120
- }, emulatedDuration);
121
- };
122
-
123
- const typeCheckConfig = (componentName, config, configTypes) => {
124
- Object.keys(configTypes).forEach(property => {
125
- const expectedTypes = configTypes[property];
126
- const value = config[property];
127
- const valueType = value && isElement(value) ? 'element' : toType(value);
128
-
129
- if (!new RegExp(expectedTypes).test(valueType)) {
130
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
131
- }
132
- });
133
- };
134
-
135
- const reflow = element => element.offsetHeight;
136
-
137
- const getjQuery = () => {
138
- const {
139
- jQuery
140
- } = window;
141
-
142
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
143
- return jQuery;
144
- }
145
-
146
- return null;
147
- };
148
-
149
- const onDOMContentLoaded = callback => {
150
- if (document.readyState === 'loading') {
151
- document.addEventListener('DOMContentLoaded', callback);
152
- } else {
153
- callback();
154
- }
155
- };
156
-
157
- const defineJQueryPlugin = (name, plugin) => {
158
- onDOMContentLoaded(() => {
159
- const $ = getjQuery();
160
- /* istanbul ignore if */
161
-
162
- if ($) {
163
- const JQUERY_NO_CONFLICT = $.fn[name];
164
- $.fn[name] = plugin.jQueryInterface;
165
- $.fn[name].Constructor = plugin;
166
-
167
- $.fn[name].noConflict = () => {
168
- $.fn[name] = JQUERY_NO_CONFLICT;
169
- return plugin.jQueryInterface;
170
- };
171
- }
172
- });
173
- };
174
-
175
- /**
176
- * --------------------------------------------------------------------------
177
- * Bootstrap (v5.0.0-beta3): collapse.js
178
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
179
- * --------------------------------------------------------------------------
180
- */
181
- /**
182
- * ------------------------------------------------------------------------
183
- * Constants
184
- * ------------------------------------------------------------------------
185
- */
186
-
187
- const NAME = 'collapse';
188
- const DATA_KEY = 'bs.collapse';
189
- const EVENT_KEY = `.${DATA_KEY}`;
190
- const DATA_API_KEY = '.data-api';
191
- const Default = {
192
- toggle: true,
193
- parent: ''
194
- };
195
- const DefaultType = {
196
- toggle: 'boolean',
197
- parent: '(string|element)'
198
- };
199
- const EVENT_SHOW = `show${EVENT_KEY}`;
200
- const EVENT_SHOWN = `shown${EVENT_KEY}`;
201
- const EVENT_HIDE = `hide${EVENT_KEY}`;
202
- const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
203
- const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
204
- const CLASS_NAME_SHOW = 'show';
205
- const CLASS_NAME_COLLAPSE = 'collapse';
206
- const CLASS_NAME_COLLAPSING = 'collapsing';
207
- const CLASS_NAME_COLLAPSED = 'collapsed';
208
- const WIDTH = 'width';
209
- const HEIGHT = 'height';
210
- const SELECTOR_ACTIVES = '.show, .collapsing';
211
- const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
212
- /**
213
- * ------------------------------------------------------------------------
214
- * Class Definition
215
- * ------------------------------------------------------------------------
216
- */
217
-
218
- class Collapse extends BaseComponent__default['default'] {
219
- constructor(element, config) {
220
- super(element);
221
- this._isTransitioning = false;
222
- this._config = this._getConfig(config);
223
- this._triggerArray = SelectorEngine__default['default'].find(`${SELECTOR_DATA_TOGGLE}[href="#${this._element.id}"],` + `${SELECTOR_DATA_TOGGLE}[data-bs-target="#${this._element.id}"]`);
224
- const toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
225
-
226
- for (let i = 0, len = toggleList.length; i < len; i++) {
227
- const elem = toggleList[i];
228
- const selector = getSelectorFromElement(elem);
229
- const filterElement = SelectorEngine__default['default'].find(selector).filter(foundElem => foundElem === this._element);
230
-
231
- if (selector !== null && filterElement.length) {
232
- this._selector = selector;
233
-
234
- this._triggerArray.push(elem);
235
- }
236
- }
237
-
238
- this._parent = this._config.parent ? this._getParent() : null;
239
-
240
- if (!this._config.parent) {
241
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
242
- }
243
-
244
- if (this._config.toggle) {
245
- this.toggle();
246
- }
247
- } // Getters
248
-
249
-
250
- static get Default() {
251
- return Default;
252
- }
253
-
254
- static get DATA_KEY() {
255
- return DATA_KEY;
256
- } // Public
257
-
258
-
259
- toggle() {
260
- if (this._element.classList.contains(CLASS_NAME_SHOW)) {
261
- this.hide();
262
- } else {
263
- this.show();
264
- }
265
- }
266
-
267
- show() {
268
- if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
269
- return;
270
- }
271
-
272
- let actives;
273
- let activesData;
274
-
275
- if (this._parent) {
276
- actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(elem => {
277
- if (typeof this._config.parent === 'string') {
278
- return elem.getAttribute('data-bs-parent') === this._config.parent;
279
- }
280
-
281
- return elem.classList.contains(CLASS_NAME_COLLAPSE);
282
- });
283
-
284
- if (actives.length === 0) {
285
- actives = null;
286
- }
287
- }
288
-
289
- const container = SelectorEngine__default['default'].findOne(this._selector);
290
-
291
- if (actives) {
292
- const tempActiveData = actives.find(elem => container !== elem);
293
- activesData = tempActiveData ? Data__default['default'].get(tempActiveData, DATA_KEY) : null;
294
-
295
- if (activesData && activesData._isTransitioning) {
296
- return;
297
- }
298
- }
299
-
300
- const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
301
-
302
- if (startEvent.defaultPrevented) {
303
- return;
304
- }
305
-
306
- if (actives) {
307
- actives.forEach(elemActive => {
308
- if (container !== elemActive) {
309
- Collapse.collapseInterface(elemActive, 'hide');
310
- }
311
-
312
- if (!activesData) {
313
- Data__default['default'].set(elemActive, DATA_KEY, null);
314
- }
315
- });
316
- }
317
-
318
- const dimension = this._getDimension();
319
-
320
- this._element.classList.remove(CLASS_NAME_COLLAPSE);
321
-
322
- this._element.classList.add(CLASS_NAME_COLLAPSING);
323
-
324
- this._element.style[dimension] = 0;
325
-
326
- if (this._triggerArray.length) {
327
- this._triggerArray.forEach(element => {
328
- element.classList.remove(CLASS_NAME_COLLAPSED);
329
- element.setAttribute('aria-expanded', true);
330
- });
331
- }
332
-
333
- this.setTransitioning(true);
334
-
335
- const complete = () => {
336
- this._element.classList.remove(CLASS_NAME_COLLAPSING);
337
-
338
- this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
339
-
340
- this._element.style[dimension] = '';
341
- this.setTransitioning(false);
342
- EventHandler__default['default'].trigger(this._element, EVENT_SHOWN);
343
- };
344
-
345
- const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
346
- const scrollSize = `scroll${capitalizedDimension}`;
347
- const transitionDuration = getTransitionDurationFromElement(this._element);
348
- EventHandler__default['default'].one(this._element, 'transitionend', complete);
349
- emulateTransitionEnd(this._element, transitionDuration);
350
- this._element.style[dimension] = `${this._element[scrollSize]}px`;
351
- }
352
-
353
- hide() {
354
- if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
355
- return;
356
- }
357
-
358
- const startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
359
-
360
- if (startEvent.defaultPrevented) {
361
- return;
362
- }
363
-
364
- const dimension = this._getDimension();
365
-
366
- this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
367
- reflow(this._element);
368
-
369
- this._element.classList.add(CLASS_NAME_COLLAPSING);
370
-
371
- this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
372
-
373
- const triggerArrayLength = this._triggerArray.length;
374
-
375
- if (triggerArrayLength > 0) {
376
- for (let i = 0; i < triggerArrayLength; i++) {
377
- const trigger = this._triggerArray[i];
378
- const elem = getElementFromSelector(trigger);
379
-
380
- if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
381
- trigger.classList.add(CLASS_NAME_COLLAPSED);
382
- trigger.setAttribute('aria-expanded', false);
383
- }
384
- }
385
- }
386
-
387
- this.setTransitioning(true);
388
-
389
- const complete = () => {
390
- this.setTransitioning(false);
391
-
392
- this._element.classList.remove(CLASS_NAME_COLLAPSING);
393
-
394
- this._element.classList.add(CLASS_NAME_COLLAPSE);
395
-
396
- EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
397
- };
398
-
399
- this._element.style[dimension] = '';
400
- const transitionDuration = getTransitionDurationFromElement(this._element);
401
- EventHandler__default['default'].one(this._element, 'transitionend', complete);
402
- emulateTransitionEnd(this._element, transitionDuration);
403
- }
404
-
405
- setTransitioning(isTransitioning) {
406
- this._isTransitioning = isTransitioning;
407
- }
408
-
409
- dispose() {
410
- super.dispose();
411
- this._config = null;
412
- this._parent = null;
413
- this._triggerArray = null;
414
- this._isTransitioning = null;
415
- } // Private
416
-
417
-
418
- _getConfig(config) {
419
- config = { ...Default,
420
- ...config
421
- };
422
- config.toggle = Boolean(config.toggle); // Coerce string values
423
-
424
- typeCheckConfig(NAME, config, DefaultType);
425
- return config;
426
- }
427
-
428
- _getDimension() {
429
- return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT;
430
- }
431
-
432
- _getParent() {
433
- let {
434
- parent
435
- } = this._config;
436
-
437
- if (isElement(parent)) {
438
- // it's a jQuery object
439
- if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
440
- parent = parent[0];
441
- }
442
- } else {
443
- parent = SelectorEngine__default['default'].findOne(parent);
444
- }
445
-
446
- const selector = `${SELECTOR_DATA_TOGGLE}[data-bs-parent="${parent}"]`;
447
- SelectorEngine__default['default'].find(selector, parent).forEach(element => {
448
- const selected = getElementFromSelector(element);
449
-
450
- this._addAriaAndCollapsedClass(selected, [element]);
451
- });
452
- return parent;
453
- }
454
-
455
- _addAriaAndCollapsedClass(element, triggerArray) {
456
- if (!element || !triggerArray.length) {
457
- return;
458
- }
459
-
460
- const isOpen = element.classList.contains(CLASS_NAME_SHOW);
461
- triggerArray.forEach(elem => {
462
- if (isOpen) {
463
- elem.classList.remove(CLASS_NAME_COLLAPSED);
464
- } else {
465
- elem.classList.add(CLASS_NAME_COLLAPSED);
466
- }
467
-
468
- elem.setAttribute('aria-expanded', isOpen);
469
- });
470
- } // Static
471
-
472
-
473
- static collapseInterface(element, config) {
474
- let data = Data__default['default'].get(element, DATA_KEY);
475
- const _config = { ...Default,
476
- ...Manipulator__default['default'].getDataAttributes(element),
477
- ...(typeof config === 'object' && config ? config : {})
478
- };
479
-
480
- if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
481
- _config.toggle = false;
482
- }
483
-
484
- if (!data) {
485
- data = new Collapse(element, _config);
486
- }
487
-
488
- if (typeof config === 'string') {
489
- if (typeof data[config] === 'undefined') {
490
- throw new TypeError(`No method named "${config}"`);
491
- }
492
-
493
- data[config]();
494
- }
495
- }
496
-
497
- static jQueryInterface(config) {
498
- return this.each(function () {
499
- Collapse.collapseInterface(this, config);
500
- });
501
- }
502
-
503
- }
504
- /**
505
- * ------------------------------------------------------------------------
506
- * Data Api implementation
507
- * ------------------------------------------------------------------------
508
- */
509
-
510
-
511
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
512
- // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
513
- if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
514
- event.preventDefault();
515
- }
516
-
517
- const triggerData = Manipulator__default['default'].getDataAttributes(this);
518
- const selector = getSelectorFromElement(this);
519
- const selectorElements = SelectorEngine__default['default'].find(selector);
520
- selectorElements.forEach(element => {
521
- const data = Data__default['default'].get(element, DATA_KEY);
522
- let config;
523
-
524
- if (data) {
525
- // update parent attribute
526
- if (data._parent === null && typeof triggerData.parent === 'string') {
527
- data._config.parent = triggerData.parent;
528
- data._parent = data._getParent();
529
- }
530
-
531
- config = 'toggle';
532
- } else {
533
- config = triggerData;
534
- }
535
-
536
- Collapse.collapseInterface(element, config);
537
- });
538
- });
539
- /**
540
- * ------------------------------------------------------------------------
541
- * jQuery
542
- * ------------------------------------------------------------------------
543
- * add .Collapse to jQuery only if jQuery is present
544
- */
545
-
546
- defineJQueryPlugin(NAME, Collapse);
547
-
548
- return Collapse;
549
-
550
- })));
551
- //# sourceMappingURL=collapse.js.map