{"version":3,"sources":["webpack:///./node_modules/bootstrap/js/dist/util.js","webpack:///./node_modules/bootstrap/js/dist/alert.js","webpack:///./node_modules/bootstrap/js/dist/button.js","webpack:///./node_modules/bootstrap/js/dist/carousel.js","webpack:///./node_modules/bootstrap/js/dist/collapse.js","webpack:///./node_modules/bootstrap/js/dist/dropdown.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/bootstrap/js/dist/index.js","webpack:///./node_modules/bootstrap/js/dist/modal.js","webpack:///./node_modules/bootstrap/js/dist/tab.js","webpack:///(webpack)/buildin/global.js"],"names":["factory","_typeof","Symbol","iterator","obj","constructor","prototype","$","_interopDefaultLegacy","e","$__default","transitionEndEmulator","duration","_this","this","called","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","exports","module","Util__default","_defineProperties","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","key","NAME","JQUERY_NO_CONFLICT","Alert","_element","Constructor","protoProps","staticProps","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","get","on","noConflict","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","len","add","_i","_len","_button","_extends","assign","source","DATA_KEY","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","Popper","Popper__default","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","offset","flip","boundary","reference","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","getClientRect","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","ends","prop","findIndex","cur","forEach","console","warn","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","onLoad","modifierOptions","requestAnimationFrame","Utils","global","PopperUtils","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","Tab","previous","listElement","itemSelector","makeArray","_activate","complete","hiddenEvent","container","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","g","Function"],"mappings":"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","file":"js/2-8eb7883f0a2139481207.chunk.js","sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap util.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) : typeof define === 'function' && define.amd ? define(['jquery'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));\n})(this, function ($) {\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 * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\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 * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n 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 return Util;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap alert.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util));\n})(this, function ($, Util) {\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 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'alert';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\" + EVENT_KEY;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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);\n this._element = null;\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util__default['default'].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);\n\n if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(element);\n $__default['default'](element).one(Util__default['default'].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);\n\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY, data);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n 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;\n }\n }]);\n\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Alert._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Alert;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n return Alert;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap button.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) : typeof define === 'function' && define.amd ? define(['jquery'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.jQuery));\n})(this, function ($) {\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'button';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.button';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_BUTTON = 'btn';\n var CLASS_NAME_FOCUS = 'focus';\n var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n var SELECTOR_DATA_TOGGLE = '[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 = '.active';\n var SELECTOR_BUTTON = '.btn';\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY + DATA_API_KEY + \" \" + (\"blur\" + EVENT_KEY + DATA_API_KEY);\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n if (activeElement) {\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $__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));\n }\n\n if (triggerChangeEvent) {\n $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n }\n }\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY);\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);\n\n if (!data) {\n data = new Button(this);\n $element.data(DATA_KEY, data);\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, 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, 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);\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE);\n }\n } // find all button toggles\n\n\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\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);\n } else {\n _button.classList.remove(CLASS_NAME_ACTIVE);\n }\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Button._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Button;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Button._jQueryInterface;\n };\n\n return Button;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap carousel.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.jQuery, global.Util));\n})(this, function ($, Util) {\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 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n function _extends() {\n _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 return _extends.apply(this, arguments);\n }\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'carousel';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.carousel';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\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 Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\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;\n var EVENT_SLID = \"slid\" + EVENT_KEY;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY;\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE = '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 SELECTOR_ACTIVE = '.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 PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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__default['default'].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._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);\n $__default['default'].removeData(this._element, DATA_KEY);\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({}, Default, config);\n Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\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 if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n _this3.touchDeltaX = 0;\n } else {\n _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n }\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));\n $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE);\n }\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)) {\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 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__default['default'].reflow(nextElement);\n $__default['default'](activeElement).addClass(directionalClassName);\n $__default['default'](nextElement).addClass(directionalClassName);\n var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);\n\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = nextElementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(activeElement);\n $__default['default'](activeElement).one(Util__default['default'].TRANSITION_END, function () {\n $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE);\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE + \" \" + 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);\n $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE);\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);\n\n var _config = _extends({}, Default, $__default['default'](this).data());\n\n if (_typeof(config) === 'object') {\n _config = _extends({}, _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, 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__default['default'].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({}, $__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).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n $__default['default'](window).on(EVENT_LOAD_DATA_API, 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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Carousel._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Carousel;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Carousel._jQueryInterface;\n };\n\n return Carousel;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap collapse.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.jQuery, global.Util));\n})(this, function ($, Util) {\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 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n function _extends() {\n _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 return _extends.apply(this, arguments);\n }\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'collapse';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var Default = {\n toggle: true,\n parent: ''\n };\n var DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_SHOW = '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 SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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));\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util__default['default'].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)) {\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)) {\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);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $__default['default'].Event(EVENT_SHOW);\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, 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);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $__default['default'](_this._element).trigger(EVENT_SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util__default['default'].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)) {\n return;\n }\n\n var startEvent = $__default['default'].Event(EVENT_HIDE);\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__default['default'].reflow(this._element);\n $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW);\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__default['default'].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)) {\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);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util__default['default'].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);\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({}, Default, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\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__default['default'].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);\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__default['default'].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);\n\n var _config = _extends({}, Default, $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, 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;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, 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__default['default'].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);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Collapse._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Collapse;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Collapse._jQueryInterface;\n };\n\n return Collapse;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap dropdown.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.jQuery, global.Popper, global.Util));\n})(this, function ($, Popper, Util) {\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 var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n function _extends() {\n _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 return _extends.apply(this, arguments);\n }\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'dropdown';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var ESCAPE_KEYCODE = 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);\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK = \"click\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY + DATA_API_KEY;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_SHOW = '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 SELECTOR_DATA_TOGGLE = '[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 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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)) {\n return;\n }\n\n var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show(true);\n };\n\n _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) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $__default['default'].Event(EVENT_SHOW, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default['default'](parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Disable totally Popper.js for Dropdown in Navbar\n\n\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (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__default['default'].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__default['default'](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);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_SHOWN, relatedTarget));\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $__default['default'].Event(EVENT_HIDE, 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);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY);\n $__default['default'](this._element).off(EVENT_KEY);\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({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n Util__default['default'].typeCheckConfig(NAME, 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({}, 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.js 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({}, 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);\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, 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));\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);\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)) {\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, 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);\n $__default['default'](parent).removeClass(CLASS_NAME_SHOW).trigger($__default['default'].Event(EVENT_HIDDEN, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util__default['default'].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 && (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)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW);\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n if (event.which === ESCAPE_KEYCODE) {\n $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE)).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;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n }).on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Dropdown._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Dropdown;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Dropdown._jQueryInterface;\n };\n\n return Dropdown;\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 */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar 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\nfunction 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\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* 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\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\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\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar 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\nvar 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\nvar _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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // 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\nfunction 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\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\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\nfunction 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\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // 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\nfunction 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\nfunction 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\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nvar 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\nvar 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\nfunction 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\nvar 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\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(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\nfunction 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\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(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\nfunction 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\nvar 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\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\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\nvar 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\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.3): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n(function ($) {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $.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})($);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap modal.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.jQuery, global.Util));\n})(this, function ($, Util) {\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 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\n\n function _extends() {\n _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 return _extends.apply(this, arguments);\n }\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'modal';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\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 = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\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 if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $__default['default'].Event(EVENT_SHOW, {\n relatedTarget: relatedTarget\n });\n $__default['default'](this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\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, SELECTOR_DATA_DISMISS, 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);\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);\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);\n $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util__default['default'].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);\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);\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({}, Default, config);\n Util__default['default'].typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n\n if (this._config.backdrop === 'static') {\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__default['default'].getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._element).off(Util__default['default'].TRANSITION_END);\n $__default['default'](this._element).one(Util__default['default'].TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n $__default['default'](_this3._element).one(Util__default['default'].TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n\n this._element.focus();\n } else {\n this.hide();\n }\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE);\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__default['default'].reflow(this._element);\n }\n\n $__default['default'](this._element).addClass(CLASS_NAME_SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $__default['default'].Event(EVENT_SHOWN, {\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__default['default'].getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._dialog).one(Util__default['default'].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);\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) ? CLASS_NAME_FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $__default['default'](this._backdrop).appendTo(document.body);\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, 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 _this9._triggerBackdropTransition();\n });\n\n if (animate) {\n Util__default['default'].reflow(this._backdrop);\n }\n\n $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);\n $__default['default'](this._backdrop).one(Util__default['default'].TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW);\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)) {\n var _backdropTransitionDuration = Util__default['default'].getTransitionDurationFromElement(this._backdrop);\n\n $__default['default'](this._backdrop).one(Util__default['default'].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);\n\n var _config = _extends({}, Default, $__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, 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;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n var _this11 = this;\n\n var target;\n var selector = Util__default['default'].getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $__default['default'](target).data(DATA_KEY) ? 'toggle' : _extends({}, $__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, 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, 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 * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Modal._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Modal;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n };\n\n return Modal;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap tab.js v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 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 === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.jQuery, global.Util));\n})(this, function ($, Util) {\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 var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);\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 return Constructor;\n }\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'tab';\n var VERSION = '4.5.3';\n var DATA_KEY = 'bs.tab';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var EVENT_HIDE = \"hide\" + EVENT_KEY;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY;\n var EVENT_SHOW = \"show\" + EVENT_KEY;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_ACTIVE_UL = '> li > .active';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tab = /*#__PURE__*/function () {\n function Tab(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Tab.prototype; // Public\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var target;\n var previous;\n var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP)[0];\n var selector = Util__default['default'].getSelectorFromElement(this._element);\n\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;\n previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n previous = previous[previous.length - 1];\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE, {\n relatedTarget: this._element\n });\n var showEvent = $__default['default'].Event(EVENT_SHOW, {\n relatedTarget: previous\n });\n\n if (previous) {\n $__default['default'](previous).trigger(hideEvent);\n }\n\n $__default['default'](this._element).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n this._activate(this._element, listElement);\n\n var complete = function complete() {\n var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN, {\n relatedTarget: _this._element\n });\n var shownEvent = $__default['default'].Event(EVENT_SHOWN, {\n relatedTarget: previous\n });\n $__default['default'](previous).trigger(hiddenEvent);\n $__default['default'](_this._element).trigger(shownEvent);\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY);\n this._element = null;\n } // Private\n ;\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n\n var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE);\n var active = activeElements[0];\n var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE);\n\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n\n if (active && isTransitioning) {\n var transitionDuration = Util__default['default'].getTransitionDurationFromElement(active);\n $__default['default'](active).removeClass(CLASS_NAME_SHOW).one(Util__default['default'].TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n $__default['default'](active).removeClass(CLASS_NAME_ACTIVE);\n var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n if (dropdownChild) {\n $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n $__default['default'](element).addClass(CLASS_NAME_ACTIVE);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n Util__default['default'].reflow(element);\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW);\n }\n\n if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN)[0];\n\n if (dropdownElement) {\n var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE));\n $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE);\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n } // Static\n ;\n\n Tab._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $__default['default'](this);\n var data = $this.data(DATA_KEY);\n\n if (!data) {\n data = new Tab(this);\n $this.data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tab, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Tab;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault();\n\n Tab._jQueryInterface.call($__default['default'](this), 'show');\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Tab._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Tab;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Tab._jQueryInterface;\n };\n\n return Tab;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;"],"sourceRoot":""}