File Manager
{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../../../../usr/share/nodejs/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = 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 (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n 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 Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, event => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n this.shouldAvoidTriggerChange = false\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(SELECTOR_DATA_TOGGLES)[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $(input).trigger('change')\n }\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $element.data(DATA_KEY, data)\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($(button), 'toggle', initialButton.tagName === 'INPUT')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\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_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$element.data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $element.data(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 * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = (function(){\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n }\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n var ref = getStyleComputedProperty(element);\n var overflow = ref.overflow;\n var overflowX = ref.overflowX;\n var overflowY = ref.overflowY;\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element, side) {\n if ( side === void 0 ) side = 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element, subtract) {\n if ( subtract === void 0 ) subtract = false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[(\"border\" + sideA + \"Width\")]) +\n parseFloat(styles[(\"border\" + sideB + \"Width\")])\n );\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[(\"offset\" + axis)],\n body[(\"scroll\" + axis)],\n html[(\"client\" + axis)],\n html[(\"offset\" + axis)],\n html[(\"scroll\" + axis)],\n isIE(10)\n ? (parseInt(html[(\"offset\" + axis)]) + \n parseInt(computedStyle[(\"margin\" + (axis === 'Height' ? 'Top' : 'Left'))]) + \n parseInt(computedStyle[(\"margin\" + (axis === 'Height' ? 'Bottom' : 'Right'))]))\n : 0 \n );\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return Object.assign({}, offsets,\n {right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height});\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width =\n sizes.width || element.clientWidth || result.width;\n var height =\n sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition) {\n if ( fixedPosition === void 0 ) fixedPosition = false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll) {\n if ( excludeScroll === void 0 ) excludeScroll = false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height,\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition\n) {\n if ( fixedPosition === void 0 ) fixedPosition = false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var ref = getWindowSizes(popper.ownerDocument);\n var height = ref.height;\n var width = ref.width;\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n\nfunction getArea(ref) {\n var width = ref.width;\n var height = ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding\n) {\n if ( padding === void 0 ) padding = 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n var sortedAreas = Object.keys(rects)\n .map(function (key) { return (Object.assign({}, {key: key},\n rects[key],\n {area: getArea(rects[key])})); })\n .sort(function (a, b) { return b.area - a.area; });\n\n var filteredAreas = sortedAreas.filter(\n function (ref) {\n var width = ref.width;\n var height = ref.height;\n\n return width >= popper.clientWidth && height >= popper.clientHeight;\n }\n );\n\n var computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? (\"-\" + variation) : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference, fixedPosition) {\n if ( fixedPosition === void 0 ) fixedPosition = null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) { return hash[matched]; });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) { return cur[prop] === value; });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) { return obj[prop] === value; });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n function (ref) {\n var name = ref.name;\n var enabled = ref.enabled;\n\n return enabled && name === modifierName;\n }\n );\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? (\"\" + prefix + upperProp) : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var ref = data.offsets;\n var popper = ref.popper;\n var reference = ref.reference;\n var round = Math.round;\n var floor = Math.floor;\n var noRound = function (v) { return v; };\n \n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n \n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x;\n var y = options.y;\n var ref = data.offsets;\n var popper = ref.popper;\n\n // Remove this legacy support in Popper.js v2\n var legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n function (modifier) { return modifier.name === 'applyStyle'; }\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n var gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position,\n };\n\n var offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left, top;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = \"translate3d(\" + left + \"px, \" + top + \"px, 0)\";\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + \", \" + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = Object.assign({}, attributes, data.attributes);\n data.styles = Object.assign({}, styles, data.styles);\n data.arrowStyles = Object.assign({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n var requesting = find(modifiers, function (ref) {\n var name = ref.name;\n\n return name === requestingName;\n });\n\n var isRequired =\n !!requesting &&\n modifiers.some(function (modifier) {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n var requesting$1 = \"`\" + requestingName + \"`\";\n var requested = \"`\" + requestedName + \"`\";\n console.warn(\n (requested + \" modifier is required by \" + requesting$1 + \" modifier in order to work, be sure to include it before \" + requesting$1 + \"!\")\n );\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var obj;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var ref = data.offsets;\n var popper = ref.popper;\n var reference = ref.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css[(\"margin\" + sideCapitalized)]);\n var popperBorderSide = parseFloat(css[(\"border\" + sideCapitalized + \"Width\")]);\n var sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = ( obj = {}, obj[side] = Math.round(sideValue), obj[altSide] = '', obj );\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start' ];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement, counter) {\n if ( counter === void 0 ) counter = false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = Object.assign({}, data.offsets.popper,\n getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var ref = data.offsets;\n var popper = ref.popper;\n var reference = ref.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) { return frag.trim(); });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(\n find(fragments, function (frag) { return frag.search(/,|\\s/) !== -1; })\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ) ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n var mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) { return toValue(str, measurement, popperOffsets, referenceOffsets); })\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, ref) {\n var offset = ref.offset;\n\n var placement = data.placement;\n var data_offsets = data.offsets;\n var popper = data_offsets.popper;\n var reference = data_offsets.reference;\n var basePlacement = placement.split('-')[0];\n\n var offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top;\n var left = popperStyles.left;\n var transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var obj;\n\n var value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return ( obj = {}, obj[placement] = value, obj );\n },\n secondary: function secondary(placement) {\n var obj;\n\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return ( obj = {}, obj[mainSide] = value, obj );\n },\n };\n\n order.forEach(function (placement) {\n var side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = Object.assign({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var obj, obj$1;\n\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var ref = data.offsets;\n var reference = ref.reference;\n var popper = ref.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: ( obj = {}, obj[side] = reference[side], obj ),\n end: ( obj$1 = {}, obj$1[side] = reference[side] + reference[measurement] - popper[measurement], obj$1 ),\n };\n\n data.offsets.popper = Object.assign({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(\n data.instance.modifiers,\n function (modifier) { return modifier.name === 'preventOverflow'; }\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var ref = data.offsets;\n var popper = ref.popper;\n var reference = ref.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function () {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function () {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n\nvar Popper = function Popper(reference, popper, options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n\t\tthis.scheduleUpdate = this.scheduleUpdate.bind(this);\n\n // with {} we create a new object with the options inside it\n this.options = Object.assign({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(Object.assign({}, Popper.Defaults.modifiers,\n options.modifiers)).forEach(function (name) {\n this$1.options.modifiers[name] = Object.assign({}, (Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n (options.modifiers ? options.modifiers[name] : {}));\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(function (name) { return (Object.assign({}, {name: name},\n this$1.options.modifiers[name])); })\n // sort the modifiers by order\n .sort(function (a, b) { return a.order - b.order; });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this$1.reference,\n this$1.popper,\n this$1.options,\n modifierOptions,\n this$1.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n};\n\n// We can't use class properties because they don't get listed in the\n// class prototype and break stuff like Sinon stubs\nPopper.prototype.update = function update$1 () {\n return update.call(this);\n};\nPopper.prototype.destroy = function destroy$1 () {\n return destroy.call(this);\n};\nPopper.prototype.enableEventListeners = function enableEventListeners$1 () {\n return enableEventListeners.call(this);\n};\nPopper.prototype.disableEventListeners = function disableEventListeners$1 () {\n return disableEventListeners.call(this);\n};\n/**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\nPopper.prototype.scheduleUpdate = function scheduleUpdate () {\n return requestAnimationFrame(this.update);\n};\n/**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nexport default Popper;\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(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 static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: '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_SCROLLABLE = 'modal-dialog-scrollable'\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-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-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 {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\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 VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\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._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\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 $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(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 = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\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 $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = 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 Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\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\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n 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\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(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).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(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 (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\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 // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\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 = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(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](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\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_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\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 // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n $(tip).addClass(this.config.customClass)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this.config.offset(data.offsets, this.element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, event => this._enter(event))\n .on(eventOut, this.config.selector, event => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $element.data(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 */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\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 trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\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 addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(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 $(this).data(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 */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .addClass(CLASS_NAME_ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(SELECTOR_NAV_LIST_GROUP)\n .prev(SELECTOR_NAV_ITEMS)\n .children(SELECTOR_NAV_LINKS)\n .addClass(CLASS_NAME_ACTIVE)\n }\n\n $(this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(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 * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = '> li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(CLASS_NAME_ACTIVE) ||\n $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(SELECTOR_NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(EVENT_HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n $(container).find(SELECTOR_ACTIVE_UL) :\n $(container).children(SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(CLASS_NAME_FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(CLASS_NAME_SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(CLASS_NAME_ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n SELECTOR_DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(SELECTOR_DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(CLASS_NAME_ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(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 * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(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](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMajor","ltMajor","minMinor","minPatch","maxMajor","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASS_NAME_ALERT","CLASS_NAME_FADE","CLASS_NAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLES","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_TOGGLES_BUTTONS","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_BLUR_DATA_API","EVENT_LOAD_DATA_API","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","e","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","elementInterval","parseInt","defaultInterval","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","DIMENSION_HEIGHT","SELECTOR_ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","microtaskDebounce","Promise","resolve","then","taskDebounce","scheduled","supportsMicroTasks","debounce","isFunction","functionToCheck","getType","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","ref","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","getClientRect","offsets","assign","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","key","area","sort","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","findIndex","prop","cur","runModifiers","modifiers","ends","modifiersToRun","forEach","console","warn","enabled","update","isDestroyed","instance","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onCreate","onUpdate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","callback","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","round","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","requesting$1","requested","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","min","getOppositeVariation","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","data_offsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","shift","obj$1","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","this$1","update$1","destroy$1","enableEventListeners$1","disableEventListeners$1","requestAnimationFrame","Utils","global","PopperUtils","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elName","attributeList","whitelistedAttributes","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","SELECTOR_TOOLTIP_INNER","SELECTOR_ARROW","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","defaultBsConfig","_handlePopperPlacementChange","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_ITEMS","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","scrollSpysLength","$spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast","_clearTimeout","_close"],"mappings":"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BkY,aAAxB,MAA2C,CAAC,CAAjE;EAEA1L,EAAAA,MAAM,CAACsC,OAAO,GAAG,MAAH,GAAY,KAApB,CAAN,GACE3H,SAAS,CAAC+Q,aAAD,CAAT,IACC2B,cAAc,GAAGrN,MAAM,CAACsC,OAAO,GAAG,OAAH,GAAa,QAArB,CAAT,GAA0C,CADzD,CADF;EAIA5X,EAAAA,IAAI,CAAC8V,SAAL,GAAiBsB,oBAAoB,CAACtB,SAAD,CAArC;EACA9V,EAAAA,IAAI,CAACwT,OAAL,CAAa8B,MAAb,GAAsB/B,aAAa,CAAC+B,MAAD,CAAnC;EAEA,SAAOtV,IAAP;EACD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,IAAIyY,SAAS,GAAG;EACd;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACE4J,EAAAA,KAAK,EAAE;EACL;EACAlR,IAAAA,KAAK,EAAE,GAFF;;EAGL;EACA4H,IAAAA,OAAO,EAAE,IAJJ;;EAKL;EACAlf,IAAAA,EAAE,EAAEwoB;EANC,GATO;;EAkBd;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACErN,EAAAA,MAAM,EAAE;EACN;EACA7D,IAAAA,KAAK,EAAE,GAFD;;EAGN;EACA4H,IAAAA,OAAO,EAAE,IAJH;;EAKN;EACAlf,IAAAA,EAAE,EAAEmb,MANE;;EAON;EACJ;EACA;EACIA,IAAAA,MAAM,EAAE;EAVF,GAxDM;;EAqEd;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACE6M,EAAAA,eAAe,EAAE;EACf;EACA1Q,IAAAA,KAAK,EAAE,GAFQ;;EAGf;EACA4H,IAAAA,OAAO,EAAE,IAJM;;EAKf;EACA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"}
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com