administrate-bootstrap-theme 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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":"modal.js","sources":["../src/util/index.js","../src/modal.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): modal.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 isVisible,\n isRTL,\n reflow,\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 = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\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 || this._isTransitioning) {\n return\n }\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, 'transitionend', event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\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 _showElement(relatedTarget) {\n const isAnimated = this._isAnimated()\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (isAnimated) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, 'transitionend', transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const isAnimated = this._isAnimated()\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (isAnimated) {\n this._backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (isAnimated) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!isAnimated) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, 'transitionend', callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (isAnimated) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, 'transitionend', callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, 'transitionend')\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, 'transitionend', () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL()) || (this._isBodyOverflowing && !isModalOverflowing && isRTL())) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL()) || (!this._isBodyOverflowing && isModalOverflowing && isRTL())) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - this._scrollbarWidth)\n this._setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + this._scrollbarWidth)\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _setElementAttributes(selector, styleProp, callback) {\n SelectorEngine.find(selector)\n .forEach(element => {\n if (element !== document.body && window.innerWidth > element.clientWidth + this._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\n _resetScrollbar() {\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight')\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight')\n this._resetElementAttributes('body', 'paddingRight')\n }\n\n _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[styleProp] = ''\n } else {\n Manipulator.removeDataAttribute(element, styleProp)\n element.style[styleProp] = value\n }\n })\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.get(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\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](relatedTarget)\n }\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 (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.get(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.toggle(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\ndefineJQueryPlugin(NAME, Modal)\n\nexport default Modal\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","ESCAPE_KEY","Default","backdrop","keyboard","focus","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","BaseComponent","constructor","_config","_getConfig","_dialog","SelectorEngine","findOne","_element","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","toggle","relatedTarget","hide","show","_isAnimated","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","isAnimated","off","classList","remove","_hideModal","dispose","htmlElement","handleUpdate","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","contains","key","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","_setElementAttributes","calculatedValue","styleProp","find","clientWidth","actualValue","Manipulator","setDataAttribute","_resetElementAttributes","getDataAttribute","removeDataAttribute","scrollDiv","scrollbarWidth","width","each","data","Data","get","getDataAttributes","tagName"],"mappings":";;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAGA,MAAMA,uBAAuB,GAAG,IAAhC;EACA,MAAMC,cAAc,GAAG,eAAvB;;EAGA,MAAMC,MAAM,GAAGC,GAAG,IAAI;EACpB,MAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKC,SAA5B,EAAuC;EACrC,WAAQ,GAAED,GAAI,EAAd;EACD;;EAED,SAAO,GAAGE,QAAH,CAAYC,IAAZ,CAAiBH,GAAjB,EAAsBI,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAP;EACD,CAND;;EAsBA,MAAMC,WAAW,GAAGC,OAAO,IAAI;EAC7B,MAAIC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,gBAArB,CAAf;;EAEA,MAAI,CAACD,QAAD,IAAaA,QAAQ,KAAK,GAA9B,EAAmC;EACjC,QAAIE,QAAQ,GAAGH,OAAO,CAACE,YAAR,CAAqB,MAArB,CAAf,CADiC;EAIjC;EACA;EACA;;EACA,QAAI,CAACC,QAAD,IAAc,CAACA,QAAQ,CAACC,QAAT,CAAkB,GAAlB,CAAD,IAA2B,CAACD,QAAQ,CAACE,UAAT,CAAoB,GAApB,CAA9C,EAAyE;EACvE,aAAO,IAAP;EACD,KATgC;;;EAYjC,QAAIF,QAAQ,CAACC,QAAT,CAAkB,GAAlB,KAA0B,CAACD,QAAQ,CAACE,UAAT,CAAoB,GAApB,CAA/B,EAAyD;EACvDF,MAAAA,QAAQ,GAAG,MAAMA,QAAQ,CAACG,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAjB;EACD;;EAEDL,IAAAA,QAAQ,GAAGE,QAAQ,IAAIA,QAAQ,KAAK,GAAzB,GAA+BA,QAAQ,CAACI,IAAT,EAA/B,GAAiD,IAA5D;EACD;;EAED,SAAON,QAAP;EACD,CAvBD;;EAmCA,MAAMO,sBAAsB,GAAGR,OAAO,IAAI;EACxC,QAAMC,QAAQ,GAAGF,WAAW,CAACC,OAAD,CAA5B;EAEA,SAAOC,QAAQ,GAAGQ,QAAQ,CAACC,aAAT,CAAuBT,QAAvB,CAAH,GAAsC,IAArD;EACD,CAJD;;EAMA,MAAMU,gCAAgC,GAAGX,OAAO,IAAI;EAClD,MAAI,CAACA,OAAL,EAAc;EACZ,WAAO,CAAP;EACD,GAHiD;;;EAMlD,MAAI;EAAEY,IAAAA,kBAAF;EAAsBC,IAAAA;EAAtB,MAA0CC,MAAM,CAACC,gBAAP,CAAwBf,OAAxB,CAA9C;EAEA,QAAMgB,uBAAuB,GAAGC,MAAM,CAACC,UAAP,CAAkBN,kBAAlB,CAAhC;EACA,QAAMO,oBAAoB,GAAGF,MAAM,CAACC,UAAP,CAAkBL,eAAlB,CAA7B,CATkD;;EAYlD,MAAI,CAACG,uBAAD,IAA4B,CAACG,oBAAjC,EAAuD;EACrD,WAAO,CAAP;EACD,GAdiD;;;EAiBlDP,EAAAA,kBAAkB,GAAGA,kBAAkB,CAACN,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAArB;EACAO,EAAAA,eAAe,GAAGA,eAAe,CAACP,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,CAAlB;EAEA,SAAO,CAACW,MAAM,CAACC,UAAP,CAAkBN,kBAAlB,IAAwCK,MAAM,CAACC,UAAP,CAAkBL,eAAlB,CAAzC,IAA+EvB,uBAAtF;EACD,CArBD;;EAuBA,MAAM8B,oBAAoB,GAAGpB,OAAO,IAAI;EACtCA,EAAAA,OAAO,CAACqB,aAAR,CAAsB,IAAIC,KAAJ,CAAU/B,cAAV,CAAtB;EACD,CAFD;;EAIA,MAAMgC,SAAS,GAAG9B,GAAG,IAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgB+B,QAAzC;;EAEA,MAAMC,oBAAoB,GAAG,CAACzB,OAAD,EAAU0B,QAAV,KAAuB;EAClD,MAAIC,MAAM,GAAG,KAAb;EACA,QAAMC,eAAe,GAAG,CAAxB;EACA,QAAMC,gBAAgB,GAAGH,QAAQ,GAAGE,eAApC;;EAEA,WAASE,QAAT,GAAoB;EAClBH,IAAAA,MAAM,GAAG,IAAT;EACA3B,IAAAA,OAAO,CAAC+B,mBAAR,CAA4BxC,cAA5B,EAA4CuC,QAA5C;EACD;;EAED9B,EAAAA,OAAO,CAACgC,gBAAR,CAAyBzC,cAAzB,EAAyCuC,QAAzC;EACAG,EAAAA,UAAU,CAAC,MAAM;EACf,QAAI,CAACN,MAAL,EAAa;EACXP,MAAAA,oBAAoB,CAACpB,OAAD,CAApB;EACD;EACF,GAJS,EAIP6B,gBAJO,CAAV;EAKD,CAhBD;;EAkBA,MAAMK,eAAe,GAAG,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,KAAwC;EAC9DC,EAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EAAyBG,OAAzB,CAAiCC,QAAQ,IAAI;EAC3C,UAAMC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;EACA,UAAME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;EACA,UAAMG,SAAS,GAAGD,KAAK,IAAIpB,SAAS,CAACoB,KAAD,CAAlB,GAA4B,SAA5B,GAAwCnD,MAAM,CAACmD,KAAD,CAAhE;;EAEA,QAAI,CAAC,IAAIE,MAAJ,CAAWH,aAAX,EAA0BI,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;EAC9C,YAAM,IAAIG,SAAJ,CACH,GAAEZ,aAAa,CAACa,WAAd,EAA4B,IAA/B,GACC,WAAUP,QAAS,oBAAmBG,SAAU,IADjD,GAEC,sBAAqBF,aAAc,IAHhC,CAAN;EAKD;EACF,GAZD;EAaD,CAdD;;EAgBA,MAAMO,SAAS,GAAGjD,OAAO,IAAI;EAC3B,MAAI,CAACA,OAAL,EAAc;EACZ,WAAO,KAAP;EACD;;EAED,MAAIA,OAAO,CAACkD,KAAR,IAAiBlD,OAAO,CAACmD,UAAzB,IAAuCnD,OAAO,CAACmD,UAAR,CAAmBD,KAA9D,EAAqE;EACnE,UAAME,YAAY,GAAGrC,gBAAgB,CAACf,OAAD,CAArC;EACA,UAAMqD,eAAe,GAAGtC,gBAAgB,CAACf,OAAO,CAACmD,UAAT,CAAxC;EAEA,WAAOC,YAAY,CAACE,OAAb,KAAyB,MAAzB,IACLD,eAAe,CAACC,OAAhB,KAA4B,MADvB,IAELF,YAAY,CAACG,UAAb,KAA4B,QAF9B;EAGD;;EAED,SAAO,KAAP;EACD,CAfD;;EA0DA,MAAMC,MAAM,GAAGxD,OAAO,IAAIA,OAAO,CAACyD,YAAlC;;EAEA,MAAMC,SAAS,GAAG,MAAM;EACtB,QAAM;EAAEC,IAAAA;EAAF,MAAa7C,MAAnB;;EAEA,MAAI6C,MAAM,IAAI,CAAClD,QAAQ,CAACmD,IAAT,CAAcC,YAAd,CAA2B,mBAA3B,CAAf,EAAgE;EAC9D,WAAOF,MAAP;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EAUA,MAAMG,kBAAkB,GAAGC,QAAQ,IAAI;EACrC,MAAItD,QAAQ,CAACuD,UAAT,KAAwB,SAA5B,EAAuC;EACrCvD,IAAAA,QAAQ,CAACuB,gBAAT,CAA0B,kBAA1B,EAA8C+B,QAA9C;EACD,GAFD,MAEO;EACLA,IAAAA,QAAQ;EACT;EACF,CAND;;EAQA,MAAME,KAAK,GAAG,MAAMxD,QAAQ,CAACyD,eAAT,CAAyBC,GAAzB,KAAiC,KAArD;;EAEA,MAAMC,kBAAkB,GAAG,CAACC,IAAD,EAAOC,MAAP,KAAkB;EAC3CR,EAAAA,kBAAkB,CAAC,MAAM;EACvB,UAAMS,CAAC,GAAGb,SAAS,EAAnB;EACA;;EACA,QAAIa,CAAJ,EAAO;EACL,YAAMC,kBAAkB,GAAGD,CAAC,CAACE,EAAF,CAAKJ,IAAL,CAA3B;EACAE,MAAAA,CAAC,CAACE,EAAF,CAAKJ,IAAL,IAAaC,MAAM,CAACI,eAApB;EACAH,MAAAA,CAAC,CAACE,EAAF,CAAKJ,IAAL,EAAWM,WAAX,GAAyBL,MAAzB;;EACAC,MAAAA,CAAC,CAACE,EAAF,CAAKJ,IAAL,EAAWO,UAAX,GAAwB,MAAM;EAC5BL,QAAAA,CAAC,CAACE,EAAF,CAAKJ,IAAL,IAAaG,kBAAb;EACA,eAAOF,MAAM,CAACI,eAAd;EACD,OAHD;EAID;EACF,GAZiB,CAAlB;EAaD,CAdD;;EC1NA;EACA;EACA;EACA;EACA;EACA;EAkBA;EACA;EACA;EACA;EACA;;EAEA,MAAMG,IAAI,GAAG,OAAb;EACA,MAAMC,QAAQ,GAAG,UAAjB;EACA,MAAMC,SAAS,GAAI,IAAGD,QAAS,EAA/B;EACA,MAAME,YAAY,GAAG,WAArB;EACA,MAAMC,UAAU,GAAG,QAAnB;EAEA,MAAMC,OAAO,GAAG;EACdC,EAAAA,QAAQ,EAAE,IADI;EAEdC,EAAAA,QAAQ,EAAE,IAFI;EAGdC,EAAAA,KAAK,EAAE;EAHO,CAAhB;EAMA,MAAMC,WAAW,GAAG;EAClBH,EAAAA,QAAQ,EAAE,kBADQ;EAElBC,EAAAA,QAAQ,EAAE,SAFQ;EAGlBC,EAAAA,KAAK,EAAE;EAHW,CAApB;EAMA,MAAME,UAAU,GAAI,OAAMR,SAAU,EAApC;EACA,MAAMS,oBAAoB,GAAI,gBAAeT,SAAU,EAAvD;EACA,MAAMU,YAAY,GAAI,SAAQV,SAAU,EAAxC;EACA,MAAMW,UAAU,GAAI,OAAMX,SAAU,EAApC;EACA,MAAMY,WAAW,GAAI,QAAOZ,SAAU,EAAtC;EACA,MAAMa,aAAa,GAAI,UAASb,SAAU,EAA1C;EACA,MAAMc,YAAY,GAAI,SAAQd,SAAU,EAAxC;EACA,MAAMe,mBAAmB,GAAI,gBAAef,SAAU,EAAtD;EACA,MAAMgB,qBAAqB,GAAI,kBAAiBhB,SAAU,EAA1D;EACA,MAAMiB,qBAAqB,GAAI,kBAAiBjB,SAAU,EAA1D;EACA,MAAMkB,uBAAuB,GAAI,oBAAmBlB,SAAU,EAA9D;EACA,MAAMmB,oBAAoB,GAAI,QAAOnB,SAAU,GAAEC,YAAa,EAA9D;EAEA,MAAMmB,6BAA6B,GAAG,yBAAtC;EACA,MAAMC,mBAAmB,GAAG,gBAA5B;EACA,MAAMC,eAAe,GAAG,YAAxB;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,eAAe,GAAG,MAAxB;EACA,MAAMC,iBAAiB,GAAG,cAA1B;EAEA,MAAMC,eAAe,GAAG,eAAxB;EACA,MAAMC,mBAAmB,GAAG,aAA5B;EACA,MAAMC,oBAAoB,GAAG,0BAA7B;EACA,MAAMC,qBAAqB,GAAG,2BAA9B;EACA,MAAMC,sBAAsB,GAAG,mDAA/B;EACA,MAAMC,uBAAuB,GAAG,aAAhC;EAEA;EACA;EACA;EACA;EACA;;EAEA,MAAMC,KAAN,SAAoBC,iCAApB,CAAkC;EAChCC,EAAAA,WAAW,CAACjH,OAAD,EAAUoC,MAAV,EAAkB;EAC3B,UAAMpC,OAAN;EAEA,SAAKkH,OAAL,GAAe,KAAKC,UAAL,CAAgB/E,MAAhB,CAAf;EACA,SAAKgF,OAAL,GAAeC,kCAAc,CAACC,OAAf,CAAuBb,eAAvB,EAAwC,KAAKc,QAA7C,CAAf;EACA,SAAKC,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,KAAhB;EACA,SAAKC,kBAAL,GAA0B,KAA1B;EACA,SAAKC,oBAAL,GAA4B,KAA5B;EACA,SAAKC,gBAAL,GAAwB,KAAxB;EACA,SAAKC,eAAL,GAAuB,CAAvB;EACD,GAZ+B;;;EAgBd,aAAP3C,OAAO,GAAG;EACnB,WAAOA,OAAP;EACD;;EAEkB,aAARJ,QAAQ,GAAG;EACpB,WAAOA,QAAP;EACD,GAtB+B;;;EA0BhCgD,EAAAA,MAAM,CAACC,aAAD,EAAgB;EACpB,WAAO,KAAKN,QAAL,GAAgB,KAAKO,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAUF,aAAV,CAArC;EACD;;EAEDE,EAAAA,IAAI,CAACF,aAAD,EAAgB;EAClB,QAAI,KAAKN,QAAL,IAAiB,KAAKG,gBAA1B,EAA4C;EAC1C;EACD;;EAED,QAAI,KAAKM,WAAL,EAAJ,EAAwB;EACtB,WAAKN,gBAAL,GAAwB,IAAxB;EACD;;EAED,UAAMO,SAAS,GAAGC,gCAAY,CAACC,OAAb,CAAqB,KAAKd,QAA1B,EAAoC7B,UAApC,EAAgD;EAChEqC,MAAAA;EADgE,KAAhD,CAAlB;;EAIA,QAAI,KAAKN,QAAL,IAAiBU,SAAS,CAACG,gBAA/B,EAAiD;EAC/C;EACD;;EAED,SAAKb,QAAL,GAAgB,IAAhB;;EAEA,SAAKc,eAAL;;EACA,SAAKC,aAAL;;EAEA,SAAKC,aAAL;;EAEA,SAAKC,eAAL;;EACA,SAAKC,eAAL;;EAEAP,IAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrB,QAArB,EAA+BzB,mBAA/B,EAAoDc,qBAApD,EAA2EiC,KAAK,IAAI,KAAKb,IAAL,CAAUa,KAAV,CAApF;EAEAT,IAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKxB,OAArB,EAA8BnB,uBAA9B,EAAuD,MAAM;EAC3DmC,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,QAAtB,EAAgCvB,qBAAhC,EAAuD6C,KAAK,IAAI;EAC9D,YAAIA,KAAK,CAACE,MAAN,KAAiB,KAAKxB,QAA1B,EAAoC;EAClC,eAAKI,oBAAL,GAA4B,IAA5B;EACD;EACF,OAJD;EAKD,KAND;;EAQA,SAAKqB,aAAL,CAAmB,MAAM,KAAKC,YAAL,CAAkBlB,aAAlB,CAAzB;EACD;;EAEDC,EAAAA,IAAI,CAACa,KAAD,EAAQ;EACV,QAAIA,KAAJ,EAAW;EACTA,MAAAA,KAAK,CAACK,cAAN;EACD;;EAED,QAAI,CAAC,KAAKzB,QAAN,IAAkB,KAAKG,gBAA3B,EAA6C;EAC3C;EACD;;EAED,UAAMuB,SAAS,GAAGf,gCAAY,CAACC,OAAb,CAAqB,KAAKd,QAA1B,EAAoChC,UAApC,CAAlB;;EAEA,QAAI4D,SAAS,CAACb,gBAAd,EAAgC;EAC9B;EACD;;EAED,SAAKb,QAAL,GAAgB,KAAhB;;EACA,UAAM2B,UAAU,GAAG,KAAKlB,WAAL,EAAnB;;EAEA,QAAIkB,UAAJ,EAAgB;EACd,WAAKxB,gBAAL,GAAwB,IAAxB;EACD;;EAED,SAAKc,eAAL;;EACA,SAAKC,eAAL;;EAEAP,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BmF,aAA3B;;EAEA,SAAK2B,QAAL,CAAc+B,SAAd,CAAwBC,MAAxB,CAA+BhD,eAA/B;;EAEA6B,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9B,QAAtB,EAAgCzB,mBAAhC;EACAsC,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAKjC,OAAtB,EAA+BnB,uBAA/B;;EAEA,QAAImD,UAAJ,EAAgB;EACd,YAAMxI,kBAAkB,GAAGD,gCAAgC,CAAC,KAAK4G,QAAN,CAA3D;EAEAa,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,QAAtB,EAAgC,eAAhC,EAAiDsB,KAAK,IAAI,KAAKW,UAAL,CAAgBX,KAAhB,CAA1D;EACApH,MAAAA,oBAAoB,CAAC,KAAK8F,QAAN,EAAgB3G,kBAAhB,CAApB;EACD,KALD,MAKO;EACL,WAAK4I,UAAL;EACD;EACF;;EAEDC,EAAAA,OAAO,GAAG;EACR,KAAC3I,MAAD,EAAS,KAAKyG,QAAd,EAAwB,KAAKH,OAA7B,EACG5E,OADH,CACWkH,WAAW,IAAItB,gCAAY,CAACiB,GAAb,CAAiBK,WAAjB,EAA8B3E,SAA9B,CAD1B;EAGA,UAAM0E,OAAN;EAEA;EACJ;EACA;EACA;EACA;;EACIrB,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BmF,aAA3B;EAEA,SAAKsB,OAAL,GAAe,IAAf;EACA,SAAKE,OAAL,GAAe,IAAf;EACA,SAAKI,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,kBAAL,GAA0B,IAA1B;EACA,SAAKC,oBAAL,GAA4B,IAA5B;EACA,SAAKC,gBAAL,GAAwB,IAAxB;EACA,SAAKC,eAAL,GAAuB,IAAvB;EACD;;EAED8B,EAAAA,YAAY,GAAG;EACb,SAAKlB,aAAL;EACD,GAzI+B;;;EA6IhCtB,EAAAA,UAAU,CAAC/E,MAAD,EAAS;EACjBA,IAAAA,MAAM,GAAG,EACP,GAAG8C,OADI;EAEP,SAAG9C;EAFI,KAAT;EAIAF,IAAAA,eAAe,CAAC2C,IAAD,EAAOzC,MAAP,EAAekD,WAAf,CAAf;EACA,WAAOlD,MAAP;EACD;;EAED6G,EAAAA,YAAY,CAAClB,aAAD,EAAgB;EAC1B,UAAMqB,UAAU,GAAG,KAAKlB,WAAL,EAAnB;;EACA,UAAM0B,SAAS,GAAGvC,kCAAc,CAACC,OAAf,CAAuBZ,mBAAvB,EAA4C,KAAKU,OAAjD,CAAlB;;EAEA,QAAI,CAAC,KAAKG,QAAL,CAAcpE,UAAf,IAA6B,KAAKoE,QAAL,CAAcpE,UAAd,CAAyB3B,QAAzB,KAAsCqI,IAAI,CAACC,YAA5E,EAA0F;EACxF;EACArJ,MAAAA,QAAQ,CAACmD,IAAT,CAAcmG,WAAd,CAA0B,KAAKxC,QAA/B;EACD;;EAED,SAAKA,QAAL,CAAcrE,KAAd,CAAoBI,OAApB,GAA8B,OAA9B;;EACA,SAAKiE,QAAL,CAAcyC,eAAd,CAA8B,aAA9B;;EACA,SAAKzC,QAAL,CAAc0C,YAAd,CAA2B,YAA3B,EAAyC,IAAzC;;EACA,SAAK1C,QAAL,CAAc0C,YAAd,CAA2B,MAA3B,EAAmC,QAAnC;;EACA,SAAK1C,QAAL,CAAc2C,SAAd,GAA0B,CAA1B;;EAEA,QAAIN,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAACM,SAAV,GAAsB,CAAtB;EACD;;EAED,QAAId,UAAJ,EAAgB;EACd5F,MAAAA,MAAM,CAAC,KAAK+D,QAAN,CAAN;EACD;;EAED,SAAKA,QAAL,CAAc+B,SAAd,CAAwBa,GAAxB,CAA4B5D,eAA5B;;EAEA,QAAI,KAAKW,OAAL,CAAa7B,KAAjB,EAAwB;EACtB,WAAK+E,aAAL;EACD;;EAED,UAAMC,kBAAkB,GAAG,MAAM;EAC/B,UAAI,KAAKnD,OAAL,CAAa7B,KAAjB,EAAwB;EACtB,aAAKkC,QAAL,CAAclC,KAAd;EACD;;EAED,WAAKuC,gBAAL,GAAwB,KAAxB;EACAQ,MAAAA,gCAAY,CAACC,OAAb,CAAqB,KAAKd,QAA1B,EAAoC5B,WAApC,EAAiD;EAC/CoC,QAAAA;EAD+C,OAAjD;EAGD,KATD;;EAWA,QAAIqB,UAAJ,EAAgB;EACd,YAAMxI,kBAAkB,GAAGD,gCAAgC,CAAC,KAAKyG,OAAN,CAA3D;EAEAgB,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAK1B,OAAtB,EAA+B,eAA/B,EAAgDiD,kBAAhD;EACA5I,MAAAA,oBAAoB,CAAC,KAAK2F,OAAN,EAAexG,kBAAf,CAApB;EACD,KALD,MAKO;EACLyJ,MAAAA,kBAAkB;EACnB;EACF;;EAEDD,EAAAA,aAAa,GAAG;EACdhC,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BmF,aAA3B,EADc;;EAEdwC,IAAAA,gCAAY,CAACQ,EAAb,CAAgBnI,QAAhB,EAA0BmF,aAA1B,EAAyCiD,KAAK,IAAI;EAChD,UAAIpI,QAAQ,KAAKoI,KAAK,CAACE,MAAnB,IACA,KAAKxB,QAAL,KAAkBsB,KAAK,CAACE,MADxB,IAEA,CAAC,KAAKxB,QAAL,CAAc+C,QAAd,CAAuBzB,KAAK,CAACE,MAA7B,CAFL,EAE2C;EACzC,aAAKxB,QAAL,CAAclC,KAAd;EACD;EACF,KAND;EAOD;;EAEDqD,EAAAA,eAAe,GAAG;EAChB,QAAI,KAAKjB,QAAT,EAAmB;EACjBW,MAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrB,QAArB,EAA+BxB,qBAA/B,EAAsD8C,KAAK,IAAI;EAC7D,YAAI,KAAK3B,OAAL,CAAa9B,QAAb,IAAyByD,KAAK,CAAC0B,GAAN,KAActF,UAA3C,EAAuD;EACrD4D,UAAAA,KAAK,CAACK,cAAN;EACA,eAAKlB,IAAL;EACD,SAHD,MAGO,IAAI,CAAC,KAAKd,OAAL,CAAa9B,QAAd,IAA0ByD,KAAK,CAAC0B,GAAN,KAActF,UAA5C,EAAwD;EAC7D,eAAKuF,0BAAL;EACD;EACF,OAPD;EAQD,KATD,MASO;EACLpC,MAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9B,QAAtB,EAAgCxB,qBAAhC;EACD;EACF;;EAED4C,EAAAA,eAAe,GAAG;EAChB,QAAI,KAAKlB,QAAT,EAAmB;EACjBW,MAAAA,gCAAY,CAACQ,EAAb,CAAgB9H,MAAhB,EAAwB+E,YAAxB,EAAsC,MAAM,KAAK4C,aAAL,EAA5C;EACD,KAFD,MAEO;EACLL,MAAAA,gCAAY,CAACiB,GAAb,CAAiBvI,MAAjB,EAAyB+E,YAAzB;EACD;EACF;;EAED2D,EAAAA,UAAU,GAAG;EACX,SAAKjC,QAAL,CAAcrE,KAAd,CAAoBI,OAApB,GAA8B,MAA9B;;EACA,SAAKiE,QAAL,CAAc0C,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;EACA,SAAK1C,QAAL,CAAcyC,eAAd,CAA8B,YAA9B;;EACA,SAAKzC,QAAL,CAAcyC,eAAd,CAA8B,MAA9B;;EACA,SAAKpC,gBAAL,GAAwB,KAAxB;;EACA,SAAKoB,aAAL,CAAmB,MAAM;EACvBvI,MAAAA,QAAQ,CAACmD,IAAT,CAAc0F,SAAd,CAAwBC,MAAxB,CAA+BlD,eAA/B;;EACA,WAAKoE,iBAAL;;EACA,WAAKC,eAAL;;EACAtC,MAAAA,gCAAY,CAACC,OAAb,CAAqB,KAAKd,QAA1B,EAAoC9B,YAApC;EACD,KALD;EAMD;;EAEDkF,EAAAA,eAAe,GAAG;EAChB,SAAKnD,SAAL,CAAerE,UAAf,CAA0ByH,WAA1B,CAAsC,KAAKpD,SAA3C;;EACA,SAAKA,SAAL,GAAiB,IAAjB;EACD;;EAEDwB,EAAAA,aAAa,CAACjF,QAAD,EAAW;EACtB,UAAMqF,UAAU,GAAG,KAAKlB,WAAL,EAAnB;;EACA,QAAI,KAAKT,QAAL,IAAiB,KAAKP,OAAL,CAAa/B,QAAlC,EAA4C;EAC1C,WAAKqC,SAAL,GAAiB/G,QAAQ,CAACoK,aAAT,CAAuB,KAAvB,CAAjB;EACA,WAAKrD,SAAL,CAAesD,SAAf,GAA2B1E,mBAA3B;;EAEA,UAAIgD,UAAJ,EAAgB;EACd,aAAK5B,SAAL,CAAe8B,SAAf,CAAyBa,GAAzB,CAA6B7D,eAA7B;EACD;;EAED7F,MAAAA,QAAQ,CAACmD,IAAT,CAAcmG,WAAd,CAA0B,KAAKvC,SAA/B;EAEAY,MAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrB,QAArB,EAA+BzB,mBAA/B,EAAoD+C,KAAK,IAAI;EAC3D,YAAI,KAAKlB,oBAAT,EAA+B;EAC7B,eAAKA,oBAAL,GAA4B,KAA5B;EACA;EACD;;EAED,YAAIkB,KAAK,CAACE,MAAN,KAAiBF,KAAK,CAACkC,aAA3B,EAA0C;EACxC;EACD;;EAED,YAAI,KAAK7D,OAAL,CAAa/B,QAAb,KAA0B,QAA9B,EAAwC;EACtC,eAAKqF,0BAAL;EACD,SAFD,MAEO;EACL,eAAKxC,IAAL;EACD;EACF,OAfD;;EAiBA,UAAIoB,UAAJ,EAAgB;EACd5F,QAAAA,MAAM,CAAC,KAAKgE,SAAN,CAAN;EACD;;EAED,WAAKA,SAAL,CAAe8B,SAAf,CAAyBa,GAAzB,CAA6B5D,eAA7B;;EAEA,UAAI,CAAC6C,UAAL,EAAiB;EACfrF,QAAAA,QAAQ;EACR;EACD;;EAED,YAAMiH,0BAA0B,GAAGrK,gCAAgC,CAAC,KAAK6G,SAAN,CAAnE;EAEAY,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKtB,SAAtB,EAAiC,eAAjC,EAAkDzD,QAAlD;EACAtC,MAAAA,oBAAoB,CAAC,KAAK+F,SAAN,EAAiBwD,0BAAjB,CAApB;EACD,KA1CD,MA0CO,IAAI,CAAC,KAAKvD,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;EAC3C,WAAKA,SAAL,CAAe8B,SAAf,CAAyBC,MAAzB,CAAgChD,eAAhC;;EAEA,YAAM0E,cAAc,GAAG,MAAM;EAC3B,aAAKN,eAAL;;EACA5G,QAAAA,QAAQ;EACT,OAHD;;EAKA,UAAIqF,UAAJ,EAAgB;EACd,cAAM4B,0BAA0B,GAAGrK,gCAAgC,CAAC,KAAK6G,SAAN,CAAnE;EACAY,QAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKtB,SAAtB,EAAiC,eAAjC,EAAkDyD,cAAlD;EACAxJ,QAAAA,oBAAoB,CAAC,KAAK+F,SAAN,EAAiBwD,0BAAjB,CAApB;EACD,OAJD,MAIO;EACLC,QAAAA,cAAc;EACf;EACF,KAfM,MAeA;EACLlH,MAAAA,QAAQ;EACT;EACF;;EAEDmE,EAAAA,WAAW,GAAG;EACZ,WAAO,KAAKX,QAAL,CAAc+B,SAAd,CAAwBgB,QAAxB,CAAiChE,eAAjC,CAAP;EACD;;EAEDkE,EAAAA,0BAA0B,GAAG;EAC3B,UAAMrB,SAAS,GAAGf,gCAAY,CAACC,OAAb,CAAqB,KAAKd,QAA1B,EAAoC/B,oBAApC,CAAlB;;EACA,QAAI2D,SAAS,CAACb,gBAAd,EAAgC;EAC9B;EACD;;EAED,UAAM4C,kBAAkB,GAAG,KAAK3D,QAAL,CAAc4D,YAAd,GAA6B1K,QAAQ,CAACyD,eAAT,CAAyBkH,YAAjF;;EAEA,QAAI,CAACF,kBAAL,EAAyB;EACvB,WAAK3D,QAAL,CAAcrE,KAAd,CAAoBmI,SAApB,GAAgC,QAAhC;EACD;;EAED,SAAK9D,QAAL,CAAc+B,SAAd,CAAwBa,GAAxB,CAA4B3D,iBAA5B;;EACA,UAAM8E,uBAAuB,GAAG3K,gCAAgC,CAAC,KAAKyG,OAAN,CAAhE;EACAgB,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9B,QAAtB,EAAgC,eAAhC;EACAa,IAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,QAAtB,EAAgC,eAAhC,EAAiD,MAAM;EACrD,WAAKA,QAAL,CAAc+B,SAAd,CAAwBC,MAAxB,CAA+B/C,iBAA/B;;EACA,UAAI,CAAC0E,kBAAL,EAAyB;EACvB9C,QAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,QAAtB,EAAgC,eAAhC,EAAiD,MAAM;EACrD,eAAKA,QAAL,CAAcrE,KAAd,CAAoBmI,SAApB,GAAgC,EAAhC;EACD,SAFD;EAGA5J,QAAAA,oBAAoB,CAAC,KAAK8F,QAAN,EAAgB+D,uBAAhB,CAApB;EACD;EACF,KARD;EASA7J,IAAAA,oBAAoB,CAAC,KAAK8F,QAAN,EAAgB+D,uBAAhB,CAApB;;EACA,SAAK/D,QAAL,CAAclC,KAAd;EACD,GA3V+B;EA8VhC;EACA;;;EAEAoD,EAAAA,aAAa,GAAG;EACd,UAAMyC,kBAAkB,GAAG,KAAK3D,QAAL,CAAc4D,YAAd,GAA6B1K,QAAQ,CAACyD,eAAT,CAAyBkH,YAAjF;;EAEA,QAAK,CAAC,KAAK1D,kBAAN,IAA4BwD,kBAA5B,IAAkD,CAACjH,KAAK,EAAzD,IAAiE,KAAKyD,kBAAL,IAA2B,CAACwD,kBAA5B,IAAkDjH,KAAK,EAA5H,EAAiI;EAC/H,WAAKsD,QAAL,CAAcrE,KAAd,CAAoBqI,WAApB,GAAmC,GAAE,KAAK1D,eAAgB,IAA1D;EACD;;EAED,QAAK,KAAKH,kBAAL,IAA2B,CAACwD,kBAA5B,IAAkD,CAACjH,KAAK,EAAzD,IAAiE,CAAC,KAAKyD,kBAAN,IAA4BwD,kBAA5B,IAAkDjH,KAAK,EAA5H,EAAiI;EAC/H,WAAKsD,QAAL,CAAcrE,KAAd,CAAoBsI,YAApB,GAAoC,GAAE,KAAK3D,eAAgB,IAA3D;EACD;EACF;;EAED4C,EAAAA,iBAAiB,GAAG;EAClB,SAAKlD,QAAL,CAAcrE,KAAd,CAAoBqI,WAApB,GAAkC,EAAlC;EACA,SAAKhE,QAAL,CAAcrE,KAAd,CAAoBsI,YAApB,GAAmC,EAAnC;EACD;;EAEDjD,EAAAA,eAAe,GAAG;EAChB,UAAMkD,IAAI,GAAGhL,QAAQ,CAACmD,IAAT,CAAc8H,qBAAd,EAAb;EACA,SAAKhE,kBAAL,GAA0BiE,IAAI,CAACC,KAAL,CAAWH,IAAI,CAACI,IAAL,GAAYJ,IAAI,CAACK,KAA5B,IAAqChL,MAAM,CAACiL,UAAtE;EACA,SAAKlE,eAAL,GAAuB,KAAKmE,kBAAL,EAAvB;EACD;;EAEDxD,EAAAA,aAAa,GAAG;EACd,QAAI,KAAKd,kBAAT,EAA6B;EAC3B,WAAKuE,qBAAL,CAA2BpF,sBAA3B,EAAmD,cAAnD,EAAmEqF,eAAe,IAAIA,eAAe,GAAG,KAAKrE,eAA7G;;EACA,WAAKoE,qBAAL,CAA2BnF,uBAA3B,EAAoD,aAApD,EAAmEoF,eAAe,IAAIA,eAAe,GAAG,KAAKrE,eAA7G;;EACA,WAAKoE,qBAAL,CAA2B,MAA3B,EAAmC,cAAnC,EAAmDC,eAAe,IAAIA,eAAe,GAAG,KAAKrE,eAA7F;EACD;;EAEDpH,IAAAA,QAAQ,CAACmD,IAAT,CAAc0F,SAAd,CAAwBa,GAAxB,CAA4B9D,eAA5B;EACD;;EAED4F,EAAAA,qBAAqB,CAAChM,QAAD,EAAWkM,SAAX,EAAsBpI,QAAtB,EAAgC;EACnDsD,IAAAA,kCAAc,CAAC+E,IAAf,CAAoBnM,QAApB,EACGuC,OADH,CACWxC,OAAO,IAAI;EAClB,UAAIA,OAAO,KAAKS,QAAQ,CAACmD,IAArB,IAA6B9C,MAAM,CAACiL,UAAP,GAAoB/L,OAAO,CAACqM,WAAR,GAAsB,KAAKxE,eAAhF,EAAiG;EAC/F;EACD;;EAED,YAAMyE,WAAW,GAAGtM,OAAO,CAACkD,KAAR,CAAciJ,SAAd,CAApB;EACA,YAAMD,eAAe,GAAGpL,MAAM,CAACC,gBAAP,CAAwBf,OAAxB,EAAiCmM,SAAjC,CAAxB;EACAI,MAAAA,+BAAW,CAACC,gBAAZ,CAA6BxM,OAA7B,EAAsCmM,SAAtC,EAAiDG,WAAjD;EACAtM,MAAAA,OAAO,CAACkD,KAAR,CAAciJ,SAAd,IAA2BpI,QAAQ,CAAC9C,MAAM,CAACC,UAAP,CAAkBgL,eAAlB,CAAD,CAAR,GAA+C,IAA1E;EACD,KAVH;EAWD;;EAEDxB,EAAAA,eAAe,GAAG;EAChB,SAAK+B,uBAAL,CAA6B5F,sBAA7B,EAAqD,cAArD;;EACA,SAAK4F,uBAAL,CAA6B3F,uBAA7B,EAAsD,aAAtD;;EACA,SAAK2F,uBAAL,CAA6B,MAA7B,EAAqC,cAArC;EACD;;EAEDA,EAAAA,uBAAuB,CAACxM,QAAD,EAAWkM,SAAX,EAAsB;EAC3C9E,IAAAA,kCAAc,CAAC+E,IAAf,CAAoBnM,QAApB,EAA8BuC,OAA9B,CAAsCxC,OAAO,IAAI;EAC/C,YAAM2C,KAAK,GAAG4J,+BAAW,CAACG,gBAAZ,CAA6B1M,OAA7B,EAAsCmM,SAAtC,CAAd;;EACA,UAAI,OAAOxJ,KAAP,KAAiB,WAAjB,IAAgC3C,OAAO,KAAKS,QAAQ,CAACmD,IAAzD,EAA+D;EAC7D5D,QAAAA,OAAO,CAACkD,KAAR,CAAciJ,SAAd,IAA2B,EAA3B;EACD,OAFD,MAEO;EACLI,QAAAA,+BAAW,CAACI,mBAAZ,CAAgC3M,OAAhC,EAAyCmM,SAAzC;EACAnM,QAAAA,OAAO,CAACkD,KAAR,CAAciJ,SAAd,IAA2BxJ,KAA3B;EACD;EACF,KARD;EASD;;EAEDqJ,EAAAA,kBAAkB,GAAG;EAAE;EACrB,UAAMY,SAAS,GAAGnM,QAAQ,CAACoK,aAAT,CAAuB,KAAvB,CAAlB;EACA+B,IAAAA,SAAS,CAAC9B,SAAV,GAAsB3E,6BAAtB;EACA1F,IAAAA,QAAQ,CAACmD,IAAT,CAAcmG,WAAd,CAA0B6C,SAA1B;EACA,UAAMC,cAAc,GAAGD,SAAS,CAAClB,qBAAV,GAAkCoB,KAAlC,GAA0CF,SAAS,CAACP,WAA3E;EACA5L,IAAAA,QAAQ,CAACmD,IAAT,CAAcgH,WAAd,CAA0BgC,SAA1B;EACA,WAAOC,cAAP;EACD,GAza+B;;;EA6aV,SAAfnI,eAAe,CAACtC,MAAD,EAAS2F,aAAT,EAAwB;EAC5C,WAAO,KAAKgF,IAAL,CAAU,YAAY;EAC3B,UAAIC,IAAI,GAAGC,wBAAI,CAACC,GAAL,CAAS,IAAT,EAAepI,QAAf,CAAX;EACA,YAAMoC,OAAO,GAAG,EACd,GAAGhC,OADW;EAEd,WAAGqH,+BAAW,CAACY,iBAAZ,CAA8B,IAA9B,CAFW;EAGd,YAAI,OAAO/K,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAApD;EAHc,OAAhB;;EAMA,UAAI,CAAC4K,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAIjG,KAAJ,CAAU,IAAV,EAAgBG,OAAhB,CAAP;EACD;;EAED,UAAI,OAAO9E,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO4K,IAAI,CAAC5K,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAIW,SAAJ,CAAe,oBAAmBX,MAAO,GAAzC,CAAN;EACD;;EAED4K,QAAAA,IAAI,CAAC5K,MAAD,CAAJ,CAAa2F,aAAb;EACD;EACF,KAnBM,CAAP;EAoBD;;EAlc+B;EAqclC;EACA;EACA;EACA;EACA;;;AAEAK,kCAAY,CAACQ,EAAb,CAAgBnI,QAAhB,EAA0ByF,oBAA1B,EAAgDS,oBAAhD,EAAsE,UAAUkC,KAAV,EAAiB;EACrF,QAAME,MAAM,GAAGvI,sBAAsB,CAAC,IAAD,CAArC;;EAEA,MAAI,KAAK4M,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;EACnDvE,IAAAA,KAAK,CAACK,cAAN;EACD;;EAEDd,EAAAA,gCAAY,CAACU,GAAb,CAAiBC,MAAjB,EAAyBrD,UAAzB,EAAqCyC,SAAS,IAAI;EAChD,QAAIA,SAAS,CAACG,gBAAd,EAAgC;EAC9B;EACA;EACD;;EAEDF,IAAAA,gCAAY,CAACU,GAAb,CAAiBC,MAAjB,EAAyBtD,YAAzB,EAAuC,MAAM;EAC3C,UAAIxC,SAAS,CAAC,IAAD,CAAb,EAAqB;EACnB,aAAKoC,KAAL;EACD;EACF,KAJD;EAKD,GAXD;EAaA,MAAI2H,IAAI,GAAGC,wBAAI,CAACC,GAAL,CAASnE,MAAT,EAAiBjE,QAAjB,CAAX;;EACA,MAAI,CAACkI,IAAL,EAAW;EACT,UAAM5K,MAAM,GAAG,EACb,GAAGmK,+BAAW,CAACY,iBAAZ,CAA8BpE,MAA9B,CADU;EAEb,SAAGwD,+BAAW,CAACY,iBAAZ,CAA8B,IAA9B;EAFU,KAAf;EAKAH,IAAAA,IAAI,GAAG,IAAIjG,KAAJ,CAAUgC,MAAV,EAAkB3G,MAAlB,CAAP;EACD;;EAED4K,EAAAA,IAAI,CAAClF,MAAL,CAAY,IAAZ;EACD,CA/BD;EAiCA;EACA;EACA;EACA;EACA;EACA;;EAEA1D,kBAAkB,CAACS,IAAD,EAAOkC,KAAP,CAAlB;;;;;;;;"}
@@ -1,509 +0,0 @@
1
- /*!
2
- * Bootstrap offcanvas.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/selector-engine.js'), require('./dom/manipulator.js'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/manipulator', './dom/data', './dom/event-handler', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Offcanvas = factory(global.SelectorEngine, global.Manipulator, global.Data, global.EventHandler, global.Base));
10
- }(this, (function (SelectorEngine, Manipulator, Data, EventHandler, BaseComponent) { 'use strict';
11
-
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
-
14
- var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
15
- var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
16
- var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
17
- var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
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
-
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
- const getSelector = element => {
37
- let selector = element.getAttribute('data-bs-target');
38
-
39
- if (!selector || selector === '#') {
40
- let hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
41
- // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
42
- // `document.querySelector` will rightfully complain it is invalid.
43
- // See https://github.com/twbs/bootstrap/issues/32273
44
-
45
- if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {
46
- return null;
47
- } // Just in case some CMS puts out a full URL with the anchor appended
48
-
49
-
50
- if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {
51
- hrefAttr = '#' + hrefAttr.split('#')[1];
52
- }
53
-
54
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
55
- }
56
-
57
- return selector;
58
- };
59
-
60
- const getSelectorFromElement = element => {
61
- const selector = getSelector(element);
62
-
63
- if (selector) {
64
- return document.querySelector(selector) ? selector : null;
65
- }
66
-
67
- return null;
68
- };
69
-
70
- const getElementFromSelector = element => {
71
- const selector = getSelector(element);
72
- return selector ? document.querySelector(selector) : null;
73
- };
74
-
75
- const getTransitionDurationFromElement = element => {
76
- if (!element) {
77
- return 0;
78
- } // Get transition-duration of the element
79
-
80
-
81
- let {
82
- transitionDuration,
83
- transitionDelay
84
- } = window.getComputedStyle(element);
85
- const floatTransitionDuration = Number.parseFloat(transitionDuration);
86
- const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
87
-
88
- if (!floatTransitionDuration && !floatTransitionDelay) {
89
- return 0;
90
- } // If multiple durations are defined, take the first
91
-
92
-
93
- transitionDuration = transitionDuration.split(',')[0];
94
- transitionDelay = transitionDelay.split(',')[0];
95
- return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
96
- };
97
-
98
- const isElement = obj => (obj[0] || obj).nodeType;
99
-
100
- const typeCheckConfig = (componentName, config, configTypes) => {
101
- Object.keys(configTypes).forEach(property => {
102
- const expectedTypes = configTypes[property];
103
- const value = config[property];
104
- const valueType = value && isElement(value) ? 'element' : toType(value);
105
-
106
- if (!new RegExp(expectedTypes).test(valueType)) {
107
- throw new TypeError(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
108
- }
109
- });
110
- };
111
-
112
- const isVisible = element => {
113
- if (!element) {
114
- return false;
115
- }
116
-
117
- if (element.style && element.parentNode && element.parentNode.style) {
118
- const elementStyle = getComputedStyle(element);
119
- const parentNodeStyle = getComputedStyle(element.parentNode);
120
- return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
121
- }
122
-
123
- return false;
124
- };
125
-
126
- const isDisabled = element => {
127
- if (!element || element.nodeType !== Node.ELEMENT_NODE) {
128
- return true;
129
- }
130
-
131
- if (element.classList.contains('disabled')) {
132
- return true;
133
- }
134
-
135
- if (typeof element.disabled !== 'undefined') {
136
- return element.disabled;
137
- }
138
-
139
- return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
140
- };
141
-
142
- const getjQuery = () => {
143
- const {
144
- jQuery
145
- } = window;
146
-
147
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
148
- return jQuery;
149
- }
150
-
151
- return null;
152
- };
153
-
154
- const onDOMContentLoaded = callback => {
155
- if (document.readyState === 'loading') {
156
- document.addEventListener('DOMContentLoaded', callback);
157
- } else {
158
- callback();
159
- }
160
- };
161
-
162
- const defineJQueryPlugin = (name, plugin) => {
163
- onDOMContentLoaded(() => {
164
- const $ = getjQuery();
165
- /* istanbul ignore if */
166
-
167
- if ($) {
168
- const JQUERY_NO_CONFLICT = $.fn[name];
169
- $.fn[name] = plugin.jQueryInterface;
170
- $.fn[name].Constructor = plugin;
171
-
172
- $.fn[name].noConflict = () => {
173
- $.fn[name] = JQUERY_NO_CONFLICT;
174
- return plugin.jQueryInterface;
175
- };
176
- }
177
- });
178
- };
179
-
180
- /**
181
- * --------------------------------------------------------------------------
182
- * Bootstrap (v5.0.0-beta3): util/scrollBar.js
183
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
184
- * --------------------------------------------------------------------------
185
- */
186
- const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed';
187
- const SELECTOR_STICKY_CONTENT = '.sticky-top';
188
-
189
- const getWidth = () => {
190
- // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
191
- const documentWidth = document.documentElement.clientWidth;
192
- return Math.abs(window.innerWidth - documentWidth);
193
- };
194
-
195
- const hide = (width = getWidth()) => {
196
- document.body.style.overflow = 'hidden';
197
-
198
- _setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue => calculatedValue + width);
199
-
200
- _setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue => calculatedValue - width);
201
-
202
- _setElementAttributes('body', 'paddingRight', calculatedValue => calculatedValue + width);
203
- };
204
-
205
- const _setElementAttributes = (selector, styleProp, callback) => {
206
- const scrollbarWidth = getWidth();
207
- SelectorEngine__default['default'].find(selector).forEach(element => {
208
- if (element !== document.body && window.innerWidth > element.clientWidth + scrollbarWidth) {
209
- return;
210
- }
211
-
212
- const actualValue = element.style[styleProp];
213
- const calculatedValue = window.getComputedStyle(element)[styleProp];
214
- Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);
215
- element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px';
216
- });
217
- };
218
-
219
- const reset = () => {
220
- document.body.style.overflow = 'auto';
221
-
222
- _resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
223
-
224
- _resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
225
-
226
- _resetElementAttributes('body', 'paddingRight');
227
- };
228
-
229
- const _resetElementAttributes = (selector, styleProp) => {
230
- SelectorEngine__default['default'].find(selector).forEach(element => {
231
- const value = Manipulator__default['default'].getDataAttribute(element, styleProp);
232
-
233
- if (typeof value === 'undefined' && element === document.body) {
234
- element.style.removeProperty(styleProp);
235
- } else {
236
- Manipulator__default['default'].removeDataAttribute(element, styleProp);
237
- element.style[styleProp] = value;
238
- }
239
- });
240
- };
241
-
242
- /**
243
- * --------------------------------------------------------------------------
244
- * Bootstrap (v5.0.0-beta3): offcanvas.js
245
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
246
- * --------------------------------------------------------------------------
247
- */
248
- /**
249
- * ------------------------------------------------------------------------
250
- * Constants
251
- * ------------------------------------------------------------------------
252
- */
253
-
254
- const NAME = 'offcanvas';
255
- const DATA_KEY = 'bs.offcanvas';
256
- const EVENT_KEY = `.${DATA_KEY}`;
257
- const DATA_API_KEY = '.data-api';
258
- const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
259
- const ESCAPE_KEY = 'Escape';
260
- const Default = {
261
- backdrop: true,
262
- keyboard: true,
263
- scroll: false
264
- };
265
- const DefaultType = {
266
- backdrop: 'boolean',
267
- keyboard: 'boolean',
268
- scroll: 'boolean'
269
- };
270
- const CLASS_NAME_BACKDROP_BODY = 'offcanvas-backdrop';
271
- const CLASS_NAME_SHOW = 'show';
272
- const CLASS_NAME_TOGGLING = 'offcanvas-toggling';
273
- const OPEN_SELECTOR = '.offcanvas.show';
274
- const ACTIVE_SELECTOR = `${OPEN_SELECTOR}, .${CLASS_NAME_TOGGLING}`;
275
- const EVENT_SHOW = `show${EVENT_KEY}`;
276
- const EVENT_SHOWN = `shown${EVENT_KEY}`;
277
- const EVENT_HIDE = `hide${EVENT_KEY}`;
278
- const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
279
- const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
280
- const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
281
- const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;
282
- const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="offcanvas"]';
283
- const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="offcanvas"]';
284
- /**
285
- * ------------------------------------------------------------------------
286
- * Class Definition
287
- * ------------------------------------------------------------------------
288
- */
289
-
290
- class Offcanvas extends BaseComponent__default['default'] {
291
- constructor(element, config) {
292
- super(element);
293
- this._config = this._getConfig(config);
294
- this._isShown = false;
295
-
296
- this._addEventListeners();
297
- } // Getters
298
-
299
-
300
- static get Default() {
301
- return Default;
302
- }
303
-
304
- static get DATA_KEY() {
305
- return DATA_KEY;
306
- } // Public
307
-
308
-
309
- toggle(relatedTarget) {
310
- return this._isShown ? this.hide() : this.show(relatedTarget);
311
- }
312
-
313
- show(relatedTarget) {
314
- if (this._isShown) {
315
- return;
316
- }
317
-
318
- const showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
319
- relatedTarget
320
- });
321
-
322
- if (showEvent.defaultPrevented) {
323
- return;
324
- }
325
-
326
- this._isShown = true;
327
- this._element.style.visibility = 'visible';
328
-
329
- if (this._config.backdrop) {
330
- document.body.classList.add(CLASS_NAME_BACKDROP_BODY);
331
- }
332
-
333
- if (!this._config.scroll) {
334
- hide();
335
- }
336
-
337
- this._element.classList.add(CLASS_NAME_TOGGLING);
338
-
339
- this._element.removeAttribute('aria-hidden');
340
-
341
- this._element.setAttribute('aria-modal', true);
342
-
343
- this._element.setAttribute('role', 'dialog');
344
-
345
- this._element.classList.add(CLASS_NAME_SHOW);
346
-
347
- const completeCallBack = () => {
348
- this._element.classList.remove(CLASS_NAME_TOGGLING);
349
-
350
- EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, {
351
- relatedTarget
352
- });
353
-
354
- this._enforceFocusOnElement(this._element);
355
- };
356
-
357
- setTimeout(completeCallBack, getTransitionDurationFromElement(this._element));
358
- }
359
-
360
- hide() {
361
- if (!this._isShown) {
362
- return;
363
- }
364
-
365
- const hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
366
-
367
- if (hideEvent.defaultPrevented) {
368
- return;
369
- }
370
-
371
- this._element.classList.add(CLASS_NAME_TOGGLING);
372
-
373
- EventHandler__default['default'].off(document, EVENT_FOCUSIN);
374
-
375
- this._element.blur();
376
-
377
- this._isShown = false;
378
-
379
- this._element.classList.remove(CLASS_NAME_SHOW);
380
-
381
- const completeCallback = () => {
382
- this._element.setAttribute('aria-hidden', true);
383
-
384
- this._element.removeAttribute('aria-modal');
385
-
386
- this._element.removeAttribute('role');
387
-
388
- this._element.style.visibility = 'hidden';
389
-
390
- if (this._config.backdrop) {
391
- document.body.classList.remove(CLASS_NAME_BACKDROP_BODY);
392
- }
393
-
394
- if (!this._config.scroll) {
395
- reset();
396
- }
397
-
398
- EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN);
399
-
400
- this._element.classList.remove(CLASS_NAME_TOGGLING);
401
- };
402
-
403
- setTimeout(completeCallback, getTransitionDurationFromElement(this._element));
404
- } // Private
405
-
406
-
407
- _getConfig(config) {
408
- config = { ...Default,
409
- ...Manipulator__default['default'].getDataAttributes(this._element),
410
- ...(typeof config === 'object' ? config : {})
411
- };
412
- typeCheckConfig(NAME, config, DefaultType);
413
- return config;
414
- }
415
-
416
- _enforceFocusOnElement(element) {
417
- EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
418
-
419
- EventHandler__default['default'].on(document, EVENT_FOCUSIN, event => {
420
- if (document !== event.target && element !== event.target && !element.contains(event.target)) {
421
- element.focus();
422
- }
423
- });
424
- element.focus();
425
- }
426
-
427
- _addEventListeners() {
428
- EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide());
429
- EventHandler__default['default'].on(document, 'keydown', event => {
430
- if (this._config.keyboard && event.key === ESCAPE_KEY) {
431
- this.hide();
432
- }
433
- });
434
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, event => {
435
- const target = SelectorEngine__default['default'].findOne(getSelectorFromElement(event.target));
436
-
437
- if (!this._element.contains(event.target) && target !== this._element) {
438
- this.hide();
439
- }
440
- });
441
- } // Static
442
-
443
-
444
- static jQueryInterface(config) {
445
- return this.each(function () {
446
- const data = Data__default['default'].get(this, DATA_KEY) || new Offcanvas(this, typeof config === 'object' ? config : {});
447
-
448
- if (typeof config !== 'string') {
449
- return;
450
- }
451
-
452
- if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
453
- throw new TypeError(`No method named "${config}"`);
454
- }
455
-
456
- data[config](this);
457
- });
458
- }
459
-
460
- }
461
- /**
462
- * ------------------------------------------------------------------------
463
- * Data Api implementation
464
- * ------------------------------------------------------------------------
465
- */
466
-
467
-
468
- EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
469
- const target = getElementFromSelector(this);
470
-
471
- if (['A', 'AREA'].includes(this.tagName)) {
472
- event.preventDefault();
473
- }
474
-
475
- if (isDisabled(this)) {
476
- return;
477
- }
478
-
479
- EventHandler__default['default'].one(target, EVENT_HIDDEN, () => {
480
- // focus on trigger when it is closed
481
- if (isVisible(this)) {
482
- this.focus();
483
- }
484
- }); // avoid conflict when clicking a toggler of an offcanvas, while another is open
485
-
486
- const allReadyOpen = SelectorEngine__default['default'].findOne(ACTIVE_SELECTOR);
487
-
488
- if (allReadyOpen && allReadyOpen !== target) {
489
- return;
490
- }
491
-
492
- const data = Data__default['default'].get(target, DATA_KEY) || new Offcanvas(target);
493
- data.toggle(this);
494
- });
495
- EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, () => {
496
- SelectorEngine__default['default'].find(OPEN_SELECTOR).forEach(el => (Data__default['default'].get(el, DATA_KEY) || new Offcanvas(el)).show());
497
- });
498
- /**
499
- * ------------------------------------------------------------------------
500
- * jQuery
501
- * ------------------------------------------------------------------------
502
- */
503
-
504
- defineJQueryPlugin(NAME, Offcanvas);
505
-
506
- return Offcanvas;
507
-
508
- })));
509
- //# sourceMappingURL=offcanvas.js.map