{"version":3,"file":"aceecd74-99c89e7c352be5a02e46.js","mappings":"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","sources":["webpack://principality-teachers/./node_modules/bootstrap/dist/js/bootstrap.bundle.js"],"sourcesContent":["require(\"core-js/modules/esnext.global-this.js\");\n\n/*!\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) : typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery));\n})(this, function (exports, $) {\n 'use strict';\n\n function _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n 'default': e\n };\n }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _extends$1() {\n _extends$1 = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends$1.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * Private TransitionEnd Helpers\n */\n\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function 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\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default[\"default\"](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\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $__default[\"default\"](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $__default[\"default\"].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default[\"default\"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * Public Util API\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n var 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 getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $__default[\"default\"](element).css('transition-duration');\n var transitionDelay = $__default[\"default\"](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default[\"default\"](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default[\"default\"] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $__default[\"default\"].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var 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 Util.jQueryDetection();\n setTransitionEndSupport();\n /**\n * Constants\n */\n\n var NAME$a = 'alert';\n var VERSION$a = '4.6.2';\n var DATA_KEY$a = 'bs.alert';\n var EVENT_KEY$a = \".\" + DATA_KEY$a;\n var DATA_API_KEY$7 = '.data-api';\n var JQUERY_NO_CONFLICT$a = $__default[\"default\"].fn[NAME$a];\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE$5 = 'fade';\n var CLASS_NAME_SHOW$7 = 'show';\n var EVENT_CLOSE = \"close\" + EVENT_KEY$a;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY$a;\n var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$a + DATA_API_KEY$7;\n var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n /**\n * Class definition\n */\n\n var Alert = /*#__PURE__*/function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Alert.prototype; // Public\n\n _proto.close = function close(element) {\n var rootElement = this._element;\n\n if (element) {\n rootElement = this._getRootElement(element);\n }\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n\n this._removeElement(rootElement);\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$a);\n this._element = null;\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n if (!parent) {\n parent = $__default[\"default\"](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n }\n\n return parent;\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $__default[\"default\"].Event(EVENT_CLOSE);\n $__default[\"default\"](element).trigger(closeEvent);\n return closeEvent;\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n $__default[\"default\"](element).removeClass(CLASS_NAME_SHOW$7);\n\n if (!$__default[\"default\"](element).hasClass(CLASS_NAME_FADE$5)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $__default[\"default\"](element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n $__default[\"default\"](element).detach().trigger(EVENT_CLOSED).remove();\n } // Static\n ;\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$a);\n\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY$a, data);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$a;\n }\n }]);\n\n return Alert;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$a] = Alert._jQueryInterface;\n $__default[\"default\"].fn[NAME$a].Constructor = Alert;\n\n $__default[\"default\"].fn[NAME$a].noConflict = function () {\n $__default[\"default\"].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n return Alert._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$9 = 'button';\n var VERSION$9 = '4.6.2';\n var DATA_KEY$9 = 'bs.button';\n var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n var DATA_API_KEY$6 = '.data-api';\n var JQUERY_NO_CONFLICT$9 = $__default[\"default\"].fn[NAME$9];\n var CLASS_NAME_ACTIVE$3 = 'active';\n var CLASS_NAME_BUTTON = 'btn';\n var CLASS_NAME_FOCUS = 'focus';\n var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$6;\n var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$9 + DATA_API_KEY$6 + \" \" + (\"blur\" + EVENT_KEY$9 + DATA_API_KEY$6);\n var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$9 + DATA_API_KEY$6;\n var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"button\"]';\n var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n var SELECTOR_ACTIVE$2 = '.active';\n var SELECTOR_BUTTON = '.btn';\n /**\n * Class definition\n */\n\n var Button = /*#__PURE__*/function () {\n function Button(element) {\n this._element = element;\n this.shouldAvoidTriggerChange = false;\n } // Getters\n\n\n var _proto = Button.prototype; // Public\n\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $__default[\"default\"](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n if (rootElement) {\n var 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$3)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2);\n\n if (activeElement) {\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$3);\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$3);\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $__default[\"default\"](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$3));\n }\n\n if (triggerChangeEvent) {\n $__default[\"default\"](this._element).toggleClass(CLASS_NAME_ACTIVE$3);\n }\n }\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$9);\n this._element = null;\n } // Static\n ;\n\n Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$9);\n\n if (!data) {\n data = new Button(this);\n $element.data(DATA_KEY$9, data);\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$9;\n }\n }]);\n\n return Button;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = event.target;\n var initialButton = button;\n\n if (!$__default[\"default\"](button).hasClass(CLASS_NAME_BUTTON)) {\n button = $__default[\"default\"](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 var 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\n return;\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($__default[\"default\"](button), 'toggle', initialButton.tagName === 'INPUT');\n }\n }\n }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = $__default[\"default\"](event.target).closest(SELECTOR_BUTTON)[0];\n $__default[\"default\"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n });\n $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$2, function () {\n // ensure correct active class is set to match the controls' actual values/states\n // find all checkboxes/readio buttons inside data-toggle groups\n var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n for (var i = 0, len = buttons.length; i < len; i++) {\n var button = buttons[i];\n var input = button.querySelector(SELECTOR_INPUT);\n\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE$3);\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE$3);\n }\n } // find all button toggles\n\n\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4));\n\n for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n var _button = buttons[_i];\n\n if (_button.getAttribute('aria-pressed') === 'true') {\n _button.classList.add(CLASS_NAME_ACTIVE$3);\n } else {\n _button.classList.remove(CLASS_NAME_ACTIVE$3);\n }\n }\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$9] = Button._jQueryInterface;\n $__default[\"default\"].fn[NAME$9].Constructor = Button;\n\n $__default[\"default\"].fn[NAME$9].noConflict = function () {\n $__default[\"default\"].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n return Button._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$8 = 'carousel';\n var VERSION$8 = '4.6.2';\n var DATA_KEY$8 = 'bs.carousel';\n var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n var DATA_API_KEY$5 = '.data-api';\n var JQUERY_NO_CONFLICT$8 = $__default[\"default\"].fn[NAME$8];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_RIGHT = 'carousel-item-right';\n var CLASS_NAME_LEFT = 'carousel-item-left';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY$8;\n var EVENT_SLID = \"slid\" + EVENT_KEY$8;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$8;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$8;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$8;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$8;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$8;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$8;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$8;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$8;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$8;\n var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$5;\n var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$8 + DATA_API_KEY$5;\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n var Default$7 = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType$7 = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n };\n /**\n * Class definition\n */\n\n var Carousel = /*#__PURE__*/function () {\n function Carousel(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 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 } // Getters\n\n\n var _proto = Carousel.prototype; // Public\n\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n var $element = $__default[\"default\"](this._element); // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n\n if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n\n _proto.pause = function 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 _proto.cycle = function 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((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this = this;\n\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n $__default[\"default\"](this._element).one(EVENT_SLID, function () {\n return _this.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"](this._element).off(EVENT_KEY$8);\n $__default[\"default\"].removeData(this._element, DATA_KEY$8);\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 } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends$1({}, Default$7, config);\n Util.typeCheckConfig(NAME$8, config, DefaultType$7);\n return config;\n };\n\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n this.prev();\n } // swipe right\n\n\n if (direction < 0) {\n this.next();\n }\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n if (this._config.keyboard) {\n $__default[\"default\"](this._element).on(EVENT_KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n $__default[\"default\"](this._element).on(EVENT_MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(EVENT_MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners();\n }\n };\n\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this3 = this;\n\n if (!this._touchSupported) {\n return;\n }\n\n var start = function start(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchStartX = event.originalEvent.clientX;\n } else if (!_this3._pointerEvent) {\n _this3.touchStartX = event.originalEvent.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX;\n };\n\n var end = function end(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n }\n\n _this3._handleSwipe();\n\n if (_this3._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 _this3.pause();\n\n if (_this3.touchTimeout) {\n clearTimeout(_this3.touchTimeout);\n }\n\n _this3.touchTimeout = setTimeout(function (event) {\n return _this3.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n }\n };\n\n $__default[\"default\"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n\n if (this._pointerEvent) {\n $__default[\"default\"](this._element).on(EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n $__default[\"default\"](this._element).on(EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n $__default[\"default\"](this._element).on(EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n $__default[\"default\"](this._element).on(EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n $__default[\"default\"](this._element).on(EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n\n _proto._keydown = function _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\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n var slideEvent = $__default[\"default\"].Event(EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $__default[\"default\"](this._element).trigger(slideEvent);\n return slideEvent;\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n $__default[\"default\"](indicators).removeClass(CLASS_NAME_ACTIVE$2);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $__default[\"default\"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2);\n }\n }\n };\n\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n if (!element) {\n return;\n }\n\n var 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 _proto._slide = function _slide(direction, element) {\n var _this4 = this;\n\n var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var 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 && $__default[\"default\"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\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\n this._activeElement = nextElement;\n var slidEvent = $__default[\"default\"].Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SLIDE)) {\n $__default[\"default\"](nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $__default[\"default\"](activeElement).addClass(directionalClassName);\n $__default[\"default\"](nextElement).addClass(directionalClassName);\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $__default[\"default\"](activeElement).one(Util.TRANSITION_END, function () {\n $__default[\"default\"](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$2);\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + \" \" + orderClassName + \" \" + directionalClassName);\n _this4._isSliding = false;\n setTimeout(function () {\n return $__default[\"default\"](_this4._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $__default[\"default\"](activeElement).removeClass(CLASS_NAME_ACTIVE$2);\n $__default[\"default\"](nextElement).addClass(CLASS_NAME_ACTIVE$2);\n this._isSliding = false;\n $__default[\"default\"](this._element).trigger(slidEvent);\n }\n\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$8);\n\n var _config = _extends$1({}, Default$7, $__default[\"default\"](this).data());\n\n if (typeof config === 'object') {\n _config = _extends$1({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$8, 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 Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n\n if (!selector) {\n return;\n }\n\n var target = $__default[\"default\"](selector)[0];\n\n if (!target || !$__default[\"default\"](target).hasClass(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _extends$1({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n\n var slideIndex = this.getAttribute('data-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel._jQueryInterface.call($__default[\"default\"](target), config);\n\n if (slideIndex) {\n $__default[\"default\"](target).data(DATA_KEY$8).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$8;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$7;\n }\n }]);\n\n return Carousel;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n $__default[\"default\"](window).on(EVENT_LOAD_DATA_API$1, function () {\n var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $__default[\"default\"](carousels[i]);\n\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$8] = Carousel._jQueryInterface;\n $__default[\"default\"].fn[NAME$8].Constructor = Carousel;\n\n $__default[\"default\"].fn[NAME$8].noConflict = function () {\n $__default[\"default\"].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n return Carousel._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$7 = 'collapse';\n var VERSION$7 = '4.6.2';\n var DATA_KEY$7 = 'bs.collapse';\n var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n var DATA_API_KEY$4 = '.data-api';\n var JQUERY_NO_CONFLICT$7 = $__default[\"default\"].fn[NAME$7];\n var CLASS_NAME_SHOW$6 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var DIMENSION_WIDTH = 'width';\n var DIMENSION_HEIGHT = 'height';\n var EVENT_SHOW$4 = \"show\" + EVENT_KEY$7;\n var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$7;\n var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$7;\n var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$7;\n var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$7 + DATA_API_KEY$4;\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"collapse\"]';\n var Default$6 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$6 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n /**\n * Class definition\n */\n\n var Collapse = /*#__PURE__*/function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3));\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n\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 } // Getters\n\n\n var _proto = Collapse.prototype; // Public\n\n _proto.toggle = function toggle() {\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._isTransitioning || $__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (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 = $__default[\"default\"](actives).not(this._selector).data(DATA_KEY$7);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $__default[\"default\"].Event(EVENT_SHOW$4);\n $__default[\"default\"](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($__default[\"default\"](actives).not(this._selector), 'hide');\n\n if (!activesData) {\n $__default[\"default\"](actives).data(DATA_KEY$7, null);\n }\n }\n\n var dimension = this._getDimension();\n\n $__default[\"default\"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n $__default[\"default\"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n $__default[\"default\"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $__default[\"default\"](_this._element).trigger(EVENT_SHOWN$4);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this2 = this;\n\n if (this._isTransitioning || !$__default[\"default\"](this._element).hasClass(CLASS_NAME_SHOW$6)) {\n return;\n }\n\n var startEvent = $__default[\"default\"].Event(EVENT_HIDE$4);\n $__default[\"default\"](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $__default[\"default\"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$6);\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n var $elem = $__default[\"default\"]([].slice.call(document.querySelectorAll(selector)));\n\n if (!$elem.hasClass(CLASS_NAME_SHOW$6)) {\n $__default[\"default\"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2.setTransitioning(false);\n\n $__default[\"default\"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$7);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends$1({}, Default$6, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME$7, config, DefaultType$6);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n var hasWidth = $__default[\"default\"](this._element).hasClass(DIMENSION_WIDTH);\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this3 = this;\n\n var parent;\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\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 var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $__default[\"default\"](children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n var isOpen = $__default[\"default\"](element).hasClass(CLASS_NAME_SHOW$6);\n\n if (triggerArray.length) {\n $__default[\"default\"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n } // Static\n ;\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$7);\n\n var _config = _extends$1({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {});\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$7, 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 _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$6;\n }\n }]);\n\n return Collapse;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var $trigger = $__default[\"default\"](this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $__default[\"default\"](selectors).each(function () {\n var $target = $__default[\"default\"](this);\n var data = $target.data(DATA_KEY$7);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$7] = Collapse._jQueryInterface;\n $__default[\"default\"].fn[NAME$7].Constructor = Collapse;\n\n $__default[\"default\"].fn[NAME$7].noConflict = function () {\n $__default[\"default\"].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n return Collapse._jQueryInterface;\n };\n /**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n\n var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\n var timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\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\n return 0;\n }();\n\n function microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n }\n\n function 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\n var supportsMicroTasks = isBrowser && window.Promise;\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 */\n\n var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\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 */\n\n function isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\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 */\n\n\n function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\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 */\n\n\n function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\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 */\n\n\n function 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\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\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 */\n\n\n function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n }\n\n var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\n var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\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 */\n\n function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\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 */\n\n\n function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\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 } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n }\n\n function isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\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 */\n\n\n function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\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 */\n\n\n function 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 } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\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 */\n\n\n function getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\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 * 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 */\n\n\n function includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\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 * 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\n\n function getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n }\n\n function getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n }\n\n function getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n }\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n };\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\n\n\n function getClientRect(offsets) {\n return _extends({}, 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 */\n\n\n function getBoundingClientRect(element) {\n var rect = {}; // 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\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 } else {\n rect = element.getBoundingClientRect();\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 }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // 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\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n }\n\n function getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\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 var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\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; // 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\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n }\n\n function getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\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 var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\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 return getClientRect(offset);\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 */\n\n\n function isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\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\n\n function 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\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\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 */\n\n\n function getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\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(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 } // Add paddings\n\n\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 return boundaries;\n }\n\n function getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\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 */\n\n\n function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\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 */\n\n\n function getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 */\n\n\n function 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 * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\n function getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n 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 */\n\n\n function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\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 popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\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 */\n\n\n function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\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 */\n\n\n function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\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 */\n\n\n function runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\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 data = fn(data, modifier);\n }\n });\n return data;\n }\n /**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\n function 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 }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // 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\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\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 * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\n function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\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 */\n\n\n function 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\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n }\n /**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\n function destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\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(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n }\n /**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\n function getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n }\n\n function attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n }\n /**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\n function setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\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 */\n\n\n function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n }\n /**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\n function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\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 */\n\n\n function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\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 */\n\n\n function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(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 */\n\n\n function setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\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 */\n\n\n function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\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 */\n\n\n function 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); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\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 */\n\n\n function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // 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\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\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 */\n\n\n function getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\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 var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n }\n\n var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\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 */\n\n function computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // 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\n var prefixedProperty = getSupportedPropertyName('transform'); // 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\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is 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\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\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 } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n }\n /**\n * Helper used to know if the given modifier depends from another one.
\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 */\n\n\n function isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\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 */\n\n\n function arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\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 // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\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 = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\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 */\n\n\n function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n }\n /**\n * List of accepted placements to use as values of the `placement` option.
\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.
\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 */\n\n\n var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\n var validPlacements = placements.slice(3);\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 */\n\n function clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n }\n\n var BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\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 */\n\n function 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(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\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 = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\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 : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\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 */\n\n\n function keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.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] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\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 */\n\n\n function 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]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\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 = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, 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 * 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 */\n\n\n function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // 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\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // 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\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\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\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\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) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // 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 }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\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 * @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 */\n\n\n function offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\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 * @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 */\n\n\n function preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // 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\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\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\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\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 */\n\n\n function shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\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 */\n\n\n function 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(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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 * @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 */\n\n\n function inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n }\n /**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\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.
\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 */\n\n\n var modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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.
\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.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\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.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\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 /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\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 * 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.
\n * These can be overridden using the `options` argument of Popper.js.
\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 */\n\n var 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.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\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.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\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 * @callback onCreate\n * @param {dataObject} data\n */\n\n /**\n * @callback onUpdate\n * @param {dataObject} data\n */\n // Utils\n // Methods\n\n var Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\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\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\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 } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: 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 */\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 */\n\n }]);\n return Popper;\n }();\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.
\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\n\n Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n Popper.placements = placements;\n Popper.Defaults = Defaults;\n var Popper$1 = Popper;\n /**\n * Constants\n */\n\n var NAME$6 = 'dropdown';\n var VERSION$6 = '4.6.2';\n var DATA_KEY$6 = 'bs.dropdown';\n var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n var DATA_API_KEY$3 = '.data-api';\n var JQUERY_NO_CONFLICT$6 = $__default[\"default\"].fn[NAME$6];\n var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE$1);\n var CLASS_NAME_DISABLED$1 = 'disabled';\n var CLASS_NAME_SHOW$5 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPRIGHT = 'dropright';\n var CLASS_NAME_DROPLEFT = 'dropleft';\n var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n var CLASS_NAME_POSITION_STATIC = 'position-static';\n var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$6;\n var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$6;\n var EVENT_SHOW$3 = \"show\" + EVENT_KEY$6;\n var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$6;\n var EVENT_CLICK = \"click\" + EVENT_KEY$6;\n var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$6 + DATA_API_KEY$3;\n var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = 'top-start';\n var PLACEMENT_TOPEND = 'top-end';\n var PLACEMENT_BOTTOM = 'bottom-start';\n var PLACEMENT_BOTTOMEND = 'bottom-end';\n var PLACEMENT_RIGHT = 'right-start';\n var PLACEMENT_LEFT = 'left-start';\n var Default$5 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType$5 = {\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 * Class definition\n */\n\n var Dropdown = /*#__PURE__*/function () {\n function Dropdown(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 } // Getters\n\n\n var _proto = Dropdown.prototype; // Public\n\n _proto.toggle = function toggle() {\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n return;\n }\n\n var isActive = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show(true);\n };\n\n _proto.show = function show(usePopper) {\n if (usePopper === void 0) {\n usePopper = false;\n }\n\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW$3, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default[\"default\"](parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (!this._inNavbar && usePopper) {\n // Check for Popper dependency\n if (typeof Popper$1 === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var 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; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\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\n\n if (this._config.boundary !== 'scrollParent') {\n $__default[\"default\"](parent).addClass(CLASS_NAME_POSITION_STATIC);\n }\n\n this._popper = new Popper$1(referenceElement, this._menu, this._getPopperConfig());\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\n\n if ('ontouchstart' in document.documentElement && $__default[\"default\"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_SHOWN$3, relatedTarget));\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || $__default[\"default\"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default[\"default\"](this._menu).hasClass(CLASS_NAME_SHOW$5)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default[\"default\"](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n $__default[\"default\"](this._menu).toggleClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$6);\n $__default[\"default\"](this._element).off(EVENT_KEY$6);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n\n $__default[\"default\"](this._element).on(EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends$1({}, this.constructor.Default, $__default[\"default\"](this._element).data(), config);\n Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var 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 _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $__default[\"default\"](this._element.parentNode);\n var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : 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 ($__default[\"default\"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND;\n }\n\n return placement;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return $__default[\"default\"](this._element).closest('.navbar').length > 0;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this2 = this;\n\n var offset = {};\n\n if (typeof this._config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends$1({}, data.offsets, _this2._config.offset(data.offsets, _this2._element));\n return data;\n };\n } else {\n offset.offset = this._config.offset;\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var 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 }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n\n return _extends$1({}, popperConfig, this._config.popperConfig);\n } // Static\n ;\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$6);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$6, 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 Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $__default[\"default\"](toggles[i]).data(DATA_KEY$6);\n var 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 var dropdownMenu = context._menu;\n\n if (!$__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default[\"default\"].contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$3, relatedTarget);\n $__default[\"default\"](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n\n if (context._popper) {\n context._popper.destroy();\n }\n\n $__default[\"default\"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5);\n $__default[\"default\"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default[\"default\"].Event(EVENT_HIDDEN$3, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n return parent || element.parentNode;\n } // eslint-disable-next-line complexity\n ;\n\n Dropdown._dataApiKeydownHandler = function _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) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default[\"default\"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n if (this.disabled || $__default[\"default\"](this).hasClass(CLASS_NAME_DISABLED$1)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $__default[\"default\"](parent).hasClass(CLASS_NAME_SHOW$5);\n\n if (!isActive && event.which === ESCAPE_KEYCODE$1) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) {\n if (event.which === ESCAPE_KEYCODE$1) {\n $__default[\"default\"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n }\n\n $__default[\"default\"](this).trigger('click');\n return;\n }\n\n var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n return $__default[\"default\"](item).is(':visible');\n });\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$6;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$5;\n }\n }]);\n\n return Dropdown;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($__default[\"default\"](this), 'toggle');\n }).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$6] = Dropdown._jQueryInterface;\n $__default[\"default\"].fn[NAME$6].Constructor = Dropdown;\n\n $__default[\"default\"].fn[NAME$6].noConflict = function () {\n $__default[\"default\"].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n return Dropdown._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$5 = 'modal';\n var VERSION$5 = '4.6.2';\n var DATA_KEY$5 = 'bs.modal';\n var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n var DATA_API_KEY$2 = '.data-api';\n var JQUERY_NO_CONFLICT$5 = $__default[\"default\"].fn[NAME$5];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$4 = 'fade';\n var CLASS_NAME_SHOW$4 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$5;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$2;\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n var Default$4 = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType$4 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n /**\n * Class definition\n */\n\n var Modal = /*#__PURE__*/function () {\n function Modal(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 } // Getters\n\n\n var _proto = Modal.prototype; // Public\n\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n var showEvent = $__default[\"default\"].Event(EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n $__default[\"default\"](this._element).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n this._isTransitioning = true;\n }\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) {\n return _this.hide(event);\n });\n $__default[\"default\"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n $__default[\"default\"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n if ($__default[\"default\"](event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = $__default[\"default\"].Event(EVENT_HIDE$2);\n $__default[\"default\"](this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default[\"default\"](document).off(EVENT_FOCUSIN);\n $__default[\"default\"](this._element).removeClass(CLASS_NAME_SHOW$4);\n $__default[\"default\"](this._element).off(EVENT_CLICK_DISMISS$1);\n $__default[\"default\"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $__default[\"default\"](htmlElement).off(EVENT_KEY$5);\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\n $__default[\"default\"](document).off(EVENT_FOCUSIN);\n $__default[\"default\"].removeData(this._element, DATA_KEY$5);\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 _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends$1({}, Default$4, config);\n Util.typeCheckConfig(NAME$5, config, DefaultType$4);\n return config;\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n\n var hideEventPrevented = $__default[\"default\"].Event(EVENT_HIDE_PREVENTED);\n $__default[\"default\"](this._element).trigger(hideEventPrevented);\n\n if (hideEventPrevented.isDefaultPrevented()) {\n return;\n }\n\n var 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 var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default[\"default\"](this._element).off(Util.TRANSITION_END);\n $__default[\"default\"](this._element).one(Util.TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n $__default[\"default\"](_this3._element).one(Util.TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n\n this._element.focus();\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4);\n var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n if ($__default[\"default\"](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 $__default[\"default\"](this._element).addClass(CLASS_NAME_SHOW$4);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $__default[\"default\"].Event(EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n $__default[\"default\"](_this4._element).trigger(shownEvent);\n };\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default[\"default\"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n $__default[\"default\"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && $__default[\"default\"](_this5._element).has(event.target).length === 0) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $__default[\"default\"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) {\n _this6._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $__default[\"default\"](this._element).off(EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n $__default[\"default\"](window).on(EVENT_RESIZE, function (event) {\n return _this7.handleUpdate(event);\n });\n } else {\n $__default[\"default\"](window).off(EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $__default[\"default\"](document.body).removeClass(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n $__default[\"default\"](_this8._element).trigger(EVENT_HIDDEN$2);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $__default[\"default\"](this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = $__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : '';\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 $__default[\"default\"](this._backdrop).appendTo(document.body);\n $__default[\"default\"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $__default[\"default\"](this._backdrop).addClass(CLASS_NAME_SHOW$4);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default[\"default\"](this._backdrop).removeClass(CLASS_NAME_SHOW$4);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if ($__default[\"default\"](this._element).hasClass(CLASS_NAME_FADE$4)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $__default[\"default\"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\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\n _proto._adjustDialog = function _adjustDialog() {\n var 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 _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this10 = this;\n\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 var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n $__default[\"default\"](fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $__default[\"default\"](element).css('padding-right');\n $__default[\"default\"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $__default[\"default\"](stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $__default[\"default\"](element).css('margin-right');\n $__default[\"default\"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $__default[\"default\"](document.body).css('padding-right');\n $__default[\"default\"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n\n $__default[\"default\"](document.body).addClass(CLASS_NAME_OPEN);\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n $__default[\"default\"](fixedContent).each(function (index, element) {\n var padding = $__default[\"default\"](element).data('padding-right');\n $__default[\"default\"](element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n $__default[\"default\"](elements).each(function (index, element) {\n var margin = $__default[\"default\"](element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $__default[\"default\"](element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $__default[\"default\"](document.body).data('padding-right');\n $__default[\"default\"](document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$5);\n\n var _config = _extends$1({}, Default$4, $__default[\"default\"](this).data(), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n $__default[\"default\"](this).data(DATA_KEY$5, 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 _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }]);\n\n return Modal;\n }();\n /**\n * Data API implementation\n */\n\n\n $__default[\"default\"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n var _this11 = this;\n\n var target;\n var selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $__default[\"default\"](target).data(DATA_KEY$5) ? 'toggle' : _extends$1({}, $__default[\"default\"](target).data(), $__default[\"default\"](this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $__default[\"default\"](target).one(EVENT_SHOW$2, function (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$2, function () {\n if ($__default[\"default\"](_this11).is(':visible')) {\n _this11.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($__default[\"default\"](target), config, this);\n });\n /**\n * jQuery\n */\n\n $__default[\"default\"].fn[NAME$5] = Modal._jQueryInterface;\n $__default[\"default\"].fn[NAME$5].Constructor = Modal;\n\n $__default[\"default\"].fn[NAME$5].noConflict = function () {\n $__default[\"default\"].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n return Modal._jQueryInterface;\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var 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 * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var 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\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true;\n }\n }\n\n return false;\n }\n\n 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 var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var whitelistKeys = Object.keys(whiteList);\n var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n var _loop = function _loop(i, len) {\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n\n var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread\n\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n /**\n * Constants\n */\n\n\n var NAME$4 = 'tooltip';\n var VERSION$4 = '4.6.2';\n var DATA_KEY$4 = 'bs.tooltip';\n var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n var JQUERY_NO_CONFLICT$4 = $__default[\"default\"].fn[NAME$4];\n var CLASS_PREFIX$1 = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_SHOW$3 = 'show';\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var SELECTOR_ARROW = '.arrow';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default$3 = {\n animation: true,\n template: '
' + '
' + '
',\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 var DefaultType$3 = {\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 var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY$4,\n HIDDEN: \"hidden\" + EVENT_KEY$4,\n SHOW: \"show\" + EVENT_KEY$4,\n SHOWN: \"shown\" + EVENT_KEY$4,\n INSERTED: \"inserted\" + EVENT_KEY$4,\n CLICK: \"click\" + EVENT_KEY$4,\n FOCUSIN: \"focusin\" + EVENT_KEY$4,\n FOCUSOUT: \"focusout\" + EVENT_KEY$4,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$4,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$4\n };\n /**\n * Class definition\n */\n\n var Tooltip = /*#__PURE__*/function () {\n function Tooltip(element, config) {\n if (typeof Popper$1 === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n } // Private\n\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Tooltip.prototype; // Public\n\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $__default[\"default\"](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](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 ($__default[\"default\"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $__default[\"default\"].removeData(this.element, this.constructor.DATA_KEY);\n $__default[\"default\"](this.element).off(this.constructor.EVENT_KEY);\n $__default[\"default\"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n if (this.tip) {\n $__default[\"default\"](this.tip).remove();\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\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 _proto.show = function show() {\n var _this = this;\n\n if ($__default[\"default\"](this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n var showEvent = $__default[\"default\"].Event(this.constructor.Event.SHOW);\n\n if (this.isWithContent() && this._isEnabled) {\n $__default[\"default\"](this.element).trigger(showEvent);\n var shadowRoot = Util.findShadowRoot(this.element);\n var isInTheDom = $__default[\"default\"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n\n if (this.config.animation) {\n $__default[\"default\"](tip).addClass(CLASS_NAME_FADE$3);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this.addAttachmentClass(attachment);\n\n var container = this._getContainer();\n\n $__default[\"default\"](tip).data(this.constructor.DATA_KEY, this);\n\n if (!$__default[\"default\"].contains(this.element.ownerDocument.documentElement, this.tip)) {\n $__default[\"default\"](tip).appendTo(container);\n }\n\n $__default[\"default\"](this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper$1(this.element, tip, this._getPopperConfig(attachment));\n $__default[\"default\"](tip).addClass(CLASS_NAME_SHOW$3);\n $__default[\"default\"](tip).addClass(this.config.customClass); // 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\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().on('mouseover', null, $__default[\"default\"].noop);\n }\n\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $__default[\"default\"](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this._leave(null, _this);\n }\n };\n\n if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $__default[\"default\"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n\n _proto.hide = function hide(callback) {\n var _this2 = this;\n\n var tip = this.getTipElement();\n var hideEvent = $__default[\"default\"].Event(this.constructor.Event.HIDE);\n\n var complete = function complete() {\n if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this2._cleanTipClass();\n\n _this2.element.removeAttribute('aria-describedby');\n\n $__default[\"default\"](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n\n if (callback) {\n callback();\n }\n };\n\n $__default[\"default\"](this.element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n $__default[\"default\"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $__default[\"default\"](document.body).children().off('mouseover', null, $__default[\"default\"].noop);\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n\n if ($__default[\"default\"](this.tip).hasClass(CLASS_NAME_FADE$3)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $__default[\"default\"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($__default[\"default\"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$3);\n };\n\n _proto.setElementContent = function 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 (!$__default[\"default\"](content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($__default[\"default\"](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 _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n\n return title;\n } // Private\n ;\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this3 = this;\n\n var 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: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this3._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n return _this3._handlePopperPlacementChange(data);\n }\n };\n return _extends$1({}, defaultBsConfig, this.config.popperConfig);\n };\n\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n\n var offset = {};\n\n if (typeof this.config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends$1({}, data.offsets, _this4.config.offset(data.offsets, _this4.element));\n return data;\n };\n } else {\n offset.offset = this.config.offset;\n }\n\n return offset;\n };\n\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n\n if (Util.isElement(this.config.container)) {\n return $__default[\"default\"](this.config.container);\n }\n\n return $__default[\"default\"](document).find(this.config.container);\n };\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this5 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $__default[\"default\"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n return _this5.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n $__default[\"default\"](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n return _this5._enter(event);\n }).on(eventOut, _this5.config.selector, function (event) {\n return _this5._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this5.element) {\n _this5.hide();\n }\n };\n\n $__default[\"default\"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n if (this.config.selector) {\n this.config = _extends$1({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if ($__default[\"default\"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\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(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default[\"default\"](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default[\"default\"](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\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(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = $__default[\"default\"](this.element).data();\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _extends$1({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\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(NAME$4, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n }\n\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var 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 _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default[\"default\"](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper;\n\n this._cleanTipClass();\n\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n\n $__default[\"default\"](tip).removeClass(CLASS_NAME_FADE$3);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n } // Static\n ;\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default[\"default\"](this);\n var data = $element.data(DATA_KEY$4);\n\n var _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$4, 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 _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$4;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$4;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$4;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$4;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$3;\n }\n }]);\n\n return Tooltip;\n }();\n /**\n * jQuery\n */\n\n\n $__default[\"default\"].fn[NAME$4] = Tooltip._jQueryInterface;\n $__default[\"default\"].fn[NAME$4].Constructor = Tooltip;\n\n $__default[\"default\"].fn[NAME$4].noConflict = function () {\n $__default[\"default\"].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n return Tooltip._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$3 = 'popover';\n var VERSION$3 = '4.6.2';\n var DATA_KEY$3 = 'bs.popover';\n var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n var JQUERY_NO_CONFLICT$3 = $__default[\"default\"].fn[NAME$3];\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_SHOW$2 = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n\n var Default$2 = _extends$1({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

' + '
'\n });\n\n var DefaultType$2 = _extends$1({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n\n var Event = {\n HIDE: \"hide\" + EVENT_KEY$3,\n HIDDEN: \"hidden\" + EVENT_KEY$3,\n SHOW: \"show\" + EVENT_KEY$3,\n SHOWN: \"shown\" + EVENT_KEY$3,\n INSERTED: \"inserted\" + EVENT_KEY$3,\n CLICK: \"click\" + EVENT_KEY$3,\n FOCUSIN: \"focusin\" + EVENT_KEY$3,\n FOCUSOUT: \"focusout\" + EVENT_KEY$3,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$3,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$3\n };\n /**\n * Class definition\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype; // Overrides\n\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default[\"default\"](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default[\"default\"](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $__default[\"default\"](this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n $tip.removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$2);\n } // Private\n ;\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default[\"default\"](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n } // Static\n ;\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default[\"default\"](this).data(DATA_KEY$3);\n\n var _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 $__default[\"default\"](this).data(DATA_KEY$3, 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 _createClass(Popover, null, [{\n key: \"VERSION\",\n get: // Getters\n function get() {\n return VERSION$3;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$3;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$3;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$3;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n\n return Popover;\n }(Tooltip);\n /**\n * jQuery\n */\n\n\n $__default[\"default\"].fn[NAME$3] = Popover._jQueryInterface;\n $__default[\"default\"].fn[NAME$3].Constructor = Popover;\n\n $__default[\"default\"].fn[NAME$3].noConflict = function () {\n $__default[\"default\"].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n return Popover._jQueryInterface;\n };\n /**\n * Constants\n */\n\n\n var NAME$2 = 'scrollspy';\n var VERSION$2 = '4.6.2';\n var DATA_KEY$2 = 'bs.scrollspy';\n var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n var DATA_API_KEY$1 = '.data-api';\n var JQUERY_NO_CONFLICT$2 = $__default[\"default\"].fn[NAME$2];\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE$1 = 'active';\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$2;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY$2;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$2 + DATA_API_KEY$1;\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN$1 = '.dropdown';\n var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n var Default$1 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$1 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n /**\n * Class definition\n */\n\n var ScrollSpy = /*#__PURE__*/function () {\n function ScrollSpy(element, config) {\n var _this = this;\n\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 + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $__default[\"default\"](this._scrollElement).on(EVENT_SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n\n this._process();\n } // Getters\n\n\n var _proto = ScrollSpy.prototype; // Public\n\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$__default[\"default\"](target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(Boolean).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n $__default[\"default\"].removeData(this._element, DATA_KEY$2);\n $__default[\"default\"](this._scrollElement).off(EVENT_KEY$2);\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 } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends$1({}, Default$1, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n var id = $__default[\"default\"](config.target).attr('id');\n\n if (!id) {\n id = Util.getUID(NAME$2);\n $__default[\"default\"](config.target).attr('id', id);\n }\n\n config.target = \"#\" + id;\n }\n\n Util.typeCheckConfig(NAME$2, config, DefaultType$1);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var 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\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n\n var $link = $__default[\"default\"]([].slice.call(document.querySelectorAll(queries.join(','))));\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1);\n $link.addClass(CLASS_NAME_ACTIVE$1);\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active\n // With both