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":"offcanvas.js","sources":["../src/util/index.js","../src/util/scrollbar.js","../src/offcanvas.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): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine'\nimport Manipulator from '../dom/manipulator'\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst getWidth = () => {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n}\n\nconst hide = (width = getWidth()) => {\n document.body.style.overflow = 'hidden'\n _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width)\n _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width)\n _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width)\n}\n\nconst _setElementAttributes = (selector, styleProp, callback) => {\n const scrollbarWidth = getWidth()\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n const actualValue = element.style[styleProp]\n const calculatedValue = window.getComputedStyle(element)[styleProp]\n Manipulator.setDataAttribute(element, styleProp, actualValue)\n element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'\n })\n}\n\nconst reset = () => {\n document.body.style.overflow = 'auto'\n _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n _resetElementAttributes('body', 'paddingRight')\n}\n\nconst _resetElementAttributes = (selector, styleProp) => {\n SelectorEngine.find(selector).forEach(element => {\n const value = Manipulator.getDataAttribute(element, styleProp)\n if (typeof value === 'undefined' && element === document.body) {\n element.style.removeProperty(styleProp)\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n}\n\nconst isBodyOverflowing = () => {\n return getWidth() > 0\n}\n\nexport {\n getWidth,\n hide,\n isBodyOverflowing,\n reset\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta3): offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n defineJQueryPlugin,\n getElementFromSelector,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isDisabled,\n isVisible,\n typeCheckConfig\n} from './util/index'\nimport { hide as scrollBarHide, reset as scrollBarReset } from './util/scrollbar'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport BaseComponent from './base-component'\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: 'boolean',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\nconst CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_TOGGLING = 'offcanvas-toggling'\nconst OPEN_SELECTOR = '.offcanvas.show'\nconst ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"offcanvas\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._isShown = false\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 toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._element.style.visibility = 'visible'\n\n if (this._config.backdrop) {\n document.body.classList.add(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarHide()\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const completeCallBack = () => {\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n this._enforceFocusOnElement(this._element)\n }\n\n setTimeout(completeCallBack, getTransitionDurationFromElement(this._element))\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_TOGGLING)\n EventHandler.off(document, EVENT_FOCUSIN)\n this._element.blur()\n this._isShown = false\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const completeCallback = () => {\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._element.style.visibility = 'hidden'\n\n if (this._config.backdrop) {\n document.body.classList.remove(CLASS_NAME_BACKDROP_BODY)\n }\n\n if (!this._config.scroll) {\n scrollBarReset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n this._element.classList.remove(CLASS_NAME_TOGGLING)\n }\n\n setTimeout(completeCallback, getTransitionDurationFromElement(this._element))\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {})\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _enforceFocusOnElement(element) {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n element !== event.target &&\n !element.contains(event.target)) {\n element.focus()\n }\n })\n element.focus()\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n\n EventHandler.on(document, 'keydown', event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n this.hide()\n }\n })\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, event => {\n const target = SelectorEngine.findOne(getSelectorFromElement(event.target))\n if (!this._element.contains(event.target) && target !== this._element) {\n this.hide()\n }\n })\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? config : {})\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const allReadyOpen = SelectorEngine.findOne(ACTIVE_SELECTOR)\n if (allReadyOpen && allReadyOpen !== target) {\n return\n }\n\n const data = Data.get(target, DATA_KEY) || new Offcanvas(target)\n\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(OPEN_SELECTOR).forEach(el => (Data.get(el, DATA_KEY) || new Offcanvas(el)).show())\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\ndefineJQueryPlugin(NAME, Offcanvas)\n\nexport default Offcanvas\n"],"names":["MILLISECONDS_MULTIPLIER","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","includes","startsWith","split","trim","getSelectorFromElement","document","querySelector","getElementFromSelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","window","getComputedStyle","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","TypeError","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","isDisabled","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getjQuery","jQuery","body","onDOMContentLoaded","callback","readyState","addEventListener","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","getWidth","documentWidth","documentElement","clientWidth","Math","abs","innerWidth","hide","width","overflow","_setElementAttributes","calculatedValue","styleProp","scrollbarWidth","SelectorEngine","find","actualValue","Manipulator","setDataAttribute","reset","_resetElementAttributes","getDataAttribute","removeProperty","removeDataAttribute","NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_LOAD_DATA_API","ESCAPE_KEY","Default","backdrop","keyboard","scroll","DefaultType","CLASS_NAME_BACKDROP_BODY","CLASS_NAME_SHOW","CLASS_NAME_TOGGLING","OPEN_SELECTOR","ACTIVE_SELECTOR","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_FOCUSIN","EVENT_CLICK_DATA_API","EVENT_CLICK_DISMISS","SELECTOR_DATA_DISMISS","SELECTOR_DATA_TOGGLE","Offcanvas","BaseComponent","constructor","_config","_getConfig","_isShown","_addEventListeners","toggle","relatedTarget","show","showEvent","EventHandler","trigger","_element","defaultPrevented","add","scrollBarHide","removeAttribute","setAttribute","completeCallBack","remove","_enforceFocusOnElement","setTimeout","hideEvent","off","blur","completeCallback","scrollBarReset","getDataAttributes","on","event","target","focus","key","findOne","each","data","Data","get","tagName","preventDefault","one","allReadyOpen","el"],"mappings":"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"}
@@ -1,216 +0,0 @@
1
- /*!
2
- * Bootstrap popover.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/selector-engine.js'), require('./tooltip.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
10
- }(this, (function (Data, SelectorEngine, Tooltip) { '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 SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
16
- var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
17
-
18
- /**
19
- * --------------------------------------------------------------------------
20
- * Bootstrap (v5.0.0-beta3): util/index.js
21
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
22
- * --------------------------------------------------------------------------
23
- */
24
-
25
- const getjQuery = () => {
26
- const {
27
- jQuery
28
- } = window;
29
-
30
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
31
- return jQuery;
32
- }
33
-
34
- return null;
35
- };
36
-
37
- const onDOMContentLoaded = callback => {
38
- if (document.readyState === 'loading') {
39
- document.addEventListener('DOMContentLoaded', callback);
40
- } else {
41
- callback();
42
- }
43
- };
44
-
45
- const defineJQueryPlugin = (name, plugin) => {
46
- onDOMContentLoaded(() => {
47
- const $ = getjQuery();
48
- /* istanbul ignore if */
49
-
50
- if ($) {
51
- const JQUERY_NO_CONFLICT = $.fn[name];
52
- $.fn[name] = plugin.jQueryInterface;
53
- $.fn[name].Constructor = plugin;
54
-
55
- $.fn[name].noConflict = () => {
56
- $.fn[name] = JQUERY_NO_CONFLICT;
57
- return plugin.jQueryInterface;
58
- };
59
- }
60
- });
61
- };
62
-
63
- /**
64
- * --------------------------------------------------------------------------
65
- * Bootstrap (v5.0.0-beta3): popover.js
66
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
67
- * --------------------------------------------------------------------------
68
- */
69
- /**
70
- * ------------------------------------------------------------------------
71
- * Constants
72
- * ------------------------------------------------------------------------
73
- */
74
-
75
- const NAME = 'popover';
76
- const DATA_KEY = 'bs.popover';
77
- const EVENT_KEY = `.${DATA_KEY}`;
78
- const CLASS_PREFIX = 'bs-popover';
79
- const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
80
- const Default = { ...Tooltip__default['default'].Default,
81
- placement: 'right',
82
- offset: [0, 8],
83
- trigger: 'click',
84
- content: '',
85
- template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
86
- };
87
- const DefaultType = { ...Tooltip__default['default'].DefaultType,
88
- content: '(string|element|function)'
89
- };
90
- const Event = {
91
- HIDE: `hide${EVENT_KEY}`,
92
- HIDDEN: `hidden${EVENT_KEY}`,
93
- SHOW: `show${EVENT_KEY}`,
94
- SHOWN: `shown${EVENT_KEY}`,
95
- INSERTED: `inserted${EVENT_KEY}`,
96
- CLICK: `click${EVENT_KEY}`,
97
- FOCUSIN: `focusin${EVENT_KEY}`,
98
- FOCUSOUT: `focusout${EVENT_KEY}`,
99
- MOUSEENTER: `mouseenter${EVENT_KEY}`,
100
- MOUSELEAVE: `mouseleave${EVENT_KEY}`
101
- };
102
- const CLASS_NAME_FADE = 'fade';
103
- const CLASS_NAME_SHOW = 'show';
104
- const SELECTOR_TITLE = '.popover-header';
105
- const SELECTOR_CONTENT = '.popover-body';
106
- /**
107
- * ------------------------------------------------------------------------
108
- * Class Definition
109
- * ------------------------------------------------------------------------
110
- */
111
-
112
- class Popover extends Tooltip__default['default'] {
113
- // Getters
114
- static get Default() {
115
- return Default;
116
- }
117
-
118
- static get NAME() {
119
- return NAME;
120
- }
121
-
122
- static get DATA_KEY() {
123
- return DATA_KEY;
124
- }
125
-
126
- static get Event() {
127
- return Event;
128
- }
129
-
130
- static get EVENT_KEY() {
131
- return EVENT_KEY;
132
- }
133
-
134
- static get DefaultType() {
135
- return DefaultType;
136
- } // Overrides
137
-
138
-
139
- isWithContent() {
140
- return this.getTitle() || this._getContent();
141
- }
142
-
143
- setContent() {
144
- const tip = this.getTipElement(); // we use append for html objects to maintain js events
145
-
146
- this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle());
147
-
148
- let content = this._getContent();
149
-
150
- if (typeof content === 'function') {
151
- content = content.call(this._element);
152
- }
153
-
154
- this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
155
- tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
156
- } // Private
157
-
158
-
159
- _addAttachmentClass(attachment) {
160
- this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`);
161
- }
162
-
163
- _getContent() {
164
- return this._element.getAttribute('data-bs-content') || this.config.content;
165
- }
166
-
167
- _cleanTipClass() {
168
- const tip = this.getTipElement();
169
- const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
170
-
171
- if (tabClass !== null && tabClass.length > 0) {
172
- tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
173
- }
174
- } // Static
175
-
176
-
177
- static jQueryInterface(config) {
178
- return this.each(function () {
179
- let data = Data__default['default'].get(this, DATA_KEY);
180
-
181
- const _config = typeof config === 'object' ? config : null;
182
-
183
- if (!data && /dispose|hide/.test(config)) {
184
- return;
185
- }
186
-
187
- if (!data) {
188
- data = new Popover(this, _config);
189
- Data__default['default'].set(this, DATA_KEY, data);
190
- }
191
-
192
- if (typeof config === 'string') {
193
- if (typeof data[config] === 'undefined') {
194
- throw new TypeError(`No method named "${config}"`);
195
- }
196
-
197
- data[config]();
198
- }
199
- });
200
- }
201
-
202
- }
203
- /**
204
- * ------------------------------------------------------------------------
205
- * jQuery
206
- * ------------------------------------------------------------------------
207
- * add .Popover to jQuery only if jQuery is present
208
- */
209
-
210
-
211
- defineJQueryPlugin(NAME, Popover);
212
-
213
- return Popover;
214
-
215
- })));
216
- //# sourceMappingURL=popover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/popover.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): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { defineJQueryPlugin } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n offset: [0, 8],\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div>' +\n '</div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this._element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)\n }\n\n _getContent() {\n return this._element.getAttribute('data-bs-content') || this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.set(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Popover to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Popover)\n\nexport default Popover\n"],"names":["getjQuery","jQuery","window","document","body","hasAttribute","onDOMContentLoaded","callback","readyState","addEventListener","defineJQueryPlugin","name","plugin","$","JQUERY_NO_CONFLICT","fn","jQueryInterface","Constructor","noConflict","NAME","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","offset","trigger","content","template","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","isWithContent","getTitle","_getContent","setContent","tip","getTipElement","setElementContent","SelectorEngine","findOne","call","_element","classList","remove","_addAttachmentClass","attachment","add","updateAttachment","getAttribute","config","_cleanTipClass","tabClass","match","length","map","token","trim","forEach","tClass","each","data","Data","get","_config","test","set","TypeError"],"mappings":"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"}
@@ -1,400 +0,0 @@
1
- /*!
2
- * Bootstrap scrollspy.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.ScrollSpy = 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 MAX_UID = 1000000;
27
-
28
- const toType = obj => {
29
- if (obj === null || obj === undefined) {
30
- return `${obj}`;
31
- }
32
-
33
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
34
- };
35
- /**
36
- * --------------------------------------------------------------------------
37
- * Public Util Api
38
- * --------------------------------------------------------------------------
39
- */
40
-
41
-
42
- const getUID = prefix => {
43
- do {
44
- prefix += Math.floor(Math.random() * MAX_UID);
45
- } while (document.getElementById(prefix));
46
-
47
- return prefix;
48
- };
49
-
50
- const getSelector = element => {
51
- let selector = element.getAttribute('data-bs-target');
52
-
53
- if (!selector || selector === '#') {
54
- let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
55
- // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
56
- // `document.querySelector` will rightfully complain it is invalid.
57
- // See https://github.com/twbs/bootstrap/issues/32273
58
-
59
- if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
60
- return null;
61
- } // Just in case some CMS puts out a full URL with the anchor appended
62
-
63
-
64
- if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
65
- hrefAttr = '#' + hrefAttr.split('#')[1];
66
- }
67
-
68
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
69
- }
70
-
71
- return selector;
72
- };
73
-
74
- const getSelectorFromElement = element => {
75
- const selector = getSelector(element);
76
-
77
- if (selector) {
78
- return document.querySelector(selector) ? selector : null;
79
- }
80
-
81
- return null;
82
- };
83
-
84
- const isElement = obj => (obj[0] || obj).nodeType;
85
-
86
- const typeCheckConfig = (componentName, config, configTypes) => {
87
- Object.keys(configTypes).forEach(property => {
88
- const expectedTypes = configTypes[property];
89
- const value = config[property];
90
- const valueType = value && isElement(value) ? 'element' : toType(value);
91
-
92
- if (!new RegExp(expectedTypes).test(valueType)) {
93
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
94
- }
95
- });
96
- };
97
-
98
- const getjQuery = () => {
99
- const {
100
- jQuery
101
- } = window;
102
-
103
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
104
- return jQuery;
105
- }
106
-
107
- return null;
108
- };
109
-
110
- const onDOMContentLoaded = callback => {
111
- if (document.readyState === 'loading') {
112
- document.addEventListener('DOMContentLoaded', callback);
113
- } else {
114
- callback();
115
- }
116
- };
117
-
118
- const defineJQueryPlugin = (name, plugin) => {
119
- onDOMContentLoaded(() => {
120
- const $ = getjQuery();
121
- /* istanbul ignore if */
122
-
123
- if ($) {
124
- const JQUERY_NO_CONFLICT = $.fn[name];
125
- $.fn[name] = plugin.jQueryInterface;
126
- $.fn[name].Constructor = plugin;
127
-
128
- $.fn[name].noConflict = () => {
129
- $.fn[name] = JQUERY_NO_CONFLICT;
130
- return plugin.jQueryInterface;
131
- };
132
- }
133
- });
134
- };
135
-
136
- /**
137
- * --------------------------------------------------------------------------
138
- * Bootstrap (v5.0.0-beta3): scrollspy.js
139
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
140
- * --------------------------------------------------------------------------
141
- */
142
- /**
143
- * ------------------------------------------------------------------------
144
- * Constants
145
- * ------------------------------------------------------------------------
146
- */
147
-
148
- const NAME = 'scrollspy';
149
- const DATA_KEY = 'bs.scrollspy';
150
- const EVENT_KEY = `.${DATA_KEY}`;
151
- const DATA_API_KEY = '.data-api';
152
- const Default = {
153
- offset: 10,
154
- method: 'auto',
155
- target: ''
156
- };
157
- const DefaultType = {
158
- offset: 'number',
159
- method: 'string',
160
- target: '(string|element)'
161
- };
162
- const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
163
- const EVENT_SCROLL = `scroll${EVENT_KEY}`;
164
- const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
165
- const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
166
- const CLASS_NAME_ACTIVE = 'active';
167
- const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
168
- const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
169
- const SELECTOR_NAV_LINKS = '.nav-link';
170
- const SELECTOR_NAV_ITEMS = '.nav-item';
171
- const SELECTOR_LIST_ITEMS = '.list-group-item';
172
- const SELECTOR_DROPDOWN = '.dropdown';
173
- const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
174
- const METHOD_OFFSET = 'offset';
175
- const METHOD_POSITION = 'position';
176
- /**
177
- * ------------------------------------------------------------------------
178
- * Class Definition
179
- * ------------------------------------------------------------------------
180
- */
181
-
182
- class ScrollSpy extends BaseComponent__default['default'] {
183
- constructor(element, config) {
184
- super(element);
185
- this._scrollElement = this._element.tagName === 'BODY' ? window : this._element;
186
- this._config = this._getConfig(config);
187
- this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`;
188
- this._offsets = [];
189
- this._targets = [];
190
- this._activeTarget = null;
191
- this._scrollHeight = 0;
192
- EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, () => this._process());
193
- this.refresh();
194
-
195
- this._process();
196
- } // Getters
197
-
198
-
199
- static get Default() {
200
- return Default;
201
- }
202
-
203
- static get DATA_KEY() {
204
- return DATA_KEY;
205
- } // Public
206
-
207
-
208
- refresh() {
209
- const autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
210
- const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
211
- const offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
212
- this._offsets = [];
213
- this._targets = [];
214
- this._scrollHeight = this._getScrollHeight();
215
- const targets = SelectorEngine__default['default'].find(this._selector);
216
- targets.map(element => {
217
- const targetSelector = getSelectorFromElement(element);
218
- const target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null;
219
-
220
- if (target) {
221
- const targetBCR = target.getBoundingClientRect();
222
-
223
- if (targetBCR.width || targetBCR.height) {
224
- return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector];
225
- }
226
- }
227
-
228
- return null;
229
- }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {
230
- this._offsets.push(item[0]);
231
-
232
- this._targets.push(item[1]);
233
- });
234
- }
235
-
236
- dispose() {
237
- super.dispose();
238
- EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
239
- this._scrollElement = null;
240
- this._config = null;
241
- this._selector = null;
242
- this._offsets = null;
243
- this._targets = null;
244
- this._activeTarget = null;
245
- this._scrollHeight = null;
246
- } // Private
247
-
248
-
249
- _getConfig(config) {
250
- config = { ...Default,
251
- ...(typeof config === 'object' && config ? config : {})
252
- };
253
-
254
- if (typeof config.target !== 'string' && isElement(config.target)) {
255
- let {
256
- id
257
- } = config.target;
258
-
259
- if (!id) {
260
- id = getUID(NAME);
261
- config.target.id = id;
262
- }
263
-
264
- config.target = `#${id}`;
265
- }
266
-
267
- typeCheckConfig(NAME, config, DefaultType);
268
- return config;
269
- }
270
-
271
- _getScrollTop() {
272
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
273
- }
274
-
275
- _getScrollHeight() {
276
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
277
- }
278
-
279
- _getOffsetHeight() {
280
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
281
- }
282
-
283
- _process() {
284
- const scrollTop = this._getScrollTop() + this._config.offset;
285
-
286
- const scrollHeight = this._getScrollHeight();
287
-
288
- const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
289
-
290
- if (this._scrollHeight !== scrollHeight) {
291
- this.refresh();
292
- }
293
-
294
- if (scrollTop >= maxScroll) {
295
- const target = this._targets[this._targets.length - 1];
296
-
297
- if (this._activeTarget !== target) {
298
- this._activate(target);
299
- }
300
-
301
- return;
302
- }
303
-
304
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
305
- this._activeTarget = null;
306
-
307
- this._clear();
308
-
309
- return;
310
- }
311
-
312
- for (let i = this._offsets.length; i--;) {
313
- const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
314
-
315
- if (isActiveTarget) {
316
- this._activate(this._targets[i]);
317
- }
318
- }
319
- }
320
-
321
- _activate(target) {
322
- this._activeTarget = target;
323
-
324
- this._clear();
325
-
326
- const queries = this._selector.split(',').map(selector => `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);
327
-
328
- const link = SelectorEngine__default['default'].findOne(queries.join(','));
329
-
330
- if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
331
- SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
332
- link.classList.add(CLASS_NAME_ACTIVE);
333
- } else {
334
- // Set triggered link as active
335
- link.classList.add(CLASS_NAME_ACTIVE);
336
- SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(listGroup => {
337
- // Set triggered links parents as active
338
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
339
- SelectorEngine__default['default'].prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item => item.classList.add(CLASS_NAME_ACTIVE)); // Handle special case when .nav-link is inside .nav-item
340
-
341
- SelectorEngine__default['default'].prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem => {
342
- SelectorEngine__default['default'].children(navItem, SELECTOR_NAV_LINKS).forEach(item => item.classList.add(CLASS_NAME_ACTIVE));
343
- });
344
- });
345
- }
346
-
347
- EventHandler__default['default'].trigger(this._scrollElement, EVENT_ACTIVATE, {
348
- relatedTarget: target
349
- });
350
- }
351
-
352
- _clear() {
353
- SelectorEngine__default['default'].find(this._selector).filter(node => node.classList.contains(CLASS_NAME_ACTIVE)).forEach(node => node.classList.remove(CLASS_NAME_ACTIVE));
354
- } // Static
355
-
356
-
357
- static jQueryInterface(config) {
358
- return this.each(function () {
359
- let data = Data__default['default'].get(this, DATA_KEY);
360
-
361
- const _config = typeof config === 'object' && config;
362
-
363
- if (!data) {
364
- data = new ScrollSpy(this, _config);
365
- }
366
-
367
- if (typeof config === 'string') {
368
- if (typeof data[config] === 'undefined') {
369
- throw new TypeError(`No method named "${config}"`);
370
- }
371
-
372
- data[config]();
373
- }
374
- });
375
- }
376
-
377
- }
378
- /**
379
- * ------------------------------------------------------------------------
380
- * Data Api implementation
381
- * ------------------------------------------------------------------------
382
- */
383
-
384
-
385
- EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
386
- SelectorEngine__default['default'].find(SELECTOR_DATA_SPY).forEach(spy => new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy)));
387
- });
388
- /**
389
- * ------------------------------------------------------------------------
390
- * jQuery
391
- * ------------------------------------------------------------------------
392
- * add .ScrollSpy to jQuery only if jQuery is present
393
- */
394
-
395
- defineJQueryPlugin(NAME, ScrollSpy);
396
-
397
- return ScrollSpy;
398
-
399
- })));
400
- //# sourceMappingURL=scrollspy.js.map